Stream: IG creation
Topic: Expanding value set based on local code systems
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)
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..
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.
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 ...
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.
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.
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 ..."
Lloyd McKenzie (May 22 2020 at 17:44):
Adding the code system to the IG means an actual CodeSystem instance
Grahame Grieve (May 22 2020 at 22:10):
I would expect this to work. you don't get any additional information in the error?
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 ..."
Grahame Grieve (May 23 2020 at 20:15):
can I reproduce this?
Giorgio Cangioli (May 26 2020 at 15:56):
https://github.com/HL7-IT/base.git
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)
David Pyke (May 26 2020 at 23:32):
Your version of sushi is old. 0.12.7 is latest
Grahame Grieve (May 27 2020 at 00:42):
@Chris Moesel could sushi advise if an old version is running?
Grahame Grieve (May 27 2020 at 01:16):
version didn't make any difference
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..
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
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.
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).
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
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.
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.
Grahame Grieve (May 29 2020 at 05:38):
@Giorgio Cangioli I still can't run this: Unable to load template from it-template
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.
Jose Costa Teixeira (May 29 2020 at 13:15):
that is correct - local templates are prefixed with #
It is documented in the file itself
Jose Costa Teixeira (May 29 2020 at 13:15):
https://github.com/FHIR/sample-ig/blob/master/ig.ini
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 ...)
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.
Giorgio Cangioli (May 29 2020 at 14:47):
change pushed on GitHub
Giorgio Cangioli (May 29 2020 at 14:47):
thanks @Chris Moesel
Grahame Grieve (May 29 2020 at 20:19):
ok now that I can run the IG succesfully, where do I look for this issue?
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"
}
]
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
Giorgio Cangioli (Jun 16 2020 at 10:52):
thanks for your suggestions
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
Giorgio Cangioli (Jun 17 2020 at 11:09):
done, thanks
Giorgio Cangioli (Jun 23 2020 at 10:44):
Hi @Grahame Grieve have you any feedback on the remaining issue ? Thanks for your kind help :-)
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
Grahame Grieve (Jun 25 2020 at 02:00):
but it says "unknown code system" because it's an unknown code system.
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
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