FirelyTeam / firely-net-sdk

The official Firely .NET SDK for HL7 FHIR
Other
830 stars 345 forks source link

Validation code fails to validate error in extension url against profiles #540

Closed IOPS-DEV closed 6 years ago

IOPS-DEV commented 6 years ago

Please see attached files. The xml example in the Examples folder should throw an error when validated against the profiles attached, as the url for the extension should read extension url=https://fhir.nhs.uk/STU3/StructureDefinition/Extension-ITK-MessageHandling-2, not extension url=https://fhir.nhs.uk/STU3/StructureDefinition/Extension-ITK-MessageHandling-1. However, no error is thrown. validator-error.zip

marcovisserFurore commented 6 years ago

Thanks @IOPS-DEV for your input. I've investigated your issue and find out that the used profile ITK-MessageHeader-2 has an open slice definition for extension. That means that every extension can be added to the array of extensions, like the Extension-ITK-MessageHandling-1 in your example. When the sliced definition is set to closed, then only extensions of Extension-ITK-MessageHandling-2 are valid. The validator will then throw an error for the given example like this: "Element does not match any slice, but the group at 'MessageHeader.extension' is closed."

KatieAnne commented 6 years ago

@marcovisserFurore Thanks for your reply which I understand fully. However, I am using Forge 16.5.1.0901 for HL7 FHIR STU3 DEVELOP and there appears to be no way for me to set the open or closed rule for a slice for an extension via the Forge GUI. I can do it directly in the xml, but not from the Forge GUI. Perhaps I am missing something - please can you explain to me how I can set the rule for an extension slice via the Forge GUI. Thanks, Katie.

marcovisserFurore commented 6 years ago

@KatieAnne: I also tried to do that with Forge, but that is not possible.This also confirmed by our team (makers of this tool). The only way to set the sliced definition to closed for Extensions is to manually edit the xml profile file.