Взаимодействие между МИС ОЗ и ЦИСЗ
Документация
Актуальный протокол информационного взаимодействия
Программы испытаний
Предыдущий протокол информационного взаимодействия
Регламент
Схема взаимодействия МИС с ЦИСЗ
Взаимодействие между МИС ОЗ и ЦИСЗ при обмене медицинскими данными осуществляется путем передачи из МИС ОЗ сформированного пакета медицинских данных о пациенте в ЦИСЗ с помощью метода импорта пакета медицинских данных о пациенте в ЦИСЗ в виде электронного документа.
Для начала взаимодействия с ЦИСЗ МИС ОЗ необходимо сформировать пакет медицинских данных.
Медицинский работник посредством МИС ОЗ вносит медицинскую информацию о пациенте и подписывает ее с помощью ЭЦП:
- Медицинский работник вносит в МИС ОЗ набор медицинских данных о пациенте, включая сведения о медицинском наблюдении за пациентом и услугах, предоставленных пациенту
- МИС ОЗ на основании сведений, внесенных медицинским работником, формирует пакет медицинских данных в виде 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
Медицинский работник посредством МИС ОЗ просматривает таблицу с актуальными статусами своих пакетов медицинских данных, переданных в ЦИСЗ
▲ Вверх