AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

FHIR против пользовательской медицинской базы данных

Ваши собственные таблицы или HL7 FHIR R4 для медицинских данных: одинаковое чтение, сохраненное обоими способами, компромиссы бок о бок, когда каждый вариант подходит, и обычное разделение между вашей базой данных и записью FHIR.

Команда, начинающая медицинский продукт, обычно сталкивается с одним и тем же выбором на раннем этапе: спроектировать собственные таблицы для пациентов, измерений и диагнозов в PostgreSQL или другой базе данных, или с самого начала хранить медицинские данные в виде ресурсов HL7 FHIR R4. Пользовательская схема быстрее в первый день и точно соответствует вашему продукту. FHIR требует больше размышлений на начальном этапе и окупается каждый раз, когда данные должны покинуть вашу систему, пройти аудит, быть переданы с согласия или прочитаны кем-то, кто не вы. Эта страница честно излагает компромиссы, с одним и тем же чтением, хранящимся обоими способами, и говорит, когда каждый выбор правильный.

Это отличается от вопроса о том, какой FHIR-сервер использовать. Для этого см. Как Anpheros сравнивается с другими FHIR-серверами.

Одно и то же измерение, два способа представления

Измерение артериального давления в пользовательской схеме:

CREATE TABLE bp_readings (
  id          uuid PRIMARY KEY,
  user_id     uuid REFERENCES users(id),
  systolic    int,
  diastolic   int,
  measured_at timestamptz,
  created_at  timestamptz DEFAULT now()
);

Просто, быстро для запросов, именно то, что нужно приложению. Затем возникают вопросы, на которые таблица не дает ответа:

То же измерение в формате FHIR R4:

{"resourceType": "Observation", "status": "final",
 "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "vital-signs"}]}],
 "code": {"coding": [{"system": "http://loinc.org", "code": "85354-9", "display": "Blood pressure panel"}]},
 "subject": {"reference": "Patient/d09e3942-…"}, "effectiveDateTime": "2026-10-10T08:30:00Z",
 "component": [
   {"code": {"coding": [{"system": "http://loinc.org", "code": "8480-6"}]}, "valueQuantity": {"value": 138, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}},
   {"code": {"coding": [{"system": "http://loinc.org", "code": "8462-4"}]}, "valueQuantity": {"value": 88, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}}],
 "meta": {"versionId": "1"}}

Более многословно, но каждая часть имеет значение, общее для любой системы FHIR: LOINC указывает, что было измерено, UCUM — единицу измерения, meta.versionId начинает историю, а та же форма Observation содержит остальные 200 измерений. С Anpheros ресурс Provenance также записывает, кто его создал. Как хранить медицинские записи с использованием FHIR R4 подробно описывает этот процесс.

Параллельное сравнение

Пользовательская схема FHIR R4
Время до первого использования функции часы день или два на изучение ресурсов
Соответствие вашему продукту точное общее; представление вашего продукта накладывается сверху
Добавление нового типа данных миграция для каждого типа обычно новый код в существующем ресурсе
Значение вне вашей системы отсутствует без сопоставления общие коды (LOINC, ICD-10, ATC, UCUM)
История и исправления вы проектируете версии и _history по дизайну
Кто что написал вы проектируете Provenance (автоматически в Anpheros)
Обмен с клиниками, лабораториями, другими приложениями индивидуальная интеграция каждый раз FHIR R4 API, импорт HL7 v2, International Patient Summary
Согласие пациента на приложение вы проектируете области действия SMART on FHIR и OAuth
Запросы для аналитики обычный SQL поиск FHIR или экспорт в ваш склад данных
Регулирование (Статья 9 GDPR, EHDS) вы документируете каждую часть стандартные форматы, на которые ссылается регулирование

Когда пользовательская схема — правильный выбор

Когда FHIR — правильный выбор

Обычный средний путь

Большинство продуктов в итоге используют оба подхода, разделяя данные по типу:

your database                         FHIR record (Anpheros)
─────────────                         ──────────────────────
users, sessions, settings             Patient
subscriptions, billing                Observation, Condition, MedicationStatement
product content, feature flags        AllergyIntolerance, Immunization, DocumentReference
user id → patient id (one column)     Provenance, Consent, history
caches and analytics copies  ◄─────── webhooks

Ваша база данных остается небольшой и соответствует форме продукта. Медицинская карта стандартизирована, версионирована и доступна для обмена, и вам не пришлось ее создавать. Бэкенд и база данных медицинского приложения подробно описывает это разделение, а Как создать API для здравоохранения с помощью TypeScript реализует его.

Что нужно для самостоятельной разработки FHIR

Выбор FHIR не означает написание FHIR-сервера с нуля. Ваши варианты: запуск open-source сервера, использование FHIR-хранилища облачного провайдера, open-source медицинской платформы или управляемой медицинской базы данных, такой как Anpheros. Они различаются тем, кто отвечает за управление согласиями, аудитом, происхождением данных, размещением и интеграциями, что подробно описано в Сравнение Anpheros с другими FHIR-серверами.

Часто задаваемые вопросы

Является ли FHIR базой данных?

Нет. FHIR — это стандарт для структуры и обмена медицинскими данными: ресурсов, кодов и REST API. FHIR-сервер или управляемая FHIR-база данных хранит ресурсы и реализует API поверх реальной базы данных.

Могу ли я самостоятельно хранить FHIR-ресурсы в PostgreSQL?

Да, в виде JSON-колонок с вашими собственными индексами, и некоторые open-source серверы делают именно это. Работа заключается во всем, что связано с хранением: параметрах поиска, версионировании, ссылках, валидации, контроле доступа по пациентам и происхождении данных.

Могу ли я начать с пользовательской схемы и перейти на FHIR позже?

Можете, и многие команды так делают, но миграция — это проект по сопоставлению: каждая таблица нуждается в кодах, единицах измерения и авторах, которые она никогда не записывала. Хранение медицинских данных в формате FHIR с первой же функции обходится дешевле, чем их последующее преобразование.

Нужен ли мне FHIR для соблюдения GDPR?

Нет. GDPR не требует определенного формата. FHIR упрощает выполнение нескольких обязательств: переносимость (запись экспортируется в стандартном формате), контроль доступа по назначению и отображение того, кто обрабатывал какие данные.

Связанные материалы

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy