Skip to content

Commit

Permalink
update after review
Browse files Browse the repository at this point in the history
  • Loading branch information
f-peverali committed Mar 19, 2024
1 parent c042246 commit aa478c2
Show file tree
Hide file tree
Showing 7 changed files with 129 additions and 33 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
### Anmerkungen zu Must-Support-Feldern
Siehe zu den Must-Support-Feldern die entsprechenden Comments im Profil (ggf. für Subelemente).

<fql output = "table" headers="true">

from
StructureDefinition
where
url = %canonical
for
differential.element
where
mustSupport = true
select Feldname: id, Kurzbeschreibung: short, Hinweise: comment
</fql>


---
32 changes: 32 additions & 0 deletions ImplementationGuide/markdown/Organisation/Organisation_Profil.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,22 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKOrganisation' for differential.element.constraint select key, severity, human, expression```
**Terminology Bindings**
@```
from StructureDefinition
where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKOrganisation' )
for differential.element
select
Path: path,
join binding.where(valueSet.exists())
{
Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))),
Strength: strength,
URL: valueSet
}
```

---

Das Profil ISiKOrganisationFachabteilung soll eine einzelne Fachabteilung abbilden:
Expand All @@ -25,4 +41,20 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKOrganisationFachabteilung' for differential.element.constraint select key, severity, human, expression```
**Terminology Bindings**
@```
from StructureDefinition
where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKOrganisationFachabteilung' )
for differential.element
select
Path: path,
join binding.where(valueSet.exists())
{
Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))),
Strength: strength,
URL: valueSet
}
```

---
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
### Anmerkungen zu Must-Support-Feldern

Siehe zu den Must-Support-Feldern die entsprechenden Comments im Profil (ggf. für Subelemente).
<fql output = "table" headers="true">

from
StructureDefinition
where
url = %canonical
for
differential.element
where
mustSupport = true
select Feldname: id, Kurzbeschreibung: short, Hinweise: comment
</fql>

---
48 changes: 47 additions & 1 deletion ImplementationGuide/markdown/Standort/Standort_Profil.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,22 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKStandort' for differential.element.constraint select key, severity, human, expression```
**Terminology Bindings**
@```
from StructureDefinition
where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKStandort' )
for differential.element
select
Path: path,
join binding.where(valueSet.exists())
{
Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))),
Strength: strength,
URL: valueSet
}
```

---

Folgendes Profil dient der Abbildung eines Raums:
Expand All @@ -24,6 +40,22 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/ISiKStandort' for differential.element.constraint select key, severity, human, expression```
**Terminology Bindings**
@```
from StructureDefinition
where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKStandortRaum' )
for differential.element
select
Path: path,
join binding.where(valueSet.exists())
{
Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))),
Strength: strength,
URL: valueSet
}
```

---

Folgendes Profil dient der Abbildung eines Bettenstellplatzes :
Expand All @@ -41,6 +73,20 @@ Folgende FHIRPath-Constraints sind im Profil zu beachten:
Ein einzelnes Bett als Gegenstand kann als FHIR-Ressource 'Device' abgebildet werden, das einen Bettenstellplatz referenziert.
---
**Terminology Bindings**
@```
from StructureDefinition
where url in ('https://gematik.de/fhir/isik/StructureDefinition/ISiKStandortBettenstellplatz' )
for differential.element
select
Path: path,
join binding.where(valueSet.exists())
{
Name: valueSet.substring((9 + valueSet.indexOf('ValueSet/'))),
Strength: strength,
URL: valueSet
}
```


49 changes: 21 additions & 28 deletions Resources/input/fsh/ISiKOrganisation.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,25 @@ Description: "Dieses Profil beschreibt die Organisationseinheit Fachabteilung in
* ^slicing.discriminator.path = "$this"
* ^slicing.rules = #open
* identifier contains
IKNR 0..1 MS and //TODO: zu prüfen, ob sinnvoll für Fachabteilung als Organisationseinheit eines Krankenhauses
BSNR 0..1 MS and //TODO: zu prüfen, ob sinnvoll für Fachabteilung als Organisationseinheit eines Krankenhauses
IKNR 0..1 MS and //Die Kardinalitätsfestlegung entspricht der Profil-Festlegung der VZD-FHIR-Directory Organisation-Ressource in der Version 0.10.2
BSNR 0..1 MS and //Die Kardinalitätsfestlegung entspricht der Profil-Festlegung der VZD-FHIR-Directory Organisation-Ressource in der Version 0.10.2
TelematikID 0..1 MS and
Abteilungsidentifikator 1..1 MS
/*
/* TODO: zu prüfen, ob sinnvoll zur Abdeckung gennanter UCs in ISiK
KIMAdresse 0..1 MS and
TIMAdresse 0..1 MS and
*/
* identifier[IKNR] only $identifier-iknr
* identifier[IKNR].type 0..1
* ^comment = "Motivation: Entsprechend der Vorgabe der KBV Organisation 1.5.0. (https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization), muss ein System ein Institutionskennzeichen (IKNR) verarbeiten können, sofern diese Information verfügbar ist. "
* ^comment = "Motivation: Entsprechend der Profil-Festlegung der KBV Organisation 1.5.0. (https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization), muss ein System ein Institutionskennzeichen (IKNR) verarbeiten können, sofern diese Information verfügbar ist. "
* identifier[BSNR] only $identifier-bsnr
* identifier[BSNR].type 0..1
* ^comment = "Motivation: Entsprechend der Bedarfsmeldung im Rahmen der Stakeholderbefragung zu einem Profil Organisation in der Arbeitsgruppe zum ISIK Basismodul Stufe 4 und der Vorgabe der KBV Organisation 1.5.0. (https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization), muss ein System eine Betriebsstättennummer (BSNR) verarbeiten können, sofern diese Information verfügbar ist."
* ^comment = "Motivation: Entsprechend der Profilierung im Rahmen der Stakeholderbefragung zu einem Profil Organisation in der Arbeitsgruppe zum ISIK Basismodul Stufe 4 und der Vorgabe der KBV Organisation 1.5.0. (https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization), muss ein System eine Betriebsstättennummer (BSNR) verarbeiten können, sofern diese Information verfügbar ist."
* identifier[TelematikID] only $identifer-TelematikID
* ^comment = "Motivation: Entsprechend der Profil-Festlegung der KBV Organisation 1.5.0. (https://fhir.kbv.de/StructureDefinition/KBV_PR_Base_Organization) und der VZD-FHIR-Directory Organisation-Ressource in der Version 0.10.2 (https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectory), muss ein System ein Institutionskennzeichen (IKNR) verarbeiten können, sofern diese Information verfügbar ist."
* identifier[Abteilungsidentifikator].system 1.. MS
* ^comment = "Motivation: Für IDs, die Krankhausintern spezifischen Fachabteilungen vergeben werden, ist diese Identifier zu nutzen - analog zu Slice Abteilungsidentifikator in https://simplifier.net/medizininformatikinitiative-modulstrukturdaten/mii_pr_struktur_abteilung."
/*
/* TODO s.o.
* identifier[KIMAdresse] only $GEM_PR_KIM_AdressIdentifier
* identifier[KIMAdresse].type 0..1
* identifier[KIMAdresse].type = https://gematik.de/fhir/directory/CodeSystem/EndpointDirectoryConnectionType#kim-2.0 (exactly)
Expand All @@ -43,13 +46,13 @@ Description: "Dieses Profil beschreibt die Organisationseinheit Fachabteilung in
* type ^slicing.ordered = false
* type contains
organisationstyp 1..1 MS and
fachabteilungsschluessel 0..1 MS
ErweiterterFachabteilungsschluessel 0..1 MS
* type[organisationstyp].coding = $organization_type#dept
* ^comment = "Motivation: Eine Fachabteilung muss als solche hinsichtlich des Typs kodiert werden."
* type[fachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
* type[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
* ^comment = "Motivation: Das ValueSet muss bindend sein, damit Systemübergreifend der Fachabteilungstyp einheitlich kodiert werden kann."
* type[fachabteilungsschluessel].coding.system 1.. MS
* type[fachabteilungsschluessel].coding.code 1.. MS
* type[ErweiterterFachabteilungsschluessel].coding.system 1.. MS
* type[ErweiterterFachabteilungsschluessel].coding.code 1.. MS
* name MS
* ^comment = "Motivation: Einer Organisation oder Organisationseinheit muss ein Name zugewiesen werden."
* alias MS
Expand All @@ -66,6 +69,7 @@ Description: "Dieses Profil beschreibt die Organisationseinheit Fachabteilung in
Postfach 0..* MS
* address[Postfach] only AddressDeBasis
* obeys address-cnt-2or3-char
* extension[Stadtteil] MS
* ^patternAddress.type = #postal
* type 1.. MS
* line 1.. MS
Expand Down Expand Up @@ -144,13 +148,13 @@ Description: "Dieses Profil beschreibt die Nutzung von Organisationseinheiten in
* type ^slicing.ordered = false
* type contains
organisationstyp 0..1 MS and
fachabteilungsschluessel 0..1 MS
ErweiterterFachabteilungsschluessel 0..1 MS
* type[organisationstyp] from $organization_type (extensible)
* type[organisationstyp].coding.system 1.. MS
* type[organisationstyp].coding.code 1.. MS
* type[fachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
* type[fachabteilungsschluessel].coding.system 1.. MS
* type[fachabteilungsschluessel].coding.code 1.. MS
* type[ErweiterterFachabteilungsschluessel] from $FachabteilungsschluesselErweitertCS (required)
* type[ErweiterterFachabteilungsschluessel].coding.system 1.. MS
* type[ErweiterterFachabteilungsschluessel].coding.code 1.. MS
* name MS
* ^comment = "Motivation: Ein System muss den Namen einer Organisation zum Abruf bereitstellen, sofern diese Information verfügbar ist.."
* alias MS
Expand All @@ -167,6 +171,7 @@ Description: "Dieses Profil beschreibt die Nutzung von Organisationseinheiten in
Postfach 0..* MS
* address[Postfach] only AddressDeBasis
* obeys address-cnt-2or3-char
* extension[Stadtteil] MS
* ^patternAddress.type = #postal
* type 1.. MS
* line 1.. MS
Expand Down Expand Up @@ -215,17 +220,5 @@ Usage: #example
* identifier[Abteilungsidentifikator].value = "123456"
* name = "Allgemeinchirurgie"
* type[organisationstyp].coding = $organization_type#dept
* type[fachabteilungsschluessel] = $FachabteilungsschluesselErweitertCS#1500 "Allgemeine Chirurgie"
* partOf = Reference(KrankenhausOrganisationBeispiel)

/*
Instance: StationAllgemeinchirurgieOrganisationBeispiel
InstanceOf: ISiKOrganisation
Usage: #example
* identifier[OrganisationseinheitenID].system = "https://fhir.krankenhaus.example/sid/OrgaID"
* identifier[OrganisationseinheitenID].value = "654321"
* name = "Station 1 Allgemeinchirurgie"
* type[organisationstyp] = $organization_type#dept //TODO eine Differenzierung zwischen Station und Abteilung ist mittel CS an dieser Stelle nicht möglich; ggf. mittels wa|"Ward" aus LocationPhysicalType?
* type[fachabteilungsschluessel] = $FachabteilungsschluesselErweitertCS#1500 "Allgemeine Chirurgie"
* partOf = Reference(AbteilungAllgemeinchirurgieOrganisationBeispiel)
*/
* type[ErweiterterFachabteilungsschluessel] = $FachabteilungsschluesselErweitertCS#1500 "Allgemeine Chirurgie"
* partOf = Reference(KrankenhausOrganisationBeispiel)
4 changes: 2 additions & 2 deletions Resources/input/fsh/ISiKStandort.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Description: "Dieses Profil dient der strukturierten Erfassung von Standortangab
* name MS //Motivation: Kein Name zwingend notwendig (z.B. für ein Zimmer), wenn über .identifier identifizierbar; weicht daher ab von https://simplifier.net/medizininformatikinitiative-modulstrukturdaten/sd_mii_struktur_location
* mode MS //Motivation: entspricht https://simplifier.net/medizininformatikinitiative-modulstrukturdaten/sd_mii_struktur_location
* ^patternCodeableConcept.coding = $LocationMode#instance
* type MS
* type MS
* ^comment = "Motivation: Ein System muss den Typ eines Standorts zum Abruf bereitstellen, sofern diese Information verfügbar ist."
* address MS
* address only AddressDeBasis
Expand All @@ -19,7 +19,7 @@ Description: "Dieses Profil dient der strukturierten Erfassung von Standortangab
* partOf MS
* ^comment = "Motivation: Ein System muss die organisationale Zugehörigkeit eines Standorts zum Abruf bereitstellen, sofern diese Information verfügbar ist."
* hoursOfOperation MS
// * ^comment = "Motivation: Ein System muss die Betriebszeiten eines Standorts zum Abruf bereitstellen, sofern diese Information verfügbar ist."
* ^comment = "Motivation: Ein System muss die Betriebszeiten eines Standorts zum Abruf bereitstellen, sofern diese Information verfügbar ist."

Profile: ISiKStandortRaum
Parent: ISiKStandort
Expand Down
1 change: 1 addition & 0 deletions Resources/input/fsh/aliases.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,5 @@ Alias: $GEM_PR_KIM_AdressIdentifier = https://gematik.de/fhir/atf/StructureDefin
Alias: $GEM_PR_TIM_AdressIdentifier = https://gematik.de/fhir/atf/StructureDefinition/identifier-address-tim
Alias: $identifier-iknr = http://fhir.de/StructureDefinition/identifier-iknr
Alias: $identifier-bsnr = http://fhir.de/StructureDefinition/identifier-bsnr
Alias: $identifer-TelematikID = http://fhir.de/StructureDefinition/identifier-telematik-id
Alias: $organization_type = http://terminology.hl7.org/CodeSystem/organization-type

0 comments on commit aa478c2

Please sign in to comment.