Stream: australia
Topic: Patient Identifiers
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
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?
Grahame Grieve (Mar 05 2019 at 20:10):
pattern is the right thing to use
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...
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
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...
Grahame Grieve (Mar 06 2019 at 02:35):
the interpretation is different. It's not really about subset
David Hay (Mar 06 2019 at 02:36):
I'll go think about it a bit more :)
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>
Grahame Grieve (Mar 06 2019 at 03:18):
I think so
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...
David Hay (Mar 06 2019 at 03:27):
(from the qa.html file that gets generated...)
David Hay (Mar 06 2019 at 03:27):
aiming for perfection :)
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...
Grahame Grieve (Mar 06 2019 at 04:10):
put in a base entry
<element> <path value="Patient"> </element>
Grahame Grieve (Mar 06 2019 at 04:10):
The error isn't with the validator but with the rule defined on the structure definition
Grahame Grieve (Mar 06 2019 at 04:11):
you make a task for us to sort that
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?
Grahame Grieve (Mar 06 2019 at 05:05):
pattern or value is assigned y the discriminator, not the slice
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
Brett Esler (Mar 06 2019 at 23:47):
can not see a way around that
Brett Esler (Mar 06 2019 at 23:47):
it does make the definitions much simpler and easier to understand
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?
Brett Esler (Mar 06 2019 at 23:48):
if I don't have pattern defined ig builder errors - one tic will commit to show
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