CoolFace
Apppublic

philsteiger/icd10-gm-middleware

sourceHugging Facemitupdated 7mo agoView on Hugging Face
0likes
App README

πŸ₯ 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)

PflichtfeldQuelleBeschreibung
PID/3.1ORU PID/3.1Patient-ID (SAP)
PV1/19.1ORU PV1/19.1Fallnummer (SAP)
FT1/2GeneriertTransaction-ID (eindeutig)
FT1/7.1ORU OBR/3.1Befund-ID
FT1/19.1LLMICD-10 Code β†’ GUI Leistungserfassung
FT1/23ORU OBR/3.1Accession Number

Technische Parameter

ParameterWertBegrΓΌndung
temperature0.0Determinismus fΓΌr Audit-Trail
do_sampleFalseGreedy Decoding, keine stochastische Varianz
loadin4bitTrue~8 GB VRAM statt ~14 GB
bnb4bitquant_typenf4Beste QualitΓ€t bei 4-bit Quantisierung
Confidencemean(max_prob)Über alle generierten Token gemittelt
Kosten0.0003 Rp/sβ˜… CHF 8'000 HW / 3 Jahre Abschreibung

β˜… 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_ID env β†’ @spaces.GPU Decorator β†’ ZeroGPU
  • β€”Docker / On-Premise: Kein SPACE_ID β†’ persistente GPU direkt

Option A: HuggingFace Spaces ZeroGPU (Demo) β€” ~CHF 9/Mt

  1. 1.HF PRO-Abo: https://huggingface.co/subscribe/pro
  2. 2.https://huggingface.co/new-space
  3. 3.SDK: Gradio, Hardware: ZeroGPU
  4. 4.Dateien hochladen: app.py, requirements.txt, README.md
  5. 5.~10 Min warten β†’ URL ist live

Option B: Docker / RunPod (Produktion) β€” ab $0.22/hr (RTX 3090)

bash
# RunPod: RTX 3090 (24 GB) β€” $0.22/hr Community Cloud
docker build -t icd10-middleware .
docker run --gpus all -p 7860:7860 icd10-middleware

Option C: On-Premise (Hirslanden Server) β€” β˜… ~CHF 8'000 HW

bash
# Voraussetzung: NVIDIA GPU β‰₯ 16 GB VRAM
git clone <repo-url>
cd icd10-middleware
pip install -r requirements.txt
python app.py
# β†’ http://localhost:7860

ICD-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.