diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..987fa18 --- /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 0000000..7b15112 --- /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 0000000..8072f95 --- /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 0000000..e7af109 --- /dev/null +++ b/.github/workflows/RenderAllDiagrams.yml @@ -0,0 +1,97 @@ +name: Render All Diagrams + +on: + push: + paths: + - '**/Material/imgsrc/**/*.puml' + - '**/Material/imgsrc/**/*.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=ImplementationGuide/images/diagrams + mkdir -p $img_dir + rm -rf ImplementationGuide/images/diagrams/*.svg + + # Generate the SVGs from PUML + - name: Render PUML to SVG and Move files + run: | + FileNamePaths=$(find . -path "*/imgsrc/*/*.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 + + # Generate the SVGs from DrawIO + - name: Render DrawIO to SVG with predefined action + uses: rlespinasse/drawio-export-action@v2 + with: + path: ./Material/imgsrc/drawio/ + remove-page-suffix: true + output: . + format: svg + action-mode: all + + # copies the created png & svg files to the images/diagrams folder and deletes the drawio files + - name: Move SVGs to target image folder + run: | + img_dir=ImplementationGuide/images/diagrams + # Find all unique directories containing *.svg files under any /imgsrc/ folder + FileNamePaths=$(find . -path "*/imgsrc/*/*.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/ImplementationGuide/images/diagrams/Klassendiagramm.svg b/ImplementationGuide/images/diagrams/Klassendiagramm.svg new file mode 100644 index 0000000..46c555c --- /dev/null +++ b/ImplementationGuide/images/diagrams/Klassendiagramm.svg @@ -0,0 +1,3 @@ + + +Medikations-Liste...
...
...
Patient......Medikament...
...
...
0..*1..*
enthält
enthält
Medikations-Information......0..*1
bezieht sich auf
bezieht sich auf
Medikations-Verordnung......Medikations-Verabreichung......0..*1
bezieht sich auf
bezieht sich auf
0..*1
bezieht sich auf
bezieht sich auf
0..*1
gilt für
gilt für
0..*1
gilt für
gilt für
0..*1
gilt für
gilt für
0..*1
gilt für
gilt für
Weitere Datenobjekte (z.B. Organisationen, Fachpersonen, Aufenthalte) sind hier zur besseren Übersichtlichkeit nicht dargestellt.
Weitere Datenobjekte (z.B. Organisationen, Fachpersonen, Aufenthalte) sind hier zur besseren Übersichtlichkeit nicht dargeste...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/Material/Akteure und Use Cases.odp b/Material/docs/Akteure und Use Cases.odp similarity index 100% rename from Material/Akteure und Use Cases.odp rename to Material/docs/Akteure und Use Cases.odp diff --git a/Material/Medikation Abgleich bestehende Spezifikationen.ods b/Material/docs/Medikation Abgleich bestehende Spezifikationen.ods similarity index 100% rename from Material/Medikation Abgleich bestehende Spezifikationen.ods rename to Material/docs/Medikation Abgleich bestehende Spezifikationen.ods diff --git a/Material/Klassendiagramm.drawio b/Material/imgsrc/drawio/Klassendiagramm.drawio similarity index 100% rename from Material/Klassendiagramm.drawio rename to Material/imgsrc/drawio/Klassendiagramm.drawio diff --git a/plantuml.jar b/plantuml.jar new file mode 100644 index 0000000..a532c84 Binary files /dev/null and b/plantuml.jar differ