Trascrizione medica e LLM locale: conformità dei dati patient
Dettare una visita medica, ottenere una trascrizione pulita, poi un resoconto SOAP pronto da incollare nella cartella del paziente — senza che neppure un secondo di audio esca dallo studio. È la promessa che questa guida rende operativa: una pipeline HDS di trascrizione medica con un LLM locale, basata su Whisper-large-v3 e un modello 14B+ (Llama 4 o Qwen3), progettata per rispettare il segreto medico e il quadro HDS.
#Quadro HDS e segreto medico
Il segreto medico (articolo L.1110-4 del Codice della sanità pubblica) si applica a qualsiasi documento contenente informazioni sanitarie che permettano di identificare una persona, comprese le trascrizioni audio. Non appena un dato di un paziente viene trattato al di fuori dello studio o dell'ospedale, il fornitore di hosting deve essere certificato HDS (standard ASIP/ANS). In concreto, inviare una consultazione a un'API cloud non certificata HDS — Whisper di OpenAI, Claude o qualsiasi piattaforma destinata al grande pubblico — ti pone al di fuori del quadro previsto, anche per un test.
La soluzione: non far mai uscire né l'audio né la trascrizione dal perimetro che controlli. È proprio ciò che permette una pipeline di trascrizione medica con un LLM locale: la macchina di inferenza si trova nello studio, il disco è crittografato e la rete è isolata. Nessun fornitore di hosting, nessun accreditamento da richiedere.
#Architettura 100% locale
Implementare un'IA locale sul lavoro: GDPR, AI Act, architettura multiutente, costi, nota per la direzione.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
La pipeline è composta da quattro blocchi, tutti locali: acquisizione audio → Whisper-large-v3 → LLM con template SOAP → esportazione verso il software dello studio (LGC) o il DMP.
- Registrazione
- Microfono lavalier o microfono USB cardioide posizionato tra il professionista sanitario e il paziente. Niente Bluetooth (latenza e compressione). Registrazione in WAV a 16 kHz mono.
- Trascrizione
- Whisper-large-v3 (OpenAI, pesi aperti, licenza MIT) eseguito tramite faster-whisper su GPU locale. Modello caricato in memoria, audio distrutto dopo la trascrizione.
- Strutturazione
- Llama 4 Scout (17B-A2B, MoE) o Qwen3-14B servito da Ollama. Il modello LLM elabora la trascrizione e produce un resoconto SOAP (Subjective, Objective, Assessment, Plan).
- Esportazione
- Il resoconto viene inserito nel LGC (Weda, Medistory, AxiSanté, Doctolib Pro, Maiia) tramite gli appunti, una scorciatoia HL7 CDA o un'API, se disponibile.
#Requisiti hardware e software
- GPU
- Come minimo una RTX 4070 da 12 GB; una RTX 4080 da 16 GB o una RTX 4090 da 24 GB offrono più margine. Whisper-large-v3 occupa ~3 GB di VRAM, il LLM da 14B in Q4_K_M richiede circa 9 GB.
- Alternativa Mac
- Il Mac mini M4 Pro con 48 GB di RAM unificata fa girare l'intero stack. Ideale per uno studio sanitario libero-professionale: silenzioso, con le ventole ferme quando è inattivo, a basso consumo.
- Archiviazione
- SSD NVMe cifrato con LUKS (Linux), BitLocker (Windows Pro) o FileVault (macOS). 100 GB sono sufficienti: circa 25 GB per i modelli, il resto per le trascrizioni temporanee.
- Rete
- La postazione di inferenza si trova su una VLAN separata dalla rete Wi-Fi dei pazienti. Nessun accesso a Internet in uscita in produzione — consentito soltanto durante gli aggiornamenti, sotto supervisione.
- Software
- Ollama (≥ 0.5) per servire il LLM su http://localhost:11434, faster-whisper (Python) per la trascrizione, ffmpeg per la conversione audio.
#1. Whisper-large-v3 su consulti in francese
faster-whisper è un fork basato su CTranslate2, da 4 a 5 volte più veloce dell'implementazione Python di riferimento, a parità di qualità. Accetta gli stessi modelli ed espone un'API semplice.
Il codice di trascrizione in sé occupa poche righe. Nota l'impostazione language='fr', che disattiva il rilevamento automatico della lingua ed evita derive linguistiche all'inizio del consulto.
Su una RTX 4080, una visita di 15 minuti viene trascritta in circa 90 secondi. Il file audio originale viene eliminato immediatamente dopo — la trascrizione è sufficiente, l'audio rappresenta un rischio inutile.
#2. LLM e template SOAP
Il resoconto SOAP è lo standard di fatto: Subjective (motivo della visita, disturbi riferiti dal paziente), Objective (esame clinico, parametri vitali, esami complementari), Assessment (diagnosi o ipotesi), Plan (prescrizioni, esami da effettuare, follow-up). Si chiede al LLM di compilare questo modello attenendosi rigorosamente alla struttura, senza inventare.
Il prompt di sistema impone un quadro rigoroso: nessuna invenzione, citazione letterale in caso di incertezza, linguaggio medico francese.
#3. Pipeline completo
Si esegue prima la trascrizione, poi la strutturazione tramite l'API REST locale di Ollama. Lo script resta compatto e verificabile — circa 40 righe, una scelta voluta: meno codice, meno superficie di attacco.
L'elaborazione di una consultazione medica di 15 minuti attraverso l'intera pipeline richiede meno di 3 minuti su RTX 4080. Il resoconto .soap.md è pronto per essere incollato nel LGC.
#4. Integrazione con il software dello studio medico
Tre livelli di integrazione in base al tuo LGC:
- 01Livello 1 — AppuntiLo script copia automaticamente il resoconto (pyperclip). Il professionista sanitario lo incolla nel LGC con due clic. Compatibile con il 100% dei LGC, nessuna integrazione da parte del fornitore del software. È il punto di partenza consigliato.
- 02Livello 2 — Scorciatoia HL7 CDAIl reporto Markdown viene convertito in CDA R2 (Clinical Document Architecture) mediante un script pandoc + template XML, poi importato tramite la funzione di importazione documentale del LGC. Compatibile con Weda, Medistory, AxiSanté che accettano CDA.
- 03Livello 3 — API nativa del LGCAlcuni fornitori di software (Doctolib Pro, Maiia) mettono a disposizione un'API per l'inserimento di osservazioni. La pipeline inserisce direttamente il referto nella cartella del paziente identificato tramite INS. È la soluzione più comoda, ma richiede un accordo con il fornitore e un'autenticazione CPS.
#Conformità e registrazione dei log di audit
L'uso di uno strumento di supporto alla redazione medica deve essere documentato. Almeno tre elementi nella cartella del paziente:
- Dicitura sull'uso dell'IA come supporto alla redazione
- Una riga in calce al resoconto: "Resoconto strutturato con l'assistenza di un modello di IA locale (Qwen3-14B, versione 2026-04-12). Validato dal Dott. [...] il [data]." Questa dicitura documenta la tracciabilità.
- Log degli accessi
- Ogni esecuzione della pipeline è registrata localmente (chi, quando, quale audio, quale modello, hash del resoconto). Il log è append-only, firmato e conservato per 10 anni (durata di conservazione della cartella del paziente).
- DPIA GDPR
- Esegui una valutazione d'impatto (articolo 35 RGPD) per il trattamento «trascrizione assistita dall'IA». Il funzionamento al 100% in locale semplifica la valutazione: nessun trasferimento fuori dall'UE, nessun responsabile del trattamento, un'unica finalità.
- Informazione al paziente
- L'avviso affisso in sala d'attesa e la menzione nel modulo di accoglienza devono indicare l'uso di uno strumento di supporto alla trascrizione. Il paziente può rifiutare — prevedi un flusso di lavoro alternativo.
- Crittografia a riposo
- Tutto il disco è crittografato. I report vengono salvati nella cartella paziente del LGC, non sul sistema di file del computer di inferenza. Elimina i file .soap.md temporanei alla fine della giornata.
- Aggiornamenti supervisionati
- Ogni aggiornamento di un modello (Whisper, LLM) comporta una nuova validazione su un insieme di 10 consultazioni di prova anonimizzate. Bug di regressione noto = nessun deployment.
#Per approfondire
Questa pipeline copre l'uso quotidiano di un professionista sanitario che esercita la libera professione o di un servizio ospedaliero di dimensioni modeste. Tre estensioni naturali: industrializzare il deployment su più postazioni con Docker e un reverse proxy per l'autenticazione CPS, aggiungere un RAG locale basato sulle raccomandazioni HAS per supportare l'Assessment e rafforzare la sicurezza di rete fino al completo isolamento air-gap.
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.