Closed furoreSebastiaan closed 4 years ago
Test profling folder R4 - GitHub issue 1227.zip
The initial path is not reproducible due to version changes and package dependencies. The files in the attached zip provide a reproducible path.
This seems to be similar to issue #1153. The issue occurs only with the profiles in the attached zip, this is due to an error with the extension in the slice for addressConfidentiality.extension:
The culprit could be Forge that does something strange in the diff with this extension.
It only happens with this profile, other R4 profiles that we tested did not provide the errors. Could Forge do something strange with putting and extension in the right place when it's in a slice?
Alternatively the snapshot generator on Simplifier could do something strange that causes the errors while validating the snapshot.
I investigated this, and it is still a problem. What did I do?
person.xml
in Simplifier: OKhttp://ehelse.no/fhir/StructureDefinition/gd-Person
, and then validates the outcome of the snapshot). This is actually the same as the first 2 steps. This unit test fails as well.So I can conclude that the error is in the snapshot generator of the fhir-net-api, not in Forge or other tools. I will try to simplify the structuredefinition to pinpoint to problem. Then I create an unittest and then solve to problem. My feeling is that it somewhere has to do with the reslicing of meta.security.
After a long resource, I've found out that the element order of the differential is not correct. The differential looks like this:
<element id="Person.meta.security">
<element id="Person.meta.security:addressConfidentiality">
<element id="Person.meta.security:addressConfidentiality.system">
<element id="Person.meta.security:addressConfidentiality.code">
<element id="Person.meta.security:addressConfidentiality.extension">
<element id="Person.meta.security:addressConfidentiality.Extension:fregMetadata">
This is not correct and it should be:
<element id="Person.meta.security">
<element id="Person.meta.security:addressConfidentiality">
<element id="Person.meta.security:addressConfidentiality.extension">
<element id="Person.meta.security:addressConfidentiality.Extension:fregMetadata">
<element id="Person.meta.security:addressConfidentiality.system">
<element id="Person.meta.security:addressConfidentiality.code">
Then the SnapshotGenerator will function correctly.
The differential is made by Forge so I have created an issue for Forge: https://firely.atlassian.net/browse/FOR-468
Because it is not a bug of the fhir-net-api, I will close this issue and we have to wait till the issue has been solved for Forge.
gdPerson.zip
We're encountering an issue with the snapshot generator. The differential is validated, but the snapshot is not.
we're using the 1.4 version of the validator / snapshot generator
Considerations:
conclusion: something in de GdPerson SD is causing the extension to build up inproperly. But I have no idea why.. Could you help us out?