FHIR Chat · Patient Identifiers · australia

Stream: australia

Topic: Patient Identifiers


view this post on Zulip Grahame Grieve (Mar 05 2019 at 05:56):

@Brett Esler looking at the AU Patient profile, the coding is assigned fixed values at system/code level. It's necessary, when you're slicing, to the put the fixed values where the discriminator is stated e.g. pattern with code & system

view this post on Zulip Brett Esler (Mar 05 2019 at 20:08):

Thanksi @Grahame Grieve so instead of Patient.identifier slice on type would I slice on type.coding.code and type.coding.system or is pattern the way to go? I think we steered away from pattern due to some of the mixed mandatory and optional elements (text + coding) but think that issue has gone away with changes. @Brian Postlethwaite could you comment on the status of pattern validation in the .NET validator?

view this post on Zulip Grahame Grieve (Mar 05 2019 at 20:10):

pattern is the right thing to use

view this post on Zulip David Hay (Mar 06 2019 at 02:28):

In the spec, it says that pattern is mostly used with CodeableConcept - the example for value is Patient.telecom.system, which is kinda close to identifier...

view this post on Zulip Grahame Grieve (Mar 06 2019 at 02:29):

well, this slices on both system, which would be value - and type, which would be a pattern

view this post on Zulip David Hay (Mar 06 2019 at 02:33):

That suggests that value is just a subset of pattern... - ie the example given in the spec for value could equally be pattern...

view this post on Zulip Grahame Grieve (Mar 06 2019 at 02:35):

the interpretation is different. It's not really about subset

view this post on Zulip David Hay (Mar 06 2019 at 02:36):

I'll go think about it a bit more :)

view this post on Zulip David Hay (Mar 06 2019 at 02:58):

So - assuming I wanted to slice Patient.identifier on system, adding a single optional NHI and any number of others, is this the correct discriminator (value)?

 <differential>
    <element id="Patient.identifier">
      <path value="Patient.identifier" />
      <slicing>
        <discriminator>
          <type value="value" />
          <path value="system" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="Patient.identifier:NHI">
      <path value="Patient.identifier" />
      <sliceName value="NHI" />
      <max value="1" />
    </element>
    <element id="Patient.identifier:NHI.system">
      <path value="Patient.identifier.system" />
      <fixedUri value="https://standards.digital.health.nz/nhi" />
    </element>
    <element id="Patient.identifier:Others">
      <path value="Patient.identifier" />
      <sliceName value="Others" />
    </element>
  </differential>

view this post on Zulip Grahame Grieve (Mar 06 2019 at 03:18):

I think so

view this post on Zulip David Hay (Mar 06 2019 at 03:27):

good oh! btw - I get this error when I build the IG:

StructureDefinition/nzpatient: StructureDefinition.differential error No slicing on the root element [element.first().slicing.empty()]

The profile was generated using Forge...

view this post on Zulip David Hay (Mar 06 2019 at 03:27):

(from the qa.html file that gets generated...)

view this post on Zulip David Hay (Mar 06 2019 at 03:27):

aiming for perfection :)

view this post on Zulip David Hay (Mar 06 2019 at 03:34):

btw - the error goes away if I make a change on an element that appears before identifier (ie language) so I suspect an error with the validator...

view this post on Zulip Grahame Grieve (Mar 06 2019 at 04:10):

put in a base entry

<element> <path value="Patient"> </element>

view this post on Zulip Grahame Grieve (Mar 06 2019 at 04:10):

The error isn't with the validator but with the rule defined on the structure definition

view this post on Zulip Grahame Grieve (Mar 06 2019 at 04:11):

you make a task for us to sort that

view this post on Zulip Brett Esler (Mar 06 2019 at 04:30):

does this mean can only discriminate by pattern or value - but not both - some slices by pattern ,some by fixed value?

view this post on Zulip Grahame Grieve (Mar 06 2019 at 05:05):

pattern or value is assigned y the discriminator, not the slice

view this post on Zulip Brett Esler (Mar 06 2019 at 23:46):

I can only really get this to work by having pattern defined on all the slices for type - and slice will not be selected unless the type is set (regardless of system being a match) - this leads me to mandating 1..1 Patient.identifier.type with a pattern on each slice and Patient.system becomes not required for a slice match at all - so effectively every slice needs a type defined and required

view this post on Zulip Brett Esler (Mar 06 2019 at 23:47):

can not see a way around that

view this post on Zulip Brett Esler (Mar 06 2019 at 23:47):

it does make the definitions much simpler and easier to understand

view this post on Zulip Grahame Grieve (Mar 06 2019 at 23:47):

I can only really get this to work by having pattern defined on all the slices for type

why?

view this post on Zulip Brett Esler (Mar 06 2019 at 23:48):

if I don't have pattern defined ig builder errors - one tic will commit to show

view this post on Zulip Brett Esler (Mar 06 2019 at 23:53):

take that back - things look okay ... will report if any other issues...


Last updated: Apr 12 2022 at 19:14 UTC