Patient
Introduction #
The Patient model represents an individual receiving care or other health-related services.
Basic usage #
To get a patient by identifier, use the get method on the Patient model manager:
from canvas_sdk.v1.data.patient import Patient
patient = Patient.objects.get(id="b80b1cdc2e6a4aca90ccebc02e683f35")
Filtering #
Patients can be filtered by any attribute that exists on the model.
Filtering for patients is done with the filter method on the Patient model manager.
By attribute #
Specify attributes with filter to filter by those attributes:
from canvas_sdk.v1.data.patient import Patient
patients = Patient.objects.filter(first_name="Bob", last_name="Loblaw", birth_date="1960-09-22")
Attributes #
Patient #
PatientAddress #
| Field Name | Type |
|---|
| id | UUID |
| dbid | Integer |
| line1 | String |
| line2 | String |
| city | String |
| district | String |
| state_code | String |
| postal_code | String |
| use | AddressUse |
| type | AddressType |
| longitude | Float |
| latitude | Float |
| start | Date |
| end | Date |
| country | String |
| state | String |
| patient | Patient |
from canvas_sdk.v1.data.patient import Patient
from logger import log
patient_id = "d7af3e356368446c85b40a5d6ff7288e"
patient = Patient.objects.get(id=patient_id)
patient_addresses = patient.addresses.all()
for addr in patient_addresses:
log.info(f"Patient address: {addr.city}, {addr.state_code}, {addr.postal_code}") # Seattle, WA, 98118
PatientContactPoint #
| Field Name | Type |
|---|
| id | UUID |
| dbid | Integer |
| system | ContactPointSystem |
| value | String |
| use | String |
| use_notes | String |
| rank | Integer |
| state | ContactPointState |
| patient | Patient |
| has_consent | Boolean |
| last_verified | DateTime |
| verification_token | String |
| opted_out | Boolean |
from canvas_sdk.v1.data.patient import Patient
from logger import log
patient_id = "d7af3e356368446c85b40a5d6ff7288e"
patient = Patient.objects.get(id=patient_id)
patient_contacts = patient.telecom.all()
for contact in patient_contacts:
log.info(f"Patient contact: {contact.system} - {contact.value}") # phone - 5555555555
PatientExternalIdentifier #
| Field Name | Type |
|---|
| id | UUID |
| dbid | Integer |
| created | DateTime |
| modified | DateTime |
| patient | Patient |
| use | String |
| identifier_type | String |
| system | String |
| value | String |
| issued_date | Date |
| expiration_date | Date |
from canvas_sdk.v1.data.patient import Patient
from logger import log
patient_id = "d7af3e356368446c85b40a5d6ff7288e"
patient = Patient.objects.get(id=patient_id)
patient_external_identifiers = patient.external_identifiers.all()
for identifier in patient_external_identifiers:
log.info(f"Patient external identifier: {identifier.system}, {identifier.value}") # https://www.example.com - abc123
PatientSetting #
| Field Name | Type |
|---|
| dbid | Integer |
| created | DateTime |
| modified | DateTime |
| patient | Patient |
| name | String |
| value | JSON |
PatientMetadata #
| Field Name | Type |
|---|
| dbid | Integer |
| patient | Patient |
| key | String |
| value | String |
from canvas_sdk.v1.data.patient import Patient
from logger import log
patient_id = "d7af3e356368446c85b40a5d6ff7288e"
patient = Patient.objects.get(id=patient_id)
patient_metadata = patient.metadata.all()
for metadata in patient_metadata:
log.info(f"Patient metadata: {metadata.key}, {metadata.value}") # favorite_color - red
PatientFacilityAddress #
Enumeration types #
SexAtBirth #
| Value | Label |
|---|
| F | female |
| M | male |
| O | other |
| UNK | unknown |
| ”” (empty string) | ”” |
Computed Properties #
Patient #
full_name: The full name of the patient, combining first, middle, and last names.preferred_pharmacy: The patient’s preferred pharmacy for medication fulfillment.preferred_full_name: The patient’s preferred full name, if different from the legal name.preferred_first_name: The patient’s preferred first name, if different from the legal first name.primary_phone_number: The patient’s primary contact number.