Patient Profiles
Patient profiles allow you to manage patient information and link multiple sessions to a single patient. This allows Heidi to include patient information in sessions linked to a patient, and use previous sessions as context.
Create a Patient Profile
Method: POST
Path: /patient-profiles
Description: Creates a new patient profile with the provided patient information.
Request
POST /patient-profiles
Authorization: Bearer <your_token>
Content-Type: application/json
{
"first_name": "John",
"last_name": "Doe",
"birth_date": "1990-01-15",
"gender": "MALE",
"ehr_patient_id": "EHR123456",
"phone": "+1234567890",
"email": "john.doe@example.com",
"demographic_string": "John Doe, M, 1990-01-15",
"additional_context": "Patient has a history of hypertension"
}Request Fields:
first_name(string, optional): Patient's first namelast_name(string, optional): Patient's last namebirth_date(string, optional): Patient's date of birth in ISO format (YYYY-MM-DD)gender(string, optional): Patient's gender. Can beMALE,FEMALE, orOTHERehr_patient_id(string, optional): The patient ID from your systemphone(string, optional): Patient's phone numberemail(string, optional): Patient's email addresspatient_sex_code(number, optional): Patient sex codeidentifiers(array, optional): Additional patient identifiersdemographic_string(string, optional): Patient display string on the Heidi UIadditional_context(string, optional): Additional context about the patient
Response
{
"data": {
"id": "5eb7cf5a86d9755df3a6c593",
"ehr_patient_id": "EHR123456",
"first_name": "John",
"last_name": "Doe",
"birth_date": "1990-01-15",
"gender": "MALE",
"phone": "+1234567890",
"email": "john.doe@example.com",
"demographic_string": "John Doe, M, 1990-01-15",
"additional_context": "Patient has a history of hypertension"
}
}Update a Patient Profile
Method: PATCH
Path: /patient-profiles/{patient_profile_id}
Description: Updates an existing patient profile with new information. Only the fields provided in the request will be updated.
Request
PATCH /patient-profiles/5eb7cf5a86d9755df3a6c593
Authorization: Bearer <your_token>
Content-Type: application/json
{
"first_name": "John",
"last_name": "Smith",
"demographic_string": "John Smith, M, 1990-01-15",
"phone": "+1987654321",
"email": "john.smith@example.com"
}Request Fields:
All fields are optional. Only include the fields you want to update:
first_name(string, optional): Patient's first namelast_name(string, optional): Patient's last namebirth_date(string, optional): Patient's date of birth in ISO format (YYYY-MM-DD)gender(string, optional): Patient's gender. Can beMALE,FEMALE, orOTHERphone(string, optional): Patient's phone numberemail(string, optional): Patient's email addressidentifiers(array, optional): Additional patient identifiersdemographic_string(string, optional): Patient display string on the Heidi UIremember_consent(boolean, optional): Whether to remember consentadditional_context(string, optional): Additional context about the patient
Response
{
"data": {
"id": "5eb7cf5a86d9755df3a6c593",
"source": "EHR",
"ehr_patient_id": "EHR123456",
"first_name": "John",
"last_name": "Smith",
"birth_date": "1990-01-15",
"gender": "MALE",
"phone": "+1987654321",
"email": "john.smith@example.com",
"demographic_string": "John Smith, M, 1990-01-15",
"additional_context": "Patient has a history of hypertension"
}
}Delete Patient Profiles
Method: DELETE
Path: /patient-profiles:batch-delete
Description: Deletes one or more patient profiles. This operation permanently removes the patient profiles and cannot be undone.
Request
DELETE /patient-profiles:batch-delete
Authorization: Bearer <your_token>
Content-Type: application/json
{
"patient_profile_ids": [
"5eb7cf5a86d9755df3a6c593",
"5eb7cf5a86d9755df3a6c594"
]
}Request Fields:
patient_profile_ids(array, required): Array of patient profile IDs to delete
Response
{
"is_success": true
}Link Sessions to a Patient Profile
Method: POST
Path: /patient-profiles/{patient_profile_id}/sessions
Description: Associates one or more sessions with a patient profile. This allows you to group multiple sessions under a single patient, making it easier to track a patient's consultation history.
Request
POST /patient-profiles/5eb7cf5a86d9755df3a6c593/sessions
Authorization: Bearer <your_token>
Content-Type: application/json
{
"session_ids": [
"1234567890",
"0987654321"
]
}Request Fields:
session_ids(array, required): Array of session IDs to link to the patient profile
Response
{
"data": [
{
"session_id": "1234567890",
"session_name": "Session 123",
"created_at": "2024-12-11T03:57:57.921000",
"updated_at": "2024-12-11T23:41:54.138000"
},
{
"session_id": "0987654321",
"session_name": "Session 124",
"created_at": "2024-12-12T10:30:00.000000",
"updated_at": "2024-12-12T11:15:00.000000"
}
]
}Get Patient Profiles
Method: GET
Path: /patient-profiles
Description: Retrieves a list of patient profiles. You can optionally filter by EHR patient ID or EHR provider.
Request
GET /patient-profiles
Authorization: Bearer <your_token>Query Parameters:
ehr_patient_id(string, optional): Filter by EHR patient IDehr_provider(string, optional): Filter by EHR provider name
Response
{
"data": [
{
"id": "5eb7cf5a86d9755df3a6c593",
"ehr_patient_id": "EHR123456",
"managed_by": "5eb7cf5a86d9755df3a6c593",
"first_name": "John",
"last_name": "Doe",
"birth_date": "1990-01-15",
"gender": "MALE",
"phone": "+1234567890",
"email": "john.doe@example.com",
"demographic_string": "",
"remember_consent": null,
"additional_context": "Patient has a history of hypertension",
"session_count": 3
}
]
}Get Patient Profile by ID
Method: GET
Path: /patient-profiles/{patient_profile_id}
Description: Retrieves detailed information about a specific patient profile by its ID.
Request
GET /patient-profiles/5eb7cf5a86d9755df3a6c593
Authorization: Bearer <your_token>Response
{
"data": {
"id": "5eb7cf5a86d9755df3a6c593",
"ehr_patient_id": "EHR123456",
"managed_by": "5eb7cf5a86d9755df3a6c593",
"first_name": "John",
"last_name": "Doe",
"birth_date": "1990-01-15",
"gender": "MALE",
"phone": "+1234567890",
"email": "john.doe@example.com",
"demographic_string": "",
"additional_context": "Patient has a history of hypertension"
}
}Error Response
If the patient profile is not found:
{
"detail": {
"msg": "Patient profile not found",
"type": "PatientProfileNotFoundError"
}
}