Un caso clinico nuovo ogni giorno, un paziente AI con cui parlare, tre tentativi per fare la diagnosi giusta.
Il problema
Per anni a Testbusters ho lavorato a stretto contatto con studenti che si preparavano al Test di Medicina, e poi con chi affrontava i tirocini e l'esame di stato. Una cosa che ho visto ripetersi sempre: ci sono tonnellate di app per memorizzare nozioni, e quasi niente per ragionare.
Il ragionamento clinico è l'unica cosa che conta davvero quando si è sul campo. Non sapere che esiste la pancreatite. Sapere quando diagnosticarla, cosa chiedere al paziente prima del resto, quale esame ordinare per primo, quando fermarsi.
Le opzioni oggi sono tre, e nessuna funziona davvero. I simulatori veri (Full Code, OSCEinator) richiedono mezz’ora, un computer, e spesso un accesso istituzionale. I giochi medici esistenti sono perlopiù cloni di Wordle che testano lo spelling di parole mediche, non il pensiero. E l’unico nuovo entrante interessante, OpenEvidence Synapses, funziona solo negli States. Tagliando fuori l’Italia, l’Europa, tutto il resto del mondo.
Manca una cosa: un rituale quotidiano da 5-10 minuti, accessibile da telefono, che faccia fare allo studente o al medico la cosa giusta. Sedersi davanti a un paziente, fare le domande giuste, arrivare alla diagnosi.
Cosa fa
Ogni giorno alle 00:00 UTC esce un caso clinico in italiano e inglese. Lo stesso paziente per tutti, ovunque nel mondo. Hai 24 ore per risolverlo.
Apri l’app, sei in chat con un paziente AI. Non un menu di domande. Una chat vera. Gli scrivi “da quando ha questo dolore?” e ti risponde come risponderebbe una persona, in linguaggio comune, sapendo solo quello che un paziente sa di sé. Non ti suggerisce niente, non si fa scappare la diagnosi.
Quando vuoi puoi ordinare esami clinici da un pannello strutturato: emocromo, elettroliti, ECG, radiografia del torace, TC, biopsie. Gli esami non passano dall’AI, vengono letti direttamente da un documento clinico strutturato che l'agente AI ha preparato per ogni caso. Questo elimina ogni rischio di allucinazione sui risultati, che è la parte non negoziabile di un prodotto medico.
Hai 40 messaggi totali e tre tentativi per inviare la diagnosi, scegliendo da un elenco di circa duemila condizioni cliniche. Più sei efficiente, più punti tieni. Alla fine il caso si rivela, con spiegazione clinica e learning points.
Come l’ho costruito
L’idea l’avevo da tempo, ma quello che ha sbloccato HeyDoctor è capire come gestire l’AI senza che mi rovinasse il prodotto.
Il rischio grosso di un paziente AI è l’allucinazione clinica. Se chiedo “qual è il suo emocromo?” e il modello inventa numeri plausibili ma sbagliati, il gioco diventa pericoloso, non utile. La soluzione è stata separare nettamente due cose: l’AI conduce solo il dialogo, gli esami vengono letti dal database. Il paziente AI ha un suo documento clinico (il CCD) come unica fonte di verità, e una serie di regole nel system prompt che gli impediscono di rivelare la diagnosi o di inventarsi sintomi non presenti nel documento.
L’altra cosa che mi ha sbloccato è l’admin panel. Per stare in piedi serve un caso nuovo al giorno, e generarli a mano è impossibile. Ho costruito un pannello in Next.js dove riempio un brief, l’AI genera il CCD strutturato, io rivedo campo per campo, e poi un revisore medico lo approva prima della pubblicazione. È lo stesso pattern di Ammesso anni fa: il contenuto rimane curato da umani, ma l’AI fa l’80% del lavoro grezzo.
Lo stack è quello con cui mi muovo più veloce. React Native con Expo per l’app, Next.js per il sito e per il pannello, Supabase per database e auth, Vercel per l’hosting, Claude Opus 7 e Sonnet 4 di Anthropic come modello (sia per il paziente che per la generazione dei casi). PostHog per i prodotti, Sentry per gli errori. Niente di esotico, tutto cose che già conoscevo.
La cosa più interessante è quanto del lavoro di scrittura clinica passa per l’AI. I casi vengono generati in una bozza completa, con anamnesi, esame obiettivo, esami di laboratorio coerenti, ICD-10, alias, spiegazione finale. Io e il revisore medico interveniamo sul margine. Senza questo, HeyDoctor sarebbe semplicemente impossibile da gestire in solitaria.