Skip to content

Commit

Permalink
Updated CI/CD and QC rules
Browse files Browse the repository at this point in the history
  • Loading branch information
julsas committed Dec 22, 2023
1 parent 464fec1 commit ed632f4
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 22 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# This is a basic workflow to help you get started with Actions

name: CI (FHIR Validation)

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:

# Validate all resources using Firely Terminal
CI_FHIR_VALIDATION:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:

- name: Checkout code
uses: actions/checkout@v3

# Java and .NET are already installed on ubuntu-latest

- name: Firely.Terminal (GitHub Actions)
uses: FirelyTeam/[email protected]
with:
PATH_TO_CONFORMANCE_RESOURCES: fsh-generated/resources
PATH_TO_EXAMPLES: fsh-generated/resources
PATH_TO_QUALITY_CONTROL_RULES: qc/custom
DOTNET_VALIDATION_ENABLED: true
JAVA_VALIDATION_ENABLED: true
EXPECTED_FAILS: VALIDATION_CONFORMANCE_DOTNET VALIDATION_CONFORMANCE_JAVA VALIDATION_EXAMPLES_JAVA
OUTPUT_FORMAT: RAW
JAVA_VALIDATION_OPTIONS: -allow-example-urls true -tx n/a
SIMPLIFIER_USERNAME: ${{ secrets.SIMPLIFIER_USERNAME }}
SIMPLIFIER_PASSWORD: ${{ secrets.SIMPLIFIER_PASSWORD }}
JAVA_VALIDATOR_VERSION: 6.2.3
21 changes: 0 additions & 21 deletions .github/workflows/validate-profiles.yaml

This file was deleted.

11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
# MII Kerndatensatz Modul Onkologie

### Übersicht

[![FHIR Project on GitHub.com](https://img.shields.io/badge/FHIR_project_on_GitHub.com-kerndatensatzmodul--onkologie-green)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie)

[![CI (FHIR Validation)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/main.yml/badge.svg)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/main.yml)

Das vorliegende Projekt beschreibt die FHIR-Spezifikation des Basismoduls 'Onkologie'. Die hier veröffentlichten FHIR-Profile und ImplemenationGuides dienen als zentrale und verbindliche Spezifikation für die syntaktische und semantische Kodierung der Modulinhalte.

---

[![FHIR Profiles](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/build-profiles.yaml/badge.svg)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/build-profiles.yaml)
[![FHIR Validator](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/validate-profiles.yaml/badge.svg)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/validate-profiles.yaml)
[![IG Publisher](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/build-ig.yml/badge.svg)](https://github.com/medizininformatik-initiative/kerndatensatzmodul-onkologie/actions/workflows/build-ig.yml)

## Profiling
Expand Down
74 changes: 74 additions & 0 deletions qc/custom.rules.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# This is the minimal rule series
# removed 'action: unique' due to multiple versions of OPS CodeSystem

- action: parse
name: parse-fhir-resources
status: "Checking if all FHIR Resource files can be parsed"
files:
- /**/*.xml
- /**/*.json
- "!package.json"
- "!fhirpkg.lock.json"

- name: resource-validation
status: "Validating resources against the FHIR standard and their profiles"
action: validate
category: Resource
suppress:
- 6005
- eld-16

- name: version-filled
filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists()
# Excluding NamingSystem as they have no version
status: "Checking if all resources have version filled"
predicate: version.exists() and (version in ('2024.0.0') or version in ('2024.0.0-ballot'))
error-message: "version not filled (correctly)"
files:
- /**/*.xml
- /**/*.json
- "!package.json"

- action: Check for valid ids
# See https://github.com/FirelyTeam/firely-net-sdk/issues/1773
predicate: id.matches('^[A-Za-z0-9\\-\\.]{1,64}$')
error: The resource must have a valid id

- name: naming-convention-id
status: "Checking if all resource ids follow the naming convention"
predicate: id.matches('^mii-(pr|ex|lm|vs|cs|cm|sm|ns|sp|cps|od|ig|exa)-onko')
error-message: "resource id naming convention mismatch"
files:
- /**/*.xml
- /**/*.json
- "!package.json"

- name: naming-convention-name
filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists()
status: "Checking if all resource names follow the naming convention"
predicate: name.exists() implies name.matches('^MII_(PR|EX|LM|VS|CS|CM|SM|NS|SP|CPS|OD|IG|EXA)_Onko')
error-message: "resource name naming convention mismatch"
files:
- /**/*.xml
- /**/*.json
- "!package.json"

- name: naming-convention-title
filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists()
status: "Checking if all resource titles follow the naming convention"
predicate: title.exists() implies title.matches('^MII (PR|EX|LM|VS|CS|CM|SM|NS|SP|CPS|OD|IG|EXA) Onko')
error-message: "resource name naming convention mismatch"
files:
- /**/*.xml
- /**/*.json
- "!package.json"

- name: naming-convention-url
filter: (StructureDefinition or ValueSet or CodeSystem or ConceptMap or StructureMap or NamingSystem or SearchParameter or CapabilityStatement or OperationDefinition or ImplementationGuide).exists()
status: "Checking if all resource urls follow the naming convention"
predicate: url.exists() implies url.matches('^https://www.medizininformatik-initiative.de/fhir/core/modul-onko/')
error-message: "resource url naming convention mismatch"
files:
- /**/*.xml
- /**/*.json
- "!package.json"

0 comments on commit ed632f4

Please sign in to comment.