Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
6123a76
implement mcp server for validation
May 13, 2025
356fcfe
implement mcp like example project
May 20, 2025
a130bad
add WebMvcSseServerTransportProvider to McpConfig
May 20, 2025
42d5e99
Clean the MCP implementation
qligier May 22, 2025
f4dd7ed
return list of validation messages in mcp tool
May 26, 2025
f48cb66
remove commented code
Jun 10, 2025
f4aa7e0
extend changelog with mcp server integration
Jun 10, 2025
223aa2e
add version numbers for mcp dependencies
Jun 10, 2025
37e7e1c
check if resource and profile are empty or null in validateResource tool
Jun 10, 2025
376e6b6
set matchIfMissing to false in MCP Configuration
Jun 10, 2025
518cdcd
suppress error messages for known issues [#395]
oliveregger May 18, 2025
fb8abe9
Update matchbox-engine/src/main/java/ch/ahdis/matchbox/engine/Validat…
oliveregger May 20, 2025
bc1947d
Update docs/matchbox-server.md
oliveregger May 20, 2025
6c64453
#395 suppress Type_Specific_Checks_DT_URL_Resolve for IPS
oliveregger May 21, 2025
69f1bc3
update to regex
oliveregger May 22, 2025
76ac283
fix test
oliveregger May 22, 2025
475e5cf
4.0.5 version
oliveregger May 22, 2025
e2cb907
improve error logging
oliveregger Jun 11, 2025
4a8ab9f
fix security issues
oliveregger Jun 11, 2025
4d8bfbd
server: rebuild the Angular GUI resources
oliveregger Jun 11, 2025
a9e52ba
update core to 6.2.25
oliveregger Jun 11, 2025
5cc6eb3
#401 suppress error on invariants
oliveregger Jun 12, 2025
7a35ceb
release 4.0.5
oliveregger Jun 13, 2025
4d92ce1
#392, #399: fix cap statement, llm api key
oliveregger Jun 13, 2025
ee8f3ea
update to v4.0.6
oliveregger Jun 13, 2025
35ac10e
add validation with ai tutorial to docs
Jun 16, 2025
cd27bff
Update docs/validation-with-ai-tutorial.md
NoaJunod Jun 16, 2025
b31fa2d
Update docs/validation-with-ai-tutorial.md
NoaJunod Jun 16, 2025
c7de92a
4.0.7
oliveregger Jun 18, 2025
84d3f56
suppressErrors #405
oliveregger Jun 22, 2025
9c5d936
fix ig handling for suppressErrors
oliveregger Jun 22, 2025
088575e
#408 and #409
oliveregger Jun 28, 2025
454e5a5
Update docs/changelog.md
oliveregger Jun 28, 2025
7125268
411 update to 6.5.27
oliveregger Jul 1, 2025
66509c3
Update execution order in readme
gabriel0316 Jul 16, 2025
3413345
4.10.0 branch
oliveregger Jul 31, 2025
15b09ea
#415, #407
oliveregger Aug 1, 2025
1dcc87f
fix pom
oliveregger Aug 1, 2025
7159ca1
update test for CDANarrative
oliveregger Aug 5, 2025
1f90ce1
fix context
oliveregger Aug 6, 2025
1a527b8
update changelog
oliveregger Aug 6, 2025
126e66f
#407, #417
oliveregger Aug 7, 2025
1076d71
update to 4.0.11
oliveregger Aug 12, 2025
9167a52
fix tho packge loading
oliveregger Aug 12, 2025
7b9ba5e
Tx: responses use the right FHIR version
qligier Aug 22, 2025
8ea8ca3
Upgrade to Tomcat 10.1.44
qligier Aug 25, 2025
5fe37b9
Move the internal terminology server to its own servlet
qligier Aug 25, 2025
17ed329
Improve the HTMLClientLogger
qligier Aug 25, 2025
7df8d1b
Add logging to TerminologyCache
qligier Aug 25, 2025
cac9ca5
Update docs/validation.md
qligier Aug 25, 2025
f07b2a0
Update docs/validation.md
qligier Aug 25, 2025
c21432c
Update unit tests
qligier Aug 25, 2025
88fcef5
#425 Prevent multithreading issue in TerminologyCache
qligier Aug 25, 2025
6b1d978
Tx: also support R4B and R5 servers
qligier Aug 26, 2025
e102e25
Tx: fix unit tests
qligier Aug 26, 2025
4673628
update to core 6.6.5 and #425
oliveregger Aug 26, 2025
953a8e5
prepare for 4.0.12
oliveregger Aug 26, 2025
bae80da
#425
oliveregger Aug 26, 2025
fe73674
move terminologycache to core
oliveregger Aug 26, 2025
78abc10
multithreading validation issues
oliveregger Aug 26, 2025
6efc6a3
fix np
oliveregger Aug 26, 2025
38448fb
Fix documentation publication
qligier Aug 27, 2025
475c575
Update Maven Central publication
qligier Aug 27, 2025
efba0a8
update readme
oliveregger Sep 15, 2025
38b6584
follow hap-fhir-jpa approach
oliveregger Sep 24, 2025
caae870
update mcp integration
oliveregger Oct 3, 2025
f0f0b5f
further work on mcp
oliveregger Oct 4, 2025
afdee32
Update matchbox-server/src/main/java/ch/ahdis/matchbox/mcp/ToolFactor…
oliveregger Oct 4, 2025
1ddfd35
Update matchbox-server/src/main/java/ca/uhn/fhir/rest/server/McpFhirB…
oliveregger Oct 4, 2025
47561d0
Update matchbox-server/src/main/java/ca/uhn/fhir/rest/server/McpMatch…
oliveregger Oct 4, 2025
76fc344
Update matchbox-server/src/main/java/ca/uhn/fhir/jpa/starter/mcp/Requ…
oliveregger Oct 4, 2025
b319869
server: rebuild the Angular GUI resources
oliveregger Oct 4, 2025
6f9d672
Update workflows
qligier Oct 4, 2025
a095e0b
Use auto-links to issues in changelog
qligier Oct 7, 2025
0ea8322
Update docs/changelog.md
qligier Oct 7, 2025
9ab354d
further mcp integration #398
oliveregger Oct 20, 2025
c7ae83d
fix version
oliveregger Oct 21, 2025
81da353
try to update node
oliveregger Oct 21, 2025
9c76e98
update home
oliveregger Oct 21, 2025
2bbaab8
fix packages?
oliveregger Oct 21, 2025
0c71e51
server: rebuild the Angular GUI resources
oliveregger Oct 22, 2025
10ffcfe
remove scan
oliveregger Oct 22, 2025
53452c4
Upgrade Tomcat to fix CVE-2025-55752
qligier Oct 28, 2025
0ebf41e
Extend gitignore
qligier Oct 28, 2025
841b016
Add support for ST.r2b datatype in matchbox-engine
claude Oct 28, 2025
bb84835
Update CDA Logical model for ST.r2b
oliveregger Oct 29, 2025
58b1e13
use old package-lock.json
oliveregger Oct 29, 2025
cc218df
v4.0.15
oliveregger Nov 3, 2025
3ab7923
Merge remote-tracking branch 'upstream/main' into fork-sync
azhar-saleem-infoway Nov 13, 2025
01feb04
Minor updates
azhar-saleem-infoway Nov 13, 2025
718458d
Update sonar pipeline.
azhar-saleem-infoway Nov 13, 2025
4dffa4b
Merge branch 'main' of https://github.com/AccessDigitalHealth/matchbo…
azhar-saleem-infoway Nov 13, 2025
d927537
Update sonar pipeline.
azhar-saleem-infoway Nov 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
6 changes: 3 additions & 3 deletions .github/workflows/angular_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ jobs:
working-directory: ./matchbox-frontend
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
# https://github.com/actions/setup-node
node-version: 20
Expand All @@ -39,7 +39,7 @@ jobs:

- name: Commit
if: success()
uses: stefanzweifel/git-auto-commit-action@v5
uses: stefanzweifel/git-auto-commit-action@v6.0.1
with:
commit_message: "server: rebuild the Angular GUI resources"
file_pattern: "matchbox-server/src/main/resources/static"
6 changes: 3 additions & 3 deletions .github/workflows/angular_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ jobs:
working-directory: ./matchbox-frontend
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
# https://github.com/actions/setup-node
node-version: 20
node-version: 24
cache: npm
cache-dependency-path: matchbox-frontend/package-lock.json

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/central_repository.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ jobs:

steps:
- name: Checkout the repository
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Java 21
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with: # running setup-java again overwrites the settings.xml
java-version: "21"
distribution: "adopt"
cache: maven
server-id: ossrh
server-username: OSSRH_USERNAME
server-password: OSSRH_PASSWORD
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

Expand All @@ -33,8 +33,8 @@ jobs:
- name: Publish to Apache Maven Central
run: mvn deploy -P release --file pom.xml --projects :matchbox,:matchbox-engine -DskipTests
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.NEXUS_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
# The requirements are described in https://central.sonatype.org/publish/requirements/
# The secrets are managed in https://github.com/ahdis/matchbox/settings/secrets/actions
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout master
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Install Python 3
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.x'
cache: 'pip'
Expand All @@ -28,7 +28,7 @@ jobs:
# https://www.mkdocs.org/user-guide/deploying-your-docs/#github-pages

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
# https://github.com/actions/setup-java#usage
with:
java-version: 21
Expand All @@ -42,6 +42,6 @@ jobs:
uses: JamesIves/github-pages-deploy-action@v4
# https://github.com/JamesIves/github-pages-deploy-action#configuration-
with:
branch: gh-pages # The destination branch.
folder: target/site/apidocs # The source folder.
target-folder: apidocs # The destination folder.
branch: gh-pages # The destination branch.
folder: target/reports/apidocs # The source folder.
target-folder: apidocs # The destination folder.
31 changes: 10 additions & 21 deletions .github/workflows/googleregistry.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Build Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
java-version: 21
distribution: adopt
Expand All @@ -37,15 +37,20 @@ jobs:
- run: mvn --batch-mode --update-snapshots package -DskipTests -P release

- name: Set up QEMU
uses: docker/setup-qemu-action@master
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
uses: docker/setup-buildx-action@v3
with:
version: latest
platforms: linux/amd64,linux/arm64

# Configure Workload Identity Federation and generate an access token.
- id: "auth"
name: "Authenticate to Google Cloud"
uses: google-github-actions/auth@v2
uses: google-github-actions/auth@v3
with:
token_format: "access_token"
workload_identity_provider: "projects/1022310475153/locations/global/workloadIdentityPools/github-wif-pool/providers/oidc-github-provider"
Expand All @@ -67,22 +72,6 @@ jobs:
--platform=linux/arm64,linux/amd64 \
-f matchbox-server/Dockerfile \
matchbox-server

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: '${{ env.GAR_LOCATION }}-docker.pkg.dev/${{ env.PROJECT_ID }}/${{ env.REPOSITORY }}/${{ env.IMAGE }}:${{ github.ref_name }}'
format: 'sarif'
ignore-unfixed: true
vuln-type: 'os,library'
severity: 'CRITICAL,HIGH'
output: 'trivy-results.sarif'

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@main
if: always()
with:
sarif_file: 'trivy-results.sarif'

- name: Send a stream message to Zulip
uses: zulip/github-actions-zulip/send-message@v1
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout matchbox
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
path: matchbox

- name: Checkout integration tests
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
path: matchbox-int-tests
repository: ahdis/matchbox-int-tests

- name: Setup Java 21
uses: actions/setup-java@v4
uses: actions/setup-java@v5
# https://github.com/actions/setup-java#usage
with:
java-version: 21
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Run the tests
timeout-minutes: 90 # We need a long timeout here
env:
MAVEN_OPTS: -Xmx12g
MAVEN_OPTS: -Xmx12g -Xms4g -XX:MaxMetaspaceSize=1g
run: mvn --batch-mode --no-transfer-progress --update-snapshots -Dmatchbox.version="${{ env.MATCHBOX_VERSION }}" verify site
working-directory: matchbox-int-tests

Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/java-sonar-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- main
pull_request:
types: [ opened, synchronize ]
schedule:
- cron: '0 0 * * 2' # Runs every Monday at 00:00 UTC

Expand Down Expand Up @@ -42,7 +44,7 @@ jobs:
# Log is too large and so we are creating a log file and uploading it.
# this is why we need continue on error on the step above.
- name: Upload build log
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: build-log
path: build.log
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/javadoc_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the project
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
# https://github.com/actions/setup-java#usage
with:
java-version: 21
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout the project
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Setup Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
# https://github.com/actions/setup-java#usage
with:
java-version: 21
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@main
uses: github/codeql-action/init@v3
with:
languages: 'java'
# If you wish to specify custom queries, you can do so here or in a config file.
Expand All @@ -55,7 +55,7 @@ jobs:
run: mvn compile

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@main
uses: github/codeql-action/analyze@v3

test-trivy:
name: Analyze the Java code with Trivy
Expand All @@ -67,10 +67,10 @@ jobs:

steps:
- name: Checkout the repository
uses: actions/checkout@main
uses: actions/checkout@v5

- name: Run Trivy vulnerability scanner in repo mode
uses: aquasecurity/trivy-action@master
uses: aquasecurity/trivy-action@0.33.1
with:
scan-type: 'fs'
ignore-unfixed: true
Expand All @@ -84,7 +84,7 @@ jobs:
ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@main
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: 'trivy-results.sarif'
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ $RECYCLE.BIN/
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
Expand Down Expand Up @@ -103,6 +104,7 @@ $RECYCLE.BIN/
.idea/*.iml
.idea/modules
.idea/sonarlint
.idea/copilot.data.*.xml
*.iml
*.ipr

Expand Down Expand Up @@ -235,4 +237,4 @@ matchbox-server/src/main/resources/static/prerendered-routes.json

*.repomixignore
repomix-output.xml
repomix.config.json
repomix.config.json
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,15 @@
"vmArgs": "-Dspring.config.additional-location=file:with-ch/application.yaml",
"cwd": "${workspaceFolder}/matchbox-server"
},
{
"type": "java",
"name": "Launch Matchbox-Server (gazelle)",
"request": "launch",
"mainClass": "ca.uhn.fhir.jpa.starter.Application",
"projectName": "matchbox-server",
"vmArgs": "-Dspring.config.additional-location=file:with-gazelle/application.yaml",
"cwd": "${workspaceFolder}/matchbox-server"
},
{
"type": "java",
"name": "Launch Matchbox-Server (one engine (dev))",
Expand Down Expand Up @@ -141,6 +150,15 @@
"vmArgs": "-Dspring.config.additional-location=file:../../matchbox-int-tests/src/test/resources/application-validate-r4-ch-elm.yaml",
"cwd": "${workspaceFolder}/matchbox-server"
},
{
"type": "java",
"name": "Launch Matchbox-Server (autoinstall)",
"request": "launch",
"mainClass": "ca.uhn.fhir.jpa.starter.Application",
"projectName": "matchbox-server",
"vmArgs": "-Dspring.config.additional-location=file:../../matchbox-int-tests/src/test/resources/application-validate-r4-auto-install.yaml",
"cwd": "${workspaceFolder}/matchbox-server"
},
{
"type": "java",
"name": "Launch Matchbox-Server (int-tests ch)",
Expand Down
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "disabled",
"maven.view": "flat",
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable"
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx4G -Xms100m -Xlog:disable"
}
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ or
### Configurable base image:

```bash
cd matchbox-server
mvn package -DskipTests
cd matchbox-server
docker build -t matchbox .
docker run -d --name matchbox -p 8080:8080 -v /Users/oegger/Documents/github/matchbox/matchbox-server/with-settings:/config matchbox
```
Expand Down Expand Up @@ -120,9 +120,9 @@ docker-compose exec -T matchbox-test-db pg_restore -c -U matchbox -d matchbox <
### making container available

```
docker tag matchbox eu.gcr.io/fhir-ch/matchbox:v313
docker tag matchbox eu.gcr.io/fhir-ch/matchbox:4.0.12

docker push eu.gcr.io/fhir-ch/matchbox:v313
docker push eu.gcr.io/fhir-ch/matchbox:v4.0.12
```

### publish docs
Expand Down
Binary file added docs/assets/ai_analyze.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/claude_desktop_mcp_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/vs_code_agent_setting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/vs_code_mcp_example.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/vs_code_tool_selection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading