Profiles & Operations > Operation: Create Patient List
Interaction: Create Patient List
The Create Patient List interaction establishes a collection of patients linked to a specific EMR instance, representing those of interest for receiving clinical event notifications via the pub/sub mechanism. This list serves as a filtering input for subscriptions, ensuring that only events pertaining to patients within the list are delivered to the corresponding subscriber (e.g., the EMR system)
Scope
This interaction involves a request by a Point of Service system to create Patient List on the Subscription server. The list is assembled using Group resource. The request is received by the Subscription service which stores the received Group resoource and returns an HTTP response code and an OperationOutcome resource if applicable.
Interaction Sequence Diagram
Specification
This specification is based on use of the HL7 FHIR Group resource.
Create Patient List Request
The Create Patient List shall utilize the FHIR Group resource to define and maintain references to all patients associated with a specific EMR instance. This ensures a standardized representation of the patients for use in subscription filtering and notification delivery.
`POST https://[base_url]/Bundle/`
where [identifier] represents a reference to EMR instance whose patient list is created with this operation.
Create Patient List Response
The server returns a 201 OK HTTP status code, along with a copy of the Group resource in the HTTP body.
Create Patient List Example
Example Create Request
HTTP Method:
POST
Headers:
Content-Type: application/fhir+json
Client ID: CI-12345-patient-list
Address:
[base_url]/Bundle/
Example Create Request Body
HTTP Body contains a FHIR Group resource with reference to Patient resource conformant with CA Core + specification.
{ "resourceType": "Bundle", "type": "collection", "entry": [ { "fullUrl": "urn:uuid:group-1", "resource": { "resourceType": "Group", "identifier": [ { "system": "http://emr.orion.ca/fhir/identifiers", "value": "ci-12345-patient-list" } ], "type": "person", "actual": true, "quantity": 2, "member": [ { "entity": { "reference": "urn:uuid:patient-1" } }, { "entity": { "reference": "urn:uuid:patient-2" } } ] } }, { "fullUrl": "urn:uuid:patient-1", "resource": { "resourceType": "Patient", "id": "patient-1", "identifier": [ { "use": "usual", "system": "http://hospital.example.org/mrn", "value": "123456" } ], "name": [ { "family": "Smith", "given": ["John"] } ], "gender": "male", "birthDate": "1980-01-01" "address" : [ { "postal code" : "M8V 4T8" } ] } }, { "fullUrl": "urn:uuid:patient-2", "resource": { "resourceType": "Patient", "id": "patient-2", "identifier": [ { "use": "usual", "system": "http://hospital.example.org/mrn", "value": "4566" } ], "name": [ { "family": "Doe", "given": ["Jane"] } ], "gender": "female", "birthDate": "1990-06-15" "address" : [ { "postal code" : "M8Y 3T6" } ] } } ] }
Example Create Response Body
HTTP/1.1 201 'Created
Content-Type: application/fhir+json
HTTP Body contains a FHIR Group resource with reference to Patient resource conformant with CA Core + specification.
{ "resourceType": "Group", "identifier": [ { "system": "http://emr.orion.ca/fhir/identifiers", "value": "ci-12345-patient-list" } ], "type": "person", "actual": true, "member": [ { "entity": { "reference": "Patient/101" } }, { "entity": { "reference": "Patient/102" } } ] } }
Expected Behaviour
Case | Scenario Description | HTTP Status Code | Response Payload |
---|---|---|---|
1 | A valid Group is submitted, accepted, and created in the repository | HTTP 201 | Created |
2 | The submitted Bundle cannot be validated as it does not conform to the specification | HTTP 422 | Bad Request. Returns an OperationOutcome resource indicating an issue. The client must fix the request and try again. |
3 | POST Interactions contains incorrect header value for "Content-Type" - should be "application/fhir+json" | HTTP 400 | Resource not found. Returns an OperationOutcome resource indicating an issue. |
4 | 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. |
Supported Profiles
Profile Name | URL |
---|---|
Group | Command 'link' could not render: File not found for 'subject=OntarioHealthPubSubGroup' |