Medsense почався не з коду, а з питання: що людина робить із бланком аналізів після того, як забрала його з лабораторії. Найчастіше нічого. Фотографує, кладе в галерею й забуває до наступного разу, коли треба буде згадати, скільки був гемоглобін торік.
Першою версією був один файл HTML: 21 розділ кабінету, намальовані від руки цифри, жодної бази. Він нічого не вмів зберігати, зате відповідав на головне питання про продукт: як людина ходить по цих розділах і в якому порядку їй потрібні речі. Дешевше помилитись у макеті, ніж у застосунку.
Порядок робіт узяли нудний
Перше, що поїхало в код, - не гарні екрани, а межі доступу. База отримала правило «людина бачить лише свої рядки» на рівні самої бази, а не застосунку.
Перевірка «чи твоє це» написана в коді застосунку. Помилка в одному запиті - і чужа медична картка відкривається без жодного попередження.
Правило стоїть у базі. Навіть неправильно написаний запит повертає нуль рядків, бо база сама не віддає чуже.
Різниця стає видною тоді, коли в базі вже лежать живі люди. Переробляти цей шар пізніше означало б переписати весь застосунок навколо нього.
Що вже працювало того ж дня
- вхід і реєстрація, профіль на справжніх даних;
- завантаження бланка в приватне сховище й розпізнавання показників;
- медична картка: діагнози, препарати, щеплення, нагадування;
- журнал змін, який не можна відредагувати заднім числом.
Розпізнавання одразу зробили з подвійною перевіркою: модель читає бланк двічі, і числа з двох проходів звіряються між собою. Якщо вони не збіглись, показник позначається як сумнівний, а не мовчки записується в картку.
Прототип нікуди не зник: він лежить у репозиторії й досі лишається еталоном щодо дизайну. Коли сперечаємось, як має виглядати розділ, дивимось туди.
