Руководство к использованию стандарта FHIR в ЦИСЗ
0.2.6803 - ci-build

Взаимодействие между МИС ОЗ и ЦИСЗ

Документация

Актуальный протокол информационного взаимодействия

Программы испытаний

Предыдущий протокол информационного взаимодействия

Регламент

Схема взаимодействия МИС с ЦИСЗ

Взаимодействие между МИС ОЗ и ЦИСЗ при обмене медицинскими данными осуществляется путем передачи из МИС ОЗ сформированного пакета медицинских данных о пациенте в ЦИСЗ с помощью метода импорта пакета медицинских данных о пациенте в ЦИСЗ в виде электронного документа.

img


Для начала взаимодействия с ЦИСЗ МИС ОЗ необходимо сформировать пакет медицинских данных.

Медицинский работник посредством МИС ОЗ вносит медицинскую информацию о пациенте и подписывает ее с помощью ЭЦП:

  • Медицинский работник вносит в МИС ОЗ набор медицинских данных о пациенте, включая сведения о медицинском наблюдении за пациентом и услугах, предоставленных пациенту
    • МИС ОЗ на основании сведений, внесенных медицинским работником, формирует пакет медицинских данных в виде FHIR-ресурса Bundle в формате JSON
  • Медицинский работник подтверждает достоверность и целостность внесенных в МИС ОЗ данных своей электронно-цифровой подписью (ЭЦП медицинского работника)
    • МИС ОЗ конвертирует ресурс Bundle в формат base64
    • МИС ОЗ вызывает локальный метод КП ЕСИФЮЛ sign и предает в метод ресурс Bundle в формате base64
    • Медицинский работник с помощью КП ЕСИФЮЛ подписывает Bundle
    • КП ЕСИФЮЛ возвращает в МИС ОЗ ответ в формате base64

Отправка пакета из МИС ОЗ в ЦИСЗ:

После формирования пакета медицинских данных о пациенте выполняется его передача в ЦИСЗ с помощью метода импорта пакета медицинских данных о пациенте в ЦИСЗ:

  • МИС ОЗ вызывает метод импорта пакета медицинских данных о пациенте в ЦИСЗ в виде электронного документа (программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0 (см. вкладку “Авторизация в ЦИСЗ”). При каждом вызове метода МИС ОЗ должно передавать токен доступа (токен медицинского работника) в заголовке запроса)
    • в теле запроса передает подписанный ресурс Bundle
    • в заголовках запроса устанавливает тип передаваемого контента (content-type) в application/cms
    • в поле Composition.author обязательно должен быть указан идентификатор авторизованного медицинского работника (идентификатор содержится в токене авторизации)
    • в поле Composition.custodian обязательно должен быть указан идентификатор организации здравоохранения, в которой происходила авторизация медицинского работника (идентификатор содержится в токене авторизации)
  • МИС ОЗ отправляет пакет медицинских данных о пациенте в ЦИСЗ
  • ЦИСЗ выполняет валидацию полученного из МИС ОЗ пакета медицинских данных о пациенте:
    • валидация входящего пакета медицинских данных на соответствие профилю пакета медицинских данных;
    • валидация ресурсов пакета медицинских данных на соответствие профилям ЦИСЗ;
    • валидация справочных данных пакета медицинских данных на соответствие значениям справочников ЦИСЗ.

Позитивный сценарий (входящий пакет медицинских данных является валидным):

  • ЦИСЗ возвращает в МИС ОЗ:
    • HTTP-статус 202 (Accepted): валидация входящего пакета медицинских данных на соответствие профилю пакета медицинских данных прошла успешно, запрос на импорт пакета принят в обработку, но обработка запроса еще не завершена
    • ресурс Parameters (набор параметров, по которым в последующем можно запросить в ЦИСЗ добавленный пакет медицинских данных)
  • МИС ОЗ отображает медицинскому работнику информацию “Пакет принят”
  • переход на шаг 3

Негативный сценарий (входящий пакет медицинских данных невалиден):

Если в процессе валидации были обнаружены ошибки, то пакет медицинских данных о пациенте отклоняется и передача информации из МИС ОЗ в ЦИСЗ считается неуспешной.

  • ЦИСЗ возвращает в МИС ОЗ:
    • HTTP-статус серии 4xx: операция импорта не выполнена. Сбой операции импорта может быть вызван ошибками в передаваемом контенте (например, неверный набор символов, неверный JSON и т. д.)
    • ресурс OperationOutcome с HTTP-статусом:
      • 200 (ОК) - в большинстве случаев, когда структура ресурса валидная, но есть ошибки в кодах из НСИ, указаны не валидные URI в элементах reference
      • 400 (BadRequest), в случаях, если:
        • указана неверная версия для валидации
        • нарушена схема ресурса
        • неверная структура JSON
        • указаны неверные URI содержащий информацию об ошибке:
        • в элементе OperationOutcome.issue.details.text - содержимое определяется причиной возникновения ошибки
        • в элементе OperationOutcome.issue.diagnostics - дополнительная диагностическая информация по ошибке (например, для ошибок, связанных с подсистемой НСИ (несовпадение кодов), указывается версия FHIR-пакета, по которой происходила валидация)
        • в элементе OperationOutcome.issue.expression - дополнительная диагностическая информация по ошибке (в большинстве случаев представляет собой путь к ошибке)
    • МИС ОЗ отображает медицинскому работнику информацию “Пакет отклонен”
    • после исправления обнаруженных ошибок валидации алгоритм взаимодействия с ЦИСЗ повторяется, начиная с шага 1
      • 500 (Internal Server Error) - при получении таких ошибок МИС ОЗ должен предоставить медицинскому работнику информацию о временной неисправности ЦИСЗ и о необходимости повторного импорта пакета и дать такую возможность.

Запрос статуса (получение текущего статуса импорта пакета медицинских данных о пациенте в ЦИСЗ):

  • (примерно через 10-20 сек) МИС ОЗ в фоновом режиме вызывает метод получения статуса обработки пакета данных (программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0). При каждом вызове метода МИС ОЗ должно передавать токен доступа (токен медицинского работника) в заголовке запроса. Врач должен иметь возможность работать с интерфейсом МИСа.

Получение статуса:

  • ЦИСЗ возвращает:
    • HTTP-статус 200(OK)
    • ресурс Parameters (набор параметров, по которым в последующем можно запросить в ЦИСЗ добавленный пакет медицинских данных) Ресурс Parameters состоит из следующих параметров:
Название Тип Описание
ProcessingStatus valueString Статус обработки импорта пакета данных
OperationStatusReference valueReference Ссылка на статус операции, по которой можно получить статус обработки пакета данных
ResourceId valueString Идентификатор ресурса, по которому можно получить статус операции, проводящейся с данным ресурсом
ResourceType valueString Тип ресурса
StatusDescription OperationOutcome Описание ошибки при обработке пакета данных

Поле ProcessingStatus может принимать одно из пяти значений:

Название Описание
Pending Система получила и сохранила пакет данных, но этот пакет ещё не находится в обработке
InProgress Произошла декомпозиция пакета данных и каждая декомпозированная часть отправилась на обработку в соответствующий обработчик
Successed Все обработчики успешно завершили обработку данных
Failed Как минимум один обработчик завершил обработку с ошибкой. В таком случае обработка всего пакета отменяется
Cancelled Сохранение пакета данных было отменено

Позитивный сценарий (обработка пакета без ошибок):

  • если ЦИСЗ вернул ProcessingStatus со значением ProcessingStatus=Successed, то:
    • МИС ОЗ изменяет в отображении для медицинского работника информацию на: “Пакет обработан”
  • если ЦИСЗ вернул ProcessingStatus со значениями ProcessingStatus=Pending/InProgress:
    • Запрос статуса
      • МИС ОЗ повторяет операцию вызова метода получения статуса обработки пакета данных с периодичностью (примерно 1 раз в 5 секунд) до тех пор, пока ProcessingStatus не вернется со значением ProcessingStatus=Successed
      • Получение статуса
        • если ЦИСЗ вернул ProcessingStatus со значением ProcessingStatus=Successed, то:
          • МИС ОЗ изменяет в отображении для медицинского работника информацию на: “Пакет обработан”

Негативный сценарий (обработка пакета с ошибкой):

  • если ЦИСЗ вернул ProcessingStatus со значением ProcessingStatus=Failed, то как минимум один обработчик завершил обработку с ошибкой и в таком случае обработка всего пакета отменяется и ресурс OperationOutcome будет содержать информацию об ошибке:
    • описание ошибки для разработчика МИС ОЗ: в элементе OperationOutcome.issue.details.text
    • описание ошибки для медицинского работника, взаимодействующего с ЦИСЗ посредством МИС ОЗ: в элементе OperationOutcome.issue.diagnostics
  • МИС ОЗ изменяет в отображении для медицинского работника информацию на: “Пакет отклонен” и отображает описание всех ошибок для медицинского работника (из элемента OperationOutcome.issue.diagnostics)
  • после исправления обнаруженных ошибок алгоритм взаимодействия с ЦИСЗ повторяется, начиная с шага 1

Медицинский работник посредством МИС ОЗ просматривает таблицу с актуальными статусами своих пакетов медицинских данных, переданных в ЦИСЗ

▲ Вверх