Implementation Guide viewer

Just a short post to describe some updates to the Implementation Guide viewer (which I’ve renamed from ‘profile viewer’ as it was described in this post.) Thanks to some comments in the FHIR chat from my friend John Moehrke I’ve done some work on the ‘Graph visualizer’ component of the viewer.

The idea is to make it easier to understand the contents of an Implementation Guide, and the relationships between them. Currently limited to Profiles, Extensions & ValueSets – but no reason why it couldn’t be extended (or won’t be 🙂 ).

To take a look, start clinFHIR and select the Implementation Guide view (as described in the previous post – remembering the name change).

If you load the CareConnect Implementation Guide (which is the one I’ve been working with), you’ll see a (small) graph to the right hand side. It is certainly possible to work with this graph (though it is a bit cluttered), but it really becomes useful when you limit the view. To do so, expand the ‘Profiles’ accordion to the left, and select one of the profiles – say Condition.

Screen Shot 2017-07-25 at 11.05.52 am.png

The graph in the middle shows the Condition profile as a central node, all of the resources that it references (ie the direction is from the Condition profile to the other resource), and the connections between them.

Selecting a node will show a few basic details about that node in the lower right (url & description). Depending on the node type (more on this in a minute) there will be other options:

  • Profile: There will be a link labelled ‘Select Node’. Clicking that link makes the selected node the ‘center’ node and re-draws the graph. It also makes that profile the ‘selected’ profile so the details tab will now show details of that resource rather than the one originally selected. Selecting that tab shows the views described in the earlier post. (Somewhat enhanced since then).
  • Extension. A link that when clicked shows a description of the extension.
  • ValueSet. A link that when clicked displays the ValueSet browser. The ValueSet is able to be expanded if the Terminology server has the definition of that ValueSet, and is capable of performing the expansion.

Selecting one of the arrows (representing the references between nodes) will show the paths from the source to the target resource in to the lower right (Only a single arrow is shown, regardless of the number of references between any two nodes, otherwise the graph is overly cluttered).

The actual contents of the graph can be changed using the check boxes to the upper right. Options are:

  • Include Extensions. If checked then extensions in the profile are also shown (with a purple background)
  • Include ValueSets. If checked then ValueSets in the profile are also shown (with a yellow background)
  • Include Core Resources (selected by default). This will include resource types and ValueSets from the FHIR spec that are referenced by the profile, but not included in the Implementation Guide.
  • Connections to selected node (selected by default). If this is not selected, then the entire contents of the Implementation Guide are shown. The graph can be zoomed (mouse wheel or trackpad), but it’s a wee bit cluttered. Selecting it allows a single resource to act as the centre.
  • Immediate Children only (selected by default). Unchecking this will expand the shown nodes beyond the immediate children of the centre node. So it will show ‘grandchildren’  and ‘great grandchildren’ as well.

Here’s a shot of the Condition profile, showing all related profiles and ValueSets

Screen Shot 2017-07-25 at 11.27.28 am

Here it is showing the ‘extended family’:

Screen Shot 2017-07-25 at 11.11.06 am

You’ll definitely need to zoom to see detail – here’s an example:

Screen Shot 2017-07-25 at 11.22.39 am.png

There are still a number of enhancements planned – for example the ability to actually edit the Implementation Guide but even in its current form it’s useful to help see what is in an Implementation Guide. I’m also not going to guarantee that it is correct! (More testing would be a real help 🙂 )

If you do want to try it out on another Implementation Guide, then loading one on a FHIR server (making sure all the referenced resources are also on the same server – ValueSets on the Terminology Server) and setting that server as the Conformance server ought to work. I’m pretty sure that there will be plenty of issues with Implementation Guide’s that I haven’t created so let me know of any issues. Also so far I’ve only used the STU2 version of the IG.

Note that there’s also a potential problem with storage – all the resources are saved in the browser cache to improve performance, so a large Implementation Guide will likely overflow that cache (you’ll get a message and the chance to clear the cache, but it needs to be properly fixed).



About David Hay
I'm an independent contractor working with a number of Organizations in the health IT space. I'm an HL7 Fellow, Chair Emeritus of HL7 New Zealand and a co-chair of the FHIR Management Group. I have a keen interest in health IT, especially health interoperability with HL7 and the FHIR standard. I'm the author of a FHIR training and design tool - clinFHIR - which is sponsored by InterSystems Ltd.

8 Responses to Implementation Guide viewer

  1. Paulo R. Rades says:

    Hi David. I’m trying to add another server in clinfhir but it gives error …

    There is no valid FHIR server at this URL:

    Any idea?



  2. Lloyd McKenzie says:

    Try adding a trailing “/” to the server name?

  3. Paulo R. Rades says:

    Hi | Lloyd | Running | Amazing | TKS |

  4. Eric Haas says:

    Hi David I suspect you are using the IG resource to construct the graph. Which could be a problem for a certain ig editor who doesn’t fully populate the that resource

    • David Hay says:

      Yes – it’s all generated from the IG so does make some assumptions about how that has been used. It’s something I’m learning about as I go! (but then, clinFHIR is kinda opinionated like that 🙂 )

Leave a Reply

%d bloggers like this: