Plíce včas
Plíce včas

Rakathon 2026 · výzva Cesta ke screeningu plic · AstraZeneca

Program Prevence pro plíce funguje. Jen se k němu lidé nedostanou.

Plíce včas najde v datech praktického lékaře pacienty pro screening plic, osloví je jménem ordinace a pohlídá, aby došli až k výsledku LDCT.

18vhodných pacientů by dnes oslovila ordinace, odhad podle celostátních 18 %
101vhodných pacientů osloví s Plíce včas, tedy všechny
  • 51 %nádorů zachycených screeningem je ve stadiu 1
  • asi 18 %cílové populace program za čtyři roky oslovil
  • téměř polovinaoslovených pozvání odmítla
  • 300 pacientů, 15 ordinacív datech výzvy, nad kterými aplikace běží

Produkt

Co dělá

Najde

Pacienty 55 až 74 let, kuřáky a bývalé kuřáky s nejméně 20 balíčkoroky, bez CT hrudníku za posledních 30 dní. Opraví poškozené řádky a diakritiku, rozporné údaje pošle lékaři a u každého rozhodnutí uvede důvod.

Osloví

Jménem praktika. Sestra jednou týdně schválí dávku pozvánek, nebo pacienta kontaktuje hned: SMS, hovor hlasového asistenta, WhatsApp nebo e-mail. Kanál doporučí podle historie pacienta.

Pohlídá

Kdo neodpoví, dostane další kontakt podle plánu. Odpověď systém rozpozná a zařadí. Kdo se ztrácí, například předán k pneumologovi a šest týdnů bez LDCT, je nahoře v úkolech sestry.

Ukázka

Jak to vidí sestra a lékař

Záznam ukázky, 110 sekund, česky namluveno. Zvuk se spustí po kliknutí na přehrát.
Obrazovka Úkoly: nahoře jeden pacient, který se ztrácí, pod ním pět pacientů k pozvání s tlačítkem Odeslat 5 pozvánek
Úkoly. Nahoře kdo se ztrácí a proč, pod tím pozvánky na tento týden. Sestra vidí jen to, co má udělat.
Kontaktování pacienta: výběr kanálu SMS, hovor, WhatsApp, e-mail a text zprávy jménem ordinace
Kontaktovat teď. Sestra vybere kanál, text je jménem ordinace a odejde hned.
Karta pacientky: komunikace od nejnovější, odpověď Ano, ale až po Vánocích a co systém zapsal
Karta pacienta. Celá komunikace na jednom místě, odpověď doslova a jak ji systém pochopil.
Obrazovka Pro lékaře: čtyři pacienti k rozhodnutí o zařazení a jeden výsledek k převzetí
Pro lékaře. Jen rozhodnutí o zařazení, výsledky k převzetí a kódy 01196 a 01197 k vykázání.
Přehled programu: dnes osloveno 18, s Plíce včas 101; odesláno k pneumologovi 10 oproti 55
Přehled programu. Dopad v datech výzvy a cesta od dat k výsledku.

Stavový automat

Cesta pacienta

Každý pacient je v jednom stavu a mění ho jen povolená událost. Tabulku přechodů sdílí server i webová aplikace, takže se nemůžou rozejít. Událost, která v daném stavu nedává smysl, se zapíše, ale nic nezmění.

  1. Nalezensplňuje kritéria programu
  2. PozvánSMS, hovor, WhatsApp, e-mail, další pokus podle plánu
  3. Ozval semá zájem nebo chce zavolat
  4. Předán k pneumologovi01196praktik vystaví žádanku
  5. LDCTnízkodávkové CT v centru
  6. Výsledeklékař převezme; po negativním za dva roky znovu pozvánka na kontrolní LDCT
Teď ne
Nabídka se vrátí za tři měsíce. „Ano, ale až po Vánocích“ systém zapíše jako teď ne.
Nechce
První odmítnutí je měkké a nabídka se zopakuje. Kód 01197 až napodruhé. STOP odhlásí vždy a hned.
Objednal se sám
Pacient se může objednat přímo u pneumologa i bez doporučení praktika, pozvánka mu to řekne. Systém to zapíše a dál nepřipomíná.
Zavolat sestře
Otázka nebo nejistá odpověď jde k sestře, systém sám nerozhoduje.
Ztrácí se
Předán bez LDCT po 6 týdnech, LDCT bez výsledku po 3 týdnech, odpověď bez reakce, plán kontaktů skončil.

Komunikace

Čtyři kanály naostro

  • SMSPacient odpoví ANO, systém pošle potvrzení a přesune ho do Ozvali se.ověřeno na skutečném telefonu
  • Hlasový asistentČeský hlas, mluví jen schválenými větami, rozumí odpovědi hlasem i klávesou.ověřeno na skutečném telefonu
  • WhatsAppStejná pozvánka, odpověď textem se zapíše ke správnému pacientovi.ověřeno na skutečném telefonu
  • E-mailDelší text a osobní odkaz, přes který pacient odpoví jedním klikem.ověřeno do skutečné schránky

Odpověď pacienta rozpozná sada pravidel a volitelně jazykový model: má zájem, už je objednaný, chce zavolat, teď ne, nechce, ptá se. Odhlášení vždy rozhodují pravidla. O zařazení pacienta ani o odeslání pozvánky AI nerozhoduje, to dělají pravidla programu a člověk.

InterSystems

FHIR a IRIS oběma směry

Původní sloupce z kartotéky zůstávají v FHIR jako rozšíření, takže aplikace pacienty z IRIS načte zpět a vyhodnotí stejně jako z původních souborů. Ověřeno na všech 300 pacientech, do IRIS jsme nahráli 1 507 záznamů. Díky FHIR aplikace nezávisí na jednom systému praktika.

Proces

Jak vznikl

  • ~20 hod prvního commitu do odevzdání
  • 62commitů
  • 109automatických testů
  • 30předávacích poznámek mezi relacemi

Dvě relace Claude Code

Jedna v cloudu psala engine, rozhraní, testy a video. Druhá na serveru nasazovala, zapojila Twilio, ElevenLabs, Gmail a IRIS a zkoušela vše naostro. Domlouvaly se poznámkami ve složce bridge/ v gitu, kapitán týmu rozhodoval.

Konzilia agentů

Rozhraní prošlo několika koly auditu, kde skupina agentů hrála sestru, lékaře a pacienta a hledala slepé uličky. Našla například měkké odmítnutí vykázané jako 01197, rozporné počty a mužský rod u pacientek.

Mentoři

Pravidla programu potvrdila garantka výzvy. Od mentora výzvy přišel požadavek na jednoduchost pro praktiky, odtud samostatná obrazovka pro lékaře. S mentorem InterSystems jsme ladili zápis zpět do IRIS.

  1. Engine nad daty výzvy, rozhraní pro sestru, Twilio, plán kontaktů, export do FHIR
  2. Švýcarský redesign: úkoly místo tabulek, jedna barva, méně textu
  3. Český hlas hovoru přes ElevenLabs
  4. Druhá relace na serveru, předávání přes bridge/
  5. První SMS naostro, odpověď a potvrzení
  6. Kontaktovat teď: SMS, hovor, WhatsApp, e-mail
  7. Stavový automat pro celou cestu pacienta
  8. Komunikace s pacientem na jednom místě
  9. IRIS oběma směry, e-mail přes Gmail
  10. Obrazovka pro lékaře, opravy z auditu
  11. Hlasový agent ElevenLabs místo pevného scénáře
  12. Karta pacienta, video s českým komentářem

Technologie

Na čem běží

Engine
Python 3, pravidla programu, oprava datCSV i XLSX, rozbité řádky, diakritika; konfigurovatelné věk, balíčkoroky, okno CT
Server
FastAPI, Uvicornstavový automat jako JSON tabulka sdílená s webem, webhooky odpovědí, osobní odkaz pro pacienta
Web
ES moduly bez frameworku, vlastní CSS tokenypísmo Inter Tight, světlý i tmavý režim, telefon i počítač
Kanály
Twilio SMS, Voice a WhatsApp; Gmail SMTPstav doručení u každé zprávy
Hlas
ElevenLabsčeský hlas a konverzační agent, Twilio jako operátor
AI
Jazykový model jen pro rozpoznání odpovědívolitelně Claude, OpenAI nebo Azure; bez modelu fungují pravidla
Data
HL7 FHIR R4, InterSystems IRIS for HealthPatient, Observation, ImagingStudy, Communication, Task
Provoz
Docker Compose na VPS, Cloudflare Tunnelpřihlášení heslem, otevřené jen webhooky a odkaz pro pacienta
Kvalita
pytest, Playwright, ffmpeg109 testů včetně kontroly stavového automatu a cesty přes FHIR tam a zpět
Vývoj
Claude Code, GitHubdvě relace, předávací poznámky v repozitáři

Další krok

Co dál

  1. Výsledek LDCT zpět z centra přes FHIR, aby sestra nemusela nic značit ručně a bylo vidět, kdo k vyšetření opravdu došel. Od 1. 7. 2027, až to praktikům umožní pravidla, i předvyplněná žádanka z údajů, které už máme.
  2. Pravidla programu od roku 2027 jedním přepínačem v konfiguraci.
  3. Napojení na další systémy praktiků přes FHIR a pilot v několika ordinacích.