Wiki Spaces


Get Help from Others

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


Page tree
Skip to end of metadata
Go to start of metadata

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

Table of Contents

Quick introduction

What is FHIR ?

Current FHIR efforts

JIRA Tickets

Github Module Code

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

Current status of FHIR support (last updated 2019-12-03)

To date, the FHIR module supports the following resources and actions.






















?identifier={identifier of patient, NOT patient uuid}


?_id={uuid}&part-of={uuid}    (returns visit)





?code={uuid of concept}



?subject={patient identifier}&code={terminology code}


AllergyIntolerance/{uuid}?patient.identifier={patient identifier NOT uuid}

DiagnosticReport/{order accession number}







?patient={patient uuid}


?_id={patient uuid}

?patient={patient uuid}


?patient.identifier={patient id}



?name={group name}




Explore FHIR support for OpenMRS

Interested in learning more about our current support for FHIR?

1) Try our hands on demo at

2) contact Christina White  or JJ Dick

  • No labels


  1. Is the Java based FHIR reference application source online somewhere (in GitHub or other hosted repo) that's easier to browse?

    1. To answer my own question, Mother Google led me to fhir-haver-model on GitHub.

  2. Question from Unknown User (surangak):

    Are the model classes in the reference application intended to be Base Resources or FHIR Resources ?

  3. Question from Unknown User (surangak):

    Where can we obtain the xsd for validating the Patient Observation list ?

    1. Response from Unknown User (r.friedman):

      Suranga Kasthurirathne, what do you mean "Patient Observation List"  All observations contain a subject, which can be a patient.  The list resource can contain observations and can refer to a subject.  But patient doesn't have lists or observations; this type of one-sided reference seems to be very typical of xml objects.  I think we are going to have to devote considerable attention to mapping our person-patient-visit-encounter-observation cascade onto FHIR resources.

  4. Unknown User (darius)

    Strategically I think that if intermediate representations of FHIR-relevant data is semantically interesting beyond just FHIR, we should introduce these intermediate representations outside of the OpenMRS FHIR module, e.g. in the EMR API module.

    Also, as I said on the Talk topic, I would prefer to focus on some well-defined FHIR clinical resource, not pick something very generic like Observation. (I think I'm agreeing with Roger here.)

  5. Any chance we could use wiki comments or the OpenMRS Talk forum for threaded discussion instead of direct wiki page edits?  It's very difficult to follow a discussion that is going on in multiple locations within a single document.

  6. Unknown User (alexgg)

    Five things to know about FHIR

    The link is dead. What it was about?

    1. The link is working for me. :-/

      1. Unknown User (alexgg)

        Sorry. It was a networking issue.

  7. Unknown User (angshuonline)

    Unknown User (surangak), how do you differentiate between a DiagnosticReport Lab or Radiology? As much as I know the "DiagnosticReport" resource doesn't have anything to specify whether its for Radiology or Pathology/Clinical. Are you using any extension to define additional meta data?

  8. Unknown User (surangak)

    Hi Unknown User (angshuonline), basically, we're using the category attribute to identify what type of report (Radiology or other) each specific diagnostic report represents.


    So take diagnostic report -> read service category _> identify what it represents -> forwards diagnostic report to a handler class that has radiology specific business logic to parse its contents. 

  9. Unknown User (angshuonline)

    Unknown User (surangak), thanks for the clarification. My question was also misleading I guess, since I meant DiagnosticOrder (instead of DiagnositicReport). I was wondering how would you indicate that the order is a "radiology" or a "pathology". For example, if someone is posting a "DiagnosticOrder" resource to OpenMRS, how would you determine whether to create a order for "labTest" which OpenMRS has support for, or to create a "radiology" order type (custom ordertype in OpenMRS)?

    Another question, is that  DiagnosticReport.Category cardinality is 0..1. Imagine a CBC order, would category indicate the department (Hematology) or type (lab)?