Разработка системы электронной медицинской карты (EHR)
EHR (Electronic Health Record) — цифровой аналог бумажной истории болезни. Хранит весь медицинский анамнез пациента: визиты, диагнозы, назначения, результаты исследований, аллергии, прививки. EHR является медицинской информационной системой (МИС) и обязана соответствовать требованиям Минздрава РФ, ГОСТ Р 52636-2006, стандарту HL7 FHIR.
Ключевые FHIR-ресурсы
HL7 FHIR R4 определяет стандартные ресурсы для медицинских данных. Основные для EHR:
| FHIR Resource | Описание |
|---|---|
Patient |
Демографические данные пациента |
Encounter |
Визит/контакт с медицинской организацией |
Condition |
Диагноз (МКБ-10 код) |
Observation |
Измерения: давление, температура, лабораторные значения |
MedicationRequest |
Назначение лекарства |
DiagnosticReport |
Результат исследования (с вложением PDF) |
AllergyIntolerance |
Аллергии и непереносимость |
Immunization |
Вакцинация |
DocumentReference |
Ссылка на медицинский документ |
Хранение в PostgreSQL через JSONB (каждый ресурс — JSON) с индексами по ключевым полям:
CREATE TABLE fhir_resources (
id UUID PRIMARY KEY,
resource_type VARCHAR(50),
resource_id VARCHAR(64),
patient_id UUID,
data JSONB,
version_id INT,
last_updated TIMESTAMPTZ
);
CREATE INDEX ON fhir_resources USING GIN (data);
CREATE INDEX ON fhir_resources (resource_type, patient_id);
Готовые FHIR-серверы для PostgreSQL: HAPI FHIR (Java), Medplum (Node.js + TypeScript, с готовым React SDK).
Структурированное ведение визита
Врач документирует визит по структуре SOAP:
- S (Subjective) — жалобы пациента
- O (Objective) — осмотр, измерения, результаты
- A (Assessment) — диагноз (МКБ-10)
- P (Plan) — назначения, направления, рекомендации
В интерфейсе каждый блок — отдельная секция с rich-text редактором. Диагнозы выбираются из справочника МКБ-10 с автодополнением.
Назначения и лекарственные взаимодействия
При назначении препарата система проверяет:
- Аллергии пациента на компонент
- Лекарственные взаимодействия с уже назначенными препаратами
- Противопоказания (беременность, возраст, хронические заболевания)
База взаимодействий: DrugBank API, openFDA, или российская GRLS (Государственный реестр лекарственных средств).
Безопасность данных
EHR содержит наиболее чувствительные данные. Требования:
- Sharding + encryption at rest: PostgreSQL с TDE или column-level encryption для диагнозов, результатов
- Row-Level Security: врач видит только пациентов своего отделения/учреждения
- Audit trail: неизменяемый лог каждого доступа к записи пациента (кто, когда, что)
- Break-glass access: экстренный доступ к данным любого пациента с обязательным журналированием и уведомлением
- Data masking: при демонстрации и тестировании — маскирование ФИО и идентификаторов
Интеграция с РЭМД
РЭМД (Реестр электронных медицинских документов) — федеральная система Минздрава. Электронные медицинские документы (выписки, протоколы) передаются в РЭМД в формате CDA R2 или FHIR Bundle. Требует квалифицированной ЭП врача и МО.
Работа offline
Для клиник с нестабильным интернетом — возможность offline-работы:
- Service Worker кэширует данные пациентов на сеанс
- Изменения хранятся локально, синхронизируются при восстановлении соединения
- Конфликты при синхронизации — через OT или CRDT
Интеграция с медоборудованием
Автоматическая передача данных с приборов:
- HL7 v2 — старый, но повсеместный стандарт для лабораторий, анализаторов (ASTM E1394)
- DICOM — стандарт для изображений: КТ, МРТ, рентген
- FHIR Device — для современных мобильных устройств (пульсоксиметры, глюкометры)
Сроки
MVP EHR (карточка пациента, ведение визита, SOAP-документация, базовые диагнозы МКБ-10): 4–6 месяцев. Полноценная система с FHIR-сервером, RLS, аудитом, интеграцией РЭМД, DICOM-viewer: 9–16 месяцев.







