FHIR Chat · Expanding value set based on local code systems · IG creation

Stream: IG creation

Topic: Expanding value set based on local code systems


view this post on Zulip Giorgio Cangioli (May 22 2020 at 16:04):

I made some attempts to define intensional value sets based on local code systems for my IG, but in all the cases the result is "No Expansion for this valueset (not supported by Publication Tooling)".
Before analyzing more in deep if I did anything wrong (not unlikely :-) ) I'd like to be sure that this depends by the fact that these code systems are not known by the terminology server used by the publisher. (and likely they will never be)

view this post on Zulip Giorgio Cangioli (May 22 2020 at 16:13):

..obviously the intensional value set works if the rule is take all the codes from code system XYZ..

view this post on Zulip Lloyd McKenzie (May 22 2020 at 16:13):

Right. If a value set points to codes from a code system the terminology server doesn't know - and that aren't defined in the value set defined within the IG or inherited from dependent IGs - the terminology server can't expand the value set.

view this post on Zulip Giorgio Cangioli (May 22 2020 at 16:27):

Thanks Lloyd. So.. what should be done to overcome this and allow the usage of intensional value sets based on local code systems for IGs developed by affiliates ? I don't think it is reasonable to imagine that all local code systems would be centrally loaded ...

view this post on Zulip Rob Hausam (May 22 2020 at 16:30):

I think you can add the code system to the IG? That's what we did with the absent-unknown codes in IPS.

view this post on Zulip Rob Hausam (May 22 2020 at 16:31):

And the alternative would be add support for the code system to whatever terminology server you specify for the IG build.

view this post on Zulip Giorgio Cangioli (May 22 2020 at 16:54):

I have the code system in the IG.
the <include><system value="xyz"/></include> works
But when I try to apply filters the results is "No Expansion for this valueset ..."

view this post on Zulip Lloyd McKenzie (May 22 2020 at 17:44):

Adding the code system to the IG means an actual CodeSystem instance

view this post on Zulip Grahame Grieve (May 22 2020 at 22:10):

I would expect this to work. you don't get any additional information in the error?

view this post on Zulip Giorgio Cangioli (May 23 2020 at 12:21):

the message I see from the QA page is "Error from server: Unable to provide support for code system ..."

view this post on Zulip Grahame Grieve (May 23 2020 at 20:15):

can I reproduce this?

view this post on Zulip Giorgio Cangioli (May 26 2020 at 15:56):

https://github.com/HL7-IT/base.git

view this post on Zulip Grahame Grieve (May 26 2020 at 22:47):

hmm. Sushi fails in a way I don't understand:

Sushi: info  Running SUSHI v0.12.3                                               (00:01.0048)
Sushi: info  Current FSH tank conforms to an IG Publisher context. Output will be adjusted accordingly. (00:01.0048)
Sushi: info  Checking local cache for hl7.fhir.r4.core#4.0.1...                  (00:01.0050)
Sushi: info  Found hl7.fhir.r4.core#4.0.1 in local cache.                        (00:01.0553)
Sushi: info  Checking local cache for hl7.fhir.it.base#dev...                    (00:01.0553)
Sushi: info  Did not find hl7.fhir.it.base#dev in local cache.                   (00:01.0554)
Sushi: info  Falling back to hl7.fhir.it.base#current since hl7.fhir.it.base#dev is not locally cached. To avoid this, add hl7.fhir.it.base#dev to your local FHIR cache. (00:01.0554)
Sushi: info  Importing FSH text...                                               (00:01.0561)
Sushi: info  Preprocessed 5 documents with 15 aliases.                           (00:01.0745)
Sushi: info  Imported 22 definitions and 6 instances.                            (00:01.0755)
Sushi: info  Loaded package hl7.fhir.r4.core#4.0.1                               (00:01.0761)
Sushi: error Failed to load hl7.fhir.it.base#dev                                 (00:04.0027)
Sushi: error The package hl7.fhir.it.base#current is not available on http://build.fhir.org/ig/qas.json, so no current version can be loaded (00:04.0027)
Sushi: info  Converting FSH to FHIR resources...                                 (00:04.0034)
Sushi: info  Converted 9 FHIR StructureDefinitions.                              (00:04.0155)
Sushi: info  Converted 11 FHIR ValueSets.                                        (00:04.0183)
Sushi: info  Converted 2 FHIR CodeSystems.                                       (00:04.0188)
Sushi: info  Converted 6 FHIR instances.                                         (00:04.0268)
Sushi: info  Exporting FHIR resources as JSON...                                 (00:04.0269)
Sushi: info  Exported 28 FHIR resources as JSON.                                 (00:04.0294)
Sushi:                                                                           (00:04.0295)
Sushi: ╔════════════════════════ SUSHI RESULTS ══════════════════════════╗       (00:04.0295)
Sushi: ║ ╭──────────┬────────────┬───────────┬─────────────┬───────────╮ ║       (00:04.0295)
Sushi: ║ │ Profiles │ Extensions │ ValueSets │ CodeSystems │ Instances │ ║       (00:04.0296)
Sushi: ║ ├──────────┼────────────┼───────────┼─────────────┼───────────┤ ║       (00:04.0296)
Sushi: ║ │    6     │     3      │    11     │      2      │     6     │ ║       (00:04.0296)
Sushi: ║ ╰──────────┴────────────┴───────────┴─────────────┴───────────╯ ║       (00:04.0296)
Sushi: ║                                                                 ║       (00:04.0296)
Sushi: ╠═════════════════════════════════════════════════════════════════╣       (00:04.0296)
Sushi: ║ That really smelt.                     2 Errors      0 Warnings ║       (00:04.0296)
Sushi: ╚═════════════════════════════════════════════════════════════════╝       (00:04.0297)
Sushi couldn't be run. Complete output from running Sushi :                      (00:04.0314)
Note: Check that Sushi is installed correctly ("npm install -g fsh-sushi". On windows, get npm from https://www.npmjs.com/get-npm) (00:04.0315)
Exception: Process exited with an error: 1 (Exit value: 1)                       (00:04.0315)
Publishing Content Failed: Process exited with an error: 1 (Exit value: 1)       (00:04.0315)

view this post on Zulip David Pyke (May 26 2020 at 23:32):

Your version of sushi is old. 0.12.7 is latest

view this post on Zulip Grahame Grieve (May 27 2020 at 00:42):

@Chris Moesel could sushi advise if an old version is running?

view this post on Zulip Grahame Grieve (May 27 2020 at 01:16):

version didn't make any difference

view this post on Zulip Giorgio Cangioli (May 27 2020 at 08:14):

Mmhh ..interesting to know..I was wondering if it may be due to a dependency I've in my fsh package..BTW this is not relevant here..

view this post on Zulip Giorgio Cangioli (May 27 2020 at 08:17):

I've created a branch ("no-fsh") that doesn't use fsh , in case you may have still time to make this check

view this post on Zulip Chris Moesel (May 27 2020 at 13:19):

@Grahame Grieve -- here are the two reported errors from this log:

Sushi: error Failed to load hl7.fhir.it.base#dev (00:04.0027)
Sushi: error The package hl7.fhir.it.base#current is not available on http://build.fhir.org/ig/qas.json, so no current version can be loaded (00:04.0027)

In short, it can't resolve the hl7.fhir.it.base dependency. The hl7.fhir.it.base dependency is specified as version dev in this IG. Since SUSHI fails to find it in the local cache, it falls back to current -- which tries to pull it from the auto-build. But the autobuild listing (here) doesn't know anything about hl7.fhir.it.base either -- so the dependency fails to resolve.

view this post on Zulip Chris Moesel (May 27 2020 at 13:20):

As for notifying when SUSHI is old, we'll look into that. We just need to ensure that we can have an approach that still allows SUSHI to run offline (when dependencies are already cached).

view this post on Zulip Grahame Grieve (May 27 2020 at 20:04):

it can't resolve the hl7.fhir.it.base dependency

right. Which is odd since that's what it's actually building - it can't depend on itself. I don't expect that the problem is with Sushi there

view this post on Zulip Chris Moesel (May 27 2020 at 20:50):

Ah. I see that now. In the package.json (which is what SUSHI 0.12.x reads) it declares itself as a dependency. @Giorgio Cangioli -- can you edit package.json to remove hl7.fhir.it.base from the dependencies and instead make it the value of "name" (instead of "fish")? I think that will help with at least the issue Grahame ran into.

view this post on Zulip Giorgio Cangioli (May 28 2020 at 06:23):

Thank you @Chris Moesel . At a certain point I added this "internal dependency" to overcome a fsh error that I had referring a profile defined in the same IG, but not as a fsh file. Now it seems to work also without this self-dependency :-). I committed the modified version. Nothing has been changed concerning the expansion.

view this post on Zulip Grahame Grieve (May 29 2020 at 05:38):

@Giorgio Cangioli I still can't run this: Unable to load template from it-template

view this post on Zulip Chris Moesel (May 29 2020 at 13:04):

I think I remember seeing somewhere else that you need to prefix # to local templates in the ig.ini. So in ig.ini, maybe try this instead?

template = #it-template

I don't recall for sure, so I might be wrong, but it's worth a shot since it's so quick and easy to do.

view this post on Zulip Jose Costa Teixeira (May 29 2020 at 13:15):

that is correct - local templates are prefixed with #
It is documented in the file itself

view this post on Zulip Jose Costa Teixeira (May 29 2020 at 13:15):

https://github.com/FHIR/sample-ig/blob/master/ig.ini

view this post on Zulip Giorgio Cangioli (May 29 2020 at 14:23):

It seems that the github repository includes the it-template/package folder ... what do you suggest I should check ? (obviously in my building environment all work fine ...)

view this post on Zulip Chris Moesel (May 29 2020 at 14:33):

@Giorgio Cangioli -- I think you need to change it-template to #it-template in the ig.ini file.

view this post on Zulip Giorgio Cangioli (May 29 2020 at 14:47):

change pushed on GitHub

view this post on Zulip Giorgio Cangioli (May 29 2020 at 14:47):

thanks @Chris Moesel

view this post on Zulip Grahame Grieve (May 29 2020 at 20:19):

ok now that I can run the IG succesfully, where do I look for this issue?

view this post on Zulip Giorgio Cangioli (Jun 16 2020 at 10:51):

I apologize @Grahame Grieve , it seems I missed your answer...
... now things are a little worse, in the sense that all the expansions with the local code systems are not rendered (message: "No Expansion for this valueset (not supported by Publication Tooling)") ; also those simple as
"compose": {
"include": [
{
"system": "http://terminology.hl7.it/CodeSystem/istat-professioni"
}
]

view this post on Zulip Giorgio Cangioli (Jun 16 2020 at 10:52):

In any case this is the example of the value set with filter
- http://www.hl7.it/fhir/build/it-base/site/ValueSet-minsan-esenzioni.html

Other intensional value sets without filters are for example:
- http://www.hl7.it/fhir/build/it-base/site/ValueSet-minsan-idStrutture.html
- http://www.hl7.it/fhir/build/it-base/site/ValueSet-istat-titoloStudio.html

view this post on Zulip Giorgio Cangioli (Jun 16 2020 at 10:52):

thanks for your suggestions

view this post on Zulip Grahame Grieve (Jun 16 2020 at 16:59):

can you please create a task here: https://github.com/HL7/fhir-ig-publisher/issues and reference the branch of your repo that demonstrates the problem, and where to find it - thanks

view this post on Zulip Giorgio Cangioli (Jun 17 2020 at 11:09):

done, thanks

view this post on Zulip Giorgio Cangioli (Jun 23 2020 at 10:44):

Hi @Grahame Grieve have you any feedback on the remaining issue ? Thanks for your kind help :-)

view this post on Zulip Grahame Grieve (Jun 25 2020 at 01:46):

it won't build because package-list.json is in the pages input folder. don't put it there

view this post on Zulip Grahame Grieve (Jun 25 2020 at 02:00):

but it says "unknown code system" because it's an unknown code system.

view this post on Zulip Giorgio Cangioli (Jun 29 2020 at 14:43):

Thanks a lot @Grahame Grieve ..
This brings me back to my very initial questions :-)
(1) Expanding value set based on local code systems (by using filters) is not currently possible , because "local code systems" are not known by the terminology server used by the publishing process
(2) is anything that can be done to overcome this issue when developing a REALM specific IG

view this post on Zulip Grahame Grieve (Jun 29 2020 at 20:49):

I don't think that's true. Do you have an example?


Last updated: Apr 12 2022 at 19:14 UTC