Una cartella clinica
che resta a casa tua.
MediFlow è una cartella clinica per il singolo professionista e per piccoli ambulatori. I dati restano sul computer del medico, cifrati. L'intelligenza artificiale gira sullo stesso dispositivo, senza chiamare servizi remoti. Lo standard clinico è quello internazionale: ICD-11 per le diagnosi, FHIR per l'esportazione.
Una cartella clinica, niente di più. Niente di meno.
MediFlow gestisce anagrafica, diario clinico, terapie, controlli, osservazioni e documenti dei pazienti. Lo fa senza chiedere al professionista di affidare i dati a un servizio remoto e senza promettere miracoli che non può mantenere.
Una scheda paziente coerente
Anagrafica, diagnosi codificate, terapie, esami, osservazioni, allegati. Tutto in un unico posto, tutto cifrato.
AI che lavora con te
Riassunti documentali, suggerimenti di codifica ICD-11 a partire dai referti, lettura testuale dei PDF. Sempre revisionabile, mai automatica al buio.
Una serratura sola: il PIN
Senza il tuo PIN il database non è leggibile. Nemmeno per chi ha scritto il software.
Salvataggi automatici
Backup notturno governato, ritenzione configurabile, manifesto e controllo preliminare prima del ripristino.
Multi-ambulatorio
Più sedi e reparti distinguibili a colpo d'occhio. Permette al singolo medico di gestire più contesti senza confondere i pazienti.
Esci quando vuoi
Esportazione FHIR R4 della storia clinica. Niente trappola: i tuoi dati restano riusabili anche fuori da MediFlow.
Tre punti di vista, una stessa cartella.
Il prodotto cambia di significato a seconda di chi lo guarda. Ecco cosa cambia per ciascuno.
Cosa vede ogni giorno
La scheda del paziente con la storia coerente: diagnosi codificate, terapie con principio attivo e ATC, controlli passati e in agenda, osservazioni con unità di misura standard, allegati con riassunto.
Cosa cambia rispetto al solito
I dati non sono in un servizio remoto: sono nel suo computer. L'AI lo aiuta ma non scrive nulla in scheda senza una sua conferma esplicita, soprattutto su diagnosi e terapie.
Cosa non gli viene chiesto
Niente account su servizi terzi, niente abbonamenti per usare l'AI, niente caricamento di referti sul cloud. Il PIN è l'unica credenziale che deve ricordare.
Cosa porta via se cambia idea
Un pacchetto FHIR R4 con anagrafica, diagnosi, visite, terapie e osservazioni. Standard riconosciuto, leggibile da altri sistemi.
Dove finiscono i suoi dati
Sul computer del professionista che ha in cura il paziente, cifrati. Non vengono condivisi con servizi remoti né usati per addestrare modelli.
Quali diritti restano garantiti
Diritto all'oblio (Art. 17 GDPR) con cancellazione governata. Portabilità dei dati (Art. 20) tramite esportazione in formato standard.
Cosa succede se il computer viene rubato
Il database resta cifrato a riposo. Senza il PIN nessuno può leggerlo, nemmeno con il file in mano. La chiave non è sul disco.
Chi è responsabile
Il professionista resta titolare del trattamento. MediFlow è lo strumento, non l'esecutore.
Modello di dispiegamento
Single-tenant locale. Un nodo per professionista. Niente server centrale da mantenere, niente perimetro multi-paziente da difendere a livello di rete.
Compatibilità con il SSR
Boundary espliciti verso SISS/FSE: oggi MediFlow prepara il contesto e richiama i percorsi ufficiali in modalità assistita. Niente claim di integrazione regionale certificata fuori da quanto documentato.
Auditing
Registro append-only con catalogo eventi limitato (chi, cosa, quando, esito). Niente PHI nei log applicativi, niente testi liberi clinici fuori dal record.
Costi nascosti
Nessun canone per AI cloud. Nessun lock-in proprietario di formato dati: l'export FHIR R4 e la cifratura aperta tengono basso il costo di uscita.
Quattro promesse non negoziabili.
Sono quattro vincoli che pesano sulle scelte tecniche e di prodotto. Quando entrano in conflitto con la velocità di sviluppo, vincono i vincoli.
① Locale prima di tutto default
I dati clinici non escono dal computer per impostazione predefinita. Niente telemetria, niente sincronizzazione automatica, niente chiamate AI verso servizi esterni. Se una funzione richiedesse un canale remoto, viene aggiunta in modo esplicito, documentata e disattivabile.
② Zero conoscenza a riposo cifratura
I campi sensibili sono cifrati lato client con AES-256-GCM prima della scrittura. Il PIN non viene mai salvato. La chiave principale viene derivata dal PIN, custodita in memoria solo durante la sessione e mai sul disco. Nessun ripristino possibile in caso di smarrimento del PIN: è una garanzia, non un bug.
③ Standard aperti interoperabilità
ICD-11 per le diagnosi, ATC e AIC per i farmaci, LOINC e UCUM per le osservazioni, FHIR R4 per l'esportazione. Niente formato proprietario quando esiste un formato condiviso a livello internazionale.
④ AI revisionabile no automatismi
I modelli locali aiutano nella sintesi, nell'OCR e nei suggerimenti. Non scrivono mai diagnosi o terapie senza una conferma esplicita del professionista. L'unica eccezione documentata è l'autofill su codici ICD letteralmente presenti nel documento sorgente.
Dove vivono i dati. Chi parla con chi.
Il sistema gira sul Mac del professionista. Il browser e i client Apple parlano con un'unica applicazione locale. I servizi opzionali (AI, ricerca diagnosi, redazione) sono sempre su localhost.
Un nodo, non un servizio
Il Mac del professionista è il nodo autorevole: contiene il database, espone l'API e orchestra l'AI. Niente server centrale.
Tre superfici API distinte
Web API per il browser (sessione), Native API versionata per i client Apple (token), Network API opzionale per i client paired in LAN fidata (capability + versione).
Servizi locali allowlisted
I proxy verso AI e ICD-11 accettano solo destinazioni localhost. Nessun rischio di SSRF verso indirizzi remoti.
Cosa succede davvero quando lavori in scheda.
Sei flussi essenziali, in ordine di vita di una giornata clinica. Ogni passo è verificabile dal codice e dagli ADR pubblici.
Sblocco e attivazione delle chiavi
Il professionista inserisce il PIN. Dal PIN si deriva una chiave intermedia, che a sua volta sblocca la chiave principale, mantenuta in memoria solo per la sessione attiva. Nessuna delle due viene salvata sul disco.
Scrittura clinica dal browser
I campi sensibili (note, allegati, riassunti AI) vengono cifrati nel browser prima di partire verso l'API. Sul disco arrivano solo stringhe nella forma ENC:iv:cipher. Il server non vede mai il testo in chiaro.
Lettura/scrittura dal client macOS nativo
Il client Apple cifra in locale, parla in HTTPS verso il proxy TLS sulla porta 3443, presenta un token bearer su un'API versionata /api/v1/*. Niente scraping della UI, niente dipendenza dai dettagli interni del web.
Documento → OCR → sintesi → archivio
Il referto caricato passa al servizio OCR locale (Ollama), che lo rende testo. Un secondo passaggio AI estrae sintesi, qualità del segnale e codici ICD esplicitamente presenti. Il risultato viene cifrato e attaccato al paziente come allegato + artefatto di evidenza.
Smart import revisionabile
Dal profilo paziente l'AI propone diagnosi e terapie a partire dalle fonti già presenti (note, diario, allegati analizzati). Le proposte sono associate a evidenze e attendono conferma esplicita. Nessuna scrittura in scheda senza un click consapevole.
Modalità Mac home-base con client paired
Se attivata in modo esplicito, la modalità rete consente a un iPhone o iPad accoppiato di consultare e aggiornare in modo limitato profilo, diario, terapie, controlli e osservazioni. Ogni scrittura richiede capability dedicate, sessione operatore e numero di versione: in caso di conflitto il server risponde con un esplicito errore di versione.
Cosa proteggiamo. Da chi. Come.
Il modello di minaccia è esplicito: descriviamo cosa copriamo e cosa non copriamo. La sicurezza non è una promessa, è un perimetro.
Cosa copriamo
Il modello assume che un attaccante possa:
- ottenere il file del database (furto del disco, leak di un backup)
- leggere log applicativi, screenshot o crash report
- annusare il traffico locale verso i client
Per ognuno dei tre, la cifratura a riposo, la redazione dei log e il proxy TLS locale forniscono una difesa esplicita.
Cosa non copriamo
Un sistema operativo completamente compromesso (con keylogger e accesso alla memoria) e un attacco fisico a dispositivo già sbloccato sono fuori dal modello. In quei casi nessun software locale può proteggere efficacemente i dati.
Cifratura
AES-256-GCM lato client. Formato di campo cifrato esplicito (ENC:iv:cipher). KDF: PBKDF2-SHA256 da PIN + salt utente. La chiave principale è cifrata sotto la KEK derivata dal PIN ed è leggibile solo durante una sessione attiva.
Lockout autenticazione
Cinque tentativi falliti in quindici minuti attivano un blocco di pari durata. Risposte standard: 401 finché il blocco non scatta, 423 con header Retry-After durante il blocco. Il bearer token nativo non aggira la policy: il PIN è la barriera condivisa.
Logging e redazione
I log applicativi non contengono mai campi paziente decifrati, OCR grezzo, prompt AI completi o allegati. L'audit clinico è separato dai log tecnici: è strutturato, versionato e append-only, con catalogo di eventi minimo.
Boundary verso servizi esterni
I proxy locali accettano solo destinazioni su 127.0.0.1 e porte previste. Ogni risposta dei modelli AI è trattata come input non fidato. Niente import silenziosi da testo libero verso diagnosi o terapie.
Standard veri, non promesse.
Ogni dato clinico ha un codice riconosciuto a livello internazionale. Niente vincoli proprietari sui formati di esportazione.
ICD-11
Diagnosi codificate secondo il sistema OMS, via API locale. Niente più testo libero ambiguo.
FHIR R4
Esportazione della cartella in pacchetto JSON HL7 FHIR R4: Patient, Condition, Encounter, MedicationStatement, Observation.
ATC · AIC
Catalogo farmaci AIFA locale per terapie con principio attivo e codice di identificazione.
LOINC · UCUM
Codifica delle osservazioni con unità di misura standardizzate.
Da dove veniamo. Dove andiamo.
Una linea del tempo onesta: distinguiamo ciò che è in produzione da ciò che è ancora in disegno.
Le radici tecniche
- Migrazione a SQLite cifrato (addio storage browser)
- Cifratura zero-knowledge attiva
- AI locale: Qwen per testo, DeepSeek per OCR via Ollama
- Diagnosi standardizzate ICD-11
- Multi-ambulatorio con identificazione visiva
Governance API e flussi documentali
- API locale governata: baseline OpenAPI
/api/v1e guardrail anti-deriva - Pipeline OCR-first con import revisionabile
- Archivio intelligente operabile (pulizia, persistenza farmaci, allineamento insight)
- Audit append-only, lockout autenticazione, cambio PIN zero-knowledge
- Backup automatico, scheduler notturno, retention
Stabilizzazione web e onestà narrativa
- Scheda paziente, lista, form e impostazioni con gerarchia visiva più leggibile
- Task contract AI condiviso e benchmark headless
- Separazione netta tra runtime operativo e lane "solo benchmark"
- Boundary SISS/FSE raccontati per quello che sono
Mac home-base e famiglia Apple
- Mac come nodo autorevole: pairing, capability discovery, primi write versionati
- iPhone/iPad paired non-AI, cache cifrata degradabile, workflow online limitati
- Document intelligence artifact-first: parse/evidence cifrato sugli allegati
- SISS/FSE più maturo ma onesto: corpus locale, scenari, boundary webapp-assisted
- Coda Linear azzerata: governance operativa chiusa
Network home-base più ampia, nuova shell macOS, vocale
- Replica e fallback offline tra dispositivi con riconciliazione esplicita
- Runtime AI centralizzabile per client meno potenti, senza egress
- Decision layer documentale separato (governance, recency, esclusioni)
- Nuova shell macOS home-base, packaged, indipendente dal terminale
- Dettatura locale (Whisper) e chat conversazionale con la cartella
Un ecosistema clinico locale, aperto, installabile
- Esperienza nativa multi-dispositivo coerente sotto un unico contratto
- Integrazione SISS/FSE con qualifica
SSI/A2Asostenibile - Contratti di esportazione e migrazione formalizzati
Cosa MediFlow non fa, e non vuole fare adesso.
Un white paper onesto descrive anche i limiti scelti. Sono confini, non difetti.
Niente sincronizzazione cloud completa
Non sincronizziamo le cartelle attraverso Internet con un servizio centrale. La modalità Mac home-base copre solo la rete locale fidata, in opt-in, con scrittura limitata e versionata.
Niente multi-tenant centralizzato
MediFlow non è un servizio condiviso fra strutture. È un'app per il singolo professionista o per piccoli ambulatori che operano sotto la sua responsabilità.
Niente AI cloud di default
L'unica eccezione documentata è una lane interna di valutazione comparativa, opt-in, mai usata come runtime clinico, mai con dati paziente non redatti.
Niente integrazione regionale fuori boundary
Verso SISS/FSE oggi MediFlow prepara il contesto e richiama i percorsi ufficiali in modalità assistita. Niente UI regionale custom dentro il prodotto fino a una qualifica documentata.
Niente automatismi clinici al buio
L'AI non scrive diagnosi e terapie senza conferma. L'unico autofill ammesso è su codici ICD letteralmente presenti nel documento sorgente.
Niente telemetria silenziosa
Nessun ping a servizi remoti per uso. Nessun analytics. Nessun beacon. Niente.
I termini, spiegati a chi non scrive software.
Apri il termine che ti interessa. Niente acronimi senza traduzione.
Local-first / Locale prima di tutto
Il software funziona prima di tutto sul dispositivo del professionista. La rete è opzionale e governata. Il contrario è "cloud-first": app che hanno bisogno di un server centrale per funzionare e mandano lì i dati.
Zero-knowledge a riposo
I dati clinici sul disco sono illeggibili senza il PIN. Nemmeno chi ha scritto il software o gestisce il computer può leggerli senza inserire il PIN. Niente backdoor di recupero: questa è la garanzia, ma anche la responsabilità del professionista.
AES-256-GCM
L'algoritmo di cifratura usato. È uno standard internazionale considerato robusto. Il numero 256 si riferisce alla lunghezza della chiave in bit; più alto, più difficile da forzare.
PIN, KEK, master key
Il PIN è quello che il professionista inserisce. Da lì si deriva una "chiave intermedia" (KEK) che serve a proteggere la "chiave principale" (master key). La master key è quella che cifra davvero i dati clinici e vive solo in memoria durante la sessione.
FHIR R4
Standard internazionale (HL7 FHIR, versione R4) per scambiare dati sanitari tra sistemi. MediFlow lo usa per esportare la storia clinica in un formato che altri sistemi sono in grado di leggere.
ICD-11
Classificazione internazionale delle malattie, undicesima edizione, curata dall'OMS. Permette di codificare una diagnosi con un identificativo univoco (ad esempio 5A10), invece che con un testo libero soggetto a interpretazione.
ATC, AIC
Codici per i farmaci. ATC è la classificazione anatomico-terapeutica (a cosa serve il principio attivo); AIC è il codice che identifica un singolo medicinale autorizzato in Italia.
LOINC, UCUM
LOINC è un vocabolario standard per identificare osservazioni di laboratorio e cliniche. UCUM è uno standard per le unità di misura. Insieme rendono confrontabili i parametri tra sistemi diversi.
SQLite
Un database che vive in un singolo file sul disco, senza bisogno di un server. Per MediFlow è il file medical.db, sempre cifrato.
Ollama
Un programma che permette di eseguire modelli di intelligenza artificiale direttamente sul computer del professionista, senza chiamare servizi remoti.
Audit append-only
Un registro di eventi (chi ha fatto cosa, quando, con che esito) a cui si può solo aggiungere, mai modificare o cancellare. Serve per ricostruire le azioni in caso di necessità clinica o normativa.
SISS / FSE
SISS è il Sistema Informativo Socio-Sanitario; FSE è il Fascicolo Sanitario Elettronico. MediFlow oggi non li sostituisce: prepara i dati per i percorsi ufficiali e richiama i flussi assistiti, restando dentro un confine dichiarato.
Mac home-base
La modalità in cui il computer del professionista fa da nodo locale: gli altri dispositivi Apple (iPhone, iPad) si accoppiano in modo esplicito e possono leggere e scrivere in modo limitato attraverso una rete locale fidata.
Paired client
Un dispositivo accoppiato in modo esplicito al Mac home-base. Senza accoppiamento e senza una sessione attiva del professionista, non può accedere ai dati.