Provider Registry Implementation Guide
0.1.0 - ci-build Sri Lanka flag

Provider Registry Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Provider Registry Detailed Specification

Register a New Provider

This is standard FHIR to create a new FHIR Resource. Users SHALL call this interface to create a Provider.

POST [base]/Practitioner

If the Provider Staff Category is known, a PractitionerRole will also need to be created, pointing back to the Practitioner Resource using the PractitionerRole.practitioner element. The LKPractitionerRoleStaffCategory profile is used for this purpose.

Get Provider Using Identifier

This is a deterministic search using an Identifier search token to find matching Practitioners. Users SHALL use this interface when searching for a Provider using an Identifier.

For example:

GET [base]/Practitioner?identifier=http://acme.org/practitioenr|2345

This Restful request is a standard FHIR search and will return a Bundle of Practitioners with zero or more entries. It is possible that more than a single Practitioner is returned and this may indicate a problem with Practitioner duplication or an error.

The PractitionerRole associated with that Practitioner can be returned using a _revinclude.

GET [base]/Practitioner?identifier=http://acme.org/practitioner|2345&_revinclude=PractitionerRole:practitioner

Consideration 🔎 Should only active Providers be returned? Should this depend on the role of the user? i.e. Administrators may want to see active and in-active Practitioners.

Version Read

The vread interaction SHALL be supported for Resources.

GET [base]/Practitioner/123/_history/3

Provider Query

When searching for a Provider with search parameters the user SHALL call the following interface.

This query may return more than a single Practitioner. The more parameters used in the search the more likely a definitive single match is found. A list of FHIR R4 search parameters available for Practitioner queries is here. This set is reduced to the following:

Consideration 🔎 This is a proposed list, which will need to be refined during later design stages.

Parameter
_id
active
gender
birthdate
family
given
telecom

Consideration 🔎 Specific combinations of search parameters will reduce the number of matches, ideally to 1. For example, phone number with address and name will tend to give few matches. These preferred combinations should be specified in the future.

For example,

GET [base]/Practitioner?telecom=1231234&family=Perera&given=Lashith&gender=male

Provider Staff Category

This is an element that defines the role of a Provider. In FHIR this is mapped to PractitionerRole.code. To accommodate staff category queries the following PractitionerRole query SHALL be supported

GET [base]/PractitionerRole?_include=Practitioner.practitioner&code=MD

or with chaining so, for example, the parameters above could be used

GET [base]/PractitionerRole?_include=Practitioner.practitioner&code=MD&pracitioner.active=true

Update Provider

Given that the Provider to update has already been found, this is a standard FHIR Restful update interaction. This function necessitates that PR users SHOULD search before using the Update interaction.

PUT [base]/Practitioner/123

Update as create - is not supported.

Associate Provider with Organization

See the Facility design.

This association is indirect, as modeled in the Facility Design link above. One must create/find a HealthcareService first, then create the PractitionerRole and reference the HealthcareService. Since HealthcareService must have a Organization, the Practitioner is linked to an Organization through PractitionerRole and HealthcareService.


Note that the PractitionerRole created for this interface is not the same as the PractitionerRole used to contain the Provider Staff Category. The profile used for this purpose is LKPractitionerRoleServices.

Query Services by Provider

See the Facility design.

This interface is as follows given the structure described in the Facility Registry guide and users SHALL call this interfaces when searching for Services by Provider:

First search the Provider Registry.

GET [base]/PractitionerRole?practitioner=Practitioner/123

As PractitionerRole for Services is limited a single Service, the query may return many PractitionerRole instances; search the Facility Registry for all the Services returned.

E.g. GET [base]/HealthcareService/123 for each Service