Skip to content

Commit

Permalink
Update UML pages, Splitting up Meta and Report into two pages
Browse files Browse the repository at this point in the history
  • Loading branch information
lucscherer committed Nov 4, 2024
1 parent a57c812 commit 9241deb
Show file tree
Hide file tree
Showing 10 changed files with 183 additions and 34 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
parent:
---
### UML
Als abstraktere Version eines Informationsmodells und zur besseren Verdeutlichung von Beziehungen der fachlichen Konzepte untereinander wurde aufbauend auf den Spezifikationen in ART-DECOR ein UML-Klassendiagramm erstellt. In ART-DECOR als Gruppen abgebildete Konzepte werden als eigene Klassen modelliert, die hier Assoziationsbeziehungen zueinander haben. Dieses logische Modell dient nur zur Abbildung der Datenelemente und deren Beschreibungen. Verwendete Datentypen und Kardinalitäten sind nicht als verpflichtend anzusehen. Dies wird abschließend durch die FHIR Profile festgelegt. Die Zuordnung der FHIR-Elemente zur ART-DECOR-Spezifikation wird im Kommentar-Feld im ART-DECOR beschrieben. Es wurde bewusst eine möglichst generische Abbildung der radiologischen Befundung gewählt, um hier ein breites Spektrum von Befundungsrichtlinien und -Templates abbilden zu können. Damit die Struktur leichter nachvollzogen werden kann, gibt es zusätzlich zum vollständigen UML noch zwei Seiten, die die Teile Metadaten und Befund gesondert betrachten.

Zur besseren Lesbarkeit des vollständigen UML, findet dises sich [hier](https://simplifier.net/medizininformatik-initiative-modul-bildgebung/guides-implementationguide-common-images-uml-befund-bildgebung)

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Befund_Bildgebung.png}}


Die abstrakte Darstellung des UMLs zeigt das Modul rein auf Klassenebene mit dem Fokus auf die Assoziationsbeziehungen untereinander:

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Modul_Bildgebung_Simple.png}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
parent:
---
### UML Befund
Damit das Modul mit seinen zwei Abschnitten übersichtlicher und verständlicher bleibt, wird hier das vollständige UML nochmal unterteilt in die Abschnitte Metadaten und Befunde. In diesem Abschnitt hier wird auf das Thema Befund eingegangen.

Der Abschnitt Befund kann, je nach Datenlage, in drei verschiedenen Varianten umgesetzt werden.

#### Variante 1: vollstrukturierte Befunde

Diese Variante kann gewählt werden, wenn es vollstrukturierte Befunden in den vorhandenen Daten gibt. Beispiel wären hier die Templates von der DRG.

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Befund_strukturiert.png}}

#### Variante 2: semistrukturierte Befunde

Diese Variante kann gewählt werden, wenn es Befunde in den Daten gibt, die zum Beispiel schon in Kapitel strukturiert wurden.

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Befund_semistrukturiert.png}}

#### Variante 3: Freitextbefunde

Diese Variante kann gewählt werden, wenn die Daten rein in Freitext unstrukturiert vorliegen.

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Befund_freitext.png}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
parent:
---
### UML Metadaten
Damit das Modul mit seinen zwei Abschnitten übersichtlicher und verständlicher bleibt, wird hier das vollständige UML nochmal unterteilt in die Abschnitte Metadaten und Befunde. In diesem Abschnitt hier wird auf das Thema Metadaten eingegangen.

Hier geht es hauptsächlich um die Erfassung der DICOM-Metadaten, die in einer FHIR ImagingStudy dargestellt werden. Ergänzt wird sie durch modalitätsspezifische Erweiterungen, die zusätzlich relevante Daten erfassen.

{{render:implementation-guides/ImplementationGuide-Common/images/UML_Metadaten.png}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
- name: Index
filename: Index.page.md
- name: UML Metadaten
filename: UML_Meta.page.md
- name: UML Befund
filename: UML_Befund.page.md

Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
- name: Datensätze inkl. Beschreibungen
filename: Datensaetze_inkl._Beschreibungen.page.md
- name: UML
filename: UML.page.md
filename: UML
123 changes: 123 additions & 0 deletions plantUmlSrc/UML Metadaten.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
@startuml UML Modul Bildgebung
skinparam Linetype ortho
skinparam Nodesep 150
skinparam Ranksep 80
skinparam legendBackgroundColor #white

package "DICOM-Header" {
class Studie <<ImagingStudy>> #LightCyan {
+ Status: Coding [1..1]
+ Modalitäten: Coding [0..*]
+ {field} Personen-Identifikation: Reference(Patient) [1..1]
+ {field} Versorgungsstellenkontakt: Reference(Encounter) [0..1]
+ Beginn: dateTime [0..1]
+ {field} Anfordernde Maßnahme: Reference(ServiceRequest) [0..*]
+ {field} Quelle zum PACS Bild: Reference(Endpoint) [0..*]
+ Anzahl an enhaltenen Serien: unsignedInt [0..1]
+ Anzahl an enthaltenen SOP Instanzen: unsignedInt [0..1]
+ {field} Bildgebungsprozedur: Reference(Procedure) [0..*]
+ Extension: Bildgebungsgrund: string [0..1]
+ {field} Indikation: Reference(Condition|Observation) [0..*]
+ Studien-Beschreibung: string [0..1]
+ DICOM-Serien: DICOM-Serie [0..*]
}

class DICOMSerie {
+ Serien-UID: id [1..1]
+ Serien-Nummer: unsignedInt [0..1]
+ Modalität: Coding [1..1]
+ Serienbeschreibung: string [0..1]
+ Anzahl an in Serie enthaltenen Instanzen: unsignedInt [0..1]
+ {field} Körperregion(bodySite): Coding [0..1]
+ Körperseite: Coding [0..1]
+ Beginn: dateTime [0..1]
+ Funktion des Ausführenden: CodeableConcept [0..1]
+ {field} Akteur: Reference(Device) [1..1]
+ Extension: Kontrastmittelgabe: boolean [0..1]
+ {field} Extension: Kontrastmitteldetails: Reference(MII_PR_Medikation_MedicationStatement) [0..*]
+ {field} Extension: Modalitäten(DX,CR,MG,CT,MR,PT,NM) [0..1]
+ DICOM-Instanzen: Instance [0..*]
}

class DICOMInstanz {
+ SOP-Instanz UID: id [1..1]
+ SOP-Klasse: Coding [1..1]
+ Instanz-Nummer: unsignedInt [0..1]
+ Titel: String [0..1]
+ Extension: Bildtyp: string [0..1]
+ Extension: Schichtdicke: Quantity[mm] [0..1]
+ {field} Extension: Pixelabstand(x): Quantity[mm] [0..1]
+ {field} Extension: Pixelabstand(y): Quantity[mm] [0..1]
}

class ModalitätMR #LightYellow {
+ Scansequenz: CodeableConcept [0..1]
+ Scansequenz Untervariante: CodeableConcept [0..1]
+ Magnetische Feldstärke: Quantity[T] [0..1]
+ {field} Echozeit (TE): Quantity[ms] [0..1]
+ {field} Repetitionszeit (TR): Quantity[ms] [0..1]
+ {field} Inversionszeit (TI): Quantity[ms] [0..1]
+ Kippwinkel: Quantity[deg] [0..1]
}

class ModalitätCT #LightYellow {
+ CTDI Volumen: Quantity[mGy] [0..1]
+ KVP: Quantity[kV] [0..1]
+ Expositionszeit: Quantity[ms] [0..1]
+ Exposition: Quantity[mAs] [0..1]
+ Röntgenröhrenstrom: Quantity[mA] [0..1]
}

class ModalitätDX #LightYellow {
+ KVP: Quantity[kV] [0..1]
+ Expositionszeit: Quantity[ms] [0..1]
+ Exposition: Quantity[mAs] [0..1]
+ Röntgenröhrenstrom: Quantity[mA] [0..1]
}

class ModalitätCR #LightYellow {
+ KVP: Quantity[kV] [0..1]
+ Expositionszeit: Quantity[ms] [0..1]
+ Exposition: Quantity[mAs] [0..1]
+ Röntgenröhrenstrom: Quantity[mA] [0..1]
}

class ModalitätMG #LightYellow {
+ KVP: Quantity[kV] [0..1]
+ Expositionszeit: Quantity[ms] [0..1]
+ Exposition: Quantity[mAs] [0..1]
+ Röntgenröhrenstrom: Quantity[mA] [0..1]
+ Blickposition: CodeableConcept [0..1]
}

class ModalitätNM #LightYellow {
+ Radiopharmakon: CodeableConcept [0..1]
+ Radionuklid: CodeableConcept [0..1]
+ Tracer Expositionszeit: Quantity[s] [0..1]
+ Skalierungseinheit: CodeableConcept [0..1]
+ Gesamte Radionukliddosis: Quantity[MBq] [0..1]
+ Halbwertszeit: Quantity[s] [0..1]
}

class ModalitätPT #LightYellow {
+ Radiopharmakon: CodeableConcept [0..1]
+ Radionuklid: CodeableConcept [0..1]
+ Tracer Expositionszeit: Quantity[s] [0..1]
+ Skalierungseinheit: CodeableConcept [0..1]
+ Gesamte Radionukliddosis: Quantity[MBq] [0..1]
+ Halbwertszeit: Quantity[s] [0..1]
+ Serientyp: String [0..1]
}
}

DICOMSerie "1..1" -r- "0..*" DICOMInstanz: ISt.series.instance
DICOMSerie "1..1" -u- "0..1" ModalitätMR
DICOMSerie "1..1" -d- "0..1" ModalitätCT
DICOMSerie "1..1" -d- "0..1" ModalitätDX
DICOMSerie "1..1" -d- "0..1" ModalitätCR
DICOMSerie "1..1" -d- "0..1" ModalitätMG
DICOMSerie "1..1" -u- "0..1" ModalitätNM
DICOMSerie "1..1" -u- "0..1" ModalitätPT

Studie "1..1" -r- "0..*" DICOMSerie: ISt.series
@enduml
6 changes: 3 additions & 3 deletions plantUmlSrc/UML Modul Bildgebung.plantuml
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ package "DICOM-Header" {
}

class ModalitätMR #LightYellow {
+ Scanning Sequenz: string [0..1]
+ Scanning Sequenz Untervariante: string [0..1]
+ Scanning Sequenz: CodeableConcept [0..1]
+ Scanning Sequenz Untervariante: CodeableConcept [0..1]
+ Magnetische Feldstärke: Quantity[T] [0..1]
+ Echozeit (TE): Quantity[ms] [0..1]
+ Repetitionszeit (TR): Quantity[ms] [0..1]
Expand Down Expand Up @@ -114,7 +114,7 @@ package "DICOM-Header" {
class Anforderung <<ServiceRequest>> {
+ Status: Coding [1..1]
+ Anforderungsabsicht: Coding [1..1]
+ Anforderungsklassifizierung: [1..*]
+ Anforderungsklassifizierung: CodeableConcept [1..*]
+ Art der Anfrage: CodeableConcept [0..1]
+ {field} Personen-Identifikation: Reference(Patient) [1..1]
+ {field} Versorgungsstellenkontakt: Reference(Encounter) [0..1]
Expand Down

0 comments on commit 9241deb

Please sign in to comment.