FHIR Chat · Discrimnator differential · committers

Stream: committers

Topic: Discrimnator differential


view this post on Zulip 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)

view this post on Zulip Brett Esler (Apr 03 2018 at 07:26):

Should I be repeating the whole slicing discriminator in the derived profile definition?

view this post on Zulip 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>

view this post on Zulip Brett Esler (Apr 03 2018 at 07:28):

Here is the full log http://build.fhir.org/ig/hl7au/au-fhir-pd/build.log

view this post on Zulip Grahame Grieve (Apr 03 2018 at 07:50):

is that the base or the derived? Paste both...

view this post on Zulip Brett Esler (Apr 03 2018 at 23:24):

The base is:

view this post on Zulip 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>

view this post on Zulip Brett Esler (Apr 03 2018 at 23:25):

derived element is

view this post on Zulip 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>

view this post on Zulip Grahame Grieve (Apr 03 2018 at 23:25):

ok so that should work then. this is committed somewhere so I can try it out?

view this post on Zulip Brett Esler (Apr 03 2018 at 23:26):

yep
https://github.com/hl7au/au-fhir-base
https://github.com/hl7au/au-fhir-pd

view this post on Zulip Grahame Grieve (Apr 03 2018 at 23:30):

ok I'll try and look this afternoon

view this post on Zulip 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

view this post on Zulip 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...

view this post on Zulip 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...

view this post on Zulip 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