Перейти к содержанию

MedMe EHR API v2.0

Этот протокол описывает получение медицинских данных пациентам клиники или нескольких клиник.

Отличие от существующих API (читай, HL7 / FHIR) в том, что API должно быть удобно для использование в реальных приложениях – оно дает возможность реальной разработки с минимальным порогом вхождения.

Так же предполагается, что мы имеем дело с данными разного уровня детализации, расположенными на разных серверах баз данных, с различной структурой хранения или передачи, которые нужно привести к единому формату. Существующие протоколы достаточно монструозны, имеют высокий уровень связности между всеми компонентами и не дают возможности вести разработку итерационно. Кроме того, они требуют от данных высокого уровня детализации, что непонятно как получить в реальной жизни (ответа на этот вопрос они не дают).

Эти недостатки мы постарались предусмотреть и устранить их здесь.

Цели версии API 2.x

Распознавание данных на основании паттернов. Текстовые "сырые" поля также должны присутствовать.

Что это дает:

  • улучшение отображения информации на UI
  • возможность обмена информации между клиникой и страховой
  • возможность обмена информации между клиникой и сетью аффилиатов (например, аптек)
  • возможность получения статистических данных для мониторинга и принятия решений (например, что назначает тот или иной врач в зависимости от анамнеза)

Изменения синтаксиса API в версии 2.х

  • Добавлен тип данных Отделение (Department) в Диагностический отчет, Запись на прием, Результат приема
  • Добавлено перечислимые значения в поле "Статус отчета" в сущности Диагностический отчет
  • Добавлено перечислимые значения в поле "Статус обследования" в сущности Обследование
  • Удалено поле "тип" (type) из сущности Диагностический отчет как неиспользуемое
  • Изменил поле category на categories в сущности Диагностический отчет. Изменил его тип на ServiceCategory[]
  • Добавлены значения для перечислимого типа Статус диагностического отчета в сущности Диагностический отчет
  • Добавлено поле "код услуги" в тип данных Service из справочника "Номенклатура медицинских услуг". Может быть как вычисляемым, так и читаться из Базы Данных
  • Добавлены значения в справочник MedicationForms
  • Удалено поле type из типа данных ObservationRange как неиспользуемое
  • Добавлено поле category, тип ObservationCategory в модель Observation
  • Удалено поле performerBusiness (отделение, филиал) из модели Observation как неиспользуемое
  • Удалено поле type в сущности Процедура
  • Добавлено поле observationCategory в сущности Процедура
  • Добавлена статистика распознавания

Изменения в наполнении полей API в версии 2.х

  • Распознавание назначений - полей recommendations, scheduledProcedures в сущности AppointmentResult
  • Распознавание кода болезни по МКБ-10 и МКБ-0 для онкозаболеваний - поле "diagnosis.cd10" в сущности AppointmentResult

Справочники

Краткое описание потоков и структур данных

Здесь описан процесс прохождения лечения пациентом и заполняемые данные с привязкой к полям сущностей. Процессы описаны для понимания каких данных ожидать в том или ином случае.

Прием к врачу

Пациент или администратор клиники создает запись на прием к доктору или на услугу - создается сущность "Запись на прием".

Пациент приходит на прием - можно в поле "пришел" получить соответствующее значение. Создается сущность "Результат приема".

Если пациент не приходит на прием в поле "пришел" получаем соответствующее значение.

Доктор опрашивает пациента - заполняется поле "анамнез".

Доктор осматривает пациента - создается сущность или несколько сущностей "Обследование".

Доктор пишет свое заключение на основании данных, полученных при осмотре - создается сущность "Диагностический отчет".

Доктор направляет пациента на обследование - создается сущность "Направление".

Доктор пишет рекомендации пациенту в сущности "Результат приема".

В результате диагностики устанавливается код болезни по МКБ-10 в сущности "Результат приема" поле "diagnosis[i].cd10". Указываются "Медикаментозные назначения" (Лекарства).

Лабораторные анализы (крови, мочи и другое)

Скорее всего должно присутствовать Направление на прием на анализ.

Может не быть "записи на прием" и "результата приема".

В результате обработки лабораторных анализов появляются сущности "Обследование" и сущность "Диагностический отчет", вероятно без заключения.

После того, как врач посмотрит показатели анализов, в диагностическом отчете он проставит интерпретацию.

Если есть "запись на прием", то в ней должны быть и ссылка на "Обследования" и на "Диагностический отчет".

Исследования (УЗИ, КТ, рентген и другое)

Скорее всего должно присутствовать Направление на прием на исследование.

Должны быть "записи на прием" и "результата приема".

В результате обработки исследования появляются сущности "Обследование" и сущность "Диагностический отчет", которые привязаны к "записи на прием" и "результату приема", если они есть.

Статистика распознавания

Для получения информации об эффективности распознавания данных, ведется статистика по распознаванию того или иного поля. Элемент состоит из следующих полей:

  • дата попытки
  • название поля
  • метод распознавания
  • распознано (да/нет)

Так можно получить ответы на следующие вопросы:

  • Сколько процентов значений было распознано по определенному полю
  • Какой из двух методов (новый или старый) более эффективен и насколько
  • Насколько увеличился процент распознавания со временем