Profiles & Operations > Operation: Get Patient Roster

DRAFT CONTENT

Operation: Create Patient Roster

The Create Patient Roster operation creates a list of patients associated with a specific EMR instance or organizational unit which is of interest for notification on clinical events from pub/sub. 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 creation of patient groups to be used in conjunction with FHIR Subscription resources, where topic filtering criteria require limiting events to a specific set of patients.

Specification

This operation is based on use of the HL7 FHIR Group resource.

Usage

Create Patient Roster Request

The Create Patient Roster shall use FHIR Group resource to create references to all patients for the given EMR instance.

`POST https://[base_url]/Group?identifier=emr-12345-patient-roster`, 

where [identifier] represents a reference to EMR instance / organization whose patient roster is requested.

Create 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.