Розробка мобільного додатка для електронної медичної карти
ЕМК на мобільному — це не просто "показати історію візитів". Це персональні медичні дані, максимальний клас захисту за більшістю законодавств, строгі вимоги до доступу, та при цьому UX, при якому лікар повинен відкрити потрібну запис за 10 секунд в кабінеті. Архітектурне суперечність: дані повинні бути швидко доступні та при цьому максимально захищені.
Регуляторні рамки — фундамент архітектури
Україна. ФЗ про охорону здоров'я, закони про персональні дані (ПДРЛ). Дані — спеціальна категорія ПДн, обробка лише з явної згоди. Сервер — на території України або за договором.
Європа. GDPR (спеціальні категорії ст.9), національні імплементації (DSGVO в Німеччині). Right to access, right to erasure.
США. HIPAA: Protected Health Information (PHI), Business Associate Agreement з кожним підрядчиком, audit log для кожного доступу до даних пацієнта.
Вибір юрисдикції визначає: де хостинг, які шифрування та логування обов'язкові, можна ли використовувати Firebase Analytics, які сповіщення показувати користувачу.
Архітектура доступу: ролі та розмежування
Мінімум два зовсім різних користувачи:
Пацієнт. Бачить свої дані: анамнез, діагнози, результати аналізів, призначення, алергії. Може показати QR для екстреного доступу (без аутентифікації — лише критичні дані: група крові, алергії, хронічні захворювання). Управляє згодами на обробку даних конкретними клініками.
Лікар / медперсонал. Бачить дані пацієнта лише в межах активного звертання. Доступ до записів з іншої клініки — лише якщо пацієнт дав згоду. Кожен перегляд — запись в audit log (ХТО отримав доступ ЩО коли).
Audit log — не опціональна фіча при HIPAA, це обов'язкова вимога. Структура запису: userId, resourceType, resourceId, action (view/edit/export), timestamp, ipAddress, deviceId. Зберігається мінімум 6 років (HIPAA) або 3 роки (Україна).
Шифрування та зберігання
Дані ЕМК ніколи не зберігаються у відкритому вигляді. Сценарій кешування для офлайн-роботи лікара:
iOS: Core Data з шифруванням через NSPersistentStoreDescription + NSFileProtectionCompleteUnlessOpen. Ключ шифрування в Secure Enclave з біометричною захистом.
Android: Room + EncryptedSharedPreferences + SQLCipher. Ключ в Android KeyStore з setUserAuthenticationRequired(true).
Передача даних: TLS 1.3 обов'язковий, TLS 1.2 допустимий з обмеженнями. Certificate pinning. Для обміну між організаціями — HL7 FHIR R4 як стандарт інтероперабельності.
FHIR R4 — стандарт, який не можна ігнорувати
Якщо ЕМК повинна інтегруватися з іншими MIS, HL7 FHIR R4 — де-факто стандарт. Ресурси: Patient, Observation, Condition, MedicationRequest, DiagnosticReport, Encounter.
На мобільному — REST API до FHIR-сервера (HAPI FHIR, Azure Health Data Services, Google Cloud Healthcare API). iOS: немає офіційної FHIR SDK, використовуємо Alamofire + кастомні Codable-моделі. Android: Google's android-fhir SDK (офіційна, підтримує offline sync через FHIR Structured Data Capture).
Приклад запиту спостережень пацієнта:
GET /fhir/Observation?patient=Patient/123&category=vital-signs&_sort=-date&_count=20
Медичні дані в UI
Деякі речі специфічні для медицини:
Норми референсних значень. Результат аналізу "Глюкоза: 7.2 ммоль/л" показуємо з контекстом: норма 3.9–6.1, останнє значення 6.8, тренд зростає. Charts/MPAndroidChart для графіків динаміки.
Лікарські взаємодії. Якщо показуємо призначення, потрібна перевірка DDI (drug-drug interactions) — через DrugBank або RxNorm API. Окремий scope.
Екстрений QR. Офлайн-доступний QR без аутентифікації, містить лише критичні дані у стандарті Smart Health Cards або FHIR Patient Summary. Генерується та кешується при останньому онлайн-сеансі.
Процес
| Етап | Вміст | Срок |
|---|---|---|
| Аудит вимог | Юрисдикція, ролі, інтеграції (MIS, лабораторії) | 1 тиждень |
| Проектування | FHIR-ресурси, модель даних, схема доступу, audit log | 1–2 тижні |
| Розробка core | Аутентифікація, профіль пацієнта, медкарта, призначення | 4–6 тижнів |
| Шифрування та security | Офлайн-зберігання, SE/StrongBox, certificate pinning | 1–2 тижні |
| Інтеграції | FHIR-сервер, лабораторні системи, push | 2–3 тижні |
| QA + security audit | Penetration testing, перевірка audit log | 1–2 тижні |
Повний MVP — 2–3 місяці. Додаток з повною FHIR-інтеграцією, підтримкою лікара та пацієнта, HIPAA-сумісним audit log — ближче до трьох. Вартість рассчитується після детального аналізу вимог та юрисдикції.







