Profiles & Operations > Patient Read

Patient Read

Patient Read is a simple RESTful interaction. It aligns with the generic RESTful read (http://hl7.org/fhir/http.html#read) operation defined in the FHIR core specification. It supports retrieving a single patient instance by its RESTful resource id. In this implementation, the resource id refers to patient ECID in the PCR.

This transaction involves a request by a FHIR Client Application for the demographic information associated with a single patient record, identified by the PCR ECID for that patient. The request is received by the PCR which returns the requested record.

For example, an EMR uses the PIXm operation to look up alternate identifiers for a patient using a patient's Ontario Health Card Number. After receiving the PCR ECID for the corresponding patient, the EMR uses the read operation to retrieve the patient's demographic information from the registry.

This operation can also be used when the patient id becomes known by other means. For example, if a FHIR clinical resource such as a prescription, immunization record or lab result contains a reference to the patient's PCR ECID, a read operation can be invoked to return the patient's information.

Storyboard

PCR stores accurate and up to date patient demographics and associated identifiers for consistent access across the enterprise.

This storyboard demonstrates querying the PCR to get demographic information for a patient by ECID.

Narative Example

Connor Comrade has a list of patients who need to be invited for follow up to Dr Patricia Primary's clinic. Connor sets up a list of Patient Enterprise Identifiers (e.g. collected from the EMR, or via the EMR querying the PCR via the PIXm or Patient EMPI Match operations) and then requests a Patient Read Query through the EMR system for each ID. Connor checks the details returned in the Patient Read Query Response to make sure the patients are still alive. Where a date of death or a death status has been returned, Connor makes a note to follow these up later. For all the other patients, Connor uses the details returned in the Patient Read Response messages to update the local Patient records (e.g. mailing address) in order to issue an invitation letter to each patient for the clinic.

Interaction Diagram

The following diagram illustrates the high level interaction between a FHIR Client Application and PCR. The Patient Read operation will use the following query and response interactions:

  • Patient Read
  • Patient Read Response

PatientReadSmall

Actor: FHIR Client Application

Role: Requests a demographic details for a single patient based on a known resource id from the PCR. The FHIR Client Application may populate its local store with demographic information received from the PCR

Actor: PCR

Role: Returns demographic information for the single patient corresponding to the resource id specified by the FHIR Client Application.

NOTE: In this implementation guide, Provincial Client Registry is the PCR. All subsequent references of this actor should be interpreted as Provincial Client Registry.

Patient Read Operation

This represents an HTTP GET specifying the id of a single Patient instance from the FHIR Client Application to retrieve that patient from the PCR.

Trigger Event

When a FHIR Client Application has the server's "id" for a patient (from an identifier cross-reference query or by other means) but does not yet have the patient's demographic information or wishes to retrieve an updated version of the patient's demographic information, it invokes a Patient read.

Summary of Supported Operations

The table below shows the allowed transactions for each profile and how they support FHIR endpoints, resources and their corresponding HTTP operations (https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html):

Resource Transaction HTTP Operation URL Request Body Resource Response Body Resource
Patient Read GET [base]/Patient/[id] N/A Patient

The interaction summary table below lists the HTTP status codes that may be returned for the query.

Interaction Content-Type Body Location Versioning HTTP Status Codes Comments
read R R: Patient N/A N/A 200,400,404,422,500

Expected Behavior

The PCR shall return the demographic records that correspond to the "id" provided by the FHIR Client Application. The PCR shall respond synchronously (i.e. on the same connection as was used to initiate the request).

The PCR shall respond to the query request as described by the following cases and shall behave according to the cases listed below:

Case Scenario Description Response
1 The PCR finds in its information source, a patient whose ECID matches the id specified by the FHIR Client Application HTTP 200 (OK) is returned as the HTTP status code. The matching Patient is returned.
2 The PCR cannot find a patient whose ECID matches the id specified by the FHIR Client Application. HTTP 404(Not Found) is returned as the HTTP status code. An OperationOutcome Resource is returned indicating an issue, where applicable. Client should contact eHealth Ontario for trouble shooting.
3 PCR cannot validate the request as it does not conform to the specification. HTTP 400(Bad Request) is returned as the HTTP status code. An OperationOutcome Resource is returned indicating an issue, where applicable. The client must fix the request and try again.
4 The requested resource is not supported. HTTP 404 (Not Found) is returned as the HTTP status code. The body contains an OperationOutcome with error details, where applicable.
5 PCR has validated the request, but cannot return valid response (e.g. minimum of Patient ID + Name + Gender cannot be satisfied). HTTP 422 (Unprocessable Entity) is returned as the HTTP status code. An OperationOutcome Resource is returned indicating an issue, where applicable. Client should contact eHealth Ontario for troubleshooting.
6 PCR validates the request but cannot return valid response due to internal issue. HTTP 500 (Internal Server Error) is returned as the HTTP status code. An OperationOutcome Resource is returned indicating an issue, where applicable. Client should contact eHealth Ontario for trouble shooting.

Resource Profiles

This FHIR spec is based on the HL7 FHIR R4 Read (http://hl7.org/fhir/http.html#read) operation. It makes use of the following resources:

Patient Read Request

  • No resource profile. See here

Patient Read Response

The response from a Patient Read operation is a single patient (i.e. Patient Response) record. If PCR not found any patient based on the provided ECID in Read Request, it will return an empty search result with no error, but may include an OperationOutcome with further advice.

The following resource profile is used for Patient Read Response:

Patient Read Request Detail                                                                                                                                    Back to Top

The Patient Read Request is an HTTP GET operation to retrieve one patient record by resource "id" (i.e. ECID) with following syntax.

    GET [base]/Patient/{id}

There is only one search parameter allowed in this operation, which is ECID.

Example 1:

Client invokes a Read request for ECID = 12345 Then request (i.e. Query String) will be as follow:

    GET [base]/Patient/12345

Example of Patient Read

Format(s):