FHIR Chat · Validation of example with MITRE QA Tool · IPS

Stream: IPS

Topic: Validation of example with MITRE QA Tool


view this post on Zulip Stephen Moore (Jun 14 2021 at 12:28):

The IHE Europe Connectathon started today, and one of our folks is validating an IPS document using: https://inferno-qa.healthit.gov/validator. When he uploads the document and selects the right advanced options, he gets an error message at the top that I cannot decipher. Can anyone lend some guidance? Is it related to the slice issues that show up later on the page? Screen-Shot-2021-06-14-at-7.24.51-AM.png

view this post on Zulip Rob Hausam (Jun 14 2021 at 12:55):

@Stephen Moore Do we know which validator version is being used (I'm not sure if this issue is version-specific, but it's always good to know as it changes frequently - and hopefully it's the latest version)? You could be right that this has some relation to the slicing issues. But the actual error claims that there is no Composition resource (specifically Composition-uv-ips) in the Bundle, and the validator should be able to determine compliance with the Composition-uv-ips profile without having to rely on the slicing (which all should be open).

view this post on Zulip Vassil Peytchev (Jun 14 2021 at 13:09):

The first entry in the Bundle must contain a Composition resource. Is that the case with the bundle being verified?

view this post on Zulip Rob Hausam (Jun 14 2021 at 13:25):

My assumption was that at least there was a Composition resource as the first bundle entry (it would be a pretty fundamental error if there wasn't), and that the validator for some reason wasn't recognizing it as an instance conforming to the Composition-uv-ips profile. But that may not be right, because in the published IPS IG, which the IHE profile is based on, we didn't actually profile Bundle and require that the Composition instance conform to Composition-uv-ips. We'll be changing that in the upcoming IPS STU update. And maybe the IHE profile already made that constraint (I'll have to check)?

view this post on Zulip Michael O'Keefe (Jun 14 2021 at 13:28):

@Rob Hausam inferno-qa is using org.hl7.fhir.validator version 5.3.14. Sorry that's not more intuitive in the UI, we're working on making it more useful.

view this post on Zulip Giorgio Cangioli (Jun 14 2021 at 13:34):

I had in the past similar errors - like missing required entry even if that entry was there - each time the validator was not able to check the conformance with an IPS profile (typically due to unrecognized codeable concepts)

view this post on Zulip Yunwei Wang (Jun 14 2021 at 13:36):

This is common issue when validating a Bundle resource using FHIR vaidator jar (which the Inferno validate service internally use). What error message actually says is that the Composition entry in the Bundle is not a valid IPS Composition instance. But the validator does not give details about the errors in Composition resource

view this post on Zulip Rob Hausam (Jun 14 2021 at 13:36):

Thanks, @Michael O'Keefe. So it looks like the validator version in Inferno is a little bit behind, as the latest version as of now is:

FHIR Validation tool Version 5.4.3 (Git# eb2d0a499a0c). Built 2021-06-05T01:17:28.684Z (9 days old)

I think that's pretty understandable, as it would be very difficult to keep up immediately with all of the changes. I'm not sure that this difference in validator versions would have any effect on the error that is being seen (that seems unlikely, although I suppose it could).

view this post on Zulip Giorgio Cangioli (Jun 14 2021 at 13:36):

and looking to the information message it says that the bundle.entry[0] (the composition) doesn't match with any known slice

view this post on Zulip Rob Hausam (Jun 14 2021 at 13:41):

Back to my point, though. If this is being validated against the 1.0.0 published version of the FHIR IPS IG, we don't have an IPS profile on Bundle that would cause this error. The error would be at the base standard level, which only requires that the first entry be a Composition resource (as Vassil said). If the validation is being done from the IPS connectathon branch, that would be a different situation - in that case the Composition must be a Composition-uv-ips instance.

view this post on Zulip Giorgio Cangioli (Jun 14 2021 at 13:44):

this is true ..but other similar errors at the section.entry level can be in any case experienced :-(
(but I've never tried with the very last validator version...)

view this post on Zulip Rob Hausam (Jun 14 2021 at 13:45):

You are certainly right about the errors on Composition.section.entry, Giorgio. But this particular error is on Bundle.entry.

view this post on Zulip Rob Hausam (Jun 14 2021 at 14:01):

I guess maybe the validator is doing some extrapolation (that I hadn't really thought about particularly before). The IG declares that any Composition resource instance must conform to the Composition-uv-ips profile. And since this Composition instance apparently doesn't conform to the IPS profile (or at least the validator doesn't think so, based on the slicing issues), then this Composition instance also can't be used to satisfy the Bundle requirement that the first entry must be a Composition resource (even though the instance itself is actually a valid Composition). Hopefully that explanation is clear enough (if it isn't I can try to clarify it further). If that is how the validator is behaving, I don't know if we've actually documented that anywhere as the correct and expected behavior?

view this post on Zulip Rob Hausam (Jun 14 2021 at 14:06):

If we want to get into this any further we may want to move the discussion to the conformance stream.

view this post on Zulip Stephen Moore (Jun 14 2021 at 14:41):

IPS-132_updated.json

view this post on Zulip Stephen Moore (Jun 14 2021 at 14:41):

@Rob Hausam I was thinking along those same lines, but am not savvy enough to know if the example I just posted matches that assumption.

view this post on Zulip Yunwei Wang (Jun 14 2021 at 16:41):

@Stephen Moore I took a look of the Bundle resource you posted. The actual problem is that IPS Composition has three mandatory sections: Medications, Allergies, and Problems (http://build.fhir.org/ig/HL7/fhir-ips/branches/connectathon/StructureDefinition-Composition-uv-ips.html) The example you posted does not have sectionAllergies

view this post on Zulip Grahame Grieve (Jun 14 2021 at 16:54):

This is common issue when validating a Bundle resource using FHIR vaidator jar (which the Inferno validate service internally use). What error message actually says is that the Composition entry in the Bundle is not a valid IPS Composition instance. But the validator does not give details about the errors in Composition resource

I don't understand this

view this post on Zulip Grahame Grieve (Jun 14 2021 at 16:54):

I guess maybe the validator is doing some extrapolation (that I hadn't really thought about particularly before). The IG declares that any Composition resource instance must conform to the Composition-uv-ips profile. And since this Composition instance apparently doesn't conform to the IPS profile (or at least the validator doesn't think so, based on the slicing issues), then this Composition instance also can't be used to satisfy the Bundle requirement that the first entry must be a Composition resource (even though the instance itself is actually a valid Composition).

No, it doesn't work like that

view this post on Zulip Rob Hausam (Jun 14 2021 at 17:01):

Fair enough. I didn't think it worked that way, either. But I was trying to figure out a reason for the behavior that was described. I should have looked at the validation output more closely, though. Because when I do that again now I can see that Inferno is validating the Bundle against the Bundle-uv-ips profile, which doesn't exist in the published 1.0.0 version of the IG. As long as we understand that the validation is being done against the connectathon branch (presumably - or possibly the CI build?) then the behavior makes sense.

view this post on Zulip Yunwei Wang (Jun 14 2021 at 17:21):

@Grahame Grieve See the reply I put above

The actual problem is that IPS Composition has three mandatory sections: Medications, Allergies, and Problems (http://build.fhir.org/ig/HL7/fhir-ips/branches/connectathon/StructureDefinition-Composition-uv-ips.html) The example you posted does not have sectionAllergies

The error message from the validator

Error @ Bundle (line 1, col2) : Bundle.entry:composition: minimum required = 1, but only found 0 (from http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips)

is correct that Composition entry in Bundle is not a valid IPS Composition but it does not give the details that the Composition is missing a required section. So the tester has to manually inspect the entry to find where the error is.

view this post on Zulip Grahame Grieve (Jun 14 2021 at 17:23):

what's an example I can try this with?

view this post on Zulip Rob Hausam (Jun 14 2021 at 17:27):

@Yunwei Wang Yes, the missing Allergies section certainly would cause the validation error.

view this post on Zulip Rob Hausam (Jun 14 2021 at 17:27):

@Grahame Grieve You can use the example that Stephen posted above.

view this post on Zulip Stephen Moore (Jun 14 2021 at 18:20):

This has been extremely helpful to me. As I mentioned, I was not savvy enough to notice that the composition was missing the AllergyIntolerance data when I inspected by hand. I can go back to the person who gave me the sample and ask for an updated version.

view this post on Zulip Grahame Grieve (Jun 14 2021 at 19:53):

@Rob Hausam this is confusing. Where is http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips found?

view this post on Zulip Yunwei Wang (Jun 14 2021 at 20:02):

Here: http://build.fhir.org/ig/HL7/fhir-ips/branches/connectathon/profiles.html

view this post on Zulip Rob Hausam (Jun 14 2021 at 20:03):

@Grahame Grieve Yes, it probably is a bit confusing. MITRE began working with our updates for the Connectathon in the connectathon branch. That's where you will find Bundle-uv-ips. I wasn't really expecting that the 'connectathon' branch was going to be used in the IHE Connectathon this week, but it probably is OK (and likely good) that it is, as long as everyone understands that.

view this post on Zulip Grahame Grieve (Jun 14 2021 at 20:05):

well, this is something the validator doesn't support - validating against branches of a spec

view this post on Zulip Grahame Grieve (Jun 14 2021 at 20:05):

not sure what Mitre to do make it happen

view this post on Zulip Grahame Grieve (Jun 14 2021 at 20:12):

guess the provide the bundle profile directly

view this post on Zulip Grahame Grieve (Jun 14 2021 at 21:42):

so, unfortunately, this is not particularly easy to solve. The validator knows what a particular resource fails to meet the definition of a slice. What it can't know is whether you expected it to or not.

So I can report either none of that information, or a huge dump of information that is overwhelming, with poor signal to noise ratio.

There's a somewhat obtuse parameter named crumb-trails that does that, and from the next release, it will publish more information. Also, there will be an alias for the parameter -verbose


Last updated: Apr 12 2022 at 19:14 UTC