Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ziegm authored Jun 14, 2023
0 parents commit 6477e45
Show file tree
Hide file tree
Showing 20 changed files with 418 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# temporary folders
input-cache/**
output/**
temp/**
template/**
fsh-generated/**

# jar files
*.jar

# editing files and folders
.vscode/**

# publication folder
www/*
!www/package-list.json
!www/publish.ini
117 changes: 117 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
# Template for HL7 Switzerland FHIR Implementation Guide
This is a template for creating a [HL7 Switzerland](https://www.hl7.ch/) FHIR implementation guide ([CI Build](http://build.fhir.org/ig/ahdis/ch-ig/branches/master/index.html)). Sample resources are integrated as fsh files (`ch-ig\input\fsh`) (also including non-fsh files).
This *CH IG* implementation guide is dependent on CH Core (and therefore also on CH EPR Term), which describe the Swiss specific context, especially related to the Swiss electronic patient record. If this dependency cannot be used, it can be removed.

**FSH (FHIR Shorthand)**
To set up a FHIR Shorthand (FSH) implementation guide use this template or see the instructions [here](https://fshschool.org/docs/sushi/project/). Don't forget to [install SUSHI](https://fshschool.org/docs/sushi/installation/). ([CI Build](http://build.fhir.org/ig/ahdis/ch-ig/branches/master/index.html))

Further supporting information on FSH:
* [Documentation of the FHIR Shorthand language standard](http://hl7.org/fhir/uv/shorthand/)
* [FSH School](https://fshschool.org/): The place to learn and try FHIR Shorthand!
* [FSH Cheat Sheet](http://build.fhir.org/ig/HL7/fhir-shorthand/FSHQuickReference.pdf)

**GoFSH:**
Using [GoFSH](https://fshschool.org/docs/gofsh/), you can turn existing FHIR artifacts into FSH definitions.

GoFSH is executed from the command line. GoFSH requires that these files be JSON. An example form of the GoFSH execution command is as follows:
```
gofsh ./input/resources/structuredefinition -o ./input/fsh -d [email protected] -d [email protected] -d ihe.mhd.fhir@current
```

## Creating your own repository from this template
1. On GitHub, navigate to the main page of the repository.
2. Above the file list, click **Use this template**.
3. Use the **Owner** drop-down menu, and select the account you want to own the repository.
4. Type a name for your repository, and an optional description.
5. Choose to make the repository either public or private.
6. You only need the master branch.
7. Click **Create repository from template**.

See also https://help.github.com/en/articles/creating-a-repository-from-a-template.

## Adapt the template to your own implementation guide
* Replace **ig** (e.g. *ch-**ig**-patient* → *ch-**name**-patient*) at all appropriate places with the desired **name** of the implementation guide:
* Rename all files
* Rename file content
* Change the content of the file README.md
* Change the value of the publisher (incl. contact), logo, links etc. from 'HL7 Switzerland' to the publisher responsible for this implementation guide

## Building the IG
* Option A:
* See instructions for [installing the IG publisher](#install-the-fhir-ig-publisher) and [building the IG](#build-the-ig) below
* Option B:
* Get the latest IG publisher from https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar.
* Make sure you are always working with the lastest publisher
* Put the publisher.jar in the main directory.
* A local build of the IG can be generated by running `JAVA -jar publisher.jar -ig ig.ini` at the command line.
* See the output:
* Validation results (QA): .\ch-ig\output\qa.html (link is displayed in the command line)
* Implementation guide: .\ch-ig\output\index.html (replace qa with index)

## FHIR Implementation Guide Auto-Builder
For further information see [here](https://github.com/FHIR/auto-ig-builder#fhir-implementation-guide-auto-builder).

## Publish the IG
For further information see [here](https://github.com/ahdis/k8s-fhir.ch#publish-an-implementation-guide-ch-xyz-with-a-version-eg-010).

***************************

# Setup your computer to work with an implementation guide

## Editor: Visual Studio Code (VSC)
* Install the editor Visual Studio Code as described [here](https://code.visualstudio.com/docs/setup/setup-overview)

### VSC Extensions
* Install the extension **FHIR tools** (yannick-lagger.vscode-fhir-tools)
* Go to **extensions** in the activity bar on the right side of VSC (shown as 4 squares)
* Search for this extension using the search field at the top left: *yannick-lagger.vscode-fhir-tools*
* Then install it

* Install the extension **vscode-language-fsh** (kmahalingam.vscode-language-fsh)
* Installation as described above

## Java
* Install Java as described [here](https://www.java.com/en/download/help/download_options.html)

## Jekyll
* Installation: https://jekyllrb.com/ (see [Jekyll on Windows](http://jekyll-windows.juthilo.com/2-jekyll-gem/) for windows users)

## SUSHI (and Node.js)
* Install SUSHI (and Node.js) as described [here](https://fshschool.org/docs/sushi/installation/)

## Git
* Install Git as described [here](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)

## GitHub
* Create a GitHub account as described [here](https://git-scm.com/book/en/v2/GitHub-Account-Setup-and-Configuration)
* You should definitely set up two-factor authentication as it is described there in the lowest section

***************************

# Get the implementation guide running
## Get the existing git repository
* If you haven't already done so, create a local *GitHub* folder on your computer (e.g. `C:\Users\username\Documents\GitHub`).
* Open a terminal in VSC (Terminal > New Terminal)
* Navigate to the local *GitHub* folder in the terminal (`cd .\Documents\`, `cd .\GitHub\`)
* Then clone the repository via the terminal: `git clone https://github.com/ahdis/ch-ig.git`
* Open the folder of the repository in VSC (File > Open Folder...)
* Navigate to this repository in the therminal (`cd .\ch-ig\ `)

## Install the FHIR IG publisher
* In VSC press *F1* or *Ctrl+Shift+P*
* Type following command in the field: *FHIR update Java Validator and IGPublisher*

## Build the IG
* In VSC press *F1* or *Ctrl+Shift+P*
* Type following command in the field: *FHIR run IGPublisher*
* Copy the link from the result in your terminal in a web browser (`file:///C:/Users/username/Documents/GitHub/ch-ig/qa.html`)
* Change `qa.html` to `index.html` and see your IG!

***************************

# Further links
* [IG Publisher Documentation](https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation)
* [Using the FHIR Validator](https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator)
* FHIR Chat [Zulip](chat.fhir.org)
* Create a free account
* Use different streams for help/information: #implementers, #IG creation, #committers/notification, #shorthand, #terminology, #switzerland, and more...
3 changes: 3 additions & 0 deletions ig.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[IG]
ig = fsh-generated/resources/ImplementationGuide-ch.fhir.ig.ch-ig.json
template = ch.fhir.ig.template#current
9 changes: 9 additions & 0 deletions input/fsh/ALIAS.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// External Code Systems
Alias: $lnc = http://loinc.org
Alias: $sct = http://snomed.info/sct

// CH Core SD
Alias: $SDChCorePractitioner = http://fhir.ch/ig/ch-core/StructureDefinition/ch-core-practitioner

// XML CH IG Code System
Alias: $CSChIgExampleTranslation = http://fhir.ch/ig/ch-ig/CodeSystem/ch-ig-example-translation
8 changes: 8 additions & 0 deletions input/fsh/examples/Practitioner.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Instance: HansMuster
InstanceOf: ChIgPractitioner
Usage: #example
Title: "Hans Muster"
Description: "Example for Practitioner"
* name
* family = "Muster"
* given = "Hans"
7 changes: 7 additions & 0 deletions input/fsh/profiles/Practitioner.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Profile: ChIgPractitioner
Parent: $SDChCorePractitioner
Id: ch-ig-practitioner
Title: "CH IG Practitioner"
Description: "CH IG Practitioner profile is just an example!"
* . ^short = "CH IG Practitioner"

10 changes: 10 additions & 0 deletions input/fsh/terminology/CS.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CodeSystem: ChIgExample
Id: ch-ig-example
Title: "CH IG Example"
Description: "CH IG Example code system is just an example!"
* ^experimental = false
* ^caseSensitive = true
* ^content = #complete
* #1 "Beispiel 1"
* #2 "Beispiel 2"
* #3 "Beispiel 3"
35 changes: 35 additions & 0 deletions input/fsh/terminology/SCT-ch.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Alias: $SCT = http://snomed.info/sct
Alias: $SCT-CH = http://snomed.info/sct|http://snomed.info/sct/2011000195101
Alias: $SCT-DK = http://snomed.info/sct|http://snomed.info/sct/554471000005108

ValueSet: Test
Id: test
Title: "Test"
Description: "Value set including SNOMED CT codes for specialty used in the Compassana context."
* ^experimental = true

* $SCT-CH#231107005 "Acupressure (regime/therapy)"
* $SCT-CH#1141000195107 "Secret (qualifier value)"

* $SCT-DK#231107005 "Acupressure (regime/therapy)"
* $SCT-DK#554221000005108 "bosted"



CodeSystem: Supplement
Title: "Supplement"
Description: "Test"

* ^experimental = true
* ^content = #supplement
* ^supplements = $SCT-CH

* #231107005 "Acupressure"
* #231107005 ^designation[0].language = #en
* #231107005 ^designation[=].value = "Acupressure"
* #231107005 ^designation[+].language = #de-CH
* #231107005 ^designation[=].value = "Akupressur" //"TO_TRANSLATE"
* #231107005 ^designation[+].language = #fr-CH
* #231107005 ^designation[=].value = "Acupressure"
* #231107005 ^designation[+].language = #it-CH
* #231107005 ^designation[=].value = "Acupressione" //"TO_TRANSLATE"
23 changes: 23 additions & 0 deletions input/fsh/terminology/VS.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
ValueSet: ChIgExample
Id: ch-ig-example
Title: "CH IG Example"
Description: "CH IG Example value set is just an example!"
* ^experimental = false
* include codes from system ChIgExample


ValueSet: ChIgExampleSct
Id: ch-ig-example-sct
Title: "CH IG Example SNOMED CT"
Description: "CH IG Example SNOMED CT value set is just an other example!"
* ^experimental = false
* $sct#34486009 "Hyperthyroidism (disorder)"
* $sct#73211009 "Diabetes mellitus (disorder)"


ValueSet: ChIgExampleTranslation
Id: ch-ig-example-translation
Title: "CH IG Example Translation"
Description: "CH IG Example Tranlation value set is just an example with translated values!"
* ^experimental = false
* include codes from system $CSChIgExampleTranslation
1 change: 1 addition & 0 deletions input/ignoreWarnings.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
== Suppressed Messages ==
Binary file added input/images/hl7-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions input/includes/logo.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<div id="hl7-nav">
<a id="logo" no-external="true" href="https://www.hl7.ch/">
<img alt="visit the website" height="60" src="hl7-logo.png" />
</a>
</div>
2 changes: 2 additions & 0 deletions input/pagecontent/extensions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

{% include list-extensions.xhtml %}
31 changes: 31 additions & 0 deletions input/pagecontent/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
### Introduction

**CH IG** is a template for creating a [HL7 Switzerland](https://www.hl7.ch/) FHIR implementation guide.


### Source and Download

[GitHub Repository](https://github.com/ahdis/ch-ig)

**Download**: You can download this implementation guide in the [NPM package](https://confluence.hl7.org/display/FHIR/NPM+Package+Specification) format from [here](package.tgz).

### IP Statements
This document is licensed under Creative Commons "No Rights Reserved" ([CC0](https://creativecommons.org/publicdomain/zero/1.0/)).

HL7®, HEALTH LEVEL SEVEN®, FHIR® and the FHIR <img src="icon-fhir-16.png" style="float: none; margin: 0px; padding: 0px; vertical-align: bottom"/>&reg; are trademarks owned by Health Level Seven International, registered with the United States Patent and Trademark Office.

This implementation guide contains and references intellectual property owned by third parties ("Third Party IP"). Acceptance of these License Terms does not grant any rights with respect to Third Party IP. The licensee alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize Third Party IP in connection with the specification or otherwise.

{% include ip-statements.xhtml %}

### Cross Version Analysis

{% include cross-version-analysis.xhtml %}

### Dependency Table

{% include dependency-table.xhtml %}

### Globals Table

{% include globals-table.xhtml %}
12 changes: 12 additions & 0 deletions input/pagecontent/profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Resource Profiles

{% include list-profiles.xhtml %}

### Data Type Profiles

{% for sd_hash in site.data.structuredefinitions -%} {%- assign sd = sd_hash[1] -%} {%- if sd.kind == "complex-type" and sd.type != "Extension" -%}

<li>
<a href="{{sd.path}}">{{sd.title}}</a>
</li>
{%- endif -%} {%- endfor -%}
15 changes: 15 additions & 0 deletions input/pagecontent/terminology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
### ValueSets

{% include list-simple-valuesets.xhtml %}

### CodeSystems

{% include list-simple-codesystems.xhtml %}

### ConceptMaps

{% include list-simple-conceptmaps.xhtml %}

### NamingSystems

{% include list-simple-namingsystems.xhtml %}
30 changes: 30 additions & 0 deletions input/resources/codesystem/ch-ig-example-translation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<CodeSystem xmlns="http://hl7.org/fhir">
<id value="ch-ig-example-translation"/>
<url value="http://fhir.ch/ig/ch-ig/CodeSystem/ch-ig-example-translation" />
<name value="ChIgExampleTranslation"/>
<title value="CH IG Example Translation"/>
<status value="active"/>
<experimental value="false"/>
<description value="CH IG Example Translation code system is just an example with translated values!" />
<caseSensitive value="true"/>
<valueSet value="http://fhir.ch/ig/ch-ig/ValueSet/ch-ig-example-translation"/>
<content value="complete"/>

<concept>
<code value="abc"/>
<display value="abc example"/>
<designation>
<language value="de"/>
<value value="abc Beispiel"/>
</designation>
<designation>
<language value="fr"/>
<value value="abc exemple"/>
</designation>
<designation>
<language value="it"/>
<value value="abc esempio"/>
</designation>
</concept>

</CodeSystem>
Loading

0 comments on commit 6477e45

Please sign in to comment.