Profiles & Operations > Operation: Get Patient Roster
DRAFT CONTENT
Operation: Get Patient Roster
The Get Patient Roster operation retrieves a predefined list of patients associated with a specific EMR instance or organizational unit. This patient roster is intended to be used as an input for subscription filtering, ensuring that only notifications related to the patients in the roster are sent to the corresponding subscriber (e.g., EMR system, HIC, or vendor).
The operation supports dynamic retrieval of patient groups to be used in conjunction with FHIR Subscription and SubscriptionTopic resources, where topic filtering criteria require limiting events to a specific set of patients. The returned Group resource can then be linked to a subscription instance to scope data change notifications appropriately.
Specification
This operation is based on use of the HL7 FHIR Group resource.
Usage
Get Patient Roster Request
The Get Patient Roster shall retrieve the FHIR Group resource from the repository with rererences to all patients for the given EMR instance.
`GET https://[base_url]/Group?identifier=emr-12345-patient-roster`,
where [identifier] represents a reference to EMR instance / organization whose patient roster is requested.
Get Patient Roster Response
The server returns a 200 OK HTTP status code.
The server returns a 200 OK HTTP status code, and also returns a copy the Subscription resourse in the HTTP body.
Interaction Sequence Diagram
Example of Get Subscription Interaction
Example GET Request
HTTP Method:
GET
Headers:
Content-Type: application/fhir+json
Address:
[base_url]/Group?identifier=emr-12345-patient-roster
Example GET Response Body
HTTP Body contains a FHIR Group resource with reference to Patient resource conformant with CA Core + specification.
{ "resourceType": "Bundle", "type": "searchset", "entry": [ { "resource": { "resourceType": "Group", "id": "123", "identifier": [ { "system": "http://ontariohealth.ca/fhir/identifiers/groups", "value": "emr-12345-patient-roster" } ], "type": "person", "actual": true, "managingEntity": { "reference": "Organization/12345" }, "member": [ { "entity": { "reference": "Patient/101" } }, { "entity": { "reference": "Patient/102" } } ] } } ] }
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. |