Skip to content

Commit

Permalink
Merge pull request #18 from medizininformatik-initiative/release-v0.2.0
Browse files Browse the repository at this point in the history
Release v0.2.0
  • Loading branch information
juliangruendner authored Jan 23, 2024
2 parents 0887ec4 + 191c3c7 commit d431184
Show file tree
Hide file tree
Showing 14 changed files with 256 additions and 84 deletions.
5 changes: 3 additions & 2 deletions .env.default
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ EXECUTE_FEAS_TEST=false
CONFLUENCE_PAGE_ID_FEAS=""
EXECUTE_DSF_PING_TEST=false
CONFLUENCE_PAGE_ID_PING=""
DSF_CERT_PATH=
DSF_KEY_PATH=
LOCAL_DSF_CERT_PATH=
LOCAL_DSF_KEY_PATH=
LOG_LEVEL=INFO
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ dev-call.sh
reports/*.json
certs/
temp/
__pycache__/
__pycache__/
config/config.yml
48 changes: 46 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# Changelog

## v0.1.0
All notable changes to this project will be documented in this file.

Initial Logged Version
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [UNRELEASED] - yyyy-mm-dd

### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security

## [0.2.0] - 2024-01-23

### Added
- Add logging ([#7](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/7))
- Generate Ping Report Summary ([#10](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/10))
- Add additional Specimen queries ([#15](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/15))
- Add additional Laboratory Values ([#17](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/17))

### Changed
- History Table - display order date columns from newest to oldest ([#11](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/11))
- Sort rows for all tables alphabetically by sitename ([#12](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/12))

### Fixed
- Set docker image to release ([#6](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/6))
- Include all sites that answer into report ([#8](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/8))
- Site Url -> Site Identifier in table ([#9](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/9))
- Adding new site breaks history table ([#13](https://github.com/medizininformatik-initiative/feasibility-monitoring/issues/13))

## [0.1.0] - 2024-01-23

### Added
- Add `Changelog.md`
- Add `Development.md`
- Add `.env.default`
- Add github workflow to automate the Docker image build process
- Add history table to display results over time
- Add shell script to execute the monitoring without docker for easier testing during development

### Changed
- Update Readme
- Rename and move files for better file structure
- Extend feasibility test to evaluate multilpe modules
- Extend feasibility table to display additional summary fields
- Make Confluence page content and DSF sites configurable
1 change: 1 addition & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Release Checklist

* create a release branch called `release-v<version>` like `release-v0.1.1`
* rename every occurrence of old Docker images like `ghcr.io/medizininformatik-initiative/feasibility-monitoring:0.1.0` into the new image, say `ghcr.io/medizininformatik-initiative/feasibility-monitoring:0.1.1`
* update the CHANGELOG based on the milestone
* create a commit with the title `Release v<version>`
* create a PR from the release branch into main
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,7 @@ docker-compose -f docker/docker-compose.yml up
| HISTORY_TABLE_LEN | 14 | The maximum amount of history repots displayed in the Confluence table. |
| EXECUTE_DSF_PING_TEST | false | Boolean: Whether to execute the DSF ping test. |
| CONFLUENCE_PAGE_ID_PING | | The Confluence page ID where the ping test result will be uploaded. |

## Development

There is a [shell script](src/execute-local.sh) that runs the monitoring without Docker. It uses the same environment variables as mentioned above.
58 changes: 58 additions & 0 deletions config/config.default.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
feas-page-title: "FDPG Monitoring: Feasibility Test Modulabdeckung - Testumgebung"
feas-page-content-html: |
<div>
<strong>Ausgewählte automatische Abfragen des FDPG Machbarkeitsportal</strong><br></br>
Für Öffnung vorausgesetzt:<br></br>
<strong>Patient</strong>: code=263495000 (female|male) <br></br>
<strong>Condition</strong>: code=E10-E14 (Diabetes mellitus)<br></br>
<strong>Labor</strong>: code=718-7|17856-6|4548-4|4549-2 (Hemoglobin)<br></br>
<strong>Prozedur</strong>: code=3-20|8-19 (CT,nativ| Verbände Gewebe)<br></br>
<strong>Konsent</strong>: code=central-consent (MDAT wissenschaftlich nutzen)<br></br>
<br></br>
<strong>Für Öffnung nicht vorausgesetzt:</strong><br></br>
Medikation (admin): code=A10 (Antidiabetika)<br></br>
Specimen: code=119297000|119361006|119376003|441652008|441479001|420135007<br></br>
(Blood|Plasma|Tissue|fixed Tissue|fresh Tissue|Whole blood)<br></br>
</div>
<div>
<br></br><br></br>
Standorte die nicht angeschlossen sind finden die Anleitungen zum Anschluss ans Feasibility-Portal
mit Aktin hier:<br></br>
https://github.com/medizininformatik-initiative/feasibility-deploy/tree/v2.0.0<br></br>
Für das Triangle-Update der Readme hier folgen: https://github.com/medizininformatik-initiative/feasibility-deploy/tree/v2.0.0/feasibility-triangle#updating-the-feasibility-triangle<br></br>
Die neue Ontologie muss hier runtergeladen werden: https://confluence.imi.med.fau.de/display/MIIC/Ontologie<br></br>
<br></br>
mit DSF hier:<br></br>
https://github.com/medizininformatik-initiative/feasibility-deploy/wiki/DSF-Middleware-Setup<br></br>
<br></br>
Informationen zum Feasibility Portal, DIZ-Dashboard und zur Datenausleitung mit DSF finden Sie hier:<br></br>
https://xdash.forschen-fuer-gesundheit.de/?readme<br></br>
<br></br>
Kontakt: [email protected] <br></br>
</div>
<br></br>
<div>
<strong>Legende</strong>:<br></br>
<strong>„YES“</strong>: mehr als 20 Datenpunkte<br></br>
<strong>„no“</strong>: weniger als 20 Datenpunkte<br></br>
<strong>„.“</strong>: keine Antwort<br></br>
</div>
hist-page-title: "FDPG Monitoring: Feasibility Test Historie - Testumgebung"
hist-page-content-html: |
<div>
<strong>Abfrage für Test der 14 - tägigen Erreichbarkeit der Standorte für das FDPG Machbarkeitsportal:</strong><br></br>
<strong>Patient</strong>: code=263495000 (female|male) <br></br>
</div>
ping-page-title: "FDPG Monitoring: Ping Test - Testumgebung"
ping-page-content-html: |
<div>
<strong> DSF Ping Test. Prüft ob das DSF der Standorte über den DSF Ping-Pong Prozess erreichbar ist.</strong>
</div>
dsf-site-ids: |
[
"ukaachen.de", "uk-augsburg.de", "charite.de", "ukbonn.de", "ukdd.de", "uniklinik-duesseldorf.de", "www.uk-erlangen.de", "uk-essen.de", "kgu.de",
"uniklinik-freiburg.de", "uni-giessen.de", "umg.eu", "www.medizin.uni-greifswald.de", "uk-halle.de", "uke.de", "mh-hannover.de", "ukhd.de",
"uniklinikum-jena.de", "uk-koeln.de", "uniklinikum-leipzig.de", "www.med.uni-magdeburg.de", "unimedizin-mainz.de", "umm.de", "uni-marburg.de",
"lmu-klinikum.de", "mri.tum.de", "ukm.de", "ukr.de", "med.uni-rostock.de", "uks.eu", "uksh.de","medizin.uni-tuebingen.de", "uniklinik-ulm.de", "ukw.de"
]
13 changes: 7 additions & 6 deletions config/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
feas-page-title: "Automatische Pruefung Anbindung Testumgebung Feasibility"
feas-page-title: "FDPG Monitoring: Feasibility Test Modulabdeckung - Testumgebung"
feas-page-content-html: |
<div>
<strong>Ausgewählte automatische Abfragen des FDPG Machbarkeitsportal</strong><br></br>
Expand Down Expand Up @@ -38,19 +38,20 @@ feas-page-content-html: |
<strong>„no“</strong>: weniger als 20 Datenpunkte<br></br>
<strong>„.“</strong>: keine Antwort<br></br>
</div>
hist-page-title: "test title"
hist-page-title: "FDPG Monitoring: Feasibility Test Historie - Testumgebung"
hist-page-content-html: |
<div>
test body
<strong>Abfrage für Test der 14 - tägigen Erreichbarkeit der Standorte für das FDPG Machbarkeitsportal:</strong><br></br>
<strong>Patient</strong>: code=263495000 (female|male) <br></br>
</div>
ping-page-title: "Ergebnis Ping DSF Testumgebung FDPG"
ping-page-title: "FDPG Monitoring: Ping Test - Testumgebung"
ping-page-content-html: |
<div>
<strong>DSF ping test Ergebnisse</strong><br></br>
<strong> DSF Ping Test. Prüft ob das DSF der Standorte über den DSF Ping-Pong Prozess erreichbar ist.</strong>
</div>
dsf-site-ids: |
[
"ukaachen.de", "uk-augsburg.de", "charite.de", "ukbonn.de", "ukdd.de", "uniklinik-duesseldorf.de", "www.uk-erlangen.de", "uk-essen.de", "kgu.de",
"ukaachen.de", "uk-augsburg.de", "charite.de", "ukbonn.de", "ukdd.de", "uniklinik-duesseldorf.de", "uk-essen.de", "kgu.de",
"uniklinik-freiburg.de", "uni-giessen.de", "umg.eu", "www.medizin.uni-greifswald.de", "uk-halle.de", "uke.de", "mh-hannover.de", "ukhd.de",
"uniklinikum-jena.de", "uk-koeln.de", "uniklinikum-leipzig.de", "www.med.uni-magdeburg.de", "unimedizin-mainz.de", "umm.de", "uni-marburg.de",
"lmu-klinikum.de", "mri.tum.de", "ukm.de", "ukr.de", "med.uni-rostock.de", "uks.eu", "uksh.de","medizin.uni-tuebingen.de", "uniklinik-ulm.de", "ukw.de"
Expand Down
102 changes: 62 additions & 40 deletions config/input-queries.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,16 +94,6 @@
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
},
"valueFilter": {
"selectedConcepts": [],
"type": "quantity-comparator",
"unit": {
"code": "g/dL",
"display": "g/dL"
},
"value": 0,
"comparator": "gt"
}
},
{
Expand All @@ -119,16 +109,6 @@
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
},
"valueFilter": {
"selectedConcepts": [],
"type": "quantity-comparator",
"unit": {
"code": "%",
"display": "%"
},
"value": 0,
"comparator": "gt"
}
},
{
Expand All @@ -144,16 +124,6 @@
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
},
"valueFilter": {
"selectedConcepts": [],
"type": "quantity-comparator",
"unit": {
"code": "%",
"display": "%"
},
"value": 0,
"comparator": "gt"
}
},
{
Expand All @@ -169,16 +139,36 @@
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
},
"valueFilter": {
"selectedConcepts": [],
"type": "quantity-comparator",
"unit": {
"code": "%",
"display": "%"
},
"value": 0,
"comparator": "gt"
}
},
{
"termCodes": [
{
"code": "20509-6",
"system": "http://loinc.org",
"display": "Hemoglobin [Mass/volume] in Blood by calculation"
}
],
"context": {
"code": "Laboruntersuchung",
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
}
},
{
"termCodes": [
{
"code": "30352-9",
"system": "http://loinc.org",
"display": "Totales Hämoglobin kapillär"
}
],
"context": {
"code": "Laboruntersuchung",
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Laboruntersuchung"
}
}
]
Expand Down Expand Up @@ -363,6 +353,38 @@
"version": "1.0.0",
"display": "Bioprobe"
}
},
{
"termCodes": [
{
"code": "404798000",
"system": "http://snomed.info/sct",
"version": "http://snomed.info/sct/900000000000207008/version/20220930",
"display": "Whole blood"
}
],
"context": {
"code": "Specimen",
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Bioprobe"
}
},
{
"termCodes": [
{
"code": "119342007",
"system": "http://snomed.info/sct",
"version": "http://snomed.info/sct/900000000000207008/version/20220930",
"display": "Whole blood"
}
],
"context": {
"code": "Specimen",
"system": "fdpg.mii.cds",
"version": "1.0.0",
"display": "Bioprobe"
}
}
]
]
Expand Down
3 changes: 2 additions & 1 deletion docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
feasibility-test-client:
image: ghcr.io/medizininformatik-initiative/feasibility-monitoring:test
image: ghcr.io/medizininformatik-initiative/feasibility-monitoring:0.1.0
environment:
- BACKEND_BASE_URL=${BACKEND_BASE_URL:-"https://localhost/api/v1"}
- BACKEND_CLIENT_ID=${BACKEND_CLIENT_ID:-""}
Expand All @@ -21,6 +21,7 @@ services:
- HISTORY_TABLE_LEN=${HISTORY_TABLE_LEN:-14}
- EXECUTE_DSF_PING_TEST=${EXECUTE_DSF_PING_TEST:-"false"}
- CONFLUENCE_PAGE_ID_PING=${CONFLUENCE_PAGE_ID_PING:-""}
- LOG_LEVEL=${LOG_LEVEL:-"INFO"}
volumes:
- ${LOCAL_DSF_CERT_PATH:-./cert/dsf-cert.cer}:/opt/reportclient/certs/dsf-cert.cer
- ${LOCAL_DSF_KEY_PATH:-./cert/dsf-key.key}:/opt/reportclient/certs/dsf-key.key
Expand Down
6 changes: 4 additions & 2 deletions docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ EXECUTE_HISTORY_TEST=${EXECUTE_HISTORY_TEST:-"false"}
CONFLUENCE_PAGE_ID_HIST=${CONFLUENCE_PAGE_ID_HIST:-""}
HISTORY_TABLE_LEN=${HISTORY_TABLE_LEN:-14}
EXECUTE_DSF_PING_TEST=${EXECUTE_DSF_PING_TEST:-"false"}
CONFLUENCE_PAGE_ID_PING=${CONFLUENCE_PAGE_ID_PING:""}
CONFLUENCE_PAGE_ID_PING=${CONFLUENCE_PAGE_ID_PING:-""}
LOG_LEVEL=${LOG_LEVEL:-"INFO"}

python src/py/feasibility-monitoring.py --dsf_cert_path $DSF_CERT_PATH --dsf_key_path $DSF_KEY_PATH --backend_base_url "$BACKEND_BASE_URL" --backend_client_id "$BACKEND_CLIENT_ID" \
--client_secret "$BACKEND_CLIENT_SECRET" --keycloak_token_url "$KEYCLOAK_TOKEN_URL" \
--confluence_api_base_url "$CONFLUENCE_API_BASE_URL" --conf_user "$CONF_USER" --conf_pw "$CONF_PW"\
--send_results_confluence $SEND_TO_CONFLUENCE --wait_result_secs_feas "$WAIT_RESULT_SECS_FEAS"\
--dsf_base_url $DSF_BASE_URL --execute_feas_test $EXECUTE_FEAS_TEST --confluence_page_id_feas $CONFLUENCE_PAGE_ID_FEAS\
--execute_history_test $EXECUTE_HISTORY_TEST --confluence_page_id_hist $CONFLUENCE_PAGE_ID_HIST --history_table_len $HISTORY_TABLE_LEN\
--execute_ping_test $EXECUTE_DSF_PING_TEST --confluence_page_id_ping $CONFLUENCE_PAGE_ID_PING --wait_result_secs_ping "$WAIT_RESULT_SECS_PING"
--execute_ping_test $EXECUTE_DSF_PING_TEST --confluence_page_id_ping $CONFLUENCE_PAGE_ID_PING --wait_result_secs_ping "$WAIT_RESULT_SECS_PING"\
--log_level "$LOG_LEVEL"
2 changes: 1 addition & 1 deletion docker/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
requests==2.22.0
psycopg2==2.9.3
prettytable==3.3.0
prettytable==3.9.0
PyYAML==6.0
Loading

0 comments on commit d431184

Please sign in to comment.