Stream: conformance
Topic: Using ArtDecor ValueSets in FHIR IGs
Simone Heckmann (Sep 14 2017 at 18:57):
I would like to kick of a discussion here, since there seems to be a broarder interest in linking ArtDecor and Simplifier.
The scenario is the following: Many National Affiliates and other Organizations are using ArtDecor for managing CDA templates and the associated ValueSets.
It makes sense for these organizations to reuse these ValueSets in their FHIR IGs. So the question is:
What needs to happen in order to enable this without having to manage ValueSets in two places?
So who's interested? What are your use cases?
Is anyone involved in ArtDecor development here on Zulip?
@dr Kai U. Heitmann @Oliver Egger @Patrick Werner @Stefan Lang @Alexander Henket
Alexander Henket (Sep 14 2017 at 19:00):
I'm involved. We married ART-DECOR to Simplifier for a big project here in The Netherlands. ART-DECOR supports FHIR export of its ValueSets and Datasets/Transactions (as logical models). We're on the verge of reading StrucDefs from Simplifier and use those to make notional mappings from datasets/transactions with.
Simone Heckmann (Sep 14 2017 at 19:02):
One issue we (HL7 Germany) identified so far, is that we need the ability to add a canonicalURL to the ValueSets and CodeSystems in ArtDecor, since we decided to use urls as primary identifier, rather than oids.
Right now, ArtDecor constructs a canonical url from what appears to be a static base, the OID and a timestamp, e.g.:
<url value="http://art-decor.org/fhir/ValueSet/1.2.276.0.76.11.133--20130101000000"/>
We're not so thrilled with that...
Simone Heckmann (Sep 14 2017 at 19:02):
Does ArtDecor export CodeSystems as well?
Alexander Henket (Sep 14 2017 at 19:03):
Not yet. Haven't seen demand yet, but surely we could add that to the todo list
Did you also figure out how to work with OID/URI conversion for the ValueSet contents, through the OID Registry?
Simone Heckmann (Sep 14 2017 at 19:04):
So, how do you export/import the ValueSets from ArtDecor to Simplifier? It's of paramont importance to us to have the expanded ValueSets available in Simplifier, to enable the validation of our examples...
Alexander Henket (Sep 14 2017 at 19:04):
I import the HL7 OID Registry merged with the FHIR URI set, and query the OID Registry internally upon export to replace all OID with a URI if possible
Oliver Egger (Sep 14 2017 at 19:04):
Hi Simone, Thanks for picking up the discussion. In Switzerland we are using ART-DECOR for the ValueSets within the EPR and CDA Templates with Datasets. Looking forward it is exiting that the DataSets and ValueSets can be converted to FHIR!
Simone Heckmann (Sep 14 2017 at 19:05):
Did you also figure out how to work with OID/URI conversion for the ValueSet contents, through the OID Registry?
apparently not. Can you elaborate?
Alexander Henket (Sep 14 2017 at 19:05):
When you call a ValueSet through the FHIR API you get expanded ValueSets by default (if possible), even without $expand
Ewout Kramer (Sep 14 2017 at 19:05):
So, how do you export/import the ValueSets from ArtDecor to Simplifier? It's of paramont importance to us to have the expanded ValueSets available in Simplifier, to enable the validation of our examples...
Hi Simone, out of interest: do you need the expansions since some of the valuesets are intentional and use is-a filters?
Alexander Henket (Sep 14 2017 at 19:07):
ART-DECOR does not do intentional ValueSets so expansion is usually trivial. The only problematic thing is a completeCodeSystem reference to a system that is not defined in ART-DECOR
Ewout Kramer (Sep 14 2017 at 19:07):
Simplifier incorporates a (limited) terminology service which could do the expansion, however it won't do queries on systems like SNOMED etc. Also, it could reach out to a terminology service to do the validation there. Not saying having the expansion on simplifier is a bad idea (though it could get massive?) - but there are other options.
Stefan Lang (Sep 14 2017 at 19:07):
@Alexander Henket That means you get ValueSet.expansion without a ValueSet.compose?
Alexander Henket (Sep 14 2017 at 19:08):
Yes
Simone Heckmann (Sep 14 2017 at 19:09):
Well, our usual approach is to create a CodeSyste and define the ValueSet as "include all" from the CodeSystem.
However, it seems that the ArtDecor approach is different as it usually defines the ValueSets explicitly. But we will eventually have to open the can of worms that is ICD-10-GM, OPS and LOINC etc...
Stefan Lang (Sep 14 2017 at 19:10):
So basically the actual definition is not part of a ValueSet resource when retrieving it from Art-Decor. That would be mandatory for our use I suppose.
Simone Heckmann (Sep 14 2017 at 19:10):
(Please tag everyone you think might be interested to join the discussion. I'm pretty sure there are more that the people I'm aware of...)
Alexander Henket (Sep 14 2017 at 19:12):
OID <> URI: Most is already present in the HL7 OID registry import. Example http://art-decor.org/decor/services/RetrieveOID?prefix=hl7org&id=2.16.840.1.113883.6.96&format=html&language=en-US
In principle you can maintain those in your project too, but we don't have interface for that yet. Could put that on the TODO as well
Stefan Lang (Sep 14 2017 at 19:12):
It was also discussed yesterday in the Vocab WG that ValueSet.compose (probably to be renamed to ValueSet.definition in R4) should be considered as the source of truth, while using expansion only is convenient but insufficient.
Alexander Henket (Sep 14 2017 at 19:12):
When a preferred URI is registered for an OID, we use that upon exporting the ValueSet.
Alexander Henket (Sep 14 2017 at 19:16):
So basically the actual definition is not part of a ValueSet resource when retrieving it from Art-Decor. That would be mandatory for our use I suppose.
When I created the export initally for our own purpose we explicitly did not want multiple masters. ART-DECOR has always exported expanded ValueSets in any format (DECOR XML, DECOR JSON, SQL, IHE SVS, CSV, HTML). FHIR was just another format. ART-DECOR maintains the master ValueSet and anyone who asks gets the expansion. If you really, really need to access the raw ValueSets, you may do so by exporting your project using the RetrieveProject service. For us we give an expanded copy to Simplifier, but we keep 1 master definitional copy in ART-DECOR
Simone Heckmann (Sep 14 2017 at 19:17):
Ok, got it. But that makes registering an OID (in the HL7 registry) mandatory for every ArtDecor ValueSet, right? I'd suppose that for the ValueSets that are used exclusively for FHIR and don't have an OID registered yet, that we'd want to skip that part completely...
Alexander Henket (Sep 14 2017 at 19:18):
Hang on... what I was explaining was about codesystem OID's. The OID<>URI thing does not apply to the ValueSet OID itself. Those would be what they are
Stefan Lang (Sep 14 2017 at 19:20):
Is there some spec or roadmap for Art-Decor's FHIR support?
I think it would be useful to look at that and check for the requirements we (in terms of: all the specifiers) need.
Might also be helpful to do a "ART-Decor for FHIR specifiers" session some day soon?
Simone Heckmann (Sep 14 2017 at 19:21):
Birds of a feather at DevDays?
Stefan Lang (Sep 14 2017 at 19:21):
+1
Alexander Henket (Sep 14 2017 at 19:22):
I wish I was in San Diego... this would be so much easier, but alas. Anyway, the FHIR Roadmap so far has been organic. There's a lot in place based on immediate need. It would be great to sit down with you all and make things more explicit. DevDays could be just such an opportunity
Alexander Henket (Sep 14 2017 at 19:23):
Seen these?
https://art-decor.org/mediawiki/index.php?title=FHIR_Server_Setup
https://art-decor.org/mediawiki/index.php?title=FHIR_URIs
Stefan Lang (Sep 14 2017 at 19:35):
Seen and looked at the URI page especially. But to us it was not completely clear how that would help us.
Stefan Lang (Sep 14 2017 at 19:35):
Shall we try and fix a time slot at the DevDays?
Alexander Henket (Sep 14 2017 at 19:59):
Yes please. I'll talk with Kai and Rien/Marten to see what fits and announce it
Alexander Henket (Sep 14 2017 at 20:00):
In the mean time: if you can think about what matters to you/what you would expect and maybe even send that, here or to support@art-decor.org we can try and prioritize those here: https://art-decor.org/mediawiki/index.php?title=Roadmap
Simone Heckmann (Sep 14 2017 at 20:54):
I am still having problems wrapping my head around what ArtDecor is in this scenario, or rather what it is going to become.
Is it just a repository of expanded ValueSets Resources that Simplifier pulls in order to validate or is it going to be a Terminology Server that Simplifier can delegate Code Validation to...?
Alexander Henket (Sep 14 2017 at 20:55):
We should talk about those expectations. I'm sure there's a case for either depending on what governance group runs the show
Alexander Henket (Sep 14 2017 at 20:56):
By exporting expansions we at least give users tools to not have to call a terminology server
dr Kai U. Heitmann (Sep 14 2017 at 21:31):
Good idea to continue discussions at DevDays. Since the IPS project, ART-DECOR is on it's way to support extensional AND intensional value sets and their expansions. It would be good to understand what the requirements and expectations are in detail, so that we can prepare more to see what ART-DECOR already is able to do and what the nearby plans are.
Stefan Lang (Nov 01 2017 at 12:30):
Push: Do we have a slot fixed already for the ART-DECOR-BoF at the DevDays?
@dr Kai U. Heitmann @Alexander Henket @Simone Heckmann
Alexander Henket (Nov 08 2017 at 15:25):
No we don't yet. I was thinking of finding that spot after I arrive, and also try and find a bulletin board of some sort to make that public in addition to here
Alexander Henket (Nov 13 2017 at 08:04):
I've requested a BoF slot. I'll post here when I know what that is
Alexander Henket (Nov 15 2017 at 08:57):
Hi @Stefan Lang , @dr Kai U. Heitmann , @Simone Heckmann , @Oliver Egger -- since the group of us is likely rather small that gives us some flexibility. Simone suggested time slot today 13:10 - 14:00 at the Building Bridge table sort of at/in the restaurant @DevDays
dr Kai U. Heitmann (Nov 15 2017 at 09:05):
today 13:10 - 14:00 - You may continue also without me, I will not arrive before 1500
Alexander Henket (Nov 15 2017 at 12:21):
New plan: Thursday 15:30 - 16:00 with possible extension in time
Grahame Grieve (Nov 15 2017 at 12:40):
ok
Alexander Henket (Nov 16 2017 at 15:26):
https://sourceforge.net/p/artdecor/tickets/312/
https://sourceforge.net/p/artdecor/tickets/313/
Alexander Henket (Nov 18 2017 at 22:22):
Ticket 313 on expansion behavior is closed after updating the code and updating art-decor.org
Alexander Henket (Nov 19 2017 at 15:36):
I've documented two directions we could go for https://sourceforge.net/p/artdecor/tickets/312/
Please take a look and share your thoughts here or as a ticket response @Simone Heckmann , @dr Kai U. Heitmann , @Stefan Lang, @Oliver Egger
Stefan Lang (Nov 20 2017 at 08:40):
@Alexander Henket I'm not too deep into ART-DECOR, so correct me if I'm wrong.
First of all, at least for Germany, I suppose our terminology people should also look into this, so I suppose we'll give that some space in the German FHIR/terminology meeting at December 4th.
To me, solution (2) looks like the equivalent of a FHIR NamingSystem which in turn is being used to identify the ValueSet (or possibly other things, like CodeSystems etc.).
I consider this very clean. Could you just clarify on the following point: It is important to find a ValueSet by it's name.
That means I would expect a computable way to retrieve the ValueSet's definition from the canonical URL. So that when someone for example enters http://fhir.de/ValueSet/arge-ik/klassifikation a rendered description is visible. Would that be possible when using solution (2)? We currently do that combining a HTTP redirect on fhir.de with a functionality of Simplifier.
Maybe that's also something we would leave to Simplifier even after including ART-DECOR into our tool chain, @Simone Heckmann ?
Alexander Henket (Nov 21 2017 at 21:35):
@Stefan Lang It wasn't supported yet, but you may now search ValueSets by canonical. It should work with canonicals you created yourself, but I did not test.
The way you could then redirect your hl7.de URLs is like this:
http://art-decor.org/fhir/stu3/public/ValueSet/?url=...
So in a working example:
Or even more precise:
I've also included support for the |version syntax where version should always lead to the valueSet/@effectiveDate. Syntax may be as-is which is an xs:dateTime, or without separator like an HL7 TS (ISO 8601) string. So supported are
- 2011-07-25T15:22:56
- 20110725152256
Alexander Henket (Nov 21 2017 at 21:38):
Note that this effectively does a search so it returns you a Bundle. I've not yet worked on how to $expand on a search result. Don't even know if that should be supported (search + $expand)
Alexander Henket (Nov 21 2017 at 21:52):
Suppose that closes the loop on the direction we go for the DevDays requests, we then need at least the following things:
- Editor feature connecting FHIR URIs to ids both project scope and OID Registry scope. Currently manual backend work
- Editor feature to allow filling out the valueSet/publishingAuthority. Currently defaults to "ART-DECOR" in FHIR ValueSet.publisher
- Viewer feature to get overview of which URIs have been assigned in the project valueSet ids page
- Viewer feature to get overview of which URIs have been assigned in the governance group valueSet ids page
- Viewer feature that renders the valueSet URI if applicable in HTML
- Viewer feature that renders the valueSet publishingAuthority if applicable in HTML
- Update DSTU2 Conformance and STU3 CapabilityStatement with the new capabilities
@dr Kai U. Heitmann , @Simone Heckmann, @Oliver Egger
dr Kai U. Heitmann (Nov 22 2017 at 08:16):
Editor feature to allow filling out the valueSet/publishingAuthority. Currently defaults to "ART-DECOR" in FHIR ValueSet.publisher
Not sure about this. The publisher shall be drawn from the project authors. As of now we defaulted everything to "ART-DECOR" but the truth is that authorship is in the project. This should be populated only if accessed and not written into the value set.
dr Kai U. Heitmann (Nov 22 2017 at 08:21):
Note that this effectively does a search so it returns you a Bundle. I've not yet worked on how to $expand on a search result. Don't even know if that should be supported (search + $expand)
Great work Alexander!
Simone Heckmann (Nov 22 2017 at 09:16):
What's even more important to me that assigning a canonical URL to the ValueSet would be a way to assign one to CodeSystems and reflect this in the ValueSet expansion.
ValueSet URLS are only visible to specifiers but the CodeSystem URLs are carried in every instance and I believe it will be those that implementers will want to look up and resolve. If I understand it correctly, we can assign the URLs in the same way (NamingSystem), but we have to make sure, that these are subsequently used instead of the OIDs when a ValueSet is expanded.
Also I am wondering if and how this will work for the explicitly defined ValueSets...
Alexander Henket (Nov 22 2017 at 17:04):
@Simone Heckmann the OID to URI routine already worked at CodeSystem within the ValueSet level, I've just extended that to also look for a URI for the valueSet itself.
That being said: we don't have CodeSystem support at all yet. This is coming
Alexander Henket (Nov 22 2017 at 17:07):
@dr Kai U. Heitmann There's only 1 FHIR ValueSet.publisher string. There are 1..* DECOR copyright[@type = 'author']. Do I concatenate them all to one string? Do I pick one?
dr Kai U. Heitmann (Nov 22 2017 at 21:38):
I think we should pick the top author
Alexander Henket (Nov 23 2017 at 14:18):
I've to install it, but I've updated the valueset APIs for DECOR and FHIR: ValueSets no longer contain a publisher "ART-DECOR Expert Group" by default, but only when the DECOR valueSet has a publishingAuthority. When this publishingAuthority also contains addrLine of type phone/fax/email/uri then additionally ValueSet.contact is created
The DECOR ValueSet API populates the publishingAuthority based on the first project/copyright of type author upon retrieval. This means that there is no UI for entry of this part of the ValueSet
Alexander Henket (Nov 23 2017 at 20:26):
Installed:
- ValueSet will now contain .publisher based on its project/copyright if available and may contain .contact if the project/copyright contains addrLine of type phone|fax|email|uri
- ValueSet now supports search + $expand
Last updated: Apr 12 2022 at 19:14 UTC