Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

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

Projects

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.

Project Coordinators
Developers
Other interested parties / experts

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

  • 7pm EAT
  • 4pm UTC
  • 11AM EST (Boston)
  • 10AM CST (Chicago)
  • 8AM (Seattle) 

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 2020-03-04)

To date, the FHIR module supports the following resources and actions. Note that all URLs are prefixed with the OpenMRS URL prefix (usually "/openmrs") and the FHIR module-specific prefix ("/ws/fhir2/") then the resource name. So, for example, the full URL for a Person resource might be something like: http://localhost:8080/openmrs/ws/fhir2/Person/{uuid}.

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}





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}





Practitioner
/{uuid}
?name={string}
?identifier={string}





Location
/{uuid}
?name={string}
?address-city={string}
?address-state={string}
?address-country={string}
?address-postalcode={string}





Encounter
/{uuid}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.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}





Observation
/
/{uuid}
?encounter={reference}
?subject={reference}
?subject.identifier={string}
?subject.given={string}
?subject.family={string}
?subject.name={string}
?code={codeable concept}
?subject.identifier={string}&encounter={reference}&_sort=-date






AllergyIntolerance
/
/{uuid}






Condition
/
/{uuid}






Medication
/
/{uuid}






DiagnosticReport
/{uuid}

//{uuid}


ServiceRequest
/{uuid}






Task
/{uuid}

?based-on={reference}

?owner={reference}

?status={token}

/
/{uuid}



Explore FHIR support for OpenMRS

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



  • 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)?