Patient Group

Introduction #

The PatientGroup model represents a named collection of patients. Patients are associated with a group through the PatientGroupMember model, which tracks membership along with start/end dates and active status.

Basic usage #

To get a patient group by identifier, use the get method on the PatientGroup model manager:

from canvas_sdk.v1.data.patient_group import PatientGroup

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

To get the members of a group:

from canvas_sdk.v1.data.patient_group import PatientGroup
from logger import log

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

for patient in group.members.all():
    log.info(f"Patient: {patient.id}")

If you have a patient object, the groups that a patient belongs to can be accessed with the patient_groups attribute on a Patient object:

from canvas_sdk.v1.data.patient import Patient

patient = Patient.objects.get(id="a74592ae8a6c4d0ebe0799d3fb3713d1")
groups = patient.patient_groups.all()

Membership #

The PatientGroupMember model represents a patient’s membership in a group. To access the membership records for a group:

from canvas_sdk.v1.data.patient_group import PatientGroup, PatientGroupMember
from logger import log

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

# Get active members
active_members = PatientGroupMember.objects.filter(patient_group=group, active=True)

for membership in active_members:
    log.info(f"Patient: {membership.member.id}, Start: {membership.start_date}")

Filtering #

Patient groups and memberships can be filtered by any attribute that exists on the model.

By name #

from canvas_sdk.v1.data.patient_group import PatientGroup

groups = PatientGroup.objects.filter(name="Diabetes Management")

By active membership #

from canvas_sdk.v1.data.patient_group import PatientGroupMember

active_memberships = PatientGroupMember.objects.filter(active=True, patient_group__name="Diabetes Management")

Attributes #

PatientGroup #

Field NameType
idUUID
nameString
membersPatient[]

PatientGroupMember #

Field NameType
createdDateTime
modifiedDateTime
patient_groupPatientGroup
memberPatient
start_dateDateTime
end_dateDateTime (nullable)
lockedBoolean
activeBoolean