Stream: IPS
Topic: IPS Validation Issue
Grahame Grieve (Oct 06 2021 at 20:44):
if you validate the IPS document at https://github.com/grahamegrieve/IPSviewer/blob/main/samples/connectathon_samples/NZ_Peter_Jordan_AAA1234.json against the validator, you get this error reported:
Grahame Grieve (Oct 06 2021 at 20:45):
Error @ Bundle (line 1, col2) : Bundle.entry:medication: minimum required = 1, but only found 0 (from http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips)
Grahame Grieve (Oct 06 2021 at 20:46):
on casual inspection, a typical user (both @Peter Jordan and I) will look at that and say, that's wrong, there is a medication: https://github.com/grahamegrieve/IPSviewer/blob/main/samples/connectathon_samples/NZ_Peter_Jordan_AAA1234.json#L453
Grahame Grieve (Oct 06 2021 at 20:48):
well.... there's a medication but it's not valid against the IPS medication statement:
Grahame Grieve (Oct 06 2021 at 20:48):
slice info: Bundle.entry[0].resource.section[2].entry[0]: Bundle.entry[8].resource: MedicationStatement.effective[x]: minimum required = 1, but only found 0 (from http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips)
Grahame Grieve (Oct 06 2021 at 20:49):
the thing is, this information is not normally reported by the validator. That's because the discriminator on the bundle entries is the profile itself:
Grahame Grieve (Oct 06 2021 at 20:50):
Grahame Grieve (Oct 06 2021 at 20:51):
so the error about Medication.effective[x] just turns into 'this is a reason why this entry doesn't meet this slice', rather than a validation failure - because the slicing is open. So all the validator can tell you is that it found a bunch of resources, but not an IPS medication
Grahame Grieve (Oct 06 2021 at 20:51):
it tells you this four times, in the information that everyone ignores:
Grahame Grieve (Oct 06 2021 at 20:58):
Information @ Bundle.entry[8] (line 452, col10) : This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips
Grahame Grieve (Oct 06 2021 at 20:58):
it also tells you this when validating the composition:
Grahame Grieve (Oct 06 2021 at 20:59):
Information @ Bundle.entry[0].resource.section[2].entry[0] (line 147, col30) : This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips
Grahame Grieve (Oct 06 2021 at 20:59):
finally, there's a mode where the validator can tell you what it's reasoning is, when matching discriminators. We don't usually do that because a lot of it's pretty straight forward and very verbose.
Grahame Grieve (Oct 06 2021 at 21:00):
running with -verbose
gives you this information:
Grahame Grieve (Oct 06 2021 at 21:02):
Information @ Bundle.entry[8] (line 452, col10) : This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips
slice info: Bundle.entry[8]: Does not match slice 'composition'
slice info: Bundle.entry[8]: Bundle.entry[8].resource: Specified profile type was 'CompositionUvIps', but found type 'MedicationStatement'
slice info: Bundle.entry[8]: Does not match slice 'problem'
slice info: Bundle.entry[8]: Bundle.entry[8].resource: Specified profile type was 'ConditionUvIps', but found type 'MedicationStatement'
slice info: Bundle.entry[8]: Does not match slice 'allergy'
slice info: Bundle.entry[8]: Bundle.entry[8].resource: Specified profile type was 'AllergyIntoleranceUvIps', but found type 'MedicationStatement'
slice info: Bundle.entry[8]: Does not match slice 'medication'
slice info: Bundle.entry[8]: Bundle.entry[8].resource: MedicationStatement.effective[x]: minimum required = 1, but only found 0 (from http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips)
Grahame Grieve (Oct 06 2021 at 21:03):
you see both the actual error, and all the verbose 'duh' stuff. But the validator can't know what you think is 'duh' and what is 'oh dear'
Grahame Grieve (Oct 06 2021 at 21:04):
this behavior is inherent in slicing by profile, so I'm going to see if I can show this logic always on a slicing by profile, but that's pretty tricky - -verbose
operates far away from the slicing resolution
Grahame Grieve (Oct 06 2021 at 21:20):
@Reece Adamson this implies that for now, at least, the inferno validator needs to support an equivalent to the -verbose
parameter
Reece Adamson (Oct 07 2021 at 00:11):
Thanks for the heads up! I'll work on enabling that.
Peter Jordan (Oct 09 2021 at 22:32):
Validating an IPS Instance using the latest version of the validator from the command line doesn't return any of the structural issues (i.e. missing entry elements) still returned by the Dev version of Inferno. The relevant argument that I'm passing is...
-profile http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-cross-border-uv-ips
and I've also got the same results with passing
-ig hl7.fhir.uv.ips
@Rob Hausam , @Reece Adamson @Grahame Grieve
Grahame Grieve (Oct 09 2021 at 23:09):
the one released this morning?
Peter Jordan (Oct 10 2021 at 00:28):
Version 5.5.4 - but just grabbed v 5.5.6 from GitHub. - same results.
Wondering if the version of ATC on tx.fhir.org needs to be updated as I'm getting errors on 3 valid ATC codes (C09AA08, H02AB07 and A11CC05 - which all validate against https://www.whocc.no/atc_ddd_index/?code=).
Also looks as if the IPS Cross-Border Medications Profile doesn't like multiple codings in Medication.code, although it's a codeable concept.
Can't find http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-cross-border-uv-ips now
Grahame Grieve (Oct 10 2021 at 03:41):
did you try the-ips
parameter? then you don't need others
Grahame Grieve (Oct 10 2021 at 03:41):
and yes, ATC is an issue we're working on right now
Peter Jordan (Oct 10 2021 at 03:59):
Just tried using the -ips parameter, but it failed... "The file name you passed in, '-ips', doesn't exist on the local file system".
Grahame Grieve (Oct 10 2021 at 06:21):
and you're using 5.5.6?
Peter Jordan (Oct 10 2021 at 06:25):
Yes
Grahame Grieve (Oct 10 2021 at 06:27):
sigh. the code in question didn't make it into 5.5.6
Rob Hausam (Oct 10 2021 at 21:32):
I'm getting to working on updating ATC - too many things going on, but I think I can (finally) do that tonight.
Grahame Grieve (Oct 11 2021 at 00:35):
@Peter Jordan try 5.5.7 release
Peter Jordan (Oct 11 2021 at 00:59):
Ran 5.5.7 release - it downloaded and installed the IPS Package ok
Used the 'plain' xx-uv-ips profiles, as opposed to the xx-cross-border-uv-ips ones
No errors reported against my instance, but a ton of information messages mostly these for every single entry in the Bundle...
<issue>
<extension url="http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-line">
<valueInteger value="226"/>
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-col">
<valueInteger value="28"/>
</extension>
<extension url="http://hl7.org/fhir/StructureDefinition/operationoutcome-issue-source">
<valueCode value="InstanceValidator"/>
</extension>
<severity value="information"/>
<code value="informational"/>
<details>
<text value="This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips"/>
</details>
<expression value="Bundle.entry[0].resource.section[2].entry[1]"/>
</issue>
Peter Jordan (Oct 11 2021 at 01:10):
(deleted)
Grahame Grieve (Oct 11 2021 at 03:27):
every entry?
Peter Jordan (Oct 11 2021 at 04:01):
Every entry and it would be good to look at this one as well...
Unknown Code System http://hl7.org/fhir/uv/ips/CodeSystem/absent-unknown-uv-ips
Rob Hausam (Oct 11 2021 at 04:03):
We haven't previously been having issues with the absent-unknown cs.
Rob Hausam (Oct 11 2021 at 04:04):
I'll look - but I'm working on ATC at the moment.
Peter Jordan (Oct 12 2021 at 02:44):
@Rob Hausam I think that there might be an error in the Bundle Profile here as the entry:All slices doesn't include an element for Resource
http://build.fhir.org/ig/HL7/fhir-ips/branches/connectathon-2/StructureDefinition-Bundle-uv-ips.html
In comparison this Bundle Profile does have that element on entry: All slices
http://build.fhir.org/ig/HL7/fhir-ips/branches/connectathon-2/StructureDefinition-Bundle-cross-border-uv-ips.html
That could explain why the Validator is reporting an information issue for every Entry other than Composition.
Rob Hausam (Oct 12 2021 at 13:45):
@Peter Jordan I'll check that out. At least I agree that it would make sense to be consistent - I think that sparse differentials are supposed to work now, but we do need to verify.
Grahame Grieve (Oct 12 2021 at 18:54):
for every entry: This element does not match any known slice defined in the profile
What example are you validating?
Peter Jordan (Oct 12 2021 at 20:00):
I'm validating 'my' IPS instance (with no extensions and only receives a couple of terminology-related info messages from 'plain' validator calls)
I'd like to be able to validate directly against the x-border Bundle profile , but its defining URL doesn't resolve...
http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-cross-border-uv-ips
The -ips validator argument uses the other IPS bundle profile...
http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips
Rob Hausam (Oct 12 2021 at 22:41):
I think that at least some of this may be addressed by ImplementationGuid.global.profile. I'm going to check that out further tonight and we will plan to discuss it on the IPS call tomorrow (that's not at a good time for you, @Peter Jordan, but happy to look at it further and get more input before that).
Peter Jordan (Oct 12 2021 at 23:21):
Thanks @Rob Hausam - I think that the issue may be in the snapshot (must support) version of the Bundle Profile in http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips.
@Grahame Grieve same issues with the example Bundles in the IPS IG except that it doesn't report information messages regarding these at these specific Entry->Resource locations...
Composition [0]
Condition[4]
MedicationStatement [5]
That behavior is common to all instances that I've validated.
Last updated: Apr 12 2022 at 19:14 UTC