Supporting the SNOMED SNAPP hackathon

So there’s a ‘hackathon’ (I actually don’t like that word) associated with the SNOMED conference in Wellington next month. They’re calling it a ‘SNAPP’ event (SNOMED App) – which is much nicer!

As part of supporting this event, HL7 New Zealand is going to stand up a server that can be used for the ‘My List of Medicines’ challenge. (The other challenge – Machine Mapping – is a bit esoteric for me).

So there are a couple of things we need to do.

  • Stand up a FHIR server for participants to use that can respond to appropriate requests (we’ll talk about what they will be in the next post).
  • Populate that server with the sample data given on the web site

So the first step is straight forward. We’ll get a server in the cloud (I use Digital Ocean myself) and install the HAPI CLI server on it.

To do this, download the zip file for the server (there’s a link on the documentation page) and expand it into a folder. To run it, the following command from the command line works for me:

java -jar hapi-fhir-cli.jar run-server --allow-external-refs -f dstu3

This will start the server in STU3 mode (or the release candidate), allowing StructureDefinitions that refer to external urls. I usually create a small shell script to make this easier to run.

Next task is to install the various conformance resources (StructureDefinitions for the base resource types and ValueSets). To do this, leave the server running and open a new window. Enter the following command.

java -jar hapi-fhir-cli.jar upload-definitions -f dstu2 -t http://localhost:8080/baseDstu2

All going well, you should now have a fully featured FHIR server populated with the base conformance resources. Excellent! (And it was free!)

(By the way – you can also set up your new server to be a terminology server with a complete installation of SNOMED – we won’t do that now, but maybe a topic for another post.)

Now to populate the server with the sample data. After some thought, I decided to update clinFHIR so that when you create a new patient and ask for sample resources to be created, it will add the ones from the SNAPP site – demo data is always helpful. So all you need to do is to tell clinFHIR about your new server, set it as the data server, and create a new patient with examples. Here are the steps:

Start clinFHIR.

From the ‘gear’ menu at the upper right, select the ‘add server’ option. Enter a name , the location of the server and the FHIR version as shown in the following screen shot:


(Note the trailing ‘/’ in the url – that’s important).

Click the ‘test’ button that appeared on the lower right. This will attempt to retrieve the conformance resource from that server. If it succeeds, then you’ll get a message and an ‘add’ button will replace the ‘test’ button. Clicking that will add the new server to list of servers that can be accessed by this browser. (The definition is saved in the local browser cache right now – I’ll probably update that at some time to be associated with a logged in user).

Now you can dropdown the list of servers in the ‘my recent patients’ and be able to select the new server (It’s at the bottom of the list).


To create a patient, click the ‘Select Patient’ link, and in the dialog that is displayed select the ‘Add new Patient’ link to the lower left.

This will change to a screen where there is some sample data (retrieved from an on-line service) – you can just accept that or add your own demographics. Leave the ‘Generate Samples’ checkbox checked. Now click ‘Save’.

After a while (maybe 5-10 seconds) you’ll get a display like the following.


Click ‘close’ to return to the front page.

You can now view the resources that have been created for the patient. Click the ‘Details’ link (upper left) alongside the patient name, and the following screen is displayed:


(I’ve selected the List resource type, then the Medication List instance, and finally the ‘References’ tab to get a graphical view of the Medication List that was created.) I’ve blogged before about this stuff so won’t go into that here (though do note that some of the older posts may no longer be correct –clinFHIR changes rapidly!)

Before we go – click on the ‘Resource References Graph’


This will show all the resources for this patient (excluding the Patient). You can zoom and move the display to show the resources you want (remember that these are resource instances – real resources created for a patient).

So that’s all for now – we’ve set up a FHIR server and loaded it with sample data from the SNAPP site.

In the next post we’ll take a look at what kind of queries we can use when we’re ‘SNAPPing’ with SNOMED (sorry, couldn’t help myself)…

And if you’re a guru with colour – reach out (as you can see, I need help with that 🙂 )



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 Supporting the SNOMED SNAPP hackathon

  1. Excellent post, David, and I’m sure you’ll fix the deliberate error. Venue for the SNOMED CT Expo 27-28 October 2016 is of course Museum of New Zealand Te Papa Tongarewa in Wellington. SNApp promises to be one of the highlights – a chance for a new generation of health software developers.

    • David Hay says:

      Yes, deliberately mentioned Auckland instead of Wellington to be sure you read it 🙂

      Reference corrected!

  2. Pingback: Confluence: SNApp

  3. Pingback: Managing the Medication List in SNapp, part 1. | Hay on FHIR

  4. Pingback: Supporting SNapp: Lists of medications | Hay on FHIR

  5. Pingback: Contained resources – MedicationStatement | Hay on FHIR

  6. Pingback: SNOMED Expo 2016 – is coming to NZ in October this year – HL7 New Zealand

Leave a Reply