onc-healthit / onc-certification-g10-test-kit

ONC Certification (g)(10) Standardized API Tests
Apache License 2.0
32 stars 10 forks source link

Structure Definition Version For US Core 3.1.1 Error #491

Closed dhit-mdavis closed 4 months ago

dhit-mdavis commented 4 months ago

Hi all, just a few quick questions.

  1. When I receive an error message like the one below and it ends with "6.1.0", what does this mean if I'm taking an Inferno US Core 3.1.1 test?

  2. Is it similar to how many, if not all, Inferno links for US Core Profiles point to the US Core 6.1.0 Implementation Guide?

  3. Why wouldn't the version = 3.1.1 vs 6.1.0 if I'm taking an Inferno US Core 3.1.1 test?

NOTE: The data issue is resolved, I'm more so trying to understand how to interpret the structure definition mention in the error msg.

image

dehall commented 4 months ago

Hi, thanks for pointing this out.

It looks like what's happening here is the Inferno validator is preloaded with multiple versions of the US Core IG, and then when the validator finds an unversioned extension, it will pick the most recent extension definition to validate against.

In this specific instance, it correctly finds the us-core-Patient profile version 3.1.1, but the profile definition doesn't specify the version of the ethnicity extension, so when the validator finds multiple versions of the extension it picks the most recent it has - 6.1.0.

The us-core-ethnicity extension is the same between versions 3.1.1 and 6.1.0 so even though the number shown is 6.1.0, it's validating the same rules. And our team has reviewed the extensions and value sets used in US Core between 3 and 6 and we don't see anything that should cause issues such as false positives, but please do let us know if you see any error messages that don't look right.

In the meantime, we're also exploring ways to improve the validation process so that quirks like this don't happen.

dhit-mdavis commented 4 months ago

Thanks Dylan and this makes perfect sense.

I was pretty sure as well that the 3.1.1 and 6.10 versions were mostly, if not completely, the same so thanks for that confirmation as well.