From 7b3c1f6b8eaae58e874416c220bb8ba08ecbc4cd Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:05:25 +0200 Subject: [PATCH 01/11] Update ghbuild.yml --- .github/workflows/ghbuild.yml | 133 +++++++++++++++++++++++++++++++--- 1 file changed, 123 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index 575defd4..fbfaf40e 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -1,23 +1,136 @@ -# This workflow reuses the openHIE GitHub action for building IGs -# Initial idea by Carl Leitner, developed by Elliot Silver, available from: https://www.argentixinfo.com/archives/156 +# This is a simple workflow that runs the publisher and copies the output to https://.github.io//index.html +# Based on the idea by Carl Leitner # Change log: -# v0.1.0 -# 2021-06-18: publish default branches to / , other branches branches/ -# 2021-11-26: reusable workflow +# 2021-06-18: (JCT): publish default branches to / , other branches branches/ +# 2021-11-26: (JCT): Reusable workflow +# 2022-01-28: (JCT): add auto-create gh-pages if it doesn't exist +# 2023-01-22: (JCT): use checkout action v3, and JamesIves/github-pages-deploy-action@v4 -name: GitHub Pages build + +# Make sure your repo has a branch called gh-pages + +name: CI # Controls when the action will run. -on: - # Triggers the workflow on push or pull request events for any main branch +on: + workflow_call: # Reusable by other workflows + # Triggers the workflow on push or pull request events for any branch push: branches-ignore: - 'gh-pages' pull_request: + # 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: # This workflow contains a single job called "build" - call_build: - uses: WorldHealthOrganization/smart-base/.github/workflows/ghbuild.yml@main + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout code + uses: actions/checkout@v4 + + - name: Get branch name + run: echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV + + - name: Echo branch name and check if it's the default branch + run: | + echo "Current Branch: $BRANCH_NAME" + DEFAULT_BRANCH=$(git remote show origin | sed -n '/HEAD branch/s/.*: //p') + echo "Default Branch: $DEFAULT_BRANCH" + if [ "$BRANCH_NAME" == "$DEFAULT_BRANCH" ]; then + echo "This is the default branch." + echo "IS_DEFAULT_BRANCH=true" >> $GITHUB_ENV + else + echo "This is NOT the default branch." + echo "IS_DEFAULT_BRANCH=false" >> $GITHUB_ENV + fi + + +# - name: Create gh-pages branch if it doesn't exist +# run: | +# git fetch origin +# exists=`git show-ref refs/heads/gh-pages` +# if [ -n "$exists" ]; then +# echo 'gh-pages branch exists'; +# else +# echo 'gh-pages branch does not exist, creating it'; +# git checkout --orphan gh-pages +# git reset --hard +# git commit --allow-empty -m "Initializing gh-pages branch" +# git push origin gh-pages +# git checkout ${GITHUB_REF##*/} +# fi + + - name: Update the image to the latest publisher + uses: docker://hl7fhir/ig-publisher-base:latest + with: + # Get the latest publisher - don't run the batch script but run the line directly + args: curl -L https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar -o ./input-cache/publisher.jar --create-dirs + + + - name: Create package cache folder + uses: docker://hl7fhir/ig-publisher-base:latest + with: + entrypoint: /bin/sh + args: -c "mkdir -p ./fhir-package-cache && chown 1001:127 ./fhir-package-cache" + + + - name: Run the IG publisher + uses: docker://hl7fhir/ig-publisher-base:latest + with: + entrypoint: /bin/sh + args: -c "mkdir -p /var/lib/.fhir && chown $(id -u):$(id -g) /var/lib/.fhir" + + - name: Run the IG publisher + uses: docker://hl7fhir/ig-publisher-base:latest + with: + # Run the publisher - don't run the batch script but run the line directly + args: java -Xmx6g -jar ./input-cache/publisher.jar publisher -ig . -auto-ig-build -repo https://github.com/${{github.repository}}/tree/${{github.ref_name}} -package-cache-folder ./fhir-package-cache + + # Additional step to upload qa.json as an artifact + - name: Upload qa.json artifact + if: success() + uses: actions/upload-artifact@v4 + with: + name: qa-json-artifact + path: ./output/qa.json # Adjust the path based on where qa.json is located + + - name: Delete files >100MB before deployment + run: | + echo "Removing files over 100 MB from ./output..." + find ./output -type f -size +100M -print -delete + + - name: Get branch name + run: echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV + + - name: Deploy candidate + uses: JamesIves/github-pages-deploy-action@v4.4.2 + if: env.IS_DEFAULT_BRANCH == 'false' + with: + branch: gh-pages # The branch the action should deploy to. + folder: ./output # The folder the action should deploy. + commit-message: Deploy candidate branch + target-folder: branches/${{ env.BRANCH_NAME }} + single-commit: true + clean: false + + - name: Deploy main + uses: JamesIves/github-pages-deploy-action@v4.4.2 + if: env.IS_DEFAULT_BRANCH == 'true' + with: + branch: gh-pages # The branch the action should deploy to. + folder: ./output # The folder the action should deploy. + commit-message: Deploy main branch + single-commit: true + clean-exclude: | + branches + sitepreview From 64455aee4addc3e0ec28d9f677c58eef239b41e2 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:32:39 +0200 Subject: [PATCH 02/11] Update ghbuild.yml --- .github/workflows/ghbuild.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index fbfaf40e..a13bdacd 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -13,7 +13,7 @@ name: CI # Controls when the action will run. on: - workflow_call: # Reusable by other workflows +# workflow_call: # Reusable by other workflows # Triggers the workflow on push or pull request events for any branch push: branches-ignore: From fd323750e8d1e1c7380a1a5af02f30e21ee9a7b5 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:36:22 +0200 Subject: [PATCH 03/11] Update ghbuild.yml --- .github/workflows/ghbuild.yml | 128 ---------------------------------- 1 file changed, 128 deletions(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index a13bdacd..075f6b6f 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -1,136 +1,8 @@ -# This is a simple workflow that runs the publisher and copies the output to https://.github.io//index.html -# Based on the idea by Carl Leitner -# Change log: -# 2021-06-18: (JCT): publish default branches to / , other branches branches/ -# 2021-11-26: (JCT): Reusable workflow -# 2022-01-28: (JCT): add auto-create gh-pages if it doesn't exist -# 2023-01-22: (JCT): use checkout action v3, and JamesIves/github-pages-deploy-action@v4 - - -# Make sure your repo has a branch called gh-pages - name: CI -# Controls when the action will run. on: -# workflow_call: # Reusable by other workflows - # Triggers the workflow on push or pull request events for any branch push: branches-ignore: - 'gh-pages' pull_request: - - # 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: - # This workflow contains a single job called "build" - build: - # The type of runner that the job will run on - runs-on: ubuntu-latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # Steps represent a sequence of tasks that will be executed as part of the job - steps: - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Checkout code - uses: actions/checkout@v4 - - - name: Get branch name - run: echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV - - - name: Echo branch name and check if it's the default branch - run: | - echo "Current Branch: $BRANCH_NAME" - DEFAULT_BRANCH=$(git remote show origin | sed -n '/HEAD branch/s/.*: //p') - echo "Default Branch: $DEFAULT_BRANCH" - if [ "$BRANCH_NAME" == "$DEFAULT_BRANCH" ]; then - echo "This is the default branch." - echo "IS_DEFAULT_BRANCH=true" >> $GITHUB_ENV - else - echo "This is NOT the default branch." - echo "IS_DEFAULT_BRANCH=false" >> $GITHUB_ENV - fi - - -# - name: Create gh-pages branch if it doesn't exist -# run: | -# git fetch origin -# exists=`git show-ref refs/heads/gh-pages` -# if [ -n "$exists" ]; then -# echo 'gh-pages branch exists'; -# else -# echo 'gh-pages branch does not exist, creating it'; -# git checkout --orphan gh-pages -# git reset --hard -# git commit --allow-empty -m "Initializing gh-pages branch" -# git push origin gh-pages -# git checkout ${GITHUB_REF##*/} -# fi - - - name: Update the image to the latest publisher - uses: docker://hl7fhir/ig-publisher-base:latest - with: - # Get the latest publisher - don't run the batch script but run the line directly - args: curl -L https://github.com/HL7/fhir-ig-publisher/releases/latest/download/publisher.jar -o ./input-cache/publisher.jar --create-dirs - - - - name: Create package cache folder - uses: docker://hl7fhir/ig-publisher-base:latest - with: - entrypoint: /bin/sh - args: -c "mkdir -p ./fhir-package-cache && chown 1001:127 ./fhir-package-cache" - - - - name: Run the IG publisher - uses: docker://hl7fhir/ig-publisher-base:latest - with: - entrypoint: /bin/sh - args: -c "mkdir -p /var/lib/.fhir && chown $(id -u):$(id -g) /var/lib/.fhir" - - - name: Run the IG publisher - uses: docker://hl7fhir/ig-publisher-base:latest - with: - # Run the publisher - don't run the batch script but run the line directly - args: java -Xmx6g -jar ./input-cache/publisher.jar publisher -ig . -auto-ig-build -repo https://github.com/${{github.repository}}/tree/${{github.ref_name}} -package-cache-folder ./fhir-package-cache - - # Additional step to upload qa.json as an artifact - - name: Upload qa.json artifact - if: success() - uses: actions/upload-artifact@v4 - with: - name: qa-json-artifact - path: ./output/qa.json # Adjust the path based on where qa.json is located - - - name: Delete files >100MB before deployment - run: | - echo "Removing files over 100 MB from ./output..." - find ./output -type f -size +100M -print -delete - - - name: Get branch name - run: echo "BRANCH_NAME=${GITHUB_REF##*/}" >> $GITHUB_ENV - - - name: Deploy candidate - uses: JamesIves/github-pages-deploy-action@v4.4.2 - if: env.IS_DEFAULT_BRANCH == 'false' - with: - branch: gh-pages # The branch the action should deploy to. - folder: ./output # The folder the action should deploy. - commit-message: Deploy candidate branch - target-folder: branches/${{ env.BRANCH_NAME }} - single-commit: true - clean: false - - - name: Deploy main - uses: JamesIves/github-pages-deploy-action@v4.4.2 - if: env.IS_DEFAULT_BRANCH == 'true' - with: - branch: gh-pages # The branch the action should deploy to. - folder: ./output # The folder the action should deploy. - commit-message: Deploy main branch - single-commit: true - clean-exclude: | - branches - sitepreview From c4d96a328218962fe1e71ccbabf53f2ec66f1603 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:39:30 +0200 Subject: [PATCH 04/11] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 42c803f4..3d62d4ce 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ CI-Build: https://worldhealthorganization.github.io/smart-ra/ - Please see these [instructions](https://smart.who.int/ig-starter-kit/ig_setup.html#github-setup) @@ -20,4 +19,4 @@ Please see these [instructions](https://smart.who.int/ig-starter-kit/ig_setup.ht Feedback and issues about this empty framework can be submitted via the [issues](issues) page, and will be incorporated into subsequent releases. -The Core Architects WG is currently responsible for the changes. \ No newline at end of file +The Core Architects WG is currently responsible for the changes. From c5d89e99f222bfd826b9b7e785c4e7c322645cb7 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:42:21 +0200 Subject: [PATCH 05/11] Update ghbuild.yml --- .github/workflows/ghbuild.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild.yml index 075f6b6f..87539a80 100644 --- a/.github/workflows/ghbuild.yml +++ b/.github/workflows/ghbuild.yml @@ -1,8 +1,14 @@ name: CI -on: +on: push: - branches-ignore: + branches-ignore: - 'gh-pages' pull_request: workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - run: echo "Hello from GitHub Actions!" From ccc0c4e85f9c8dbaa850b9095ccc818472f6e8c8 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 22:58:27 +0100 Subject: [PATCH 06/11] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 42c803f4..3d62d4ce 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ CI-Build: https://worldhealthorganization.github.io/smart-ra/ - Please see these [instructions](https://smart.who.int/ig-starter-kit/ig_setup.html#github-setup) @@ -20,4 +19,4 @@ Please see these [instructions](https://smart.who.int/ig-starter-kit/ig_setup.ht Feedback and issues about this empty framework can be submitted via the [issues](issues) page, and will be incorporated into subsequent releases. -The Core Architects WG is currently responsible for the changes. \ No newline at end of file +The Core Architects WG is currently responsible for the changes. From 6a3ba4e5c3f4ae5843ebfe8057687e2d697d7dac Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Tue, 8 Jul 2025 00:10:06 +0200 Subject: [PATCH 07/11] remove wf --- .github/workflows/release.yml | 35 ------------------------------ .github/workflows/repo_actions.yml | 20 ----------------- 2 files changed, 55 deletions(-) delete mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/repo_actions.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index b2a8a6ef..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,35 +0,0 @@ -# This workflow calls a remote workflow for setting up a release publication, -# This workflow is triggered by the creation of a GitHub release and requires a file called publication-request.json in the branch. - -name: Release build - -on: - release: - types: [created] - workflow_dispatch: - -jobs: - check: - runs-on: ubuntu-latest - outputs: - file_exists: ${{ steps.checkfile.outputs.exists }} - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - ref: ${{ github.event.release.tag_name }} - - - name: Check for publication-request.json - id: checkfile - run: | - if [[ -f "publication-request.json" ]]; then - echo "::set-output name=exists::true" - else - echo "::set-output name=exists::false" - fi - - trigger: - needs: check - if: needs.check.outputs.file_exists == 'true' - uses: WorldHealthOrganization/smart-html/.github/workflows/release.yml@main - diff --git a/.github/workflows/repo_actions.yml b/.github/workflows/repo_actions.yml deleted file mode 100644 index fcb5388d..00000000 --- a/.github/workflows/repo_actions.yml +++ /dev/null @@ -1,20 +0,0 @@ -# This workflow uses a remote action to do some repository actions like updating the readme files - -name: Call remote repo actions - -# Controls when the action will run. -on: - # Triggers the workflow on push or pull request events for any main branch - push: - branches-ignore: - - 'gh-pages' - pull_request: - - workflow_dispatch: - -jobs: - call-update-readme: - uses: WorldHealthOrganization/smart-base/.github/workflows/update_readme.yml@main - with: - repositoryOwner: ${{ github.repository_owner }} - repositoryName: ${{ github.event.repository.name }} From c68b6df3909d7085cc710ad5a4d8d7011f2aa652 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:13:07 +0100 Subject: [PATCH 08/11] Rename ghbuild.yml to ghbuild2.yml --- .github/workflows/{ghbuild.yml => ghbuild2.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ghbuild.yml => ghbuild2.yml} (100%) diff --git a/.github/workflows/ghbuild.yml b/.github/workflows/ghbuild2.yml similarity index 100% rename from .github/workflows/ghbuild.yml rename to .github/workflows/ghbuild2.yml From 23854a4ae66b564519a0b033ce0f4994c004dd34 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Mon, 7 Jul 2025 23:23:56 +0100 Subject: [PATCH 09/11] Rename ghbuild2.yml to ghbuild.yml --- .github/workflows/{ghbuild2.yml => ghbuild.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{ghbuild2.yml => ghbuild.yml} (100%) diff --git a/.github/workflows/ghbuild2.yml b/.github/workflows/ghbuild.yml similarity index 100% rename from .github/workflows/ghbuild2.yml rename to .github/workflows/ghbuild.yml From fb016cdafea4c67c1370ca2b2d74964b3cdc9ed6 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira Date: Wed, 20 Aug 2025 13:19:41 +0200 Subject: [PATCH 10/11] add business concepts per presentation #31 --- input/pagecontent/concepts.md | 96 ++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 2 deletions(-) diff --git a/input/pagecontent/concepts.md b/input/pagecontent/concepts.md index e50df569..2378d1a9 100644 --- a/input/pagecontent/concepts.md +++ b/input/pagecontent/concepts.md @@ -1,2 +1,94 @@ -Key concepts and abbreviations are described here. Additional terms are defined in the Glossary and List of Abbreviations in the WHO Digital Adaptation Kit for [insert health domain here] (link forthcoming) -### Concepts +These are the core terms used in this specification. These are largely inspired by **TOGAF/ArchiMate**, and **OpenHIE**. The glossary is grouped into layers. +Some examples are provided for clarity. + +--- + +## Business Layer + + +### Goal + +--- + +### Outcome + +--- + +### Business Capability +> A particular ability that a business may possess or exchange to achieve a specific purpose. + +       _Examples:_ +        - _"Health Workforce Management"_ + + +--- + +### Business Function +> A collection of business behavior based on a chosen set of criteria, closely aligned to an organization. + +       _Examples:_ +        - _"IManaging Workforce Identity"_ + +--- + + + +### Business Process +> Groups behavior based on an ordering of activities. It defines a set of products or business services. + +       _Examples:_ +        - _"Assign Unique Health Worker ID"_ + +--- + + +### Value Stream +An end-to-end stakeholder journey that delivers value across multiple business capabilities, business functions (BF), and business processes (BP). + + +       _Examples:_ +        - _"Register and Deploy a Qualified Health Worker"_ + + + +--- + +### Business Role + +--- + +## Application Layer + +### Requirement + +--- + +### Application Component + +--- + +### Data Structure (Logical Model) + + +--- + +## Technology Layer + +### Technical Requirement + +--- + +### Data Specification + +--- + +## Information Layer (Healthcare-specific) + +### Vocabulary / Terminology + + +### Business Object (Information) + +--- + +--- From 53db0eeac97c7e3dbfe98819b00ac781df387a95 Mon Sep 17 00:00:00 2001 From: Jose Costa Teixeira <16153168+costateixeira@users.noreply.github.com> Date: Wed, 3 Sep 2025 12:52:21 +0200 Subject: [PATCH 11/11] update definitions --- input/pagecontent/concepts.md | 49 +---------------------------------- 1 file changed, 1 insertion(+), 48 deletions(-) diff --git a/input/pagecontent/concepts.md b/input/pagecontent/concepts.md index 2378d1a9..93935958 100644 --- a/input/pagecontent/concepts.md +++ b/input/pagecontent/concepts.md @@ -5,13 +5,6 @@ Some examples are provided for clarity. ## Business Layer - -### Goal - ---- - -### Outcome - --- ### Business Capability @@ -27,7 +20,7 @@ Some examples are provided for clarity. > A collection of business behavior based on a chosen set of criteria, closely aligned to an organization.        _Examples:_ -        - _"IManaging Workforce Identity"_ +        - _"Managing Workforce Identity"_ --- @@ -51,44 +44,4 @@ An end-to-end stakeholder journey that delivers value across multiple business c ---- - -### Business Role - ---- - -## Application Layer - -### Requirement - ---- - -### Application Component - ---- - -### Data Structure (Logical Model) - - ---- - -## Technology Layer - -### Technical Requirement - ---- - -### Data Specification - ---- - -## Information Layer (Healthcare-specific) - -### Vocabulary / Terminology - - -### Business Object (Information) - ---- - ---