Medication History

Introduction #

The MedicationHistoryMedication model represents historical medication data for a patient, typically imported from external sources such as health information exchanges or pharmacy systems. The MedicationHistoryResponse model tracks responses to medication history requests.

Basic usage #

To get a medication history record by identifier, use the get method on the MedicationHistoryMedication model manager:

from canvas_sdk.v1.data.medication_history import MedicationHistoryMedication

medication_history = MedicationHistoryMedication.objects.get(id="b80b1cdc-2e6a-4aca-90cc-ebc02e683f35")

If you have a patient object, the medication history for a patient can be accessed with the medication_history_medications attribute on a Patient object:

from canvas_sdk.v1.data.patient import Patient

patient = Patient.objects.get(id="1eed3ea2a8d546a1b681a2a45de1d790")
medication_history = patient.medication_history_medications.all()

Codings #

The codings for a medication history record can be accessed with the codings attribute on a MedicationHistoryMedication object:

from canvas_sdk.v1.data.medication_history import MedicationHistoryMedication
from logger import log

medication_history = MedicationHistoryMedication.objects.get(id="b80b1cdc-2e6a-4aca-90cc-ebc02e683f35")

for coding in medication_history.codings.all():
    log.info(f"system:  {coding.system}")
    log.info(f"code:    {coding.code}")
    log.info(f"display: {coding.display}")

Filtering #

Medication history records can be filtered by any attribute that exists on the model.

Filtering is done with the filter method on the MedicationHistoryMedication model manager.

By attribute #

Specify an attribute with filter to filter by that attribute:

from canvas_sdk.v1.data.medication_history import MedicationHistoryMedication

medications = MedicationHistoryMedication.objects.filter(dea_schedule="CII")

By date range #

Filter by last fill date or written date:

from canvas_sdk.v1.data.medication_history import MedicationHistoryMedication
from datetime import datetime

medications = MedicationHistoryMedication.objects.filter(
    last_fill_date__gte=datetime(2023, 1, 1)
)

Attributes #

MedicationHistoryMedication #

Field NameType
idUUID
dbidInteger
createdDateTime
modifiedDateTime
patientPatient
drug_descriptionString
strength_valueString
strength_formString
strength_unit_of_measureString
quantityFloat
quantity_unit_of_measureString
quantity_code_list_qualifierString
days_supplyInteger
last_fill_dateDateTime
written_dateDateTime
other_dateDateTime
other_date_qualifierString
substitutionsBoolean
refills_remainingInteger
diagnosis_codeString
diagnosis_qualifierString
diagnosis_descriptionString
secondary_diagnosis_codeString
secondary_diagnosis_qualifierString
secondary_diagnosis_descriptionString
dea_scheduleString
potency_unit_codeString
etc_path_idArray[Integer]
etc_path_nameArray[String]
fill_numberInteger
prescriber_order_numberString
source_descriptionString
source_qualifierString
source_payer_idString
source_typeString
noteString
sigString
prior_authorization_statusString
prior_authorizationString
pharmacy_nameString
pharmacy_ncpdp_idString
pharmacy_npiString
prescriber_business_nameString
prescriber_first_nameString
prescriber_last_nameString
prescriber_npiString
prescriber_dea_numberString
codingsMedicationHistoryMedicationCoding[]

MedicationHistoryMedicationCoding #

Field NameType
dbidInteger
systemString
versionString
codeString
displayString
user_selectedBoolean
medicationMedicationHistoryMedication

MedicationHistoryResponse #

Field NameType
idUUID
dbidInteger
createdDateTime
modifiedDateTime
patientPatient
staffStaff
message_idString
related_to_message_idString
statusMedicationHistoryResponseStatus
reasonString
reason_codeString
noteString
start_dateDate
end_dateDate

Enumeration types #

MedicationHistoryResponseStatus #

ValueLabel
approvedapproved
denieddenied