Have you implemented OpenMRS? Please participate in the Implementation Site Survey. If you already have, thank you!
Skip to end of metadata
Go to start of metadata
Project ChampionPaul Biondich
FHIR Guru / mentorGrahame Grieve
Domain expert / mentorSuranga Kasthurirathne, Harsha Kumara
Other interested parties / experts

Andrew Kanter for MVP CIEL Dictionary

Burke Mamlin

Roger Friedman

Darius Jazayeri

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

Quick introduction

What is FHIR ?

What does FHIR look like ?

A resource is an instance of data that is stored or exchanged.  It has,

  • a known identity (URL) by which it can be addressed;
  • an identification of the subclass (an abstraction from the health domain) of which it is an instance;
  • a set of data elements, whose values can be a resource references or of a pre-defined type, and may be single- or array-valued;
  • a method of declaring additional data elements to extend the subclass;
  • a human-readable XHTML representation of its content;
  • a version ID that changes if the contents of the resource change;
  • the ability to be extended to include additional data elements.

Upcoming FHIR efforts

We are working on three major projects to improve our work on FHIR during the summer of 2015.

Current status of FHIR support

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

ResourcePersonPatientPractitionerLocationEncounterObservationAllergyIntolerance

DiagnosticReport

(Laboratory)

DiagnosticReport

(Radiology)

AppointmentMedicationRequest
GETYesYesYesYesYesYesYesYesYesYesYes
POST

Yes

Yes

YesYesYesYes    Yes
UPDATEYesYesYesYesYesYes YesYes  
DELETEYesYesYesYesYesYesYesYes  Yes
OperationsN/A$everythingN/AN/A$everythingN/AN/AN/AN/AN/AN/A

Explore FHIR support for OpenMRS

Interested in learning more about our current support for FHIR?

1) Try our hands on demo at http://qa01.openmrs.org:8080/hapi/

2) Read through descriptions for each FHIR resource via the child pages given below

Intercepting FHIR requests for logging and testing

 

 

  • No labels

13 Comments

  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 Suranga Kasthurirathne:

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

  3. Question from Suranga Kasthurirathne:

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

    1. Response from Roger 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. 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. Five things to know about FHIR

    The link is dead. What it was about?

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

      1. Sorry. It was a networking issue.

  7. Suranga Kasthurirathne, 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. Hi Angshuman Sarkar, basically, we're using the category attribute to identify what type of report (Radiology or other) each specific diagnostic report represents.

    (https://www.hl7.org/fhir/valueset-diagnostic-service-sections.html)

    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. Suranga Kasthurirathne, 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)?