gematik / spec-ISiK-Basismodul

The Information Technology Systems in Hospitals (ISiK – Informationstechnische Systeme in Krankenhäusern) "Basic Module" enables use-case-independent functionalities for the communication and validation of data within hospital environments, by providing FHIR resources, examples and an implementation guide.
Other
7 stars 1 forks source link

Falsche Syntax oder Fehler in der Kompilierung ? #226

Closed f-peverali closed 1 year ago

f-peverali commented 1 year ago

https://github.com/gematik/spec-ISiK-Basismodul/blob/b0cc965920f48ea4ffbde72850fb3e44b6c03be7/Resources/input/fsh/ISiKPatient.fsh#L116

MR sollte in PID-Slice eingehen, aber nicht gemeinsam mit GKV in ein SLICE (jetzt der Fall)

Stattdessen wird folgendermaßen in JSON kompiliert (wei mal Coding unter selbem Type statt zwei Type-Slices):

"identifier": [ { "type": { "coding": [ { "code": "MR", "system": "http://terminology.hl7.org/CodeSystem/v2-0203" }, { "code": "GKV", "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" } ] }, "system": "http://fhir.de/sid/gkv/kvid-10", "value": "A123456789" }, { "type": { "coding": [ { "code": "MR", "system": "http://terminology.hl7.org/CodeSystem/v2-0203" } ] }, "system": "https://fhir.krankenhaus.example/sid/PID", "value": "TestPID" },

hier der entsprechende Error-Output bei Validierung:

2023-03-23T14:11:51.2911046Z *FAILURE*: 1 errors, 0 warnings, 0 notes 2023-03-23T14:11:51.2911729Z Error @ Patient.identifier[0] (line 10, col6): Profile https://gematik.de/fhir/isik/v2/Basismodul/StructureDefinition/ISiKPatient, Element matches more than one slice - VersichertenId-GKV, Patientennummer

f-peverali commented 1 year ago

@patrick-werner , @ylboerner wisst ihr was hier an der fsh Syntax falsch ist?

ylboerner commented 1 year ago

@f-peverali Könntest du hier einmal versuchen, die Slices in der Beispiel Instanz direkt per Slice-Namen anstatt per Soft-Index zu belegen?

f-peverali commented 1 year ago

@f-peverali Könntest du hier einmal versuchen, die Slices in der Beispiel Instanz direkt per Slice-Namen anstatt per Soft-Index zu belegen?

Danke Dir für den schnellen Input , @ylboerner

Gibt es dazu eine Best-Practice, die Indexierung per Slice-Namen bevorzugt? -> Hierzu Antwort von Validator analog für anderes Element : "Sliced element Patient.name is being accessed via numeric index. Use slice names in rule paths when possible."

Eigentlich sollte "Soft-Index" so gehen. Wurde mir auch unter fsh-school Generator so ausgegeben auf Grundlage einer korrigierten JSON. Hieße für mich im Umkehrschluss, dass hier die Kompilierung nicht sauber funktioniert. Oder?

ylboerner commented 1 year ago

Ich denke, den Slice per Namen anzusteuern ist eigentlich immer vorzuziehen. Löst diese Vorgehensweise denn das oben beschriebene Problem?

f-peverali commented 1 year ago

Ja, gerade durchgelaufen. Danke Dir nochmal für den Hinweis, @ylboerner

f-peverali commented 1 year ago

Behoben auch für Stufe 1 : https://github.com/gematik/spec-ISiK-Basismodul/pull/231/commits/6a76d828e059a6ae764f74927e80557af6b41d81

ylboerner commented 1 year ago

@f-peverali Es könnte sein, dass es hier ein hick-up durch das Mischen von einem konkreten Index (0) mit Soft-index (+) irgendetwas überschrieben wird. Allerdings kann es auch ein SUSHI Bug sein. Um sicher zu gehen, könntest du einmal auf Zulip nachfragen 👍