FHIR Chat · Implementation Guide · implementers

Stream: implementers

Topic: Implementation Guide


view this post on Zulip Shovan (Sep 16 2016 at 03:14):

Hi Everyone ,
I am trying to run the sample Implementation Guide from fhir-svn/tests/. Everytime I run it I am getting the following error: differential.element.tail().all(path.startsWith($context.differential.element.first().path+'.')) at 1, 1: Found $context expecting a valid token name
org.hl7.fhir.dstu3.utils.FHIRLexer.error(FHIRLexer.java:93)
org.hl7.fhir.dstu3.utils.FHIRLexer.error(FHIRLexer.java:89)

Is there anything I have to change in the diagnosticorder-daf-profile-spreadsheet.xml. or any other suggestion ?

view this post on Zulip Grahame Grieve (Sep 16 2016 at 23:05):

works for me - how are you running it?

view this post on Zulip Shovan (Sep 19 2016 at 01:48):

Hi @Grahame Grieve, I have downloaded the 'org.hl7.fhir.igpublisher.jar' from https://hl7-fhir.github.io/downloads.html and running with all default settings (java -jar org.hl7.fhir.igpublisher.jar)

view this post on Zulip Dave Henderson (Jun 09 2017 at 07:59):

Hi all,
I'm in the process of creating a FHIR implementation guide using the Jekyll static web generator (not the IG resource). The guide is for the Consent resource which will be used in a RESTful manner.
What I'd really appreciate, is some input from those who implement FHIR API's and what information within a guide would be useful to them. The areas I'm adding so far are:

Security - TLS, SSL, JWT
Guidance per element - element summary, how to use it, formatting, examples
Rendered versions of the profile and valuesets
Conformance - capabilityStatement provided
REST examples for POST, GET and PUT
Code snippets for the above - C#, Java, VB, etc.
Testing - UAT, test results, test data

This is in addition to the project overview material.

If there are any areas of implementation that cause issues, where some supporting information would be useful, I'd like to here from you.
Many thanks
Dave

view this post on Zulip Vadim Peretokin (Jun 09 2017 at 08:18):

Hello!

view this post on Zulip Mattias Flodin (Jun 09 2017 at 10:36):

Hi. Serialization of partial FHIR resources has been an issue for me. For example if you receive a JSON patch that you need to parse as a FHIR element (not necessarily a complete resource) before applying to your backend database

view this post on Zulip Mattias Flodin (Jun 09 2017 at 10:39):

Also when one FHIR server is a frontend for multiple FHIR-compliant systems, it's not obvious how to ensure IDs do not collide. You could add qualifiers to the ID, but there's a fairly strict length limitation on IDs

view this post on Zulip Grahame Grieve (Jun 09 2017 at 22:22):

64 characters is pretty long

view this post on Zulip Grahame Grieve (Jun 09 2017 at 22:23):

@Dave Henderson that seems fairly complete.

view this post on Zulip Eric Haas (Jun 10 2017 at 01:40):

@Dave Henderson We covererd about 80% of what you listed for Argonaut DQ ( missing the Testing bit) So yeah is a really complete list.

view this post on Zulip Dave Henderson (Jun 12 2017 at 09:41):

Thanks guys. Its good to know I'm on the right path.

view this post on Zulip Mattias Flodin (Jun 13 2017 at 06:41):

@Grahame Grieve if a single system generates UUIDs as ID, and you want the frontend system to qualify each ID with the ID of the source system, then you have surpassed 64 characters.

I realize UUIDs technically don't need to be qualified with another ID as they're already unique, but architecturally you might not want the framework to be aware of how IDs are generated in the source system, or impose requirements that they should be universally unique.

view this post on Zulip Mattias Flodin (Jun 13 2017 at 06:43):

Not saying it's necessarily a flaw in the standard, but I still consider it a use case that could benefit from some guidance documentation

view this post on Zulip Jens Villadsen (Jun 28 2017 at 17:28):

@Mattias Flodin check out UUIDv5 if you need to make sure that the ID's does not collide between vendors

view this post on Zulip Mattias Flodin (Jun 29 2017 at 06:19):

@Jens Villadsen yeah if I had control over ID generation there wouldn't be an issue. In my case though I'm writing FHIR adapters for existing heterogenous third-party products. IDs can look any which way. They might be UUID or they might be simple autoincrement IDs. I'm trying to bring all these products into a single FHIR namespace so I need to qualify the IDs.

view this post on Zulip Mattias Flodin (Jun 29 2017 at 06:20):

Sometimes an ID is a long string.

view this post on Zulip Jens Villadsen (Jun 29 2017 at 06:56):

@Mattias Flodin How about setting a controlled proxy up front of your server adding UUIDv5 for each endpoint?

view this post on Zulip Mattias Flodin (Jun 29 2017 at 07:05):

@Jens Villadsen Do you mean constructing a mapping table from vendor IDs to UUID? Sure I can always resort to that, but it will create a maintenance cost (running a database for storing mappings, cleaning up stale IDs, etc) so it would be preferable to avoid.

view this post on Zulip Jens Villadsen (Jun 29 2017 at 07:05):

Right ...

view this post on Zulip Marten Smits (Jun 29 2017 at 12:01):

Hi @Dave Henderson , I did a presentation on FHIR DevDays 2015 about authoring IGs (https://www.slideshare.net/DevDays/authoring-implementation-guides-marten-smits) and created a template based on US-Lab. You can find that here: http://implementationguidetemplate.azurewebsites.net/
This is all based on work from HL7 WG CGIT, which published a document on the topic here: http://wiki.hl7.org/index.php?title=ImplementationGuide_Guidance

If you have questions about this, don't hesitate to ask. I'm very happy to elaborate.

view this post on Zulip Grahame Grieve (Jun 30 2017 at 12:53):

@Mattias Flodin I'm confused why a UUID with a qualified id is a problem for 64 characters - a UUID is 36 characters. That leaves you with plenty still

view this post on Zulip Mattias Flodin (Jun 30 2017 at 14:02):

@Grahame Grieve because the qualification of that ID is also made with a UUID. That's 36 + 36 = 72 characters

view this post on Zulip Mattias Flodin (Jun 30 2017 at 14:11):

I have ideas for handling it. One way would be to tag IDs to say that they're already universal and don't need qualification. Another would be to simply look at the length and assume that no qualification is needed if it's already long enough. But leaving out the qualifier complicates routing.

view this post on Zulip Grahame Grieve (Jun 30 2017 at 20:17):

so use a shorter qualifier. You need a look table for it anyway - so just use a single digit

view this post on Zulip Kesara Liyanage (Sep 19 2018 at 18:46):

I'm brand new to FHIR. I keep hearing that the electronic IG can be used to automate the development needed. Is this possible? can you ingest or upload the IG? Can you validate your outputs against the structures of the IG?

view this post on Zulip Lloyd McKenzie (Sep 19 2018 at 18:53):

A FHIR ImplementationGuide is a package of a number of other "conformance" resources. Typical resources include: profiles (StructureDefinition), ValueSets, CodeSystems, ConceptMaps, StructureMaps, CapabilityStatements, SearchParameters, OperationDefinitions and NamingSystems. Each of these enables some degree of automation. ValueSets and CodeSystems support terminology validation. Those together with StructureDefinition supports instance validation. CapabilityStatements, OperationDefinitions and SearchParameters can support the generation of API code and the testing of APIs. ConceptMaps and StructureDefintitions allow automation of transformations between models.

view this post on Zulip Kesara Liyanage (Sep 19 2018 at 19:16):

Thanks Lloyd. So the implementation guide, the one i'm seeing is essentially an HTML website that's been converted to a XML format. But your're right it has the value sets, data structures, and bundles needed for the specific API calls defined. But the IGs don't have any pseudo code to do actually implementation logic, like calling an API and communicating the appropriate payload? Last question. I'm seeing a tool called FHIR validator, i'm confused on exactly what it's validating, is it validating the resource to be FHIR compliant, or is it basically providing validation against the IG for an expected outcome. For example,, is it validating that the output has the appropriate data structure. Or is it validating that the output is FHIR compliant resources?

view this post on Zulip Lloyd McKenzie (Sep 19 2018 at 21:23):

Right. The ImplementationGuide should include a downloads link that gives you all of the conformance resources as XML and JSON. Actually generated code is not provided.

The validator will validate instances against the core spec and can also validate against the profiles in an implementation guide - though if the instances don't declare the relevant profiles, you'll have to assert the profile along with the instance name.

view this post on Zulip Kesara Liyanage (Sep 20 2018 at 13:52):

thanks a bunch

view this post on Zulip Hùng Bùi Duy (Jun 08 2021 at 07:35):

Anyone know how to upload Implementation Guide package (.tgz) to HAPI FHIR Server?

view this post on Zulip Lloyd McKenzie (Jun 08 2021 at 13:36):

Probably best to ask on #hapi


Last updated: Apr 12 2022 at 19:14 UTC