Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance Basis #315

Closed
1 task
f-peverali opened this issue Oct 27, 2023 · 4 comments · Fixed by #322
Closed
1 task

Maintenance Basis #315

f-peverali opened this issue Oct 27, 2023 · 4 comments · Fixed by #322
Assignees

Comments

@f-peverali
Copy link
Contributor

f-peverali commented Oct 27, 2023

Stufe 3

  • SUSHI Version erhöhen
  • Validierungsfehler prüfen
  • Use slice name instead of numeric index access
  • Fix eventual errors

Vergleiche ggf. mit Terminplanung : gematik/spec-ISiK-Terminplanung#128

Tasks

Preview Give feedback
@f-peverali f-peverali converted this from a draft issue Oct 27, 2023
@f-peverali f-peverali self-assigned this Oct 27, 2023
@f-peverali f-peverali moved this from Todo to In Progress in ISiK/ISiP Project Board Nov 7, 2023
@f-peverali
Copy link
Contributor Author

f-peverali commented Nov 7, 2023

@ylboerner könntest Du mir hier helfen? Was ist beim Indexing hier schief gelaufen:https://github.com/gematik/spec-ISiK-Basismodul/actions/runs/6785351346/job/18443470959#step:3:223
Hätte ich das für die Examples nicht nutzen dürfen?

This was linked to pull requests Nov 7, 2023
@ylboerner
Copy link
Contributor

@f-peverali Gerne helfe ich.

Fall 1: Kein definiertes Slicing

Für diesen Fall (den zweiten erkläre ich weiter unten) können wir uns den ersten Fehler direkt als Beispiel nehmen:

* identifier[Berichtnummer].type = $v2-0203#FILL
* identifier[Berichtnummer].system = "https://fhir.krankenhaus.example/sid/system-a/berichtnummer"
* identifier[Berichtnummer].value = "0123456789"

Wir greifen mit diesen drei Zeilen auf einen Slice zu, der im Profil nicht definiert ist. Tatsächlich ist in dem Profil für ISiKBerichtSubsysteme kein einziger Slice auf identifier definiert. Daher gibt SUSHI hier direkt folgende Fehlermeldungen aus:

error The element or path you referenced does not exist: identifier[Berichtnummer].type
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKBerichtSubSysteme.fsh
  Line: 70
error The element or path you referenced does not exist: identifier[Berichtnummer].system
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKBerichtSubSysteme.fsh
  Line: 71
error The element or path you referenced does not exist: identifier[Berichtnummer].value
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKBerichtSubSysteme.fsh
  Line: 72

Wir können diesen Fehler recht einfach fixen, indem wir '+' und '=' verwenden, anstatt nicht existierende Slice Namen oder Indizes:

* identifier[+].type = $v2-0203#FILL
* identifier[=].system = "https://fhir.krankenhaus.example/sid/system-a/berichtnummer"
* identifier[=].value = "0123456789"

Fall 2: Unbekannter Slice
In diesem Fall ist zwar ein Slicing definiert, aber der Slice ist unbekannt. Ein Beispiel dafür ist ISiKPersonImGesundheitsberuf mit folgendem Fehler:

error The element or path you referenced does not exist: identifier[ArztnummerKBV].type
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh
  Line: 96
error The element or path you referenced does not exist: identifier[ArztnummerKBV].system
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh
  Line: 97
error The element or path you referenced does not exist: identifier[ArztnummerKBV].value
  File: /home/runner/work/spec-ISiK-Basismodul/spec-ISiK-Basismodul/Resources/input/fsh/ISiKPersonImGesundheitsberuf.fsh
  Line: 98

Dieser lässt sich einfach fixen, indem wir einen der Slice-Namen verwenden, die im Profil definiert sind:

* identifier contains
    Arztnummer 0..* MS and
    EFN 0..1 MS and
    TelematikId 0..1 MS

Mit dem Slice 'Arztnummer' sieht das Beispiel dann wie folgt aus:

* identifier[Arztnummer].type = $v2-0203#LANR
* identifier[Arztnummer].system = "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR"
* identifier[Arztnummer].value = "123456789"

@f-peverali
Copy link
Contributor Author

f-peverali commented Nov 8, 2023

@ylboerner siehst du überhaupt den Bedarf die numeric indexes zu prüfen/überarbeiten? Im Pipeline-Durchlauf (https://github.com/gematik/spec-ISiK-Basismodul/actions/runs/6784977127/job/18442329679) sehe ich dazu weder warnings noch errors. Ich war da einfach vorschnell mit dem PR (der ist jetzt gelöscht).

@patrick-werner
Copy link
Contributor

@f-peverali
noch ein Hinweis zu named slicing: Pattern oder fixed values werden automatisch in Instanzen übernommen. Auf das obere Beispiel bezogen kann man dann den type weglassen, sushi setzt diesen dann beim Processen.

* identifier[Arztnummer].system = "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR"
* identifier[Arztnummer].value = "123456789"

@f-peverali f-peverali moved this from In Progress to In Review in ISiK/ISiP Project Board Nov 20, 2023
@github-project-automation github-project-automation bot moved this from In Review to Done in ISiK/ISiP Project Board Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
3 participants