Open chgl opened 3 months ago
Hier mal eine (unvollständige) Übersicht der Lookup-Klassen und den URLs zu simplifier.net, auch mit ValueSets und CodeSystems neben den ConceptMaps. An einigen Stellen sind mehr Mapping-Werte vorhanden, als in den Lookup-Klassen.
Da für ValueSets und CodeSystems der FHIR-Op $translate
nicht verfügbar ist, könnte ein Client auch die möglichen Werte laden und das Mapping selbst vornehmen.
Beispiele (curl mit JSONPath) zum Auffinden anhand des Codes:
curl -fs 'https://simplifier.net/medizininformatikinitiative-modulonkologie/mii-vs-onko-gesamtbeurteilung-residualstatus/$download?format=json' | jq '.compose.include[].concept[] | select(.code=="R0")'
curl -fs 'https://simplifier.net/MedizininformatikInitiative-ModulOnkologie/mii-cs-onko-seitenlokalisation/$download?format=json' | jq '.concept[] | select(.code=="T")'
curl -fs 'https://simplifier.net/MedizininformatikInitiative-ModulOnkologie/mii-cm-onko-nebenwirkung-sct/$download?format=json' | jq '.group[].element[] | select(.code=="K")'
Anderenfalls müsste alles als ConceptMap vorliegen und der verwendete FHIR-Server $translate
unterstützen. Soweit ich weiß unterstützt z.B. der oft genutzte https://github.com/samply/blaze dies (noch) nicht.
Für den HAPI FHIR kann man zB so IGs laden:
services:
hapi-fhir-server:
image: docker.io/hapiproject/hapi:v7.2.0@sha256:9bcafa8342b572eee248cb7c48c496863d352bbd0347e1d98ea238d09620e89b
restart: unless-stopped
cap_drop:
- ALL
ipc: none
security_opt:
- "no-new-privileges:true"
read_only: true
tmpfs:
- /tmp
- /app/target
privileged: false
environment:
SPRING_DATASOURCE_URL: "jdbc:postgresql://hapi-fhir-db:5432/fhir?currentSchema=public"
SPRING_DATASOURCE_USERNAME: postgres
# kics-scan ignore-line
SPRING_DATASOURCE_PASSWORD: postgres
SPRING_DATASOURCE_DRIVERCLASSNAME: org.postgresql.Driver
spring.jpa.properties.hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
HAPI_FHIR_VALIDATION_REQUESTS_ENABLED: "false"
HAPI_FHIR_USE_APACHE_ADDRESS_STRATEGY: "true"
HAPI_FHIR_ENFORCE_REFERENTIAL_INTEGRITY_ON_DELETE: "false"
HAPI_FHIR_ENFORCE_REFERENTIAL_INTEGRITY_ON_WRITE: "false"
HAPI_FHIR_SUBSCRIPTION_RESTHOOK_ENABLED: "false"
HAPI_FHIR_ALLOW_MULTIPLE_DELETE: "true"
HAPI_FHIR_BULK_IMPORT_ENABLED: "false"
HAPI_FHIR_IMPLEMENTATIONGUIDES_MIIONKOLOGIE_PACKAGEURL: "https://packages.simplifier.net/de.medizininformatikinitiative.kerndatensatz.onkologie/2024.0.0-ballot-beta-1"
HAPI_FHIR_IMPLEMENTATIONGUIDES_MIIONKOLOGIE_VERSION: "2024.0.0-ballot-beta-1"
HAPI_FHIR_IMPLEMENTATIONGUIDES_MIIONKOLOGIE_NAME: "de.medizininformatikinitiative.kerndatensatz.onkologie"
depends_on:
- hapi-fhir-db
ports:
- "127.0.0.1:8084:8080"
hapi-fhir-db:
image: docker.io/bitnami/postgresql:16.4.0@sha256:6bea1699d088605204841b889fb79d7572030a36ec5731e736d73cd33018cc03
restart: unless-stopped
environment:
# kics-scan ignore-line
POSTGRESQL_PASSWORD: postgres
POSTGRESQL_DATABASE: fhir
Allerdings klappt zB GET http://localhost:8084/fhir/ConceptMap/$translate?system=https://www.medizininformatik-initiative.de/fhir/ext/modul-onko/CodeSystem/mii-cs-onko-verlauf-primaertumor&code=K&targetSystem=http://snomed.info/sct
auf anhieb nicht. Das kann aber auch Anwenderfehler sein.
Allerdings klappt zB
GET http://localhost:8084/fhir/ConceptMap/$translate?system=https://www.medizininformatik-initiative.de/fhir/ext/modul-onko/CodeSystem/mii-cs-onko-verlauf-primaertumor&code=K&targetSystem=http://snomed.info/sct
auf anhieb nicht. Das kann aber auch Anwenderfehler sein.
Bei ConceptMaps funktioniert es, bei ValueSets und CodeSystems leider nicht (Siehe auch: https://github.com/bzkf/obds-to-fhir/issues/70#issuecomment-2287145307). Eventuell könnte dies ein Problem werden.
Ah jetzt, also bei den ValueSets und CodeSystem lookup Klassen nutzen wir das primär um das display zu bekommen - dafür würde sich dann $lookup anbieten: https://www.hl7.org/fhir/codesystem-operation-lookup.html - ValueSet beschreibt auch nur eine Teilmenge von einem oder mehreren CodeSystem.
Aktuell sind viele oBDS->FHIR coding mappings hart-codiert in HashMaps. In den neuen Onko-Profilen werden ConceptMaps definiert die diese Mappings auf FHIR-native Art abbilden: https://simplifier.net/medizininformatikinitiative-modulonkologie/~resources?category=ConceptMap
Mappings können dann via
$translate
-calls umgesetzt werden: https://hl7.org/fhir/R4B/conceptmap-operation-translate.htmlFür die lokale Entwicklung könnte man diese in einen HAPI FHIR server laden, oder einen externen TermServer nutzen (MII?).