Як в YouControl розробили карту медичного забезпечення лікарень і спрогнозували перебіг епідемії COVID-19

Привіт! Мене звуть Дмитро, я розробляю сервіси для компанії YouControl. У цій статті розповім про наш проєкт — інтерактивну карту медичного забезпечення українських лікарень. Вона показує, на скільки днів медзакладам вистачить ресурсів для боротьби з COVID-19: засобів захисту, медичного обладнання, тестів тощо.

Це перша така карта — уже після нас МОЗ випустило свій варіант. Проте в нашої карти є унікальні аналітичні функції: наприклад, прогнозування того, як епідемія буде поширюватись в різних областях України.

У написанні статті брали участь і мої колеги: засновник та СЕО компанії Сергій Мільман і фінансовий аналітик Роман Корнилюк.

Як народилась ідея проєкту

Ідея народилася з паніки щодо COVID-19. Ми зрозуміли, що для боротьби з тривогою треба знайти спосіб застосування власних сил і зробити продукт, який зможе поліпшити ситуацію на прикладному рівні — якщо не повністю, то хоча б частково.

Ми дійшли висновку, що паніка з’являється через те, що люди не до кінця розуміють, у чому полягає основна проблема. На початку карантину всі усвідомлювали, що наші лікарні не готові до епідемії. Але не було жодної інформації, яким саме закладам потрібна першочергова допомога. У кращому становищі опинилися лікарні, співробітники яких поширювали в соцмережах заклики про матеріальну підтримку і змогли донести інформацію про свої потреби волонтерським організаціям та небайдужим громадянам. Проте це одиничні випадки, адже більшість медзакладів не звикли звертатись до медіаканалів та публічно просити про підтримку.

Тому ми створили інструмент, який показує конкретний стан матеріального забезпечення різних лікарень у всіх регіонах: де й чого бракує і куди волонтерам варто скеровувати зусилля. Це допомагає уникнути невизначеності на кшталт: «У нас зовсім не вистачає ресурсів, і ми всі помремо», і надавати допомогу адресно: одній лікарні — 100 антисептиків, другій — 300 респіраторів, третій — 1000 костюмів біозахисту тощо.

Адже, погодьтесь, коли проблема структурована і проаналізована, вона вже не здається такою страшною та нездоланною.

Крок 1: пошук інформації

Першою проблемою під час розробки стала відсутність відкритої інформації щодо потреб лікарень. В умовах турбулентності та безперервної зміни людей при владі у МОЗ нам треба було зрозуміти, хто саме збирає ці дані та хто може дозволити їх публікувати.

Ми звернулися до активістів, зокрема до Дмитра Чаплинського з «Канцелярської сотні» та представників організацій StateWatch, Bihus.Info, «Восток-SOS» та «Західна енергетична сім’я». Вони стали партнерами проєкту та допомогли зробити офіційні запити в державні структури.

Зрештою ми вийшли на Ольгу Бугай — генеральну директорку директорату з питань регіональної політики та децентралізації Офісу Президента. Ольга раніше працювала у сфері відкритих даних, а тому чудово розуміє їхню цінність. Вона і пролобіювала нашу ідею щодо публічного відкриття даних у МОЗ.

У певному сенсі завдяки кризі нам швидко вдалось добитися відкриття даних. Можливо, якби не епідемія, на цей бюрократичний етап ми б витратили не менш як рік. Адже треба було написати відповідні петиції та дочекатись їхнього розгляду. А так гостра ситуація у країні підкреслила, наскільки ця статистика є суспільно важливою та потребує оприлюднення саме зараз.

Крок 2: робота з даними

Під час старту роботи доступними було не так багато даних: тільки інформація про залишки ресурсів і добові потреби. Спочатку МОЗ надали нам кілька наборів статистики у форматі CSV, аби ми перевірили гіпотезу про те, що ці дані взагалі можна використовувати для карти. Згодом інформацію стали щоденно викладати на офіційному сайті Кабміну про коронавірус. До речі, якість даних не погана: ймовірно, їх чистять перед публікацією.

Розробити методологію розрахунків забезпечення нам допомогли у МОЗ: порадили скористатися формулами ВООЗ для підрахунку, скільки чого лікарю потрібно на день.

Наступний етап — вирішити, як найкращим чином подати ці дані, щоб перетворити їх із просто цифр на наочні відповіді на питання, які зараз бентежать людей. Наприклад:

  • де саме потрібна допомога;
  • які тенденції інфікування лікарів;
  • якого обладнання бракує, наприклад, у регіональній лікарні Чернівецької області;
  • скільки вільних ліжок є в лікарнях Харкова тощо.

Звісно, суха статистика для цього не підходить — потрібно розробити інтерактивну інфографіку, яка буде зрозумілою кожному користувачеві.

У перших версіях карти ми показували середній рівень забезпечення в лікарнях: на скільки днів у медзакладах вистачає ресурсів. Можна було переглянути статистику щодо конкретної лікарні або регіону загалом. Наприклад, усі лікарні Львівської області забезпечені одноразовими ізоляційними халатами в середньому на чотири дні. Але виявилось, що середнє значення має великий розкид, і ми замінили його на медіану.

Потім стали рахувати забезпечення не тільки у днях, а й у відсотках у розрізі тижня. Тобто якщо така-то область України або конкретна лікарня має показник забезпечення респіраторів 100% — це означає, що їх вистачить на весь тиждень. Ми подумали, що схожа подача даних буде більш інформативною. Для цього розробили власну методологію розрахунків: відсоток забезпечення обладнанням лікарні на тиждень визначаємо як результат ділення розрахункової кількості ресурсів на тиждень на 7.

Згодом ми отримали інформацію не тільки щодо ресурсів, а й кількості вільних ліжок у медзакладі. А також щодо лікарів, які вже працюють або можуть працювати з хворими на COVID-19 пацієнтами. Ці дані додали на карту в розрізі регіонів і конкретних лікарень.

У розділі «Лікарі» спочатку розмістили дані лише про власне лікарів. Потім зрозуміли, що цього недостатньо, адже у лікуванні значну роль відіграють й інші медичні працівники. Тому додали категорії «Молодший персонал» і «Медсестри».

У розділі «Ліжка» зосередили увагу на ліжках інтенсивної терапії, бо саме їх використовують для тяжкохворих. А, як ми пам’ятаємо, в Італії саме нестача ліжок стала великою проблемою. Тому ми вивели відсоток вільних ліжок — для загального орієнтування в ситуації.

Під час роботи з даними ми отримали багато інсайтів. Наприклад, коли вивчали досвід інших країн, помітили, що не завжди спад епідемії йде з такою ж швидкістю, як її розвиток. Тобто графік поширення COVID-19 не завжди має вигляд симетричного гаусового «дзвіночка» на зразок такого:

Image Source

Пік може затягнутися, а спад — відбуватися доволі повільно:

Image Source

Тож треба бути готовим, що приборкати хворобу — це не так швидко і просто, як передбачають спрощені моделі.

Крок 3: розробка карти

Ми працювали над картою переважно в позаробочий час: вечорами та у вихідні. Ядро команди становили ми з Романом і Сергієм. Також для окремих завдань на парт-тайм залучали верстальника, дизайнера, PR-менеджера. На всю роботу від ідеї до релізу витратили три тижні.

Спеціально вибрали стек технологій, який дозволив мені як розробнику самостійно реалізувати приблизно 95% проєкту. Дані обробляємо на Python, використовуємо стандартні Data Science бібліотеки — NumPy, Pandas і Scikit-Learn.

Як я вже зазначав, інформацію для аналізу ми беремо із сайту Кабміну. Спочатку, поки все не устаканилось, у нас були певні складнощі з тим, що МОЗ по-різному викладало дані. Наприклад, у CSV-файлах постійно змінювались назви колонок. Тому кілька разів ми переписували скрипти обробки даних — на це загалом пішло приблизно 10 годин.

Наразі залишилась ще одна незручність, пов’язана з тим, що кожного дня МОЗ викладає дані у різний час. Нам доводиться постійно моніторити, чи вже з’явилась інформація на сайті. І через це не вдається автоматизувати збір даних.

Візуалізувати дані спочатку думали через Microsoft Power BI, але не змогли вчасно отримати доступ до клієнта Azure. У мене тоді не було скриньки на домені YouControl, бо я лише нещодавно прийшов у компанію, і процес ризикував затягнутись. Тому вирішили не чекати й узяли більш доступний інструмент — Tableau.

Для візуалізації використовуємо такі інструменти: карту, таблицю, горизонтальну та звичайну діаграми. Досвід показав, що Tableau найкраще зчитує довгі дані (вузькі та високі датасети). Тому перед використанням ми надаємо датасету відповідного вигляду. Для цього частину даних робимо категорійними.

Крім того, ми зрозуміли, що Tableau погано розуміє наші геолокації. Тому окремо прописуємо їх так, щоб вони коректно показувалися на карті. Для цього використовуємо функцію Tableau, яка узгоджує назви областей з датасету відповідно до стандарту ISO.

Наразі розробка карти продовжується: ми майже щодня робимо невеликі релізи. Переважно це косметичні виправлення, виправлення багів з даними та з тим, як Tableau їх показує. Проте додаємо й великі фічі — наприклад, візуалізацію захворюваності та кількості лікарів на 100 тис. населення, а не загалом у регіоні. Для останньої ми використали демографічні дані. Ідея в тому, що абсолютні значення не дають змоги усвідомити, наскільки критичною є ситуація в регіоні, адже щільність населення в областях України не однакова. Відповідно дві тисячі ліжок для Дніпропетровської області ‒ не те саме, що для Волинської.

У нас величезний беклог, тож попереду багато планів.

Крок 4: прогнозування

Окремо розповім про найбільшу фічу, яку ми додали вже після запуску карти, — прогноз перебігу епідемії, тобто як вона буде поширюватись в різних областях України. Нам знадобився тиждень, щоб зрозуміти, як це візуалізувати, і ще два тижні, щоб розробити методологію прогнозування.

За орієнтир для прогнозування, як COVID-19 може поширюватися країною, ми взяли сценарії інфікування в Італії. Це можливо зробити, адже за темпами зараження Італія йде на кілька тижнів попереду України. І — найголовніше — італійці викладають дані у вільний доступ. Є статистика захворюваності за регіонами та чисельності населення за регіонами. Тож ми маємо змогу їх вивчати та використовувати.

Брати середні цифри було б не зовсім репрезентативно, адже швидкість інфікування в різних регіонах Італії суттєво відрізняється. Виявилось, що найбільш катастрофічно коронавірус поширювався на півночі країни — у Ломбардії та П’ємонті. До південних регіонів на кшталт Сицилії епідемія добралася пізніше, коли в Італії вже ввели карантин. Тож там швидкість зараження набагато нижча. В центральних регіонах, таких як Лаціо чи Тоскана, були середні показники: гірше, ніж на півночі, проте краще, ніж на півдні.

Тож ми визначили ці сценарії як песимістичний, оптимістичний та середній і стали накладати їх на фактичні показники різних областей України зі зведень МОЗ. Водночас зробили таке припущення: якщо в певному українському регіоні епідемія протягом 10-15 днів починає розвиватись за одним із трьох італійських сценаріїв, то й надалі швидкість зараження буде відповідати цьому сценарію.

На основі цього додали прогнозування, як COVID-19 поширюватиметься в кожній області у наступні два тижні. Наприклад, сценарій у Києві раніше був схожим на сицилійський, а зараз — ближчий до тосканського.

Щоб намалювати графік прогнозу захворюваності, ми розділили дані на дві частини: лінію та інтервали. Друга частина потрібна, щоб маркувати рожевим і блакитним кольорами оптимістичний і песимістичний прогнози:


Горизонтальна шкала на графіку вказує на кількість днів, що минули з моменту реєстрації перших п’яти випадків на 100 тис. жителів. На нашу думку, саме таке значення можна вважати критичним порогом для старту подальшого розгортання зараження.

Дані прогнозу можна зіставити з рівнем заповненості лікарень на карті й у такий спосіб з’ясувати критичні регіони, у яких насамперед виникне нестача ресурсів для боротьби з коронавірусом у майбутньому. Це дає змогу не допустити повторення сценарію італійської Ломбардії, де рівень оснащеності виявився недостатнім для масштабу проблеми.

Що ми отримали в результаті

Офіційний запуск і презентація карти відбулась 9 квітня. Наразі з неї можна дізнатись таку інформацію:

  • залишки, потреби та прогноз забезпечення лікарень в обладнанні (засоби індивідуального захисту, тести, апарати ШВЛ);
  • кількість лікарів (кваліфікація, вік і скільки працює з COVID-19);
  • кількість ліжок (зайнятих і вільних серед боксових, інфекційних, реанімаційних тощо);
  • захворюваність (кількість осіб з підозрою, госпіталізованих, підтверджених і смертельних випадків);
  • прогнозування перебігу епідемії.

З даних можемо побачити, що в Україні є лікарні, в яких достатнє забезпечення, — наприклад, відома Олександрівська лікарня в Києві. І є безліч медзакладів, які потребують ресурсів. Ми наголошуємо, що насамперед потрібно скеровувати допомогу туди.

Карта — це не лише аналітичний інструмент для візуалізації даних. Також стежимо, щоб ці дані були актуальними. Наприклад, після запуску проєкту ми помітили кілька постів у фейсбуці про те, що опубліковані дані відрізняються від реальних у лікарнях. Однак ми перевірили — саме такі дані опублікувало МОЗ. Наш партнер «Восток-SOS» зараз продзвонює головних лікарів медзакладів, щоб з’ясувати, які дані вони вносили при заповненні. Сподіваємось, зможемо дізнатись, на якому етапі сталася помилка.

Ще з партнерами плануємо проаналізувати ситуацію щодо благодійної допомоги. Мета — визначити, чи надійшла допомога в лікарні та чи вносять головлікарі відповідну інформацію.

На нашу думку, головна цінність відкритих даних — їхня прозорість і доступність. Вони дають змогу залучати до роботи над державними проєктами всіх охочих українців, і це підвищує якість таких проєктів. Адже ресурси влади обмежені, а ентузіазм громадян створювати корисні цифрові сервіси — майже нескінченний. Сподіваємось, що держава продовжить цю традицію і буде відкривати суспільству максимальну кількість даних.

Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному3
LinkedIn



10 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

крута ідея і, як для MVP навіть цікаво «пожмакати». але нажаль далекий від реальності, і справа тут не в розробниках, а «заржавілій» бюрократичній машині медичної системи. Кілька прикладів:
— керівник однієї з районних поліклінік відзвітував, що всі необхідні засоби закуплені і в статистику піде все ок. а фактично в березні витратили профісоюзні кошти, а в квітні тупо вирахували з заробітної плати терапевтів. Ось вийде на карті є, а по факту нема.
— Uber. OKKO і всі інші пропіарились, що виділили поїздки для медиків, а фактично медпрацівники, які по шість годин на день сидять в боксах і роблять швидкі тести платять за таксі зі своєї кишені (дані не з потолка — члени сім’ї лишаються вірні клятві Гіппократа за свій кошт).
Отож питання: який зміст дивитися на гарно оформлену неповну (читай недостовірну) інформацію?

так поэтому МОЗ так активно и поддержал проект, предоставив наборы данных — чтоб картинка была красивая

Так, ми знаємо про проблему відповідності даних. Саме тому в нас є партнери, які можуть перевіряти відповідність даних реальності.
Проте, не слід забувати, що наявність даних (навіть якщо релевантність її під питанням) > відсутність даних. З цим вже можна працювати і зменшувати розрив між даними, які надали, та реальною ситуацією.

Дякую!
На жаль не знайшов легенди.
Підозри це кількість тестованих?
Чи є можливість подивитись графіки (статистики) співвідношення виявлених випадків до кількості тестованих?

Легенди на всі дашборди додамо на цьому тижні
Підозри — це особи, котрих лікарі віднесли до цієї категорії. Частково це протестовані, частково — ті, хто будуть протестовані
Назараз в нас немає деталізованої інформації про кількість протестованих, проте ми працюємо в напрямку отримання цих даних.

Так з кількістю тестованих якісь проблеми.
Офіційний бот і канал в телеграмі також не хочуть казати.
Лише в уривках брифінгу міністра про це згадують.
Про графіки на МОЗ — там взагалі з ними важко працювати, і потрібного графіку теж не знайшов.

на сайті КМУ відкрили дані по тестуванню (краще пізно, аніж ніколи)
covid19.gov.ua/...​litichni-paneli-dashbordy

Дякую за такий актуальний проект і за статтю!

Отличаня статья и проект!
Желаю успехов в дальнейшей разработке!

P. S. Заметил, что на сайте локализована только надпись под верхним баром (про регистрацию и проверку 10 компаний).

Дякую, локалізація на англійську та російську буде додана згодом.

Підписатись на коментарі