Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…modul into TC_3.0.3
  • Loading branch information
f-peverali committed Jan 15, 2024
2 parents bf42f66 + 256dc44 commit 09354e5
Show file tree
Hide file tree
Showing 26 changed files with 341 additions and 16 deletions.
59 changes: 59 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -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" ]
9 changes: 9 additions & 0 deletions .devcontainer/codfsh-config.yaml
Original file line number Diff line number Diff line change
@@ -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
34 changes: 34 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -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"
}
102 changes: 102 additions & 0 deletions .github/workflows/RenderAllDiagrams.yml
Original file line number Diff line number Diff line change
@@ -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: [email protected]
commit_message: auto-generated diagrams by GitHub Action after source code change
14 changes: 10 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -46,4 +49,7 @@ jobs:
- name: Add & Commit
uses: EndBug/add-and-commit@v7
with:
committer_name: GitHub Actions Bot
committer_email: [email protected]
add: 'Resources/fsh-generated/resources/'
message: auto-generated FHIR files by GitHub Actions (CI FSH to FHIR Validation)
Original file line number Diff line number Diff line change
Expand Up @@ -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.*
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Basismodul/main-isik-stufe-3/Material/images/diagrams/Composition_Bundle.svg" alt="Composition Bundle" width="90%"/>

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

Expand Down
3 changes: 1 addition & 2 deletions ImplementationGuide/markdown/Datenobjekte/Datenobjekte.md
Original file line number Diff line number Diff line change
Expand Up @@ -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*
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Basismodul/main-isik-stufe-3/Material/images/diagrams/Vereinfachtes_Infomodell.svg" alt="Vereinfachtes Infomodell" width="90%"/>
2 changes: 1 addition & 1 deletion ImplementationGuide/markdown/Einfuehrung.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Basismodul/master-isik-stufe-2/Material/Gematik_Logo_Flag.png" alt="gematik logo" width="400"/>
<img src="https://raw.githubusercontent.com/gematik/spec-ISiK-Basismodul/main-isik-stufe-3/Material/images/Gematik_Logo_Flag.svg" alt="gematik logo" width="400"/>

----
Version: 3.0.2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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}}

---

Expand All @@ -43,15 +43,15 @@ 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}}

---

#### Der Begriff "Fall" im Kontext der ISiK-Spezifikation

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.

Expand All @@ -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}}

---

Expand All @@ -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}}

---
Binary file removed Material/Darstellung_Composition_verarbeiten.docx
Binary file not shown.
Binary file removed Material/Gematik_Logo_Flag.png
Binary file not shown.
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
40 changes: 40 additions & 0 deletions Material/images/Gematik_Logo_Flag.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Loading

0 comments on commit 09354e5

Please sign in to comment.