Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fsh ig template #1

Open
wants to merge 58 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
001f73e
Update publish.yml
vickyjaiswal0308 Apr 10, 2024
3fbaf8f
Create PatientFlagCategory.fsh
vickyjaiswal0308 Apr 10, 2024
f28f145
Create PatientExample1.fsh
vickyjaiswal0308 Apr 10, 2024
0859293
Update .gitignore
vickyjaiswal0308 Apr 10, 2024
ee579ec
Update README.md
vickyjaiswal0308 Apr 10, 2024
6051632
Create NHSEngland-Copyright.fsh
vickyjaiswal0308 Apr 10, 2024
9d8b70d
Update publish.yml
vickyjaiswal0308 Apr 10, 2024
5a92374
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
1ca18de
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
e711b5a
Create retrieve-reasonable-adjustment-record.md
vickyjaiswal0308 Apr 10, 2024
acf575b
Update retrieve-reasonable-adjustment-record.md
vickyjaiswal0308 Apr 10, 2024
4ad5681
Update index.md
vickyjaiswal0308 Apr 10, 2024
4dca5fa
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
6a649f3
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
9a78ef9
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
1069a89
Update sushi-config.yaml
vickyjaiswal0308 Apr 10, 2024
1149959
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
f3ded58
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
007c2ae
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
7f3665b
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
058afde
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
5d2f978
Update sushi-config.yaml
vickyjaiswal0308 Apr 16, 2024
35edebb
Create examples.md
vickyjaiswal0308 Apr 18, 2024
8e1957c
Update sushi-config.yaml
vickyjaiswal0308 Apr 18, 2024
b3492b0
Create FGMPatientFlagExample1.fsh
vickyjaiswal0308 Apr 18, 2024
23c724f
Update examples.md
vickyjaiswal0308 Apr 18, 2024
40f8b9a
Update and rename FGMPatientFlagExample1.fsh to FGMFlagExample.fsh
vickyjaiswal0308 Apr 18, 2024
812948e
Update examples.md
vickyjaiswal0308 Apr 18, 2024
6055e77
Update examples.md
vickyjaiswal0308 Apr 18, 2024
556873f
Delete input/fsh/examples/FGMFlagExample.fsh
vickyjaiswal0308 Apr 18, 2024
62d7db1
Create data-model.md
vickyjaiswal0308 Apr 26, 2024
82f46db
Update sushi-config.yaml
vickyjaiswal0308 Apr 26, 2024
9dd4d48
Update sushi-config.yaml
vickyjaiswal0308 Apr 26, 2024
10e8654
Create data-model.plantuml
vickyjaiswal0308 Apr 26, 2024
3ecdf12
Update data-model.md
vickyjaiswal0308 Apr 26, 2024
8b543cc
Create data-model.png
vickyjaiswal0308 Apr 26, 2024
e1bef0f
Add files via upload
vickyjaiswal0308 Apr 26, 2024
21243eb
Delete input/images/data-model.png
vickyjaiswal0308 Apr 26, 2024
f57845d
Update data-model.md
vickyjaiswal0308 Apr 26, 2024
d1504b8
Update data-model.md
vickyjaiswal0308 Apr 26, 2024
2256474
Update data-model.md
vickyjaiswal0308 Apr 26, 2024
42bec79
Create mermaid.min.js
vickyjaiswal0308 Apr 26, 2024
39fc7f0
Update data-model.md
vickyjaiswal0308 Apr 26, 2024
401fc3d
Add files via upload
vickyjaiswal0308 Apr 26, 2024
0cafaca
Update data-model.md
vickyjaiswal0308 Apr 27, 2024
51916b7
Update sushi-config.yaml
vickyjaiswal0308 Apr 27, 2024
f9b0344
Update retrieve-reasonable-adjustment-record.md
vickyjaiswal0308 Apr 27, 2024
8382617
Create hh
vickyjaiswal0308 Apr 27, 2024
fa49ab2
Add files via upload
vickyjaiswal0308 Apr 27, 2024
6fcdf08
Delete input/fsh/profiles/hh
vickyjaiswal0308 Apr 27, 2024
5f85d79
Add files via upload
vickyjaiswal0308 Apr 27, 2024
24eee3b
Add files via upload
vickyjaiswal0308 Apr 27, 2024
df48050
Update retrieve-reasonable-adjustment-record.md
vickyjaiswal0308 Apr 27, 2024
b8a3bfb
Add files via upload
vickyjaiswal0308 Apr 27, 2024
9db8dd7
Add files via upload
vickyjaiswal0308 Apr 27, 2024
1b45d55
Add files via upload
vickyjaiswal0308 Apr 27, 2024
4a13077
Update sushi-config.yaml
vickyjaiswal0308 Apr 27, 2024
1732d0d
Update publish.yml
vickyjaiswal0308 May 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 42 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:

steps:
- uses: actions/checkout@v3

- name: Install Node
uses: actions/setup-node@v3
with:
Expand All @@ -32,19 +32,58 @@ jobs:
run: sudo apt install ruby ruby-all-dev -y

- name: Install Jekyll
run: sudo gem install jekyll
run: sudo gem install jekyll jekyll-plantuml

- name: Install Graphvix
run: sudo apt install graphviz

- name: Build IG
run: ./_genonce.sh
run: ./_genonce.sh ${{ vars.VALIDATOR_OFFLINE }}

- name: Download and unpack font-awesome
run: wget https://fontawesome.com/v4/assets/font-awesome-4.7.0.zip; unzip font-awesome-4.7.0.zip -d output

- name: Publish IG Artefact
uses: actions/upload-artifact@v3
with:
name: IG Archive
path: ./output/

- name: Prepare files for GitHub Pages
run: |
cp -r output _site;
chmod -c -R +rX "_site/" | while read line; do
echo "::warning title=Invalid file permissions automatically fixed::$line"
done

- name: Publish IG to GitHub Pages
uses: actions/upload-pages-artifact@v3

- name: Cache Node modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}--build-cache-npm-packages-${{ hashFiles('**/package-lock.json') }}

# Deploy job (https://github.com/actions/deploy-pages)
deploy:
# Add a dependency to the build job
needs: build
# Only deploy on development branch
# if: github.ref == 'refs/heads/development'
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source

# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

# Specify runner + deployment step
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4 # or specific "vX.X.X" version tag for this action
22 changes: 15 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
.DS_Store
Thumbs.db
/fsh-generated
/input-cache
/output
/temp
/template
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Ignore folders generated by Bundler
.bundle/
vendor/
input-cache
node_modules
output
temp
template
font-awesome*
fsh-generated
input/resources/QUERY-OUTPUT*
12 changes: 1 addition & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1 @@
# sushi-demo

The [docs for FSH](https://fshschool.org) are very clear and comprehensive

The page on [creating an IG](https://fshschool.org/courses/fsh-seminar/02-creating-an-ig.html) covers in detail what is being demonstrated in this repo.

A github action outputs the generated IG

<img src="https://github.com/declankieran-nhsd/sushi-demo/assets/93662162/96b07107-34c6-4e89-ab23-e0e6e1e7b44c" width="50%">

The IG generate is using [NHS England FHIR assets](https://github.com/NHSDigital/NHSEngland-FHIR-ImplementationGuide).
# IG Template( Using Fsh)
1,759 changes: 1,759 additions & 0 deletions ig-template/package/content/assets/js/mermaid.min.js

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions input/fsh/aliases.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Alias: $consentscope = http://terminology.hl7.org/CodeSystem/consentscope
Alias: $sct = https://snomed.info/sct
Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical
Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation
Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical
Alias: $sct = https://snomed.info/sct
Alias: $v3-DataOperation = http://terminology.hl7.org/CodeSystem/v3-DataOperation
Alias: $contractsignertypecodes = http://terminology.hl7.org/CodeSystem/contractsignertypecodes
Alias: $RoleClass = http://terminology.hl7.org/CodeSystem/v3-RoleClass
Alias: $RoleCode = http://terminology.hl7.org/CodeSystem/v3-RoleCode
Alias: $ParticipationFunction = http://terminology.hl7.org/CodeSystem/v3-ParticipationFunction
Alias: $ParticipationType = http://terminology.hl7.org/CodeSystem/v3-ParticipationType
Alias: $extra-security-role-type = http://terminology.hl7.org/CodeSystem/extra-security-role-type
Alias: $CareConnect-SDSJobRoleName-1 = https://fhir.hl7.org.uk/STU3/CodeSystem/CareConnect-SDSJobRoleName-1
Alias: $ValueSetPatientFlagCategory = https://fhir.nhs.uk/England/ValueSet/PatientFlagCategory
Alias: $ValueSetProgrammeFlagCategory = https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCategory
Alias: $ExtensionFlagDetail = http://hl7.org/fhir/StructureDefinition/flag-detail
Alias: $ValueSetFlagProvenanceRole = https://fhir.nhs.uk/England/ValueSet/FlagProvenanceRole
Alias: $ValueSetRAFlagCode = https://fhir.nhs.uk/England/ValueSet/RA-FlagCode
Alias: $ValueSetCPISFlagCode = https://fhir.nhs.uk/England/ValueSet/CPIS-FlagCode
Alias: $ValueSetFGMFlagCode = https://fhir.nhs.uk/England/ValueSet/FGM-FlagCode
Alias: $ValueSetProgrammeFlagCode = https://fhir.nhs.uk/England/ValueSet/ProgrammeFlagCode
Alias: $ValueSetFlagConditionCategory = https://fhir.nhs.uk/England/ValueSet/FlagConditionCategory
Alias: $ValueSetFlagConditionCode = https://fhir.nhs.uk/England/ValueSet/FlagConditionCode
20 changes: 20 additions & 0 deletions input/fsh/codesystem/PatientFlagCategory.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

CodeSystem: PatientFlagCategory
Id: PatientFlagCategory
Title: "NHSE Patient Flag Category"
Description: "A CodeSystem to identify the type/category of Flag."

* ^name = "PatientFlagCategory"
* ^url = "https://fhir.nhs.uk/England/CodeSystem/PatientFlagCategory"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"
* ^experimental = false

* insert NHSEngland-Copyright

* ^caseSensitive = true
* ^content = #complete
* #NRAF "National Reasonable Adjustments Flag"
* #CP-IS "Child Protection - Information Sharing Flag"
* #FGM "Female Genital Mutilation Flag"
14 changes: 14 additions & 0 deletions input/fsh/examples/PatientExample1.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Instance: PatientExample1
InstanceOf: Patient
Title: "UKCore patient example with very basic details."
Usage: #example
* meta.profile = "https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient"

* identifier.system = "https://fhir.nhs.uk/Id/nhs-number"
* identifier.value = "9912003888"
* active = true
* name.use = #official
* name.family = "Mann"
* name.given = "Alan"
* gender = #male
* birthDate = "1970-01-01"
16 changes: 16 additions & 0 deletions input/fsh/extensions/Extension-AdjustmentNotes.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Extension: Extension-FlagNotes
Id: Extension-FlagNotes
Title: "Extension for Flag Adjustment Notes"
Description: "Captures the additional information for an Adjustment within a Reasonable Adjustment Flag."
Context: Flag

* ^purpose = "Additional information required to correctly or effectively interpret an Adjustment."
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-FlagNotes"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* value[x] 1..
* value[x] only Annotation
16 changes: 16 additions & 0 deletions input/fsh/extensions/Extension-ConsentCreateSummary.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Extension: Extension-ConsentCreateSummary
Id: Extension-ConsentCreateSummary
Title: "Extension for Consent Create Summary"
Description: "Captures the additional information for a Best Interest decison when recording consent for a Reasonable Adjustment Flag."
Context: Consent

* ^purpose = "Captures the additional information for a Best Interest decison when recording consent for a Reasonable Adjustment Flag."
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentCreateSummary"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* value[x] 1..
* value[x] only Annotation
16 changes: 16 additions & 0 deletions input/fsh/extensions/Extension-RemoveCreateSummary.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Extension: Extension-ConsentRemoveSummary
Id: Extension-ConsentRemoveSummary
Title: "Extension for Consent Remove Summary"
Description: "Captures the additional information for a Best Interest decison when removing consent for a Reasonable Adjustment Flag."
Context: Consent

* ^purpose = "Captures the additional information for a Best Interest decison when removing consent for a Reasonable Adjustment Flag."
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/Extension-ConsentRemoveSummary"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* value[x] 1..
* value[x] only Annotation
32 changes: 32 additions & 0 deletions input/fsh/profiles/FlagCondition.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Profile: FlagCondition
Parent: Condition
Id: FlagCondition
Title: "NHSE Condition Profile for flags"
Description: "Record an individual condition for a flag in NHS England"

* ^name = "FlagCondition"
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagCondition"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* contained ^slicing.discriminator.type = #profile
* contained ^slicing.rules = #open
* contained ^slicing.discriminator.path = "contained"
* contained contains provenance 1..1
* contained[provenance] only FlagProvenance

* insert NHSEngland-Copyright

* category ^slicing.discriminator.type = #pattern
* category ^slicing.rules = #open
* category ^slicing.discriminator.path = "$this"

* category contains patientFlag 1.. MS
* category[patientFlag] from $ValueSetPatientFlagCategory (required)

* category contains conditionCategory 1.. MS
* category[conditionCategory] from $ValueSetFlagConditionCategory (required)

* code 1.. MS
* code from $ValueSetFlagConditionCode (extensible)
39 changes: 39 additions & 0 deletions input/fsh/profiles/FlagConsent.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Profile: FlagConsent
Parent: Consent
Id: FlagConsent
Title: "NHSE Flag Consent Profile"
Description: "Record consent to capture information for NHS England flags"

* ^name = "FlagConsent"
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagConsent"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* extension contains
Extension-ConsentCreateSummary named createSummary 0..1 and
Extension-ConsentRemoveSummary named removeSummary 0..1

* extension[createSummary].value[x] only Annotation
* extension[createSummary].valueAnnotation 1..

* extension[removeSummary].value[x] only Annotation
* extension[removeSummary].valueAnnotation 1..

* contained ^slicing.discriminator.type = #profile
* contained ^slicing.rules = #open
* contained ^slicing.discriminator.path = "contained"
* contained contains provenance 1..1
* contained[provenance] only FlagProvenance

* category from $ValueSetPatientFlagCategory (extensible)
* policy 1..1
* policy.uri 1..
* policyRule 1..
* policyRule from FlagProxyRole (extensible)
* performer ..1
* performer only Reference(Organization or Patient or Practitioner)
* provision.purpose 1..1
* provision.purpose from FlagConsentPurpose (extensible)
18 changes: 18 additions & 0 deletions input/fsh/profiles/FlagProvenance.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Profile: FlagProvenance
Parent: Provenance
Id: FlagProvenance
Title: "NHSE Flag Provenance Profile"
Description: "Record details of the practitioner recording or removing an individual Flag."

* ^name = "FlagProvenance"
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/FlagProvenance"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* target only Reference(FlagCondition or FlagConsent or ProgrammeFlag or PatientFlag)
* agent.role from $ValueSetFlagProvenanceRole (extensible)
* agent.who only Reference(Practitioner)
* agent.onBehalfOf only Reference(Organization)
32 changes: 32 additions & 0 deletions input/fsh/profiles/PatientFlag.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Profile: PatientFlag
Parent: Flag
Id: PatientFlag
Title: "NHSE Patient Flag Profile"
Description: "Record whether a Patient Flags exists"

* ^name = "PatientFlag"
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/PatientFlag"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* extension contains
Extension-FlagNotes named flagNotes 0..1 and
$ExtensionFlagDetail named flagDetail 0..*

* extension[flagNotes].value[x] only Annotation
* extension[flagNotes].valueAnnotation 1..

* extension[flagDetail].valueReference only Reference(ProgrammeFlag or FlagConsent or FlagCondition or FlagProvenance)

* contained ^slicing.discriminator.type = #profile
* contained ^slicing.rules = #open
* contained ^slicing.discriminator.path = "contained"

* contained contains provenance 1..1
* contained[provenance] only FlagProvenance

* code MS
* code from $ValueSetPatientFlagCategory (required)
32 changes: 32 additions & 0 deletions input/fsh/profiles/ProgrammeFlag.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Profile: ProgrammeFlag
Parent: Flag
Id: ProgrammeFlag
Title: "NHSE Programme Flag Profile"
Description: "Record an individual flag for an NHS England programme."

* ^name = "ProgrammeFlag"
* ^url = "https://fhir.nhs.uk/England/StructureDefinition/ProgrammeFlag"
* ^version = "0.1.0"
* ^status = #draft
* ^date = "2024-02-14"

* insert NHSEngland-Copyright

* extension contains
Extension-FlagNotes named flagNotes 0..1

* extension[flagNotes].value[x] only Annotation
* extension[flagNotes].valueAnnotation 1..

* category ^slicing.discriminator.type = #pattern
* category ^slicing.rules = #open
* category ^slicing.discriminator.path = "$this"

* category contains patientFlag 1.. MS
* category[patientFlag] from $ValueSetPatientFlagCategory (required)

* category contains programmeFlag 1.. MS
* category[programmeFlag] from $ValueSetProgrammeFlagCategory (required)

* code MS
* code from $ValueSetProgrammeFlagCode (extensible)
2 changes: 2 additions & 0 deletions input/fsh/rulsets/NHSEngland-Copyright.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
RuleSet: NHSEngland-Copyright
* ^copyright = "Copyright © 2024+ NHS England Licensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \\\"AS IS\\\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at https://www.hl7.org/fhir/license.html."
Loading
Loading