At the moment the biggest challenge with FHIR is making it easy to implement a “FHIR server”. It’s easy to write a client to consume FHIR. It gets a little challenging to make a client that can talk to more than one FHIR implementation.
We don’t yet have the tooling in place to validate FHIR easily.
There are some ideas on the table to try and do FHIR conformance:
But it looks very complex (well at least to me!).
Here is a simpler idea.
Have a look at this page in our wiki on HL7 conformance:
Is shows a model of how one can do high quality conformance validation over a package of data. In this case the package of data happens to be a Version 2 HL7 message, but in FHIR it would a JSON or possibly an XML payload.
Now the cool thing about this is that we don’t have to use special tools to do the validation. If you are a Java fan – write the validation of a resource in Java. If you like C#, use C#. If you like Iguana then write it in Lua with the translator. If you love Corepoint or Rhapsody then use those engines. If you like Groovy use that…you get the picture.
The point is that for the user of the validator they don’t have to care what technology you have implemented the validation logic in. Your data goes in and nice messages come back in terms of telling you what you got wrong.
There are all sorts of lovely things that drop out of this model:
- Effort for writing validators can be distributed – which is great for a volunteer organization like HL7.
- It makes it possible for special interest groups that have a need for a particular profile to implement and validate there own profile.
It would be possible to do this in a decentralized model. Over time one could get natural selection of what the high quality useful resources that lots of people choose to implement. If someone at the Cleveland Clinic wants to make a great resource for doing a questionnaire then they can go ahead and do it. If other people like it then they too can adopt it.
The beauty of this is that it can be done quickly – using the existing FHIR specification.
HL7 could set up a little light-weight central server for people to register their conformance servers – we need a catchy name…. FHIR Button?
What do you think?