diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 00000000..987fa188
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,59 @@
+FROM mcr.microsoft.com/devcontainers/base:alpine-3.18
+
+# Setzen der Umgebungsvariablen
+ENV FIRELY_TERMINAL_VERSION=3.1.0
+ENV JAVA_VALIDATOR_VERSION=6.0.11
+ENV SUSHI_VERSION=3.5.0
+
+# Installieren der notwendige Tools
+# Add Microsoft's .NET SDK repository and install .NET SDK
+RUN wget https://dot.net/v1/dotnet-install.sh \
+ && chmod +x dotnet-install.sh \
+ && ./dotnet-install.sh --channel 6.0 --install-dir /usr/share/dotnet \
+ && ln -s /usr/share/dotnet/dotnet /usr/local/bin \
+ && rm dotnet-install.sh
+
+# Install ICU libraries
+RUN apk add --no-cache icu-libs
+
+# Install Node.js and npm
+RUN apk add --no-cache nodejs npm
+
+# Install Java (OpenJDK)
+RUN apk add --no-cache openjdk11
+
+# Install Firely Terminal as vscode user
+# Switch to the vscode user
+USER vscode
+
+# Install Firely Terminal
+RUN dotnet tool install --global Firely.Terminal --version $FIRELY_TERMINAL_VERSION
+
+# Add .NET tools to PATH for vscode user
+ENV PATH="/home/vscode/.dotnet/tools:${PATH}"
+
+# Switch back to root user to perform remaining installations
+USER root
+
+RUN npm install -g fsh-sushi@$SUSHI_VERSION
+
+# Installieren der zusätzliche Abhängigkeiten
+RUN apk update && apk add --no-cache jq findutils curl ca-certificates
+
+# Setup for FHIR Validator
+RUN mkdir -p /home/vscode/.fhir/validators/
+RUN wget -q https://github.com/hapifhir/org.hl7.fhir.core/releases/download/$JAVA_VALIDATOR_VERSION/validator_cli.jar -O /home/vscode/.fhir/validators/validator_cli.jar
+
+# Set ownership
+RUN mkdir -p /home/vscode/.fhir/packages && \
+ chown -R vscode:vscode /home/vscode/.fhir/packages
+
+RUN mkdir -p /home/vscode/.fhir/settings/
+COPY codfsh-config.yaml /home/vscode/.fhir/settings/codfsh-config.yaml
+
+# Setzen des Arbeitsverzeichnis
+WORKDIR /workspace
+
+COPY . /workspace
+
+CMD [ "/bin/bash" ]
diff --git a/.devcontainer/codfsh-config.yaml b/.devcontainer/codfsh-config.yaml
new file mode 100644
index 00000000..7b151129
--- /dev/null
+++ b/.devcontainer/codfsh-config.yaml
@@ -0,0 +1,9 @@
+sushi:
+ min_version: "3.5.0"
+hapi:
+ min_version: "3.0.0"
+ parameters:
+ jurisdiction: DE
+ locale: de-DE
+ tx: "n/a"
+ debug: true
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 00000000..8072f952
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,34 @@
+// For format details, see https://aka.ms/devcontainer.json. For config options, see the
+// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
+{
+ "name": "FHIR Development Container",
+ // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
+ "build": {
+ "dockerfile": "Dockerfile"
+ },
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ "gematikde.codfsh",
+ "MITRE-Health.vscode-language-fsh",
+ "ms-azuretools.vscode-docker"
+ ],
+ "settings": {
+ "codfsh.HapiValidator.Executable": "/home/vscode/.fhir/validators/validator_cli.jar",
+ "codfsh.HapiValidator.Settings.SettingsFile": "/home/vscode/.fhir/settings/codfsh-config.yaml"
+ }
+ }
+ }
+
+ // Features to add to the dev container. More info: https://containers.dev/features.
+ // "features": {},
+
+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
+ // "forwardPorts": [],
+
+ // Use 'postCreateCommand' to run commands after the container is created.
+ // "postCreateCommand": "uname -a",
+
+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+ // "remoteUser": "root"
+}
diff --git a/.github/workflows/RenderAllDiagrams.yml b/.github/workflows/RenderAllDiagrams.yml
new file mode 100644
index 00000000..ee949a78
--- /dev/null
+++ b/.github/workflows/RenderAllDiagrams.yml
@@ -0,0 +1,102 @@
+name: Render All Diagrams
+
+on:
+ push:
+ paths:
+ - '**/Material/images/src/**/*.puml'
+ - '**/Material/images/src/**/*.drawio'
+ branches-ignore:
+ - 'main**'
+
+ # Allows you to run this workflow manually from the Actions tab
+ workflow_dispatch:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ # Installs Java distribution for running the plantUML jar
+ - name: Install Java
+ uses: actions/setup-java@v3
+ with:
+ distribution: 'temurin'
+ java-version: '17'
+ check-latest: true
+
+ # Install graphviz for plantuml
+ - name: Setup Graphviz
+ uses: ts-graphviz/setup-graphviz@v1
+
+ # Download plantUML jar
+ - name: Download plantuml file
+ run: |
+ wget -O plantuml.jar "https://github.com/plantuml/plantuml/releases/latest/download/plantuml.jar"
+
+ # Clean Folder
+ - name: Ensure and clean folder
+ run: |
+ img_dir=Material/images/diagrams
+ mkdir -p $img_dir
+ rm -rf Material/images/diagrams/*.svg
+
+ # Generate the SVGs from PUML
+ - name: Render PUML to SVG and Move files
+ run: |
+ FileNamePaths=$(find . -path "*/images/src/*/*.puml" -exec dirname {} \; | sort -u)
+ for dir in $FileNamePaths
+ do
+ # Render SVGs from PUMLs
+ find $dir -name "*.puml" -exec java -jar plantuml.jar -tsvg {} \;
+ done
+
+ # Remove plantUML jar
+ - name: remove plantuml file
+ run: |
+ rm -f plantuml.jar
+
+ # Generate the SVGs from DrawIO
+ - name: Render DrawIO to SVG with predefined action
+ uses: rlespinasse/drawio-export-action@v2
+ with:
+ path: ./Material/images/src/drawio/
+ remove-page-suffix: true
+ output: .
+ format: svg
+ action-mode: all
+
+ # copies the created SVG files to the images/diagrams folder and deletes the drawio files
+ - name: Move SVGs to target image folder
+ run: |
+ img_dir=Material/images/diagrams
+ # Find all unique directories containing *.SVGs files under any /imgsrc/ folder
+ FileNamePaths=$(find . -path "*/images/src/*/*.svg" -exec dirname {} \; | sort -u)
+ for dir in $FileNamePaths
+ do
+ # Move SVGs to out directory
+ find $dir -name "*.svg" -exec mv {} $img_dir \;
+ done
+
+ ## add and commit the new generated files
+ #- name: Create Pull Request
+ # uses: peter-evans/create-pull-request@v5
+ # with:
+ # branch: auto/images-generation
+ # commit-message: Generated Images from source Code by GitHub Action
+ # title: Generated Images from GitHub Action
+ # assignees: ${{ github.actor }}
+ # reviewers: ${{ github.actor }}
+ # delete-branch: true
+ # labels: automated pr
+
+ - name: Commit rendered files
+ uses: stefanzweifel/git-auto-commit-action@v5
+ with:
+ commit_user_name: GitHub Actions Bot
+ commit_user_email: ActionBot@github.com
+ commit_message: auto-generated diagrams by GitHub Action after source code change
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d33d0d92..ceae92b3 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -4,12 +4,15 @@ name: CI (FHIR Validation)
# Controls when the action will run.
on:
- # Triggers the workflow on push or pull request events
+ # Triggers the workflow on push or pull request events but only for the master branch
push:
+ paths:
+ - 'Resources/**'
+ branches-ignore:
+ - 'main**'
pull_request:
-
- # Allows you to run this workflow manually from the Actions tab
- workflow_dispatch:
+ branches:
+ - 'main**'
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
@@ -46,4 +49,7 @@ jobs:
- name: Add & Commit
uses: EndBug/add-and-commit@v7
with:
+ committer_name: GitHub Actions Bot
+ committer_email: ActionBot@github.com
add: 'Resources/fsh-generated/resources/'
+ message: auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation)
diff --git a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md
index 47f876e7..04e2bcc1 100644
--- a/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md
+++ b/ImplementationGuide/markdown/BerichtSubsystem/BerichtSubsystem_Interaktionen.md
@@ -27,8 +27,9 @@ In der aktuellen Ausbaustufe von ISiK MUSS ein empfangenes Dokument in folgenden
4. Hinzufügen des Dokumentes und seiner Metadaten zur Fallakte des Patienten.
5. Visualisierung des Dokumentes und seiner Metadaten in der Fallakte des Patienten
-{{render:ImplementationGuide/Images/Composition-Bundle.png}}
-*Die Grafik zeigt an einem vereinfachten Beispiel die Zuordnung des HTML-Dokumentes zu Patient und Kontakt in der aktuellen Ausbaustufe von ISiK (schwarze Pfeile). Die grauen Pfeile deuten die Übernahme strukturierter Daten, wie sie in weiteren Ausbaustufen erforderlich wird.*
+
+
+Die Grafik zeigt an einem vereinfachten Beispiel die Zuordnung des HTML-Dokumentes zu Patient und Kontakt in der aktuellen Ausbaustufe von ISiK (schwarze Pfeile). Die grauen Pfeile deuten die Übernahme strukturierter Daten, wie sie in weiteren Ausbaustufen erforderlich wird.
### Hinweise zum Umgang mit der menschenlesbaren Repräsentation
diff --git a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md
index af7cc9eb..6b5151e0 100644
--- a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md
+++ b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md
@@ -2,5 +2,4 @@
In den folgenden Unterkapiteln werden die ISiK-Datenobjekte, die in dem vereinfachten Informationsmodell dargestellt sind, und ihre FHIR-Spezifikation beschrieben.
-{{render:ImplementationGuide/Images/Infomodel.png}}
-*Vereinfachtes Informationsmodell*
+
diff --git a/ImplementationGuide/markdown/Einfuehrung.md b/ImplementationGuide/markdown/Einfuehrung.md
index 2fb20db9..688772d8 100644
--- a/ImplementationGuide/markdown/Einfuehrung.md
+++ b/ImplementationGuide/markdown/Einfuehrung.md
@@ -1,4 +1,4 @@
-
+
----
Version: 3.0.2
diff --git a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md
index c45f72c2..1d1888aa 100644
--- a/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md
+++ b/ImplementationGuide/markdown/KontaktGesundheitseinrichtung/Kontakt_Motivation.md
@@ -21,11 +21,11 @@ Der stationäre Aufenthalt oder der ambulante Kontakt eines Patienten in einer G
* **Abrechnungsfall (Account):**
Der Fall, im Sinne einer Gruppierung von medizinischen Leistungen, die in einem gemeinsamen Kontext abgerechnet werden, sind in FHIR durch die Ressource Account repräsentiert. Ein Abrechnungsfall kann mehrere Encounter umfassen (z.B. vorstationärer Besuch, stationärer Aufenthalt und nachstationäre Besuche)
-{{render:ImplementationGuide/Images/Encounter-Modell-Abrechnung.png}}
+{{render:Material/Images/Encounter-Modell-Abrechnung.png}}
* **Medizinischer Fall (EpisodeOfCare):**
Der medizinische Fall gruppiert Informationen, die im Kontext einer gemeinsamen (Dauer-)Diagnose stehen und wird in FHIR durch die EpisodeOfCare dargestellt.
-{{render:ImplementationGuide/Images/Encounter-Modell-Medizinisch.png}}
+{{render:Material/Images/Encounter-Modell-Medizinisch.png}}
---
@@ -43,7 +43,7 @@ Als Kontakt des Patienten mit konkreten Servicestellen, wie z.B. Radiologie oder
Zur Unterscheidung der verschiedenen Kontaktebenen wird in der MI-I eine Codierung in `Encounter.type` verwendet. Die Hierarchie der Encounter wird über die `Encounter.partOf`-Relation hergestellt. Ambulante Besuche werden in dem Modell derzeit noch nicht berücksichtigt.
-{{render:ImplementationGuide/Images/Encounter-Modell-MII.png}}
+{{render:Material/Images/Encounter-Modell-MII.png}}
---
@@ -51,7 +51,7 @@ Zur Unterscheidung der verschiedenen Kontaktebenen wird in der MI-I eine Codieru
Für die Ausbaustufe 2 und 3 des ISiK Basismoduls werden alle zuvor genannten Sichtweise und Modelle berücksichtigt:
-{{render:ImplementationGuide/Images/Encounter-Modelle.png}}
+{{render:Material/Images/Encounter-Modelle.png}}
Verpflichtend umzusetzen ist für die bestätigungsrelevanten Systeme der Account, im Sinne der Gruppierung einzelner Besuche, zu einem gemeinsamen (Abrechnungs-)Fall sowie der Encounter der Ebene "Abteilungskontakt" im Sinne des Modells der Medizininformatikinitiative.
@@ -61,7 +61,7 @@ Wichtig sind dabei jedoch folgende Punkte zu beachten:
* Encounter im ISiK-Kontext sind stets als "Abteilungskontakte, im Sinne der MI-I mit dem entsprechenden `Encounter.type`-Code, zu kennzeichnen.
* jegliche im ISiK-Basis-Modul, als auch in anderen ISiK-Modulen definierte Ressourcen, die über einen Encounter-Kontext verfügen, müssen auf einen ISiK-Encounter (Abteilungskontakt) referenzieren.
-{{render:ImplementationGuide/Images/Encounter-Modell-ISiK.png}}
+{{render:Material/Images/Encounter-Modell-ISiK.png}}
---
@@ -78,8 +78,8 @@ Um insbesondere Subsysteme von der Pflicht zu entbinden, die Account-Ressource z
| Hinweis | Änderung gegenüber ISiK-Basis-Modul Stufe 1!|
|---------|---------------------|
-| {{render:ImplementationGuide-Images-ig-bilder-Warning}} | Die Abbildung der Fallnummer als Identifier des Accounts ist abweichend von der im Basismodul Stufe 1 festgelegten Abbildung der Fallnummer als Identifier des Encounters. Diese Änderung ist erforderlich, da die Fallnummer nicht geeignet ist, einen Encounter eindeutig zu identifizieren. Der Encounter kann weiterhin einen von der Abrechnungsfallnummer unabhänigen Identifier enthalten (z.B. "Aufnahmenummer", Bewegungsnummer). Dieser identifiziert eineindeutig den jeweiligen Kontakt.|
+| {{render:Material/Images/IG_Warning}} | Die Abbildung der Fallnummer als Identifier des Accounts ist abweichend von der im Basismodul Stufe 1 festgelegten Abbildung der Fallnummer als Identifier des Encounters. Diese Änderung ist erforderlich, da die Fallnummer nicht geeignet ist, einen Encounter eindeutig zu identifizieren. Der Encounter kann weiterhin einen von der Abrechnungsfallnummer unabhänigen Identifier enthalten (z.B. "Aufnahmenummer", Bewegungsnummer). Dieser identifiziert eineindeutig den jeweiligen Kontakt.|
-{{render:ImplementationGuide/Images/Encounter-Modell-Fallnummer.png}}
+{{render:Material/Images/Encounter-Modell-Fallnummer.png}}
---
diff --git a/Material/Darstellung_Composition_verarbeiten.docx b/Material/Darstellung_Composition_verarbeiten.docx
deleted file mode 100644
index 9ef98900..00000000
Binary files a/Material/Darstellung_Composition_verarbeiten.docx and /dev/null differ
diff --git a/Material/Gematik_Logo_Flag.png b/Material/Gematik_Logo_Flag.png
deleted file mode 100644
index fc27adee..00000000
Binary files a/Material/Gematik_Logo_Flag.png and /dev/null differ
diff --git a/ImplementationGuide/Images/Composition-Bundle.png b/Material/images/Composition-Bundle.png
similarity index 100%
rename from ImplementationGuide/Images/Composition-Bundle.png
rename to Material/images/Composition-Bundle.png
diff --git a/ImplementationGuide/Images/Encounter-Modell-Abrechnung.png b/Material/images/Encounter-Modell-Abrechnung.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modell-Abrechnung.png
rename to Material/images/Encounter-Modell-Abrechnung.png
diff --git a/ImplementationGuide/Images/Encounter-Modell-Fallnummer.png b/Material/images/Encounter-Modell-Fallnummer.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modell-Fallnummer.png
rename to Material/images/Encounter-Modell-Fallnummer.png
diff --git a/ImplementationGuide/Images/Encounter-Modell-ISiK.png b/Material/images/Encounter-Modell-ISiK.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modell-ISiK.png
rename to Material/images/Encounter-Modell-ISiK.png
diff --git a/ImplementationGuide/Images/Encounter-Modell-MII.png b/Material/images/Encounter-Modell-MII.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modell-MII.png
rename to Material/images/Encounter-Modell-MII.png
diff --git a/ImplementationGuide/Images/Encounter-Modell-Medizinisch.png b/Material/images/Encounter-Modell-Medizinisch.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modell-Medizinisch.png
rename to Material/images/Encounter-Modell-Medizinisch.png
diff --git a/ImplementationGuide/Images/Encounter-Modelle.png b/Material/images/Encounter-Modelle.png
similarity index 100%
rename from ImplementationGuide/Images/Encounter-Modelle.png
rename to Material/images/Encounter-Modelle.png
diff --git a/Material/images/Gematik_Logo_Flag.svg b/Material/images/Gematik_Logo_Flag.svg
new file mode 100644
index 00000000..20976701
--- /dev/null
+++ b/Material/images/Gematik_Logo_Flag.svg
@@ -0,0 +1,40 @@
+
+
+
diff --git a/ImplementationGuide/Images/ig_bilder_Warning.jpg b/Material/images/IG_Warning.jpg
similarity index 100%
rename from ImplementationGuide/Images/ig_bilder_Warning.jpg
rename to Material/images/IG_Warning.jpg
diff --git a/Material/images/diagrams/Composition_Bundle.svg b/Material/images/diagrams/Composition_Bundle.svg
new file mode 100644
index 00000000..3d60601e
--- /dev/null
+++ b/Material/images/diagrams/Composition_Bundle.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Material/ISiK Stufe 2 Vereinfachtes Infomodell.drawio.pdf b/Material/images/diagrams/ISiK Stufe 2 Vereinfachtes Infomodell.pdf
similarity index 100%
rename from Material/ISiK Stufe 2 Vereinfachtes Infomodell.drawio.pdf
rename to Material/images/diagrams/ISiK Stufe 2 Vereinfachtes Infomodell.pdf
diff --git a/ImplementationGuide/Images/Infomodel.png b/Material/images/diagrams/Infomodel.png
similarity index 100%
rename from ImplementationGuide/Images/Infomodel.png
rename to Material/images/diagrams/Infomodel.png
diff --git a/Material/images/diagrams/Vereinfachtes_Infomodell.svg b/Material/images/diagrams/Vereinfachtes_Infomodell.svg
new file mode 100644
index 00000000..7ce36884
--- /dev/null
+++ b/Material/images/diagrams/Vereinfachtes_Infomodell.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/Material/images/src/drawio/Composition_Bundle.drawio b/Material/images/src/drawio/Composition_Bundle.drawio
new file mode 100644
index 00000000..557f2acc
--- /dev/null
+++ b/Material/images/src/drawio/Composition_Bundle.drawio
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Material/ISiK Stufe 2 Vereinfachtes Infomodell.drawio b/Material/images/src/drawio/Vereinfachtes_Infomodell.drawio
similarity index 100%
rename from Material/ISiK Stufe 2 Vereinfachtes Infomodell.drawio
rename to Material/images/src/drawio/Vereinfachtes_Infomodell.drawio