What’s an API?

I was asked recently by a clinical colleague what an API is, and why it’s important.

Let’s start with the technical answer. ‘API’ stands for ‘Application Programming Interface’ – it’s a way that one application (or a component of an application) exposes its services (which could be just data, or some operation against data) in a way that allows another application (often called the client) to use it. By using an API, it’s possible to develop re-usable libraries – components that can be used by other applications to develop functionality.

Read more of this post

Boston DevDays 2018

In June this year, there will be the first FHIR DevDays in the United States – in Boston.

For those unfamiliar with DevDays (Developer Days), this is a 3 day event simply crammed with FHIR activities – from educational presentations to ‘Connectathon’ type testing to just enjoying the community (and maybe a beer or two…) .

Read more of this post

Creating a resources model

This is the third post in a mini series on using the Logical modeler. In the first post we talked in generalities of models (admitting that this is very much a work in progress), and then we discussed the Information Model – a model that is used to capture clinical requirements for information exchange. Now, it’s time to think about how we can design real FHIR artifacts from the work so far.

Read more of this post

Building an Information model.

As described in the previous post, an Information model is used to capture the data requirements for a use case in a structured way, using the FHIR datatypes, but not aligned with the core FHIR resource types. This means that you can’t create an instance of this model – it’s just for analysis – but it will inform the development of the real FHIR artifacts.

Read more of this post

Creating models with the Logical Modeler

It’s been a while since we talked about the clinFHIR Logical Modeler, and I’ve had a few questions about it, so I thought an update might be in order.

The term ‘Logical Model’ can be used in different ways (much like ‘Profile’) so let’s first define just what we are talking about. Basically, it’s just a hierarchical model of data – much like you see in any of the core FHIR resource types – with the exception that the model does not have to align with any of the core types. Other than the requirement that you must use the FHIR datatypes, there are no limits on the complexity of the model you create (though overly complex models can be hard to understand – or use).

In this post we’ll talk about the general aspects of using the modeler – subsequent posts will go into more detail about how to build them.

Read more of this post

Clinicians on FHIR

Last week we held our first New Zealand ‘Clinicians on FHIR‘ seminar at the HINZ conference in Rotorua. This was really important for me, as it was the first ‘public outing’ of a seminar format that I’d like to see could be repeated wherever Clinicians are getting their first taste of FHIR, and showing how they can participate more fully in FHIR based Interoperability projects.

We had around 30 attendees and excellent participation – especially as the event was a combination of presentations and practical exercises. Thanks to John Fountain for presenting the clinical perspective. Talking to participants after the event was also very positive, with some good suggestions for improvement of the seminar.

Read more of this post

Using a FHIR Observation

These are some notes written by Lloyd, Grahame & Eric about using Observation in practice. I’ve copied this directly, here so I always know where to find it. You should refer to the source for the most recent version.

Read more of this post

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

Creating documents in clinFHIR 

I did a demo of clinFHIR for the Clinicians on FHIR group that will be meeting at the Working Group Meeting next week, and completely forgot to talk about creating/viewing documents in clinFHIR using the scenario builder. This is functionality that has been around for a while, and allows you to create a FHIR document by adding a Composition resource to the scenario, and then linking up the other resource to it.

So I thought I’d do a post on it!

Read more of this post

FHIR Core Extensions

A really short post to record how to download the core extensions in the spec (This came up in a FHIR Chat today). They can be found at:

This is particularly useful if you are setting up your own FHIR server and want to pre-load them with the code definitions in the spec. Just download from the link above, remove the id from the bundle, change the bundle type to ‘batch’ and POST to the root of the server.

Thanks Lloyd!