Stream: conformance
Topic: Simplifier Profile Problem
Grahame Grieve (Jun 09 2020 at 23:17):
Issue https://github.com/hapifhir/org.hl7.fhir.core/issues/235 relates to the profile https://simplifier.net/MedizininformatikInitiative-ModulPerson/PatientIn. Here's the relevant part of the definition:
Grahame Grieve (Jun 09 2020 at 23:24):
(with commentary):
{
"id": "Patient.identifier:versicherungsnummer_gkv.type",
"path": "Patient.identifier.type",
"min": 1,
"patternCodeableConcept": {
"coding": [
{
"system": "http://fhir.de/CodeSystem/identifier-type-de-basis",
"code": "GKV"
}
]
},
"mustSupport": true
},
ok, so we applied a pattern to Patient.identifier.type
. Fine. But then what follows:
{
"id": "Patient.identifier:versicherungsnummer_gkv.type.coding",
"path": "Patient.identifier.type.coding",
"mustSupport": true
},
ok, then we say that Patient.identifier.type.coding is must-support.
{
"id": "Patient.identifier:versicherungsnummer_gkv.type.coding:GKV-Type",
"path": "Patient.identifier.type.coding",
"sliceName": "GKV-Type",
"mustSupport": true
},
wait - what? What's with the slice name? where's the slice definition? why is it sliced if we have a pattern?
{
"id": "Patient.identifier:versicherungsnummer_gkv.type.coding:GKV-Type.system",
"path": "Patient.identifier.type.coding.system",
"mustSupport": true
},
{
"id": "Patient.identifier:versicherungsnummer_gkv.type.coding:GKV-Type.code",
"path": "Patient.identifier.type.coding.code",
"mustSupport": true
},
What is it trying to say here to say that these individual elements are must-support when we already imposed a pattern? (my german is rudimentary but I couldn't find any definition of what must-support means)
Grahame Grieve (Jun 09 2020 at 23:25):
@Ward Weistra @Alexander Zautke for your comment please
Alexander Zautke (Jun 10 2020 at 14:33):
"wait - what? What's with the slice name? where's the slice definition? why is it sliced if we have a pattern?"
"Patient.identifier:versicherungsnummer_gkv" applies a type profile of "http://fhir.de/StructureDefinition/identifier-kvid-10" (See https://simplifier.net/basisprofil-de-r4/identifierkvid10). This profile contains a slicing definition for "Identifier.type.coding" on value(system). As well as all other definitions around "GKV-Type" (also all other slices of Patient.identifier).
Alexander Zautke (Jun 10 2020 at 14:34):
"why is it sliced if we have a pattern?"
The identifier slice is open, I think I've added the pattern to indicate that all derived profiles, if they choose to add a new slice, should have a pattern on Identifier.type. The type profile identifier-kvid-10 on the other hand is mandatory as it's part of the German national base profiles.
Alexander Zautke (Jun 10 2020 at 14:41):
"What is it trying to say here to say that these individual elements are must-support when we already imposed a pattern? (my german is rudimentary but I couldn't find any definition of what must-support means)"
I don't like the solution either, there is a link to the IPS rules on must-support (https://simplifier.net/guide/MedizininformatikInitiative-ModulPerson-ImplementationGuide/FHIR-Profile). However, some implementers of these profiles have the opinion that they can throw everything away, when receiving the resources, that is not marked as must-support.
Grahame Grieve (Jun 11 2020 at 07:32):
not sure how much the IPS definition of must-support helps with that. Stupid people will be stupid anyway
Grahame Grieve (Jun 11 2020 at 07:32):
my apologies for missing the type profile reference - I didn't look far enough back
Rob Hausam (Jun 11 2020 at 14:49):
Yes. I think trying to use a single mustSupport tag on an element to define both sender and receiver expectations and requirements potentially leaves things open to some weird and unintended interpretations. But it is what we have at the moment. And implementers do need to apply some common sense. :)
Grahame Grieve (Jun 11 2020 at 23:11):
@Alexander Zautke ok back to this, I investigated some more, and improved the error message :
Attempt to a slice an element that does not repeat: Reference.identifier/Reference.identifier from http://hl7.org/fhir/StructureDefinition/Reference in https://www.medizininformatik-initiative.de/fhir/core/StructureDefinition/Patient, at element Patient.identifier:versicherungsnummer_gkv.assigner.identifier (slice = iknr)
Grahame Grieve (Jun 11 2020 at 23:11):
that looks like a right error message to me. The profile does try to slice identifier, and it isn't something that can be sliced.
Ward Weistra (Jun 22 2020 at 09:13):
Logged https://github.com/FirelyTeam/fhir-net-api/issues/1400 for the #dotnet API, feel free to add to it.
Last updated: Apr 12 2022 at 19:14 UTC