Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack

Projects

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Please note that the listed set of supported operations here is illustrative of the general capabilities of the FHIR2 module for the version specified above. The currently supported operations for a particular version and instance of the module can always be found in the CapabilityStatement, which can be loaded from the /metadata URL, e.g., http://localhost:8080/openmrs/ws/fhir2/R4/metadata.

Note that although we've tried to indicate with a general idea what should be provided to different search parameters, the FHIR documentation for the specific resource and FHIR version in question should always be consulted for the normative data type.

ResourceGETSearchPOSTUPDATEDELETEOperationsComments
Person
/
/{uuid}
?name={string}
?gender=[male|female|unknown|null]
?birthdate={date-range}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

Patient
/
/{uuid}
?name={string}
?given={string}
?family={string}
?identifier={string}
?gender=[male|female|unknown|null]
?birthdate={date-range}
?death-date={date-range}
?deceased=[true|false]
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

Practitioner
/
/{uuid}
?name={string}
?given={string}
?family={string}
?identifier={string}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }
Note that Practitioner maps to both OpenMRS Users and Providers. However, Users are only provided for GET and Search requests and cannot be created or modified via the FHIR API.
Location
/
/{uuid}
?name={string}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?part-of={reference}
?part-of.name={string}
?part-of.address-city={string}
?part-of.address-state={string}
?part-of.address-country={string}
?part-of.address-postalcode={string}
?_tag={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

_tag allows you to search by the Location tag name.

Encounter
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?date={date}
?location={reference}
?location.address-city={string}
?location.address-state={string}
?location.address-country={string}
?location.address-postalcode={string}
?participant={reference}
?participant.identifier={string}
?participant.given={string}
?participant.family={string}
?participant.name={string}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.
Observation
/
/{uuid}
?encounter={reference}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?has-member={reference}
?has-member.code={codeable concept}
?code={codeable concept}
?date={date}
?value-concept={codeable concept}
?value-date={date}
?value-quantity={quantity}
?value-string={string}
?_id={uuid}
?_lastUpdated={date-range}
/ 
/{uuid }

Obviously, it is not possible to update observations in OpenMRS and when they are replaced, the new observation will have a new UUID and hence be a new FHIR resource.

We do not currently have a way to indicate that one observation replaces an existing observation.

Only one of patient or subject will be honored when searching.

AllergyIntolerance
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?category=[food | medication | environment | biologic]
?code={codeable concept}
?severity={codeable concept}
?manifestation={codeable concept}
?clinical-status={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }
Only one of patient or subject will be honored when searching.
Condition
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?code={codeable concept}
?clinical-status={codeable concept}
?onset-date={date}
?onset-age={quantity}
?recorded-date={date}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid }/{uuid }

Condition is only supported on OpenMRS platform 2.2.0 and higher.

Only one of patient or subject will be honored when searching.

Medication
/
/{uuid}
?code={codeable concept}
?form={codeable concept}
?ingredient-code={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid}


MedicationRequest

/

/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?code={codeable concept}
?requestor={reference}
?requestor.identifier={string}
?requestor.given={string}
?requestor.family={string}
?requestor.name={string}
?medication={reference}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.

In 1.0.0, resources representing orders are read-only.

DiagnosticReport
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?issued={date-range}
?code={codeable concept}
?result={reference}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid}

Only one of patient or subject will be honored when searching.

ServiceRequest

ProcedureRequest (DSTU3)

/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?code={codeable concept}
?requestor={reference}
?requestor.identifier={string}
?requestor.given={string}
?requestor.family={string}
?requestor.name={string}
?occurrence={date-range}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.

In 1.0.0, resources representing orders are read-only.

Task
/{uuid}
?based-on={reference}
?owner={reference}
?status={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid }

Explore FHIR support for OpenMRS

Interested in learning more about our current support for FHIR? Contact either Christina White or Ian Bacher !



The OpenMRS FHIR module supports the ability to export and import data in the form of FHIR Resources.

Project Coordinators
Developers
Other interested parties / experts

Table of Contents

Table of Contents

Where can you find us ?

On Talk

https://talk.openmrs.org/c/projects/fhir

On Slack

Slack Channel : https://slack.openmrs.org/

Slack Channel: #fhir and #fhir-development

Standing Weekly Call:

Every Wednesday : Join zoom from computer or mobile: https://iu.zoom.us/j/271744281

  • 6 PM EAT
  • 3 PM UTC
  • 11AM EDT (Boston)
  • 8 AM PDT (Seattle) 
  • 8:30 PM IST

OpenMRS FHIR Module

What is FHIR?

FHIR (Fast Healthcare Interoperability Resources) is an HL7 standard for representing healthcare information electronically. It is based on a series of Resources, which define common representations for different kinds of healthcare data. You can find the current version of the FHIR specification at https://www.hl7.org/fhir/index.html.

FHIR Development

JIRA Tickets

Code on Github

We are working on the following to improve our work on FHIR:

FHIR Support in 1.0.0

Note that all URLs are prefixed with the OpenMRS URL prefix (usually "/openmrs") and the FHIR module-specific prefix ("/ws/fhir2/"), the FHIR version, and then the resource name. The FHIR module suppports both FHIR R4 and DSTU3. For R4, use URLs with /R4 . For DSTU3, use URLs with /R3 . So, for example, the full URL for a Patient resource might be something like: http://localhost:8080/openmrs/ws/fhir2/R4/Patient/{uuid}.

Please note that the listed set of supported operations here is illustrative of the general capabilities of the FHIR2 module for the version specified above. The currently supported operations for a particular version and instance of the module can always be found in the CapabilityStatement, which can we loaded from the /metadata URL, e.g., http://localhost:8080/openmrs/ws/fhir2/R4/metadata.

...

ResourceGETSearchPOSTUPDATEDELETEOperationsComments
Person
/
/{uuid}
?name={string}
?gender=[male|female|unknown|null]
?birthdate={date-range}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

Patient
/
/{uuid}
?name={string}
?given={string}
?family={string}
?identifier={string}
?gender=[male|female|unknown|null]
?birthdate={date-range}
?death-date={date-range}
?deceased=[true|false]
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

Practitioner
/
/{uuid}
?name={string}
?given={string}
?family={string}
?identifier={string}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }
Note that Practitioner maps to both OpenMRS Users and Providers. However, Users are only provided for GET and Search requests and cannot be created or modified via the FHIR API.
Location
/
/{uuid}
?name={string}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}
?part-of={reference}
?part-of.name={string}
?part-of.address-city={string}
?part-of.address-state={string}
?part-of.address-country={string}
?part-of.address-postalcode={string}
?_tag={string}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }

_tag allows you to search by the Location tag name.

Encounter
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?date={date}
?location={reference}
?location.address-city={string}
?location.address-state={string}
?location.address-country={string}
?location.address-postalcode={string}
?participant={reference}
?participant.identifier={string}
?participant.given={string}
?participant.family={string}
?participant.name={string}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.
Observation
/
/{uuid}
?encounter={reference}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?has-member={reference}
?has-member.code={codeable concept}
?code={codeable concept}
?date={date}
?value-concept={codeable concept}
?value-date={date}
?value-quantity={quantity}
?value-string={string}
?_id={uuid}
?_lastUpdated={date-range}
/ 
/{uuid }

Obviously, it is not possible to update observations in OpenMRS and when they are replaced, the new observation will have a new UUID and hence be a new FHIR resource.

We do not currently have a way to indicate that one observation replaces an existing observation.

Only one of patient or subject will be honored when searching.

AllergyIntolerance
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?category=[food | medication | environment | biologic]
?code={codeable concept}
?severity={codeable concept}
?manifestation={codeable concept}
?clinical-status={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
//{uuid }/{uuid }
Only one of patient or subject will be honored when searching.
Condition
/
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?code={codeable concept}
?clinical-status={codeable concept}
?onset-date={date}
?onset-age={quantity}
?recorded-date={date}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid }/{uuid }

Condition is only supported on OpenMRS platform 2.2.0 and higher.

Only one of patient or subject will be honored when searching.

Medication
/
/{uuid}
?code={codeable concept}
?form={codeable concept}
?ingredient-code={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid}


MedicationRequest

/

/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?code={codeable concept}
?requestor={reference}
?requestor.identifier={string}
?requestor.given={string}
?requestor.family={string}
?requestor.name={string}
?medication={reference}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.

In 1.0.0, resources representing orders are read-only.

DiagnosticReport
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?issued={date-range}
?code={codeable concept}
?result={reference}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid}

Only one of patient or subject will be honored when searching.

ServiceRequest

ProcedureRequest (DSTU3)

/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?patient={reference}
?patient.identifier={string}
?patient.given={string}
?patient.family={string}
?patient.name={string}
?encounter={reference}
?code={codeable concept}
?requestor={reference}
?requestor.identifier={string}
?requestor.given={string}
?requestor.family={string}
?requestor.name={string}
?occurrence={date-range}
?_id={uuid}
?_lastUpdated={date-range}




Only one of patient or subject will be honored when searching.

In 1.0.0, resources representing orders are read-only.

Task
/{uuid}
?based-on={reference}
?owner={reference}
?status={codeable concept}
?_id={uuid}
?_lastUpdated={date-range}
/
/{uuid}
/{uuid }

Explore FHIR support for OpenMRS

Interested in learning more about our current support for FHIR? Contact either Christina White or Ian Bacher !

...