Skip to content

Commit

Permalink
progress on infomodel
Browse files Browse the repository at this point in the history
  • Loading branch information
MaxMTheilig committed Jan 17, 2024
1 parent cb2f66d commit 42cebbe
Show file tree
Hide file tree
Showing 2 changed files with 222 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Allgemeine Beschreibung zu Abhängikeiten

# Informationsmodell
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Medikation/rc/main-stufe-4/Material/images/diagrams/infomodell.svg" alt="Use Case Diagrams" width="90%"/>
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Medikation/rc/main-stufe-4/Material/images/diagrams/infomodell.svg" alt="Informationsmodell" width="90%"/>
284 changes: 221 additions & 63 deletions Material/images/src/plantuml/infomodell.puml
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
@startuml

' verhindere Probleme mit gewinkelten Krähenfüßen
skinparam linetype ortho

@startuml dummy
' package Dummy{
' entity Entität01 {
' optionales Attribut
Expand All @@ -20,68 +16,230 @@ skinparam linetype ortho
' Entität05 ||--o{ Entität06
' Entität07 |o--|| Entität08
' }

' TODO:
' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx
@enduml

package ISiK-Medikation {
class ISiKMedikation <Medication><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationsInformation <MedicationStatement><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationsListe <List><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationsVerabreichung <MedicationAdministration><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationsVerordnung <MedicationRequest><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationTransaction <Bundle><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationTransactionResponse <Bundle><<(P,#8DA5C4)>>{
id
identifier
}
}
package "hl7.fhir.r4.core" {
class Bundle <<(P,#FFAAAA)>>{
id
identifier
--
--
...
struct e {
eintrag }
}
class List <<(P,#FFAAAA)>>{
id
identifier
--
--
...
}

' TODO:
' Vervollständigen im Sinne von: https://github.com/gematik/spec-ISiK-Medikation/blob/rc/main-stufe-4/Material/docs/Medikation%20Abgleich%20bestehende%20Spezifikationen.xlsx

@startuml infomodell
'verhindere Probleme mit gewinkelten Krähenfüßen
'skinparam linetype ortho
namespace ISiK_Medikation {
class ISiKMedikation <Medication><<(P,#8DA5C4)>>{
id
identifier
code
--code.coding.--
PZN : **Pattern**
ATC-DE : **Pattern**
WG14 : **Pattern**
--
...
manufacturer : Reference (**Organization**)
form
--form.coding.--
EDQM : **Binding**
--
amount
--ingredient.--
extension : **Wirkstofftyp**
..ingredient.item[x]...
itemCodeableConcept
itemReference (**Substance** | **Medication**)
..
isActive
strength
--batch.--
lotNumber
expirationDate
--
}
'ISiKMedikation::itemReference --> ISiKMedikation

class ISiKMedikationsInformation <MedicationStatement><<(P,#8DA5C4)>>{
id
identifier
basedOn : Reference(**MedicationRequest** | CarePlan | ServiceRequest)
partOf : Reference(**MedicationAdministration** | **MedicationDispense** |\n **MedicationStatement** | **Procedure** | Observation)
...
medication[x] S Σ 1..1
subject S Σ I 1..1 Reference(Patient)
context S Σ I 0..1 Reference(Encounter | EpisodeOfCare)
effective[x] S Σ 1..1
dateAsserted S Σ 0..1 dateTime
informationSource I 0..1 Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
derivedFrom I 0..* Reference(Resource)
reasonCode S 0..* CodeableConcept
reasonReference S I 0..* Reference(**Condition** | Observation | DiagnosticReport)
note
--dosage.--
...
patientInstruction
timing
asNeeded
site
route
method
doseAndRate
maxDosePerPeriod
maxDosePerAdministration
maxDosePerLifetime
--
}
class ISiKMedikationsListe <List><<(P,#8DA5C4)>>{
id
identifier
status : ListStatus
mode : ListMode
title
code
subject : Reference (**Patient**)
encounter : Reference (**Encounter**)
source : Reference (**Practitioner** |\n PractitionerRole | **Patient** | Device)
...
--entry.--
flap
deleted
date
item : Reference (**MedicationStatement**)
--
emptyReason
}
ISiKMedikationsListe::item --> ISiKMedikationsInformation

class ISiKMedikationsVerabreichung <MedicationAdministration><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationsVerordnung <MedicationRequest><<(P,#8DA5C4)>>{
id
identifier
}
class ISiKMedikationTransaction <Bundle><<(P,#8DA5C4)>>{
identifier
type : BundleType.**Transaction**
...
--entry.--
<s>link</s>
fullUrl
resource
<s>search</s>
**request**
<s>response</s>
--
...
}
class ISiKMedikationTransactionResponse <Bundle><<(P,#8DA5C4)>>{
identifier
type : BundleType.**Response**
...
entry
--entry.--
<s>link</s>
fullURL
resource : Resource
<s>search</s>
<s>request</s>
**response**
--
...
}
}
package ISiK-Basis {
class ISiKPatient <Patient><<(P,#CCCCFF)>>{
id
identifier
--
--
...
namespace R4_Core_Foundation {
class R4_Core_Foundation <<(M,#FFAAAA)>>{
Dokumentation auf HL7 Org
[[https://hl7.org/fhir/R4/ HL7 FHIR R4 Core Foundation]]
}
class Bundle <<(P,#FFAAAA)>>{
Dokumentation [[https://hl7.org/fhir/R4/bundle.html R4 Bundle]]
--
identifier
type : BundleType
...
--entry.--
...
resource : Resource
..entry.search...
mode
score
..entry.request...
methode
url
ifNoneMatch
ifMatch
ifNoneExist
..entry.response...
status
location
etag
lastModified
outcome
--
signature
}
class List <<(P,#FFAAAA)>>{
Dokumentation [[https://hl7.org/fhir/R4/list.html R4 List]]
--
identifier
status : ListStatus
mode : ListMode
title
code
subject : Reference (Patient |\n Group | Device | Location)
encounter : Reference (Encounter)
source : Reference (Practitioner |\n PractitionerRole | Patient | Device)
...
--entry.--
flap
deleted
date
item : Reference(Any)
--
emptyReason
}
}
namespace ISiK_Basis {
class BasisModul_Stufe_3 <<(M,#FFDC36)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/~introduction ISiK Basis Stufe 3]]
}
class ISiKPatient <Patient><<(P,#8DA5C4)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/isikpatient ISiK Patient]]
}
class ISiKKontaktGesundheitseinrichtung <Encounter><<(P,#8DA5C4)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]]
}
class ISiKPractitioner <Practitioner><<(P,#8DA5C4)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]]
}
class ISiKDiagnose <Condition><<(P,#8DA5C4)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/isikdiagnose ISiK Diagnose]]
}
class ISiKProzedur <Procedure><<(P,#8DA5C4)>>{
Dokumentation auf Simplifier
[[https://simplifier.net/isik-basis-v3/isikprozedur ISiK Prozedur]]
}
}

'namespace dummy {
' class Foo {
' + field1
' + field2
' }
' class Bar {
' + field3
' + field4
' }
' Foo::field1 --> Bar::field3 : foo
' Foo::field2 --> Bar::field4 : bar
'}


'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient
'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle::identifier
'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle
@enduml

0 comments on commit 42cebbe

Please sign in to comment.