White paper · v0.6.0 · Maggio 2026

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.

Inizia la lettura → Dove stiamo andando
Filosofia
Locale prima di tutto
Privacy
Zero conoscenza a riposo
AI
Sul tuo computer
Standard
ICD-11 · FHIR R4
Cos'è

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.

«MediFlow è uno strumento. Il titolare del trattamento resta il professionista. Il software non sostituisce le sue responsabilità: gli dà solo gli attrezzi giusti per esercitarle.» Principio operativo
Per chi è

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.

Principi

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.

Topologia

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.

CLIENT APPLICAZIONE LOCALE SERVIZI LOCALI FILESYSTEM LOCALE RETE LOCALE opt-in Browser web UI clinica · cifratura lato client Client macOS SwiftUI · sessione sicurezza iPhone / iPad paired · scrittura limitata CIFRATURA PIN → KEK KEK → master key in RAM AES-256-GCM PIN mai persistito Proxy TLS locale https://127.0.0.1:3443 Web API · /api/* sessione cookie Native API · /api/v1/* bearer token versionato Network API · /api/v1/network/* paired · read-only-first Auth · setup / login / lockout 5 tentativi · 15 min Audit append-only catalogo eventi limitato Ollama AI · OCR · :11434 ICD-11 OMS docker locale · :8888 OpenMed redaction shadow · benchmark only medical.db SQLite cifrato backup notturno retention configurabile token API locale permessi 0600 certificati TLS cert.pem + key.pem Mac home-base nodo autorevole paired client capability + version
Client Applicazione locale Servizi locali (opzionali) Filesystem Rete locale (opt-in)

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.

Flussistica

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.

FLUSSO · 01

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.

FLUSSO · 02

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.

FLUSSO · 03

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.

FLUSSO · 04

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.

FLUSSO · 05

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.

FLUSSO · 06

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.

Sicurezza & Privacy

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.

Interoperabilità

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.

Tappe del prodotto

Da dove veniamo. Dove andiamo.

Una linea del tempo onesta: distinguiamo ciò che è in produzione da ciò che è ancora in disegno.

v0.3.0 · fondamenta

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
v0.4.0 · contratti più solidi

Governance API e flussi documentali

  • API locale governata: baseline OpenAPI /api/v1 e 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
v0.5.0 · interfaccia e governance AI

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
v0.6.0 · release corrente · Maggio 2026

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
post-v0.6 in corso

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
v1.0.0 visione

Un ecosistema clinico locale, aperto, installabile

  • Esperienza nativa multi-dispositivo coerente sotto un unico contratto
  • Integrazione SISS/FSE con qualifica SSI/A2A sostenibile
  • Contratti di esportazione e migrazione formalizzati
Boundary espliciti

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.

Glossario

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.

«Un software clinico utile è uno che il professionista può capire, controllare e abbandonare quando vuole. MediFlow è scritto per essere usato così, non per trattenere chi lo usa.» Visione di prodotto