Generate Treatment Plan
curl --request POST \
--url https://api.decodahealth.com/user/patient/treatment-plans \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--header 'TENANT: <tenant>' \
--data '
{
"noteId": "<string>",
"templateId": "<string>"
}
'import requests
url = "https://api.decodahealth.com/user/patient/treatment-plans"
payload = {
"noteId": "<string>",
"templateId": "<string>"
}
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({noteId: '<string>', templateId: '<string>'})
};
fetch('https://api.decodahealth.com/user/patient/treatment-plans', 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.decodahealth.com/user/patient/treatment-plans",
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([
'noteId' => '<string>',
'templateId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"Content-Type: application/json",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/user/patient/treatment-plans"
payload := strings.NewReader("{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("API-KEY", "<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.decodahealth.com/user/patient/treatment-plans")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/user/patient/treatment-plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"patientId": "<string>",
"sourceNoteId": "<string>",
"title": "<string>",
"status": "DRAFT",
"snapshot": {},
"sharedWithPatient": true,
"templateId": "<string>",
"eventId": "<string>",
"locationId": "<string>",
"sentVia": [
"<string>"
],
"sharedDate": "2023-11-07T05:31:56Z",
"patientMessage": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Patients
Generate Treatment Plan
Generate a draft treatment plan from a completed note (older doses excluded).
When template_id is given, that template’s placeholders are resolved from the note. When it is
omitted, the global template attached to the note’s type (if any) is applied automatically, so the
assessment/plan wording stays consistent across the clinic without the provider picking by hand.
POST
/
user
/
patient
/
treatment-plans
Generate Treatment Plan
curl --request POST \
--url https://api.decodahealth.com/user/patient/treatment-plans \
--header 'API-KEY: <api-key>' \
--header 'Content-Type: application/json' \
--header 'TENANT: <tenant>' \
--data '
{
"noteId": "<string>",
"templateId": "<string>"
}
'import requests
url = "https://api.decodahealth.com/user/patient/treatment-plans"
payload = {
"noteId": "<string>",
"templateId": "<string>"
}
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({noteId: '<string>', templateId: '<string>'})
};
fetch('https://api.decodahealth.com/user/patient/treatment-plans', 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.decodahealth.com/user/patient/treatment-plans",
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([
'noteId' => '<string>',
'templateId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"Content-Type: application/json",
"TENANT: <tenant>"
],
]);
$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.decodahealth.com/user/patient/treatment-plans"
payload := strings.NewReader("{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("TENANT", "<tenant>")
req.Header.Add("API-KEY", "<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.decodahealth.com/user/patient/treatment-plans")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.decodahealth.com/user/patient/treatment-plans")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"noteId\": \"<string>\",\n \"templateId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"patientId": "<string>",
"sourceNoteId": "<string>",
"title": "<string>",
"status": "DRAFT",
"snapshot": {},
"sharedWithPatient": true,
"templateId": "<string>",
"eventId": "<string>",
"locationId": "<string>",
"sentVia": [
"<string>"
],
"sharedDate": "2023-11-07T05:31:56Z",
"patientMessage": "<string>",
"createdDate": "2023-11-07T05:31:56Z",
"updatedDate": "2023-11-07T05:31:56Z"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Headers
The tenant you are making this request on behalf of
Your api key
Body
application/json
Response
Successful Response
Full treatment plan for the provider editor/review view.
Lifecycle of a treatment plan generated from a note.
Available options:
DRAFT, SENT 
