Detect and expand text macros
curl --request POST \
--url https://api.sully.ai/v1/macros/detect \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-ID: <api-key>' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.",
"macros": [
{
"id": "brief_exam_note",
"examples": [
"quickcheck",
"quick check",
"quick-check"
],
"expansion_text": "General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally."
}
]
}
'import requests
url = "https://api.sully.ai/v1/macros/detect"
payload = {
"text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.",
"macros": [
{
"id": "brief_exam_note",
"examples": ["quickcheck", "quick check", "quick-check"],
"expansion_text": "General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally."
}
]
}
headers = {
"X-API-KEY": "<api-key>",
"X-ACCOUNT-ID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-ACCOUNT-ID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.',
macros: [
{
id: 'brief_exam_note',
examples: ['quickcheck', 'quick check', 'quick-check'],
expansion_text: 'General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.'
}
]
})
};
fetch('https://api.sully.ai/v1/macros/detect', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sully.ai/v1/macros/detect",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.',
'macros' => [
[
'id' => 'brief_exam_note',
'examples' => [
'quickcheck',
'quick check',
'quick-check'
],
'expansion_text' => 'General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ACCOUNT-ID: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sully.ai/v1/macros/detect"
payload := strings.NewReader("{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-ACCOUNT-ID", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sully.ai/v1/macros/detect")
.header("X-API-KEY", "<api-key>")
.header("X-ACCOUNT-ID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sully.ai/v1/macros/detect")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-ACCOUNT-ID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"detections": [
{
"macro_id": "brief_exam_note",
"text_span": {
"start_char": 94,
"end_char": 104,
"text": "Quickcheck"
},
"confidence": 0.98
}
],
"expanded_text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Plan: Continue current medications. Reassess in 6 months or as needed. Patient advised to follow up for any new or worsening symptoms. applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months."
}
}{
"error": 123,
"message": "<string>"
}Macros
Detect Macros
Detects macros in text and provides expanded text with the macros replaced by their expansions
POST
/
v1
/
macros
/
detect
Detect and expand text macros
curl --request POST \
--url https://api.sully.ai/v1/macros/detect \
--header 'Content-Type: application/json' \
--header 'X-ACCOUNT-ID: <api-key>' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.",
"macros": [
{
"id": "brief_exam_note",
"examples": [
"quickcheck",
"quick check",
"quick-check"
],
"expansion_text": "General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally."
}
]
}
'import requests
url = "https://api.sully.ai/v1/macros/detect"
payload = {
"text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.",
"macros": [
{
"id": "brief_exam_note",
"examples": ["quickcheck", "quick check", "quick-check"],
"expansion_text": "General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally."
}
]
}
headers = {
"X-API-KEY": "<api-key>",
"X-ACCOUNT-ID": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-KEY': '<api-key>',
'X-ACCOUNT-ID': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.',
macros: [
{
id: 'brief_exam_note',
examples: ['quickcheck', 'quick check', 'quick-check'],
expansion_text: 'General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.'
}
]
})
};
fetch('https://api.sully.ai/v1/macros/detect', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sully.ai/v1/macros/detect",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'text' => 'The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.',
'macros' => [
[
'id' => 'brief_exam_note',
'examples' => [
'quickcheck',
'quick check',
'quick-check'
],
'expansion_text' => 'General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ACCOUNT-ID: <api-key>",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sully.ai/v1/macros/detect"
payload := strings.NewReader("{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("X-ACCOUNT-ID", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sully.ai/v1/macros/detect")
.header("X-API-KEY", "<api-key>")
.header("X-ACCOUNT-ID", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sully.ai/v1/macros/detect")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["X-ACCOUNT-ID"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months.\",\n \"macros\": [\n {\n \"id\": \"brief_exam_note\",\n \"examples\": [\n \"quickcheck\",\n \"quick check\",\n \"quick-check\"\n ],\n \"expansion_text\": \"General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"detections": [
{
"macro_id": "brief_exam_note",
"text_span": {
"start_char": 94,
"end_char": 104,
"text": "Quickcheck"
},
"confidence": 0.98
}
],
"expanded_text": "The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. General: Patient appears well-nourished and in no acute distress. HEENT: Normocephalic, atraumatic. Heart: Regular rate and rhythm. Lungs: Clear to auscultation bilaterally.. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Plan: Continue current medications. Reassess in 6 months or as needed. Patient advised to follow up for any new or worsening symptoms. applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months."
}
}{
"error": 123,
"message": "<string>"
}Body
application/json
Text to analyze for macros
Request payload for detecting and expanding macros in medical text
The text to analyze for macros
Example:
"The patient is a 54-year-old male here for a routine follow-up. Reports feeling well overall. Quickcheck. Denies any new symptoms. Medications reviewed and no changes needed. No signs of infection. Standard plan applies. Discussed flu vaccine and colonoscopy timeline. Return visit scheduled in six months."
An array of macro objects to detect in the text
Show child attributes
Show child attributes
Response
Macro detection result
Response containing detected macros and expanded text
Result data object containing detections and expanded text
Show child attributes
Show child attributes
⌘I