FHIR Versions and Conformance URLs

As you probably know, there are a number of ‘conformance’ resources in FHIR that have a unique ‘canonical’ Url that identifies them globally. Other resources that need to refer to them can do so by addressing them by that URL – for example when a profile (Core or Derived) binds a coded element to a ValueSet, it does so via that URL – as does a Profile referencing an Extension Definition (both Profile and Extension Definition are StructureDefinition resources).

Looking at the definition of the Url in the spec:

For StructureDefinition:

An absolute URI that is used to identify this structure definition when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this structure definition is (or will be) published. The URL SHOULD include the major version of the structure definition.

For ValueSet

An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set.

So how do you accomplish this across different versions of FHIR?

Read more of this post

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 🙂 ).

Read more of this post

clinFHIR profile viewer

Over the years I’ve made a number of attempts to build a profile viewer – to a mixed amount of success. The issue is becoming more urgent though, as profiles (as part of Implementation Guides) start to become published, and vendors such as Orion Health need to think about how we are to support them.

The issue is even more important for vendors in the international space, as our solutions are going to have to support different profiles in different countries, and we cannot assume that the profiles will be in alignment even for the same concept.

We’re not going to solve that issue right now (though it does highlight that the developers of profiles need to be aware of it and ideally working to avoid it as much as possible), but the ability to view profiles from different jurisdictions and analyse them in a common way is going to be important. Read more of this post

Changing a ValueSet in a profile

I learned something today.

Actually, most days I do learn something (and occasionally remember it later on) but this one is worth recording here.

Read more of this post

Creating an Extension Definition – part 3: Coded items

A common data type that is likely to be added in an extension are coded types – those where the value in an instance comes from a pre-defined set of possible values. There are a couple of extra things that you need to do for these.

First, a quick review of the basics.

Read more of this post

Creating an Extension Definition – part 2: The URL.

In the previous post, we talked about the steps you might follow when creating an Extension Definition as part of profiling a resource. There were 2 steps that we glossed over because of space – the url, and extra work required for coded datatypes and identifiers. Let’s take a look at the url.

Read more of this post

So you want to create a FHIR extension?

 

Most people familiar with FHIR will be aware of profiling resources – and in particular adding new elements to resources for a specific use case – adding an extension. It seems straightforward, but there are a number of things to think about when you do this so – or so we’ve found at Orion Health!

In this post we’ll talk about some of the factors involved – less about the technology and how they work in FHIR and more about some of the design time issues.

Read more of this post