Stream: shorthand
Topic: implementationguide-page is unknown, and not allowed here
Carl Anderson (Jul 13 2020 at 16:13):
I'm struggling to get the IG publisher to accept a markdown-only IG that was processed using sushi. Right now the IG publisher is complaining about the presence of an implementationguide-page
extension on an example resource, which appears in the sushi-generated output. So, I'm thinking sushi is putting this extension there and it shouldn't - but I don't understand what it is or why it's there (or how to suppress it).
Here's the exact set of errors from the publisher's qa.html
page:
/Users/can/code/smart-web-messaging/docs/ImplementationGuide-hl7.fhir.smart-web-messaging.xml
Path ImplementationGuide/hl7.fhir.smart-web-messaging: ImplementationGuide.definition.resource[0].extension[1]
Severity error
Message The extension http://hl7.org/fhir/StructureDefinition/implementationguide-page is unknown, and not allowed here
Path ImplementationGuide/hl7.fhir.smart-web-messaging: ImplementationGuide.definition.resource[0].extension[1].url
Severity error
Message URL value "http://hl7.org/fhir/StructureDefinition/implementationguide-page" does not resolve
I have this in my config.yaml
:
resources:
Patient/example:
exampleBoolean: true
name: Ignore
description: Ignore
And I have this in my fish tank at fsh/ig-data/input/examples/patient-example.json
:
{
"resourceType": "Patient",
"id": "example"
}
I'm using the latest versions of sushi v0.14.0
and the publisher.jar v1.1.2
.
After running sushi, these are all the files that contain the implementationguide-page
token that the publisher is complaining about.
can@msft-mbp ~/code/work/ig/build (master) $ find . -type f | xargs grep -l 'implementationguide-page'
./temp/qa/ImplementationGuide-hl7.fhir.smart-web-messaging-xml-html.html
./temp/qa/ImplementationGuide-hl7.fhir.smart-web-messaging-json-html.html
./temp/qa/ImplementationGuide-hl7.fhir.smart-web-messaging-ttl-html.html
./temp/pages/_includes/ImplementationGuide-hl7.fhir.smart-web-messaging.escaped.json
./temp/pages/_includes/ImplementationGuide-hl7.fhir.smart-web-messaging-json-html.xhtml
./temp/pages/_includes/ImplementationGuide-hl7.fhir.smart-web-messaging.json
./temp/pages/_includes/ImplementationGuide-hl7.fhir.smart-web-messaging-ttl-html.xhtml
./temp/pages/_includes/ImplementationGuide-hl7.fhir.smart-web-messaging-xml-html.xhtml
./temp/pages/ImplementationGuide-hl7.fhir.smart-web-messaging.ttl
./temp/pages/ImplementationGuide-hl7.fhir.smart-web-messaging.xml
./temp/pages/ImplementationGuide-hl7.fhir.smart-web-messaging.json
./template/onGenerate-ig-working.1.xml
./template/onGenerate-ig-working.xml
./template/onGenerate-ig-updated.xml
./template/scripts/onGenerate.data.xslt
./template/scripts/createArtifactSummary.xslt
./template/scripts/onGenerate.final.xslt
./template/onGenerate-ig-working.json
./output/ImplementationGuide-hl7.fhir.smart-web-messaging.ttl
./output/ImplementationGuide-hl7.fhir.smart-web-messaging.xml
./output/ImplementationGuide-hl7.fhir.smart-web-messaging.json
Finally, this is the resource generated in the json IG:
"resource": [
{
"extension": [
{
"url": "http://hl7.org/fhir/tools/StructureDefinition/resource-information",
"valueString": "Patient"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/implementationguide-page",
"valueUri": "Patient-example.html"
}
],
"reference": {
"reference": "Patient/example"
},
"name": "Ignore",
"description": "Ignore",
"exampleBoolean": true
}
],
Any ideas what I'm doing wrong here?
Nick Freiter (Jul 13 2020 at 18:32):
This is strange, but those extensions are not coming from sushi. The outputs from sushi are the inputs to the IG Publisher, so sushi builds into the input
folder. Note that no implementationguide-page
tokens are found in the input
folder, but rather in the folders containing the results of the IG Publisher build (temp
and output
). Sushi generates an ImplementationGuide-id.json file, but then the IG Publisher does its own processing on that file, and that processing does generally include adding those extensions.
In running some simple testing, I got the same extensions added into my resource
array when running a simple IG through the publisher. So I'm not sure what is going on here, since the IG Publisher is seemingly adding that extension and then getting mad that it is there.
Carl Anderson (Jul 13 2020 at 19:10):
Ah, thank you, Nick. I keep forgetting that the sushi 'output' is called 'input'.
David Hay (Jul 13 2020 at 21:55):
Yeah - that confused me for the longest time too!
Mark Kramer (Sep 22 2020 at 13:23):
@Grahame Grieve It seems this still a current publisher issue that is preventing validation of IGs. Any ideas?
Grahame Grieve (Sep 22 2020 at 15:53):
no. how do I reproduce this?
Mark Kramer (Sep 22 2020 at 16:01):
@Max Masnick or @Nick Freiter can you provide an example for Grahame?
Jose Costa Teixeira (Sep 22 2020 at 17:11):
Can I try to understand what you are trying to do @Carl Anderson
- you have a patient resource as an example, and that patient resource has an extension?
- or is the extension in the resource declaration within the IG
I can't find what is http://hl7.org/fhir/StructureDefinition/implementationguide-page
Carl Anderson (Sep 22 2020 at 17:48):
What I'm trying to do is - have an IG that doesn't have any resources at all. To satisfy the publisher tool, I had to have something for it to iterate over, so I gave it an extremely trivial 'throwaway' patient example.
Grahame Grieve (Sep 22 2020 at 17:50):
that's not a tooling issue, that's a definitional issue to take up with FHIR-I
Mark Kramer (Sep 22 2020 at 17:53):
@Max Masnick experienced this error in an IG with plenty of profiles. Here’s a list of the errors you can see if you’re curious: ig-validation-errors.txt
Grahame Grieve (Sep 22 2020 at 17:55):
back to my question then: how do I reproduce this?
Lloyd McKenzie (Sep 22 2020 at 18:03):
FHIR-I has taken it up and agreed to make resource optional. Just hasn't been applied yet
Carl Anderson (Sep 22 2020 at 18:07):
@Lloyd McKenzie - thanks.
@Grahame Grieve & @Mark Kramer - I'm not sure I can remember how to produce this error, after 2 months. :grimacing: Maybe @Max Masnick can share his details.
Max Masnick (Sep 23 2020 at 10:12):
@Grahame Grieve reproduction instructions using the mCODE IG are below.
- Download http://hl7.org/fhir/us/mcode/definitions.json.zip and extract
ImplementationGuide-hl7.fhir.us.mcode.json
- Run
java -jar org.hl7.fhir.validator.jar -version 4.0.0 -ig hl7.fhir.us.mcode#1.0.0 -ig hl7.fhir.us.core ImplementationGuide-hl7.fhir.us.mcode.json
- I then see these errors: https://gist.github.com/masnick/5d93d60f9696018821165b02acbcb39b
Max Masnick (Sep 23 2020 at 10:25):
I see the same errors when following the same instructions on a fresh build of the IG from https://github.com/HL7/fhir-mCODE-ig/tree/master.
Max Masnick (Sep 23 2020 at 10:26):
When I run the validator on the IG output by SUSHI (fhir-mCODE-ig/input/ImplementationGuide-hl7.fhir.us.mcode.json
), I get different errors: https://gist.github.com/masnick/8ebb48d9f06a963b708626c9f35affd2
Max Masnick (Oct 07 2020 at 10:34):
@Grahame Grieve were you able to reproduce this yourself?
Grahame Grieve (Oct 07 2020 at 23:43):
I can. @Lloyd McKenzie This extension come from the template, and is never used by the IGPublisher: http://hl7.org/fhir/StructureDefinition/implementationguide-page. What's going on with this?
Lloyd McKenzie (Oct 08 2020 at 01:35):
The extension is set by the IGPublisher. It's used by the templates - it indicates the URL for the page associated with the artifact.
Lloyd McKenzie (Oct 08 2020 at 01:37):
It's been in the code since prior to April 2019 - when everything got refactored, making it harder to trace when it was introduced.
Grahame Grieve (Oct 14 2020 at 00:19):
ok, well, all existing IGs are affected by this, but new ones won't be from now on
Max Masnick (Oct 15 2020 at 12:21):
@Grahame Grieve is there a way to resolve this for existing IGs?
Grahame Grieve (Oct 15 2020 at 12:42):
no. is it an operational issue? validating the IG resource itself is pretty obscure
Max Masnick (Oct 21 2020 at 20:33):
This is not an operational issue...it was mentioned in a HL7 Jira issue but it's not causing any issues as far as I know.
Last updated: Apr 12 2022 at 19:14 UTC