Stream: committers
Topic: Discrimnator differential
Brett Esler (Apr 03 2018 at 07:23):
@Grahame Grieve I am having troubles with IG build where I have a profile with one discriminator .e.g HealthcareService.identifier slicing discriminator is Value 'system' then create a derived profile with an additional discriminator Value 'type' am getting error
Publishing Content Failed: Exception loading http://hl7.org.au/fhir/StructureDef inition/au-pd-healthcareservice: Slicing rules on differential (org.hl7.fhir.r4. model.ElementDefinition$ElementDefinitionSlicingDiscriminatorComponent@2e9f5b, o rg.hl7.fhir.r4.model.ElementDefinition$ElementDefinitionSlicingDiscriminatorComp onent@1a34b26(/open)) do not match those on base (org.hl7.fhir.r4.model.ElementD efinition$ElementDefinitionSlicingDiscriminatorComponent@13fd7a1(/open)) - disci minator @ HealthcareService.identifier (http://hl7.org/fhir/StructureDefinition/ Meta) (14.0994sec)
Brett Esler (Apr 03 2018 at 07:26):
Should I be repeating the whole slicing discriminator in the derived profile definition?
Brett Esler (Apr 03 2018 at 07:26):
<slicing> <discriminator> <type value="value" /> <path value="system" /> </discriminator> <discriminator> <type value="value" /> <path value="type" /> </discriminator> <rules value="open" /> </slicing>
Brett Esler (Apr 03 2018 at 07:28):
Here is the full log http://build.fhir.org/ig/hl7au/au-fhir-pd/build.log
Grahame Grieve (Apr 03 2018 at 07:50):
is that the base or the derived? Paste both...
Brett Esler (Apr 03 2018 at 23:24):
The base is:
Brett Esler (Apr 03 2018 at 23:24):
<element id="HealthcareService.identifier"> <path value="HealthcareService.identifier" /> <slicing> <discriminator> <type value="value" /> <path value="system" /> </discriminator> <rules value="open" /> </slicing> <short value="Healthcare service identifiers" /> </element>
Brett Esler (Apr 03 2018 at 23:25):
derived element is
Brett Esler (Apr 03 2018 at 23:25):
<element id="HealthcareService.identifier"> <path value="HealthcareService.identifier" /> <slicing> <discriminator> <type value="value" /> <path value="system" /> </discriminator> <discriminator> <type value="value" /> <path value="type" /> </discriminator> <rules value="open" /> </slicing> <short value="Directory entry healthcare service identifiers" /> </element>
Grahame Grieve (Apr 03 2018 at 23:25):
ok so that should work then. this is committed somewhere so I can try it out?
Brett Esler (Apr 03 2018 at 23:26):
yep
https://github.com/hl7au/au-fhir-base
https://github.com/hl7au/au-fhir-pd
Grahame Grieve (Apr 03 2018 at 23:30):
ok I'll try and look this afternoon
Brett Esler (Apr 09 2018 at 06:26):
Following up on this one still failing - http://build.fhir.org/ig/hl7au/au-fhir-pd/build.log
Brett Esler (May 02 2018 at 00:56):
I still have this problem - but now am thinking about whether it makes sense to add further discriminators in a derived model - as this would seem to actually relax the discriminating elements - e,g, if a profile discriminates on Identifier.system then in a derived profile discriminates also on Identifier.type - this could mean multiple slice matches in the base model could occur where it would be okay in the derived model (e.g. same system and a discriminating type) - make sense?... maybe IG builder is behaving as it should as that seems to be a problem to me...
Brett Esler (May 02 2018 at 00:57):
would mean the base model would need to have all the discriminators defined for any derived model to be able to use them... this is a bit problematic but can't see how it would work any other way...
Brett Esler (May 02 2018 at 01:30):
okay after discussion I am less worried and feeling okay... if a slice matches in the base profile it should still be conforming; and the derived slice constraints can only be more specific and still conform to the base.. .so back to needing to be able to build IG with additional discriminators defined...
Last updated: Apr 12 2022 at 19:14 UTC