PractitionerRead
Profiles & Operations > Practitioner Read
Practitioner Read
Practitioner Read is a simple RESTful interactions It aligns with the generic RESTful read operation defined in the FHIR core specification. They supports retrieving a single Practitioner instance by their RESTful resource id.In this implementation, the resource id refers to practitioner EPID in PPR.
Note that Provider Person and Practitioner are used interchangeably in this document, as Practitioner is the name of the FHIR resource used to represent a Provider Person. When used in the context of FHIR, Practitioner will be used in place of Provider Person.
Scope
This transaction involves a request by a FHIR Provider RESTful Client for the identification, naming, licensing and contact information associated with a single practitioner record, identified by the target server's record id for that practitioner. The request is received by the FHIR Provider RESTful Server which returns the requested record.
For example, an immunization or medication record provides a FHIR "reference" pointing to the Provincial Provider Registry "id" for a particular Practitioner. To look up information about the referenced clinician, the EMR uses the read operation to retrieve the organization's contact and other information from the registry.
Interaction Diagrams
The following diagram illustrates the high level interaction between a FHIR Provider RESTful Client and FHIR Provider RESTful Server. The Provider transaction will use the following queries and responses:
- Read Pracititioner/Read Pracititioner Response
Actor: FHIR Provider RESTful Client
Role: Requests a demographic details for a single practitioner based on a known resource id from the FHIR Provider RESTful Server. The FHIR Provider RESTful Client populates its local store with information received from the FHIR Provider RESTful Server
Actor: FHIR Provider RESTful Server
Role: Returns demographic information for the single practitioner corresponding to the resource id specified by the FHIR Provider RESTful Client.
NOTE: In this implementation guide, Provincial Provider Registry is the FHIR Provider RESTful Server. All subsequent references of this actor should be interpreted as Provincial Provider Registry.
Specification
This FHIR spec is based on the HL7 STU3 Read operation. It makes use of the following resource profiles:
***Note: Please note that Practitioner Response is referenced in PractitionerRole response ***
Practitioner Read Request
GET [base]/Practitioner/EPID(Logical ID)
Practitioner Read Response
The PPR FHIR profiles are developed to constrain value sets and cardinality of data elements in the resources listed above. Since FHIR STU3 does not support all the data elements required for this project, we have introduced a few extensions which can be found here.
Extensions
- ppr-ext-address-confidential (Address Confidential)
- ppr-ext-address-purpose (Address Purpose)
- ppr-ext-LHINCode (Local Health Integration Network)
- ppr-ext-practitioner-altname (Practitioner Alternate Name)
- ppr-ext-practitioner-deceased (Practitioner Deceased)
- ppr-ext-practitioner-restriction (Practitioner Restriction)
- ppr-ext-practitionerRole-classification (Practitioner Role Classification)
- ppr-ext-practitionerRole-status (Practitioner Role Practicing)
- ppr-ext-practitionerRole-specialty-period (Practitioner Role Specialty Period)
- ppr-ext-practitionerRole-status (Practitioner Role Status)
- ppr-ext-practitionerRole-status-effective (Practitioner Role Status Effective)
- ppr-ext-practitioner-qualification-level (Practitioner Qualification Level)
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:
Resource | Transaction | HTTP Operations | URL | Request Body Resource | Response Body Resource |
---|---|---|---|---|---|
Practitioner and PractitionerRole | Read | GET | [base]/PractitionerRole/[id] | N/A | [PractitionerRole response] |
The interaction summary table below lists the HTTP status codes that may be returned for the query.
Interaction | Content-Type | Body | Location | Versioning | Status Codes | Comments |
---|---|---|---|---|---|---|
read (practitioner) | R | R: Practitioner | N/A | N/A | 200,400,500 |
Practitioner Read Operations
This represents an HTTP GET specifying the id of a single Practitioner instance from the FHIR Provider RESTful Client to retrieve the resource from the FHIR Provider RESTful Server.
Trigger Event
When a FHIR Provider RESTful Client has the server's "id" for a practitioner but does not yet have the name, contact, license and other information or wishes to retrieve an updated version of the practitioner's information, it invokes a Practitioner read.
Expected Behaviour
The FHIR Provider RESTful Server shall return the records that correspond to the "id" provided by the FHIR Provider RESTful Client. The FHIR Provider RESTful Server shall respond synchronously (i.e. on the same connection as was used to initiate the request).
The FHIR Provider RESTful Server 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 PPR finds in its information source, a practitioner whose EPID matches the id specified by the FHIR Client Application | HTTP 200 (OK) is returned as the HTTP status code. The matching Practitioner/PractitionerRole is returned. |
2 | The PPR cannot find a practitioner whose EPID matches the id specified by the FHIR Client Application. | HTTP 200(OK) is returned as the HTTP status code. A Resource Bundle is returned representing the zero result set. |
3 | PPR 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. The client must fix the request and try again. |
4 | PPR 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. Client should contact eHealth Ontario for trouble shooting. |
Examples
Examples of provider person Read request can be found below
GET [base]/Practitioner/12345
Examples of a provider person read response can be found below
Example of Operation Outcome