Profiles & Operations > Operation: Read Patient List
DRAFT CONTENT
Interaction: Read Patient List
The Read Patient List retrieves a Group resource referencing all the patients associated with a specific EMR instance or organizational unit. This list is then used by Pub/Sub as a filtering criteria, ensuring that only notifications related to the patients in the list are sent to the corresponding subscriber (e.g., EMR system, HIC, or vendor).
It supports dynamic retrieval of patient lists from the pub/sub repository to be used as notification filtering criteria to determine whether notifications are being sent appropriately.
Specification
This specification is based onthe HL7 FHIR Group resource.
Usage
Read Patient List Request
The Get Patient List shall retrieve the FHIR Group resource from the repository with references to patients for the given EMR instance.
`GET https://[base_url]/Group?identifier=ci-12345-patient-list&_include=Group:member`,
where [identifier] represents a reference to EMR instance whose patient list is requested.
Read Patient List Response
The server returns a 200 OK HTTP status code along with FHIR Group resource in the HTTP body.
Interaction Sequence Diagram
Example of Get Patient List Interaction
Example GET Request
HTTP Method:
GET
Headers:
Content-Type: application/fhir+json
Address:
[base_url]/Group?identifier=ci-12345-patient-list&_include=Group:member
Example GET Response Body
HTTP Body contains a bundle with FHIR Group resource referencing Patient resources conformant with CA Core + specification.
{ "resourceType": "Bundle", "type": "searchset", "entry": [ { "resource": { "resourceType": "Group", "id": "123", "identifier": [ { "system": "http://emr.orion.ca/fhir/identifiers", "value": "ci-12345-patient-list" } ], "member": [ { "entity": { "reference": "Patient/1" }}, { "entity": { "reference": "Patient/2" }} ] } }, { "fullUrl": "urn:uuid:patient-1", "resource": { "resourceType": "Patient", "id": "patient-1", "name": [ { "family": "Smith", "given": ["John"] } ], "gender": "male", "birthDate": "1980-01-01" "address" : [ { "postal code" : "M8Y 3T6" } } }, { "fullUrl": "urn:uuid:patient-2", "resource": { "resourceType": "Patient", "id": "patient-2", "name": [ { "family": "Doe", "given": ["Jane"] } ], "gender": "female", "birthDate": "1990-06-15" "address" : [ { "postal code" : "M8Y 3T6" } } ] }
Expected Behaviour
Case | Scenario Description | HTTP Status Code | Response Payload |
---|---|---|---|
1 | An existing Group is retrieved from the repository | HTTP 200 | Retrieved |
2 | The requested Group based on the provided logical id does not exist | HTTP 404 | Resource not found. Returns an OperationOutcome resource indicating an issue. |
3 | API validates the request but cannot return a valid response due to internal issues. | HTTP 500 | Internal Server Error. Returns an OperationOutcome resource indicating an issue. |