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

Get Subscription

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.