Projects in clinFHIR

One of the things that the Resource Builder in clinFHIR does is to allow you to use different servers for the various ‘roles‘ that are needed. These include:

  • The Conformance server – holds resources like StructureDefinition and NamingSystem
  • The Terminology server – ValueSets and the Terminology operations required by the different applications within clinFHIR
  • The Data server – where patient (and other) data is kept.

This isn’t an official part of the spec, but is a useful way to think about the main ‘components’ of a FHIR solution.

 

While flexible, this can make it somewhat more complicated to use, as you need to select the right combination of servers to suit a particular need.

To make this a bit easier, I’ve added the notion of ‘projects’ to clinFHIR. The purpose of a project is to allow you to select a combination of servers, profiles and sample patients and then make it easier for you to share that combination with others.

Indeed, part of the motivation for this is for my colleagues in the UK who are going to use clinFHIR to help them visualize profiles that are created by forge and stored in simplifier. By creating a project that ‘wraps up’ the profiles, the servers where they are stored and some sample patients it should make it easier when they get together to decide what profiles work best in the UK.

Another motivation was the need to support the ‘clinicians on FHIR’ event that we hold at each Working Group Meeting  – commonly the participants will prepare samples and profiles in advance, so I was imagining that projects could help help group those artifacts together.

A caveat before I start – this is quite basic functionality (I wrote it over the weekend) so please bear that in mind when you use it. In particular all the projects are world visible and (to some extent) world editable. I’ll add better security if it’s needed.

To create or use a project, there’s a new bookmark icon in navbar at the top right.  Clicking on that icon will display a menu dropdown with the currently defined projects and a link to the editor (so we’re going to have trouble if people create too many!)

The image below shows the menu selected:

Screen Shot 2016-08-23 at 5.57.41 am

If you click on the ‘project editor’ link you’ll see a screen where projects can be created, edited and removed (and if you do create a ‘test’ project – please remove it when you are done). Clicking on the ‘new’ link allows you to enter some simple information about the project:

  • The name (this will appear in the menu, so keep it short)
  • A description (this will appear when you mouse-over the item in the menu – make it reasonably complete – but not too much)…

Note that the servers are automatically selected – they are the ones that were selected when the screen was invoked, so make sure you select them prior to creating a new the project.

When finished click the save button (which will only appear after there is a name and a description) and then the ‘front page’ button to the upper right. The front screen will be re-displayed and when you display the project list, your new project will appear. (You do need to select it from the menu – even after creating it).

You can also use the project editor to view existing projects – it will show the profiles and patients that have been added to it (we’ll see how to do that in a minute).

To actually use a project, select it from the project list. The front screen will then:

  • display a banner at the top to indicate that a project is active
  • change the servers to the ones from the project and deactivate them (they can’t be changed while a project is active)
  • display the patients and profiles added to the project (for a new project they will be empty).

In the banner at the top is the name of the project and a link to the right that when clicked, will toggle clinFHIR into a mode where any changes you make to the lists of profiles and patients will be reflected in the project – ie selecting a profile will automatically add it to the project.

So all you need to do is to click the link, and then set up the project the way you want it. The purpose is to make sure that updating a project is a deliberate – rather than an accidental – act.

A couple of other minor changes I made to clinFHIR help support the project concept:

  • Patients and Profiles can be removed from the project by clicking the ‘x’ to the right side of the name
  • When selecting a profile, you can now select a profile from a different server than the currently selected conformance server. You need to select the server and the id of the profile on that server. This was added so that you can keep the conformance server set to – say – Grahames or the HAPI server which have all the standard profiles and valuesets needed by the rest of clinFHIR, but select a profile on – say – simplifier (which the UK folk are using)

So there you go. Hopefully this will make it easier to set up and share specific scenarios in clinFHIR. Let me know what you think – and any bugs or enhancements!

And just a reminder that currently all projects are visible – and editable – by anyone. If there are large numbers of projects then right now it will become unwieldy. I’ll improve functionality to manage this – likely a way to users to ‘subscribe’ to specific projects rather that the current ‘free for all’ – but for now, just be aware of this and thoughtful of others.

 

 

 

 

About David Hay
I'm a Product Strategist at Orion Health, Chair emeritus of HL7 New Zealand and co-Chair of the FHIR Management Group. I have a keen interest in health IT, especially health interoperability with HL7 and the new FHIR standard.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: