FHIR2 Implementation Guide

On the FHIR squad, we’ve had some discussions around setting up a FHIR Implementation Guide to document FHIR as supported by the FHIR2 module. This is a bit of something more formal and technical than the documentation we’ve provided so far.

There’s a lot of work that will need to go into this, as I’m not aware of a real way to automate this documentation. However, I’ve setup a repository for the IG and it’s currently viewable at https://fhir.openmrs.org.

If anyone has the time to contribute to profiling resources to reflect their implementation in the FHIR2 module, please get in touch.

Our implementation guide is based on the OpenHIE Implementation Guide created by Jose Costa Teixeira, but it’s been lightly retouched to closer match OpenMRS branding.

So far, I’ve only created two real profiles, one for patient and one for location. These are based on the profiles @pmanko put together for the laboratory workflows IG that documents the OpenMRS-OpenELIS FHIR-based workflow that’s been developed.


Thanks @ibacher for kickstarting this.

Thanks @ibacher for starting this .
I have been waiting for this,
I have worked on the laboratory workflows IG and theres more we can re-use for the OpenMRS -IG too. ill be happy to contribute to this .

I think as first priority ,

  • We will need to add the Profiles for all the Resources we support.

  • We will need to add Example Resources based on the above Profiles.

  • We will also need to create the Logical model for the mapping between FHIR and the OPenMRS data model

1 Like

@mozzy I have experience on developing an IG too. I’m new to OpenMRS and would love to contribute in any way. According to the points listed, we can:

  • Convert all XML/JSON FHIR profiles (or any artifact) to FHIR Shorthand (FSH) and commit to repo
  • Start correcting profiles (as there could be some validation errors via SUSHI). Allocating which profiles to correct is needed to avoid re-work
  • we can include an diagram for the logical model you mentioned.
1 Like

Hi @janaka.peiris!

So, I think to understand things, you have to know that our starting point here is basically zero. We don’t have any real profiles yet in FSH or XML or anything else. What we do have is a FHIR implementation that we need to document.

I don’t know if there’s an easy way we can go from, e.g., an example resource to a profile in any way. Do you have any insight to offer there?

Thanks! And sorry for the very late response!

Hi @ibacher

Okay, so then let’s start by making profiles in FHIR Shorthand notation itself. Although its a new syntax, its not that difficult to pick up. So I suggest:

  • Select a set of FHIR Resources to be included in the 1st version of FHIR IG (to make the initial round simpler)
  • Go through code or WiKi (preferred) to determine the changes to FHIR Profiles from the base FHIR spec (or note if there is no change). Extracting changes going through code (if WiKi doesn’t contain it) will be time-consuming. By changes what I mean are:

Added Extensions / ValueSets, cardinality changes, specific limitations (eg: supporting only LOINC codes) expected

  • Once all the changes are in place, decide the Profile structure + naming conventions.

Decide if parent > child profiles are needed, based on the countries / regions used

  • Decide the custom content (text/ logos/ diagrams) to be included in IG. This can be extracted from the existing Wiki.

I can show a basic setup of creating a FHIR IG with FSH, with an example Profile, Extension and ValueSet. Since we don’t seem to have a hierarchy of profiles, this shouldn’t be very difficult.

@ibacher Let me know how we can proceed.

Thanks @janaka.peiris for showing intrest in this

We already have some Profiles created in FSH already

Here is a List of Resources we can look at . We can define our profiles from what elements are supported and required by the FHIR2 module

Note that we also have a GSOC project to help out in doing more work on this

Thanks @mozzy . If we can have a call, that would easily get this started. So @ibacher how do we proceed here ? (asking bcos I’m new to your process of working)

1 Like

We hava a FHIR call every other week on Tuesdays


I just joined the call today, and realized it’s on every other week. So @mozzy can you give a start on how to proceed with this. I’m not in a hurry, but I guess we can start something during the week if we simply allocate a few FHIR Resources from the list you gave.

1 Like

For Synsching with the FHIR team directly , you can join slack

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

Slack Channel: #fhir

For staring any contribution , you can start by creating a TIcket in the JIra Fhir Project and this is our git repository for the IG .

We can start with any Resources here thats not yet worked on

Thanks. I’ll start and update on the Slack channel. We need a way to know who is working on what FHIR Resource to avoid duplicate work.

1 Like

Yeah , Thats why we track all work using Jira

okay, is there a document on the process followed here (assigning work, following up, pull request , review process etc) ? Still I’m clueless on this. That’s why i’m trying to find and suggest how work is done here before starting.

1 Like

Thanks @janaka.peiris for Following up. we basically Use the JIra work flow to assign work , track the work status, review etc. you simply update the Jira Ticket status from one state to another and thats where the reviewers also come in .