philsteiger/icd10-gm-middleware
π₯ ICD-10-GM KI-Kodierungs-Middleware β Prototyp 3
Automatische ICD-10-GM Kodierung aus radiologischen Befundtexten mittels LLM (Qwen3-8B, 4-bit Quantisierung) mit NEXUS-RIS HL7-Schnittstelle.
Systemarchitektur
NEXUS-RIS AI-Server (Hirslanden)
β β
β HL7 ORU^R01 (OBX TX = Befund) β
βββββββββββββββββββββββββββββββββββββββββΊβ
β β 1. ORU Parser
β β β PID/3.1 (Patient-ID)
β β β PV1/19.1 (Fallnummer)
β β β OBR/3.1 (Befund-ID / Accession)
β β β OBX-5 TX (Befundtext)
β β \.br\ β Zeilenumbruch
β β \F\ β Feldtrenner
β β
β β 2. LLM Inferenz
β β Qwen3-8B (4-bit NF4)
β β temperature=0.0 (deterministisch)
β β output_scores=True β Confidence
β β
β β 3. DFT^P03 Builder
β HL7 DFT^P03 β FT1/19 β ICD-10 Code
ββββββββββββββββββββββββββββββββββββββββββ€ FT1/2 β Transaction-ID
β β FT1/7 β Befund-ID
βΌ β FT1/23 β Accession Nr.
NEXUS-RIS Plugin
Leistungserfassung
(ICD-10 Code β GUI-Feld)HL7 Message-Formate
Eingang: ORU^R01 (NEXUS-RIS β AI)
Befund wird aus dem OBX-Segment (Value Type = TX) extrahiert. HL7-Escape-Sequenzen (\.br\, \F\, \S\, \E\, \R\, \T\) werden aufgelΓΆst. OBX mit Value Type ED (Base64 PDF) wird ignoriert.
Ausgang: DFT^P03 (AI β NEXUS-RIS)
Technische Parameter
β Hardware-Annahme: Dedizierter GPU-Server (z.B. RTX 4000 Ada / A4000), 3 Jahre lineare Abschreibung, 24/7 Betrieb. Anpassbar via `COST_RAPPEN_PER_SECOND`.
Deployment
Der Code erkennt automatisch die Laufzeitumgebung:
- HuggingFace Spaces:
SPACE_IDenv β@spaces.GPUDecorator β ZeroGPU - Docker / On-Premise: Kein
SPACE_IDβ persistente GPU direkt
Option A: HuggingFace Spaces ZeroGPU (Demo) β ~CHF 9/Mt
- HF PRO-Abo: https://huggingface.co/subscribe/pro
- https://huggingface.co/new-space
- SDK: Gradio, Hardware: ZeroGPU
- Dateien hochladen:
app.py,requirements.txt,README.md - ~10 Min warten β URL ist live
Option B: Docker / RunPod (Produktion) β ab $0.22/hr (RTX 3090)
# RunPod: RTX 3090 (24 GB) β $0.22/hr Community Cloud
docker build -t icd10-middleware .
docker run --gpus all -p 7860:7860 icd10-middlewareOption C: On-Premise (Hirslanden Server) β β ~CHF 8'000 HW
# Voraussetzung: NVIDIA GPU β₯ 16 GB VRAM
git clone <repo-url>
cd icd10-middleware
pip install -r requirements.txt
python app.py
# β http://localhost:7860ICD-10-GM Kodierung
Das Modell nutzt den vollstΓ€ndigen ICD-10-GM Katalog aus seinem Training (Qwen3-8B). Es ist nicht auf eine Untermenge beschrΓ€nkt und gibt den spezifischsten zutreffenden Code aus.
Dateistruktur
icd10-middleware/
βββ app.py β Hauptapplikation (auto-detect HF Spaces vs Docker)
βββ requirements.txt β Python Dependencies
βββ Dockerfile β Docker Build (RunPod / On-Premise)
βββ README.md β Diese Datei (+ HF Spaces YAML Metadata)Disclaimer
β οΈ Nicht fΓΌr den klinischen Einsatz freigegeben. Prototyp ausschliesslich fΓΌr Demonstrations- und Evaluationszwecke.
