Practitioner Search
Practitioner search is simple RESTful interactions. It support retrieving a single Practitioner instance by Practitioner Identifiers.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 the following Identifiers for:Practitioner:Source | Identifier |
---|---|
College URI | License Number |
Unique Provider Identifier URI | UPI |
EPID URI | EPID |
Interaction Diagrams
The following diagram illustrates the high level interaction between a FHIR Client and FHIR Provider RESTful Server. In this implementation guide, Provincial Provider Registry is playing the role of the FHIR Provider RESTful Server. All subsequent references of this actor (FHIR Provider RESTful server) should be interpreted as the Provincial Provider Registry.The Provider FHIR transaction will use the following query and responses:• Practitioner Search Request/Practitioner Search ResponseThe resource cannot be rendered.
Actor: FHIR Provider RESTful ClientRole: RequestorRequests a detailed profile of a single practitioner based on a known Practitioner ID Issuer from the FHIR Provider RESTful Server. The FHIR Client uses the information received from the FHIR Provider RESTful Server for its own purposes. The RESTful client is referred to as the “FHIR client” in the remainder of the document.Actor: FHIR Provider RESTful ServerRole: Information ServiceReturns a bundle containing the demographic information for the single practitioner corresponding to the Issuer & ID values specified by the FHIR Provider RESTful Client. This actor is referred to as the FHIR server in the remainder of the document.Specification
This FHIR Provider specification is based on the HL7 R4 Search operation. It makes use of the following resources:Note: Please note that Practitioner response is referenced in PractitionerRole responsePractitioner Search RequestThe practitioner Search Request is an HTTP POST operation(Alternatively, clients can also send GET based search ) with exactly one query parameter specified below. The syntax of the request is alwaysPOST [base]/Practitioner/_search?identifier=[system]|[value]
Or alternatively,GET [base]/Practitioner?identifier=[system]|[value]
Note: For list of Identifiers ,see scope section abovePractitioner Search Response
{{link:ca-on
Extensions
- address-confidential (Address Confidential)
- address-purpose (Address Purpose)
- lhin-code (Local Health Integration Network Code)
- practitioner-deceased (Practitioner Deceased)
- practitioner-restriction (Practitioner Restriction)
- practitionerRole-classification (Practitioner Role Classification)
- practitionerRole-specialty-period (Practitioner Role Specialty Period)
- practitionerRole-practiticing (Practitioner Role Practicing)
- practitionerRole-status (Practitioner Role Status)
- practitionerRole-status-effective (Practitioner Role Status Effective)
- practitioner-qualification-level (Practitioner Qualification Level)
- practitionerRole-LicenseClassificationCode (Practitioner LicenseClassificationCode)
- location-affiliation (Location Affiliation)
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 | Search | POST | [base]/Practitioner/_search? | N/A | Bundle containing Practitioner, PractitionerRole, Location |
Resource | Transaction | HTTP Operations | URL | Request Body Resource | Response Body Resource |
---|---|---|---|---|---|
Practitioner | Search | GET | [base]/Practitioner? | N/A | Bundle containing Practitioner, PractitionerRole, Location |
Interaction | Content-Type | Body | Location | Versioning | Status Codes | Comments |
---|---|---|---|---|---|---|
Search (practitioner) | R | R: Bundle | N/A | N/A | 200,400,404,422,500 |
Practitioner Search Operations
The Practitioner search is invoked through a HTTP POST (alternatively GET) request specifying the issuer (e.g. URI of PPR EPID, CPSO etc.) and identifier value (EPID, UPI, etc.) of a single Practitioner instance. The response from the FHIR Provider RESTful Server will be a Practitioner Resource, or in the case of a failed search, an operation outcome resource.Trigger Event
When a FHIR Client has the identifiers for an 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 an Practitioner search.Expected Behaviour
The FHIR Server shall return the records that correspond to the "Issuer/identifier" combination used in the request by the FHIR Provider RESTful Client. The FHIR Server shall respond synchronously (i.e. on the same connection as was used to initiate the request).The FHIR Server shall respond to the search request as described by the following cases and shall behave according to the use-cases listed below:Case | Scenario Description | Response |
---|---|---|
1 | PPR finds in its information source, a practitioner that 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 result set.Refer to Bundle definition here |
2 | PPR cannot find a practitioner that meets the search parameter 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. Refer to Bundle definition here. The bundle may contain operationOutcome with further information. |
3 | PPR detects an error in the request and could not fulfill the request | HTTP 400 (Bad Request) is returned as the HTTP status code. The body contains an OperationOutcome with error details, where applicable. |
4 | The requested resource is not supported or the endpoint is not a valid FHIR endpoint | HTTP 404 (Not Found) is returned as the HTTP status code. The body contains an OperationOutcome with error details, where applicable. |
5 | PPR cannot validate the request as it does not conform to the specification. | HTTP 422 (Unprocessable Entity) is returned as the HTTP status code. An OperationOutcome Resource is returned indicating an issue, where applicable. Client should contact Ontario Health for troubleshooting. |
6 | 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, where applicable. Client should contact Ontario Health for trouble shooting. |
Examples
Practitioner search request:
The search request can be either a GET or POSTPOST [base]/Practitioner/_search?identifier=[system]|[value]
Or alternatively,GET [base]/practitioner?identifier=[system]|[value]
Examples of a povider person search Request can be found belowPOST [base]/Practitioner/_search?identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-license-physician|12324566
Or alternatively,GET [base]/Practitioner?identifier= https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-provider-upi|3456789023
GET [base]/Practitioner?identifier=https://fhir.infoway-inforoute.ca/NamingSystem/ca-on-license-physician|12324566
Examples of a provider person search response can be found below
Example - Practitioner Search Response, Bundle Resource (CNO) - XML
Example - Practitioner Search Response, Bundle Resource (CNO) - JSON
Example - Practitioner Search Response, Bundle Resource (CPSO) - XML
Example - Practitioner Search Response, Bundle Resource (CPSO) - JSON
Example - Practitioner Search Response, Bundle Resource (OCP)- XML
Example - Practitioner Search Response, Bundle Resource (OCP)- JSON