Описание решения
Краткое описание процесса
Процесс проведения лабораторных исследований согласно ГОСТ Р 53022.1-2008 состоит из трех этапов:
- Преаналитический. К преаналитическому этапу относятся процессы по подготовке заявки на выполнение исследования, передаче заявки и биоматериала в КДЛ, подготовке к выполнению исследования. Состоит из двух фаз:
- Внелабораторная фаза. Включает в себя:
- Формирование направления. Выполняется врачом МО в случае необходимости проведения исследования.
- Сбор биоматериала. Осуществляет медицинская сестра процедурного кабинета в соответствии с данными направления.
- Формирование заявки. К направлению добавляется необходимая дополнительная информация согласно требованиям лаборатории.
- Передача заявки и биоматериала в лабораторию.
- Внутрилабораторная фаза. Включает в себя:
- Проверка корректности заявки. Выполняется регистратором.
- Формирование/изменение заказа (заказ может быть передан в ЛИС из МИС автоматически или внесен в ЛИС сотрудником МО через удаленное рабочее место). Выполняется регистратором/врачом клинической лабораторной диагностики.
- Внелабораторная фаза. Включает в себя:
- Аналитический. К аналитическому этапу относится процесс выполнения исследования. Проведение исследования выполняется врачом клинической лабораторной диагностики вручную или с помощью оборудования.
- Постаналитический. К постаналитическому этапу относятся процессы по утверждению результата, передаче утвержденного результата в МО. Проверка корректности полученных результатов (анализ результатов) выполняется врачом клинической лабораторной диагностики. В случае необходимости производится корректировка заказа и выполнение дополнительных исследований. После подтверждения результаты передаются в МО.
Информационное обеспечение процесса осуществляют: МИС МО (как источник информации о назначении и получатель результатов исследования), ЛИС КДЛ (как получатель информации о назначении и источник результатов исследований) и сервис ДЛИ (как информационная шина, обеспечивающая информационный обмен и как хранилище информации по лабораторным исследованиям).
Описание взаимодействия с сервисом
Сервис ДЛИ предназначен для ведения, хранения, поиска и выдачи сведений по лабораторным исследованиям. Сервис обеспечивает:
- Централизованный учет заявок на лабораторное исследование.
- Централизованный учет результатов лабораторных исследований.
- Учет информации о пациентах, которым назначено лабораторное исследование.
- Учет информации о медперсонале.
- Получение заявок на лабораторное исследование и передача их по запросу.
- Передача статуса заявки по запросу.
- Получение результатов лабораторных исследований и передача их по запросу.
- Передача всех результатов лабораторных исследований для МО по запросу.
Базовая схема информационного взаимодействия приведена на [Рисунок 1].
Рисунок 1. Базовая схема информационного взаимодействия
Обмен данными между МИС МО, ЛИС КДЛ и сервиса ДЛИ осуществляется в рамках следующих сценариев:
- Добавление заявки. Заявка передается из МИС.
- Запрос заявки. Заявка не передается в ЛИС автоматически. ЛИС КДЛ запрашивает заявку у сервиса ДЛИ при поступлении биоматериала в лабораторию.
- 3. Добавление результата. Результат передается из ЛИС. В сервис ДЛИ должны передаваться только утвержденные результаты исследований.
- Запрос статуса заявки. Информация об изменении статуса заявки не передается в МИС автоматически. МИС МО запрашивает статус заявки у сервиса ДЛИ
- Запрос результата. Результат не передается в МИС автоматически. МИС МО запрашивает заявку у сервиса ДЛИ.
Описание протокола и запросов приведено в разделе «Описание протокола взаимодействия».
Обмен данными о пациенте
При информационном взаимодействии могут осуществляться следующие операции:
- Добавление пациента в сервис ДЛИ. Осуществляется передача данных о пациенте, направленном на лабораторное исследование.
- Обновление данных. Обновление базовой информации о пациенте (ФИО, адрес, паспорт, полис).
- Передача данных о пациенте из сервиса ДЛИ по запросу. МИС МО или ЛИС КДЛ может запрашивать актуальную информацию о пациенте.
Процесс обмена данными о пациенте приведен на [Рисунок 2].
Рисунок 2. Обмен данными о пациенте
Описание протокола взаимодействия
Общая информация о сервисе
Информационный обмен осуществляется в соответствии со стандартом FHIR® (Fast Healthcare Interoperability Resources), разработанным организацией HL7. Используемая версия FHIR DSTU2, 1.0.2. Подробное описание стандарта доступно по следующим ссылкам:
В качестве протокола взаимодействия используется REST (использование REST-протокола в FHIR® – см. http://fhir-ru.github.io/http.html).
Требования к авторизации
Для передачи данных в сервис ДЛИ необходимо передавать в заголовке сообщения авторизационный токен в формате:
Authorization: N3[пробел][GUID передающей системы]
GUID передающей системы выдается разработчику МИС администратором интеграционной платформы. GUID передающей системы должен соответствовать идентификатору информационной системы, указанному в идентификаторе заявки или результата.
Использование справочников
Справочники, используемые в сервисе ДЛИ, опубликованы в «Сервисе Терминологии». Описание сервиса Терминологии и правила взаимодействия с ним приведены по ссылке: /terminologyservice/.
Для каждого справочника в Настоящем документе указан его OID (объектный идентификатор). Перечень присвоенных корневых OID:
- 1.2.643.5.1.13.2.1 — Корневой OID справочников, размещённых в Федеральном реестре НСИ (http://nsi.rosminzdrav.ru/);
- 1.2.643.2.69.1.1.1 – Корневой OID для справочников подсистемы НСИ Регионального фрагмента.
Передача параметров, использующих значения справочников, не указанных в стандарте FHIR, осуществляется в следующей структуре:
"coding": [ { "system": "urn:oid:[OID справочника в сервисе Терминологии]", "version": "[версия справочника]", "code": "[код значения]" } ]
При передаче параметров, использующих значения внутренних справочников FHIR, указывается только код значения (справочники стандарта FHIR также опубликованы в сервисе Терминологии).
Особенности использования справочников
- При передаче любого значения с использованием справочника необходимо передавать в том числе используемую версию справочника. Допускается передача значений только по актуальной версии справочника. При валидации значений сервисом значения, передаваемые без указания версии справочника или с указанием неактуальной версии, не проходят валидацию и не принимаются сервисом.
- При использовании справочника медицинских организаций: в случае, если в справочнике для учреждения зарегистрированы все его подразделения, необходимо передавать информацию от имени соответствующего подразделения. Передача информации от имени головного учреждения не допускается. При передаче заявки на исследование необходимо указывать в заявке (Order.identifier.assigner), данных пациента (Patient.managingOrganization) и случае обслуживания (Encounter.serviceProvider) то учреждение или подразделение (если зарегистрировано в справочнике), где проходит лечение пациент (открыт случай обслуживания и создана заявка).
Формат даты
Значения параметров методов, имеющих тип Datetime, необходимо передавать в формате UTC или с указанием таймзоны. Если таймзона не указана, то в рамках сервиса считается, что передано локальное время (региональное), и сервис работает с переданным значением как с «датой, для которой не указана таймзона».
Пример времени по Москве: 2021-01-18T12:20:12.2508719+03:00
Методы сервиса
Сервис ДЛИ поддерживает следующие запросы:
- Передача пациента (POST Patient)
- Обновление пациента (PUT Patient)
- Передача врача (POST Practioner)
- Обновление врача (PUT Practitioner)
- Передача заявки (POST Bundle заявки)
- Запрос заявки ($getorder)
- Запрос заявок ($getorders)
- Передача результата (POST Bundle результата)
- Передача результата без заявки (POST Bundle результата без заявки)
- Запрос статуса ($getstatus)
- Запрос результата ($getresult)
- Запрос всех результатов для заданной МО ($getresults)
- Запрос ресурсов
- Отмена заявки ($cancelorder)
- Отмена результата ($cancelresult)
- Обоснованность назначений ($validity)
- Передача услуги (POST HealthcareService)
- Запрос списка услуг для заданной МО
Обязательность параметров, используемых в запросах, указана в соответствующих таблицах. При этом используются следующие обозначения:
Параметр «Кратность» означает количество возможных значений реквизита:
0..1 — параметр необязательный, максимальное количество экземпляров один;
0..* – параметр необязательный, максимальное количество экземпляров не ограничено;
1..1 – параметр обязательный, экземпляр один;
1..2 – параметр обязательный, экземпляр один или два;
1..* – параметр обязательный, максимальное количество экземпляров не ограничено
Передача пациента (POST Patient)
Для регистрации пациента в сервисе ДЛИ используется POST-запрос ресурса Patient. Данные ДУЛ, полиса и СНИЛС пациента передаются в параметре identifier.
При передаче данных анонимных пациентов следует в ресурсе Patient передавать параметр name.use = “anonimous”.
Уникальность пациента проверяется по совокупности параметров ID МИС и ИД пациента в МИС. Многократная передача одного и того же пациента из одной и той же МИС с разными идентификаторами МИС не допускается.
Описание параметров
Перечень параметров и их описание представлено в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 1. Параметры ресурса Patient
№ | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | id | identifier | 1..1 усл Должен передаваться при обновлении методом PUT | GUID ресурса Patient для обновления методом PUT |
2 | identifier | Identifier | 1..* Должен передаваться хотя бы идентификатор в ИС (identifier.system 1.2.643.5.1.13.2.7.100.5) | Идентификатор пациента. Указывает код пациента в МИС, ЛИС, ДУЛ, полисы, СНИЛС, информацию по прикреплению |
2.1 | identifier.system | uri | 1..1 | Пространство имён идентификатора. Указывается код:
|
2.2 | identifier.value | string | 1..1 | Значение для идентификатора или для документа.
|
2.3 | identifier.period | Period | 0..1 | Период действия для паспорта и полиса.
|
2.4 | identifier.assigner.display | string | 1..1 |
|
3 | managingOrganization | Reference(Organization) | 1..1 | Ссылка. Соотнесение с организацией, присвоившей идентификатор |
4 | name | 1..1 | HumanName | Информация о ФИО пациента |
4.1 | name.family | string | 1..2 | Фамилия, Отчество. Сначала указывается фамилия. |
4.2 | name.given | string | 1..1 | Имя |
4.3 | name.use | code | 0..1 | Код типа имени (справочник FHIR). Передается только значение “anonymous” при передаче данных по анонимному пациенту |
5 | gender | code | 1..1 | Код пола пациента (справочник FHIR. OID: 1.2.643.2.69.1.1.1.40) |
6 | birthDate | date | 1..1 | Дата рождения (yyyy-MM-dd) |
7 | address | Address | 0..* | Информация об адресе пациента |
7.1 | address.use | code | 1..1 | Тип адреса (справочник FHIR. OID: 1.2.643.2.69.1.1.1.41)
|
7.2 | address.text | string | 1..1 | Адрес строкой |
7.3 | address.line | string | 0..1 | Улица, номер дома, номер квартиры |
7.4 | address.state | string | 0..1 | Регион. Указывается код субъекта РФ по справочнику 1.2.643.5.1.13.13.99.2.206 |
7.5 | address.city | string | 0..1 | Город |
7.6 | address.district | string | 0..1 | Район |
7.7 | address.postalCode | string | 0..1 | Почтовый индекс |
Помимо перечисленных выше параметров, в сервис может быть передан дополнительный идентификатор прикрепления (OID (1.2.643.5.1.13.2.7.100.5)). Особенности передачи идентификатора прикрепления описаны ниже.
Идентификатор является разновидностью уже имеющегося идентификатора Patient.identifier и имеет пространство имен 1.2.643.5.1.13.2.7.100.9. В ресурсе Patient допускается передавать несколько identifier из пространства имен 1.2.643.5.1.13.2.7.100.9.
Правила передачи идентификатора с OID 1.2.643.5.1.13.2.7.100.9:
- если Patient.identifier.value = 0, то идентификатор может передаваться только один
- запрещена передача нескольких идентификаторов с одинаковым Patient.identifier.value
Таблица 2. Параметры идентификатора прикрепления
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1.1 | identifier.system | uri | 1..1 | Пространство имён идентификатора. OID (1.2.643.5.1.13.2.7.100.9) |
1.2 | identifier.use | code | 0..1 | Способ прикрепления (справочник FHIR)
|
1.3 | identifier.value | string | 1..1 | Значение профиля прикрепления по справочнику 1.2.643.2.69.1.1.1.56. Допустимые значения:
|
1.4 | identifier.period | Period | 0..1 | Период прикрепления. Может быть указана одна или обе даты.
|
1.5 | identifier.assigner.reference | Reference | 0..1 усл | Ссылка. Соотнесение с организацией прикрепления. Не передается при откреплении пациента от МО |
1.6 | identifier.assigner.display | display | 0..1 усл | Текстовое наименование участка прикрепления. Не передается при откреплении пациента от МО |
Пример запроса
При добавлении нового пациента в качестве адреса указывается URL в формате [base]/Patient?_format=json. В ответе сервис возвращает json с созданным пациентом и его идентификатором в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Обновление пациента (PUT Patient)
В подсистеме ДЛИ должна быть возможность обновить информацию о пациенте. При обновлении данных должна передаваться полная информация о пациенте, т.е. для корректной работы МИС должна запросить ресурс Patient (операция GET), а потом передать его со всеми параметрами, в том числе и неизменившимися (операция PUT). Обновление ресурса разрешено только отправителям данного ресурса.
Описание параметров
Параметры ресурса Patient приведены в таблице выше.
Пример запроса
МИС должна запросить ресурс Patient (операция GET)
http://b2b.n3health.ru/exlab/api/fhir/Patient/aba1a1c6-1476-4f80-bf3f-d75c0325bfe1
authorization: N3[пробел][GUID передающей системы]
content-type: application/json
При обновлении пациента в качестве адреса указывается URL в формате [base]/Patient/[GUID]?_format=json. GUID пациента в URL должен соответствовать id, указанному в запросе. При обновлении данных необходимо передавать полностью ресурс Patient, а не только измененные значения.
Пример запроса приведен в разделе «Примеры запросов».
Передача врача (POST Practitioner)
Для регистрации врача в сервисе ДЛИ используется POST-запрос ресурса Practitioner. Данные СНИЛСа, идентификатор в ИС врача передаются в параметре identifier.
Описание параметров
Перечень параметров и их описание представлены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 3. Параметры Practitioner
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1 | id | Identifier | 1..1 усл Должен передаваться при обновлении методом PUT | GUID ресурса Practitioner для обновления методом PUT |
2 | identifier | Identifier | 1..2 Должен передаваться хотя бы идентификатор в ИС (identifier.system 1.2.643.5.1.13.2.7.100.5) | Идентификатор врача (идентификатор в МИС/ЛИС или СНИЛС) |
2.1 | identifier.system | uri | 1..1 | Пространство имён идентификатора. Указывается код:
|
2.2 | identifier.value | string | 1..1 | Значение для идентификатора или для СНИЛСа |
2.3 | identifier. assigner.display | string | 1..1 |
|
3 | name | HumanName | 1..1 | ФИО врача |
3.1 | name.family | string | 1..2 | Фамилия, Отчество. Сначала указывается Фамилия |
3.2 | name.given | string | 1..1 | Имя |
4 | practitionerRole | BackboneElement | 1..1 | Сведения о враче |
4.1 | practitionerRole.managingOrganization | Reference(Organization) | 1..1 | Ссылка. Соотнесение с организацией, в которой работает врач. Должна указываться ссылка на существующую в БД Organization |
4.2 | practitionerRole.role | CodeableConcept | 1..1 | Код должности врача (Номенклатура должностей медицинских работников и фармацевтических работников)
|
4.2 | practitionerRole.specialty | CodeableConcept | 1..1 | Код специальности врача (Номенклатура специальностей специалистов с высшим и послевузовским медицинским и фармацевтическим образованием в сфере здравоохранения):
|
Пример запроса приведен в разделе «Примеры запросов».
Обновление врача (PUT Practitioner)
ДВ подсистеме ДЛИ должна быть возможность обновить информацию о враче. При обновлении данных должна передаваться полная информация о враче, т.е. для более корректной работы МИС должна запросить ресурс Practitioner (операция GET), а потом передать его со всеми параметрами, в том числе и неизменившимися (операция PUT). Обновление ресурса разрешено только отправителям данного ресурса.
При обновлении врача в качестве адреса указывается URL в формате [base]/Practitioner/[GUID]?_format=json.
Описание параметров
Параметры ресурса Practitioner приведены в таблице 3 выше.
Пример запроса приведен в разделе «Примеры запросов».
Передача заявки (POST Bundle заявки)
Для передачи заявки должен использоваться Bundle типа транзакция. В Bundle должна передаваться следующая информация:
- Сведения о пациенте (ФИО, пол, ДР, идентификаторы и т.п.).
- Сведения о враче (ФИО, пол, ДР, должность, специальность и т.п.).
- Общие сведения о заявке (идентификатор, дата, автор и т.п.).
- Информация о назначенных услугах и враче, сделавшем назначение.
- Данные о случае обслуживания, в рамках которого назначено исследование.
- Данные о состоянии пациента (диагнозы, информация о росте, весе пациента и т.п.).
- Информация о биоматериале (тип биоматериала, тип контейнера, штрихкод и др.)
Структура Bundle
Bundle используется для передачи набора ресурсов. Для каждого из ресурсов Bundle должна указываться операция (POST). Перечень ресурсов и их описание представлено в таблице ниже.
Таблица 4. Описание ресурсов, входящих в состав Bundle
№ п/п | Ресурс | Ссылки на другие ресурсы | Описание |
---|---|---|---|
1 | Patient | В ресурсе указывается информация о пациенте. | |
2 | Practitioner | В ресурсе указывается информация о враче: для передачи данных об авторе заявки и врачах, которые сделали назначение пациенту. | |
3 | DiagnosticOrder |
|
В ресурсе указывается следующая информация:
Если источник финансирования в заявке ОМС, то для пациента должен быть передан полис ОМС. |
4 | Encounter |
|
В ресурсе указывается информация о случае обслуживания, в рамках которого назначено исследование, и информация о диагнозе пациента. |
5 | Specimen | Specimen.subject – ссылка на Patient | В ресурсе указывается информация о забранном биоматериале |
6 | Observation | В ресурсе указывается информация о состоянии пациента: рост, вес, неделя беременности, день цикла | |
7 | Condition | Condition.subject – ссылка на Patient | В ресурсе указывается информация о состоянии пациента: диагнозы, признак менопаузы |
8 | Order |
|
В ресурсе указывается общая информация о заявке на проведение исследования:
|
Схема структуры Bundle приведена на рисунке ниже
Рисунок 3. Структура Bundle
Допустимые операции над ресурсами Bundle
Список обязательных ресурсов и допустимые операции над ресурсами Bundle приведены в таблице ниже.
Таблица 5. Обязательность ресурсов внутри Bundle и допустимые операции
№ | Ресурс | Кратность | Операции | Возможность использования ссылки на ресурс |
---|---|---|---|---|
1. | Patient | 0..1 |
|
Ресурс может не передаваться, указывается ссылка на уже существующий |
2. | Practitioner | 0..* |
|
Ресурс может не передаваться, указывается ссылка на уже существующий |
3. | DiagnosticOrder | 1..* | Создание (POST) | Всегда должен передаваться ресурс |
4. | Encounter | 0..1 |
|
Ресурс может не передаваться, указывается ссылка на уже существующий |
5. | Specimen | 0..* | Создание (POST) | Может не передаваться. Нельзя указывать ссылку на уже существующий |
6. | Observation | 0..* | Создание (POST) | Может не передаваться. Нельзя указывать ссылку на уже существующий |
7. | Condition | 0..* | Создание (POST) | Может не передаваться, если не передается Encounter. Нельзя указывать ссылку на уже существующий |
8. | Order | 1..1 | Создание (POST) | Всегда должен передаваться ресурс |
Структура запроса Bundle заявки
При добавлении заявки в качестве адреса указывается URL в формате [base]?_format=json. В ответе сервис возвращает сохраненные ресурсы из переданного Bundle со внутренними идентификаторами сервиса ДЛИ.
Json-запрос для передачи заявки содержит следующие компоненты:
- Указание, что в запросе передается Bundle,
- Метаинформация,
- Тип Bundle,
- Данные о передаваемых ресурсах:
- Сам ресурс,
- Операция над этим ресурсом.
Общее описание структуры запроса приведено на рисунке ниже.
Рисунок 4. Структура json-запроса для передачи Bundle заявки
Пример базовой структуры json-запроса для передачи заявки приведен в разделе «Примеры запросов».
Описание ресурсов, входящих в состав Bundle
Order
Ресурс Order предназначен для передачи общей информации о заявке. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 6. Параметры Order
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | identifier | Identifier | 1..1 | Идентификатор заявки в МИС |
1.1 | identifier.system | uri | 1..1 | В качестве кодовой системы указывается OID передающей системы |
1.2 | identifier.value | string | 1..1 | Идентификатор заявки в МИС |
1.3 | identifier.assigner | Reference (Organization) | 1..1 | Ссылка. Соотнесение с кодом МО (или отделения). Должна указываться ссылка на существующую в БД Organization |
2. | date | dateTime | 1..1 | Дата заявки (yyyy-MM-ddTHH:mm:sszzz) |
3. | subject | Reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должен передаваться ресурс Patient в Bundle или указывается ссылка на существующий Patient |
4. | source | Reference (Practitioner) | 1..1 | Ссылка. Соотнесение с автором заявки. Должен передаваться ресурс Practitioner в Bundle или указывается ссылка на существующий Practitioner |
5. | target | Reference (Organization) | 1..1 | Ссылка. Соотнесение с целевой лабораторией. Должна указываться ссылка на существующую в БД Organization |
6. | when | BackboneElement | 1..1 | Сведения о приоритете выполнения |
6.1 | when.code | CodeableConcept | 1..1 | Приоритет выполнения (отметка срочности):
|
7. | detail | Reference (DiagnosticOrder) | 1..* | Ссылка. Соотнесение с клинической частью (DiagnosticOrder). Должен передаваться ресурс DiagnosticOrder в Bundle |
Пример фрагмента Bundle для Order приведен в разделе «Примеры запросов».
DiagnosticOrder
Ресурс DiagnosticOrder предназначен для передачи информации о назначении, ссылки на случай обслуживания, информации об источнике финансирования услуги и ссылок на состояние пациента. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 7. Параметры DiagnosticOrder
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | subject | Reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должен передаваться ресурс Patient в Bundle или указывается ссылка на существующий Patient |
2. | orderer | Reference (Practitioner) | 1..1 | Ссылка. Соотнесение с врачом, сделавшем назначение. Должен передаваться ресурс Practitioner в Bundle или указывается ссылка на существующий Practitioner |
3. | encounter | Reference (Encounter) | 1..1 | Ссылка. Соотнесение со случаем обслуживания. Должен передаваться ресурс Encounter в Bundle или указывается ссылка на существующий Encounter |
4. | supportingInformation | Reference (Observation/ Condition) | 0..* | Ссылка. Соотнесение с описанием состояния пациента (неделя беременности, рост, вес, признак менопаузы и т.п.). Должен передаваться ресурс Observation/ Condition в Bundle |
5. | specimen | Reference (Specimen) | 0..* | Ссылка. Соотнесение с биоматериалом. Должен передаваться ресурс Specimen в Bundle |
6. | status | code | 1..1 | Статус DiagnosticOrder (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.42). Всегда должен передаваться requested |
7. | item | BackboneElement | 1..* | Состав заявки |
7.1 | item.code | CodeableConcept | 1..* | Код услуги заявки (Номенклатура медицинских услуг):
|
7.2 | item.code.extension | CodeableConcept | 1..1 | Источник финансирования:
|
Пример фрагмента Bundle для DiagnosticOrder приведен в разделе «Примеры запросов».
Specimen
Ресурс Specimen предназначен для передачи информации о забранном биоматериале. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 8. Параметры Specimen
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | container | BackboneElement | 0..1 | Сведения о контейнере с биоматериалом |
1.1 | container.identifier | Identifier | 0..1 | Штрих-код контейнера с биоматериалом |
1.1.1 | container.identifier.system | uri | 1..1 | В качестве кодовой системы указывается код лаборатории |
1.1.2 | container.identifier.value | string | 1..1 | Штрих-код. Должен быть уникален на протяжении как минимум срока жизни образца, рекомендуется – на протяжении как минимум трех месяцев. |
1.2 | container.type | CodeableConcept | 0..1 | Тип контейнера:
|
2. | type | CodeableConcept | 0..1 | Тип биоматериала:
|
3. | subject | Reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должен передаваться ресурс Patient в Bundle или указывается ссылка на существующий Patient |
4. | collection | BackboneElement | 1..1 | Сведения о биоматериале |
4.1. | collection.comment | string | 0..1 | Комментарий к биоматериалу |
4.2 | collection.collectedDateTime | dateTime | 1..1 | Дата-время сбора биоматериала (yyyy-MM-ddTHH:mm:sszzz) |
OID передающих систем приведен в справочнике «Участники информационного обмена N3.Здравоохранение». Справочник опубликован в сервисе Терминологии с OID 1.2.643.2.69.1.2
Пример фрагмента Bundle для Specimen приведен в разделе «Примеры запросов».
Encounter
Ресурс Encounter предназначен для передачи информации о случае обслуживания и ссылок на диагнозы пациента. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 9. Параметры Encounter
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | identifier | Identifier | 1..1 | Идентификатор случая обслуживания в МИС |
1.1. | identifier.system | uri | 1..1 | В качестве кодовой системы указывается OID передающей системы |
1.2. | identifier.value | string | 1..1 | Идентификатор случая обслуживания в МИС |
2. | status | code | 1..1 | Статус случая обслуживания (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.43) |
3. | class | code | 1..1 | Класс случая обслуживания (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.44) |
4. | type | CodeableConcept | 1..1 | Тип случая обслуживания (региональный справочник типов случая обслуживания):
|
5. | patient | reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должен передаваться ресурс Patient в Bundle или указывается ссылка на существующий Patient |
6. | reason | CodeableConcept | 0..1 | Цель посещения (региональный справочник целей посещения):
|
7. | indication | Reference (Condition) | 1..* | Ссылка. Соотнесение с диагнозами пациента. Должен передаваться ресурс Condition в Bundle |
8. | serviceProvider | Reference (Organization) | 1..1 | Ссылка. Соотнесение с кодом МО (или отделения). Должна указываться ссылка на существующую в БД Organization |
OID передающих систем приведен в справочнике «Участники информационного обмена N3.Здравоохранение». Справочник опубликован в сервисе Терминологии с OID 1.2.643.2.69.1.2
Пример фрагмента Bundle для Encounter приведен в разделе «Примеры запросов».
Condition
Ресурс Condition предназначен для передачи информации о состоянии пациента. Содержание ресурса Condition определяется по значению параметра category:
- Для диагноза category = diagnosis.
- Для признака менопаузы category = finding.
Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 10. Параметры Condition
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | patient | Reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должен передаваться ресурс Patient в Bundle или указывается ссылка на существующий Patient |
2. | category | CodeableConcept | 1..1 | Указание типа ресурса (диагноз или признака менопаузы):
|
3. | dateRecorded | date | 1..1 | Дата установления (диагноза или признака менопаузы) |
4. | code | CodeableConcept | 1..1 | Для диагноза указывается:
Для признака менопаузы указывается:
|
5. | verificationStatus | code | 1..1 | Статус ресурса (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.62) |
6. | notes | string | 0..1 усл. | Диагноз. Клиническая (текстовая) формулировка. Обязательна при передаче кода диагноза |
Пример фрагмента Bundle для Condition приведен в разделе «Примеры запросов».
Observation
Ресурс Observation предназначен для передачи информации о состоянии пациента. В этом ресурсе может указываться рост и вес пациента, неделя беременности, день цикла. Содержание ресурса Observation определяется по значению параметра code.
Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 11. Параметры Observation
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | code | CodeableConcept | 1..1 | Указание типа Observation:
|
2. | status | code | 1..1 | Статус ресурса (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.47). Всегда передается статус final |
3. | valueQuantity | Quantity | 1..1 | Значение Observation
|
Пример фрагмента Bundle для Observation приведен в разделе «Примеры запросов».
Practitioner
Ресурс Practitioner предназначен для передачи информации о враче. В этом ресурсе указывается:
- Врач, сделавший назначение;
- Врач-автор заявки.
Перечень параметров и их описание представлены в разделе «Передача врача».
Запрос заявки ($getorder)
Получение информации о заявке может осуществляться двумя способами: с помощью запроса ресурса Order или с помощью дополнительной операции getorder.
Для обращения к операции необходимо указывать ее URL в формате [base]/$[имя операции].
Более подробно о Custom Operation можно посмотреть по адресу (начиная с п. 2.2.0.2 Implementations Defined Operations):
http://fhir-ru.github.io/operations.html
Операция getorder возвращает список ресурсов Order, удовлетворяющих условиям поиска. Ресурсы, на которые имеются ссылки в Order, будут возвращаться запрашивающей системе с помощью функционала получения ресурса (GET с указанием ссылки на запрашиваемый ресурс).
Описание параметров
Входные и выходные параметры операции getorder приведены в таблице ниже.
Таблица 12. Параметры операции $getorder
№ п/п | Имя параметра | Описание | Кратность | Тип | Использование |
---|---|---|---|---|---|
1. | SourceCode | Код направившей организации (АПУ, стационара). Указывается код из регионального справочника МО | 0..1 | string | in |
2. | TargetCode | Код целевой организации (КДЛ) | 0..1 | string | in |
3. | Barcode | Штрих-код контейнера с биоматериалом | string | in | |
4. | OrderMisID | Идентификатор заявки в МИС | 0..1 (обязателен Barcode или OrderMisID) | string | in |
StartDate | Диапазон поиска (начало). Если время не указано, поиск идет с 00:00:00 | 0..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in | |
EndDate | Диапазон поиска (конец). Если время не указано, поиск идет по 23:59:59 | 0..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in | |
7. | Order | Заявка | 0..* | Order | out |
Пример запроса
При поиске заявки в качестве адреса указывается URL в формате [base]/$getorder?_format=json. В ответе сервис возвращает json с массивом Order, найденных в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Запрос заявок ($getorders)
Операция getorders возвращает ссылки на ресурсы Order, удовлетворяющие условиям поиска. Ресурсы, на которые имеются ссылки в Order, будут возвращаться запрашивающей системе с помощью функционала получения ресурса (GET с указанием ссылки на запрашиваемый ресурс).
Описание запроса ресурса по идентификатору приведено в разделе «Запрос всех результатов для заданной МО ($getresults)».
Описание параметров
Входные и выходные параметры операции getorders приведены в таблице ниже.
Таблица 13. Параметры операции $getorders
№ п/п | Имя параметра | Описание | Кратность | Тип | Использование |
---|---|---|---|---|---|
1. | SourceCode | Код направившей организации (МО). | 0..1 | string | in |
2. | TargetCode | Код лаборатории, которая должна выполнить исследование (КДЛ, МЦКДЛ). Указывается код из регионального справочника МО | 1..1 | string | in |
3. | StartDate | Дата начала диапазона поиска по дате заявки | 1..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in |
4. | EndDate | Дата окончания диапазона поиска по дате заявки | 0..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in |
5. | Order | Заявка | 0..* | Order | out |
Пример запроса
При поиске заявки в качестве адреса указывается URL в формате [base]/$getorders?_format=json. В ответе сервис возвращает json с массивом Order, найденных в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Передача результата (POST Bundle результата)
Для передачи результата должен использоваться Bundle типа транзакция. В Bundle должна передаваться следующая информация:
- Ответ на заявку.
- Общие сведения о результате (идентификатор, дата и т.п.).
- Информация о враче, выполнившем исследование и утвердившем результат.
- Результаты тестов
- Сведения об использованном оборудовании
- Печатная форма протокола исследования в формате PDF и/или xml (CDA)
Структура Bundle
Bundle используется для передачи набора ресурсов. Для каждого из ресурсов Bundle должна указываться операция (POST, PUT). Перечень ресурсов и их описание представлено в таблице ниже.
Таблица 14. Описание ресурсов, входящих в состав Bundle
№ п/п | Ресурс | Ссылки на другие ресурсы | Описание |
---|---|---|---|
1. | OrderResponse |
|
В ресурсе указывается общая информация о результате:
|
2. | DiagnosticReport |
|
В ресурсе указывается следующая информация:
ссылка на протокол (PDF/xml-документ) |
3. | Observation |
|
В ресурсе указывается следующая информация:
|
4. | Practitioner | В ресурсе указывается информация о враче: для передачи данных о врачах, выполнивших исследование и утвердивших результат | |
6. | Binary | В ресурсе передается протокол исследования (PDF/xml-документ) |
Схема структуры Bundle приведена на [Рисунок 5].
Рисунок 5. Структура Bundle
Допустимые операции над ресурсами Bundle
Список обязательных ресурсов и допустимые операции над ресурсами Bundle приведены в таблице ниже.
Таблица 15. Обязательность ресурсов внутри Bundle и допустимые операции
№ п/п | Ресурс | Кратность | Операции | Возможность использования ссылки на ресурс |
---|---|---|---|---|
1. | OrderResponse | 1..1 | Создание (POST) | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий |
2. | DiagnosticReport | 0..* усл. | Создание (POST) |
Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error |
3. | Observation | 0..* усл. | Создание (POST) | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error |
4. | Binary | 0..* усл. | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error | |
5. | Practitioner | 0..* |
|
Ресурс может не передаваться, указывается ссылка на уже существующий |
6. | Device | 0..* |
|
Ресурс может не передаваться, указывается ссылка на уже существующий |
Структура запроса Bundle результата
При добавлении результата в качестве адреса указывается URL в формате [base]?_format=json. В ответе сервис возвращает сохраненные ресурсы из переданного Bundle со внутренними идентификаторами сервиса ДЛИ.
Json-запрос для передачи результата содержит следующие компоненты:
- Указание, что в запросе передается Bundle,
- Метаинформация,
- Тип Bundle,
- Данные о передаваемых ресурсах:
- Сам ресурс,
- Операция над этим ресурсом.
Общее описание структуры запроса приведено на рисунке ниже.
Рисунок 6. Структура json-запроса для передачи Bundle результата
Пример базовой структуры json-запроса для передачи результата приведен в разделе «Примеры запросов».
Описание ресурсов, входящих в состав Bundle
OrderResponse
Ресурс OrderResponse предназначен для передачи общей информации о результате исследований. Передача результата по частям предполагает передачу каждый раз нового OrderResponse, а не обновление ранее переданного.
Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 16. Параметры OrderResponse
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | identifier | Identifier | 1..1 | Идентификатор результата в ЛИС |
1.1. | identifier.system | uri | 1..1 | В качестве кодовой системы указывается OID передающей системы |
1.2. | identifier.value | string | 1..1 | Идентификатор заказа в ЛИС |
2. | request | Reference (Order) | 1..1 | Ссылка. Соотнесение с заявкой. Должна указываться ссылка на существующий в БД Order |
3. | date | dateTime | 1..1 | Дата-время отправления Bundle результата в сервис ДЛИ (yyyy-MM-ddTHH:mm:sszzz) |
4. | who | Reference (Organization) | 1..1 | Ссылка. Соотнесение с лабораторией. Должна указываться ссылка на существующую в БД Organization |
5. | orderStatus | code | 1..1 | Статус выполнения заявки (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.45) |
6. | description | string | 0..1 | Комментарий к результату |
7. | fulfillment | Reference (DiagnosticReport) | 0..* | Ссылка. Соотнесение с результатом по услуге. Должен передаваться ресурс DiagnosticReport |
Примечание: при отправлении результата частями необходимо указывать для заявки в поле OrderResponse.orderStatus значение для статуса “accepted”. При отправлении последней части выполненного результата на заявку для OrderResponse.orderStatus нужно указать значение “completed”, после чего заявка становится помеченная как выполненная, и возможность отправить еще результаты в ответ на данную заявку блокируется. При отправлении результата частями необходимо указывать для каждой части свой Идентификатор результата в ЛИС
OID передающих систем приведен в справочнике «Участники информационного обмена N3.Здравоохранение». Справочник опубликован в сервисе Терминологии с OID 1.2.643.2.69.1.2
Пример фрагмента Bundle для OrderResponse приведен в разделе «Примеры запросов».
DiagnosticReport
Ресурс DiagnosticReport предназначен для передачи информации о результате исследования в разрезе услуги и содержит ссылки на результаты каждого теста, выполненного по услуге. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 17. Параметры DiagnosticReport
№ | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | meta.security.code | code | 1..1 | Метаданные ресурса с данными об уровне доступа к результату исследования. В параметре code указывается код уровня доступа из справочника (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.5.1.13.13.11.1116 N – обычный, R — ограниченный, V — крайне ограниченный ) |
2. | identifier | Identifier | 0..1 | Номер результата в бандле |
2.1. | identifier.value | string | 1..1 | Порядковый номер результата в бандле. Передается ЛИС в том случае, если на стороне МИС требуется сортировка результатов в том же порядке, как они передаются в МИС |
3. | code | CodeableConcept | 1..1 | Код услуги результата (Номенклатура медицинских услуг):
|
4. | status | code | 1..1 | Статус результата. Передается status = final для выполненного исследования, cancelled для невыполненного (отмена на стороне ЛИС) исследования (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.46) |
5. | category | CodeableConcept | 1..1 усл. | Вид лабораторного исследования или категория сложности гистологического исследования. Обязателен для микробиологических, гистологических, цитологических исследований:
|
6. | effectiveX | |||
6.1. | effectiveDateTime | dateTime | 1..1 усл. | Клинически значимое время результата: обычно дата-время сбора биоматериала (Specimen.collection.collectedDateTime), если неизвестно (результат без заявки) — дата-время утверждения результата по услуге (DiagnosticReport.issued) – для всех исследований, кроме гистологических |
6.2. | effectivePeriod | period | 1..1 усл. | Период проведения гистологического исследования. Дата и время регистрации биоматериала указывается в параметре start. Дата и время проведения исследования указывается в параметре end. |
7. | issued | instant | 1..1 | Дата-время утверждения результата по услуге |
8. | subject | Reference (Patient) | 1..1 | Ссылка. Соотнесение с пациентом. Должна указываться ссылка на существующий в БД Patient. При передаче результата по заявке ссылка на пациента в результате и ссылка на пациента в заявке должны быть одинаковые |
9. | specimen | Reference (Specimen) | 0..1 усл. | Ссылка. Соотнесение с биоматериалом. Должен передаваться ресурс Specimen в Bundle или указывается ссылка на существующий Specimen (должна обязательно передаваться для корректной работы сервиса СЭМД) |
10. | performer | Reference (Practitioner) | 1..1 | Ссылка. Соотнесение с врачом, утвердившим результат. Должен передаваться ресурс Practitioner в Bundle или указывается ссылка на существующий Practitioner |
11. | request | Reference (DiagnosticOrder) | 1..1 усл. | Ссылка. Соотнесение с назначением (DiagnosticOrder). Должна указываться ссылка на существующий в БД DiagnosticOrder. Не передается в результате без заявки |
12. | result | Reference (Observation) | 1..* | Ссылка. Соотнесение с результатом теста. Должен передаваться ресурс Observation |
13. | conclusion | string | 0..1 | Текст заключения по услуге |
14. | encounter | Reference (Encounter) | 1..1 усл. | Ссылка. Соотнесение со случаем обслуживания. Должен передаваться ресурс Encounter в Bundle или указывается ссылка на существующий Encounter (должна обязательно передаваться для корректной работы сервиса СЭМД) |
15. | presentedForm | Attachment | 1..3 усл. | Электронная версия протокола исследования в формате PDF/xml с результатом по услуге, а также УКЭП документа. При передаче протокола результата без УКЭП передается один ресурс Binary с данными протокола, при этом параметр DiagnosticReport.presentedForm.url содержит ссылку на единственный в Bundle ресурс Binary. При передаче протокола с УКЭП передается три ресурса Binary: сам протокол, УКЭП МО, УКЭП врача, при этом параметр DiagnosticReport.presentedForm.url содержит три ссылки на ресурсы Binary. |
15.1. | presentedForm.contentType | code | 1..1 | Тип содержимого в ресурсе. Параметр DiagnosticReport.presentedForm.contentType должен соответствовать параметру Binary.contentType для ресурса Binary, указанного в параметре DiagnosticReport.presentedForm.url. |
15.2. | presentedForm.url | uri | 1..1 | Ссылка на ресурс Binary. Соотнесение с протоколом исследования в формате PDF/xml и УКЭП для данного документа. |
16. | codedDiagnosis | CodeableConcept | 0..* | Заключение: диагноз пациента:
|
Пример фрагмента Bundle для DiagnosticReport приведен в разделе «Примеры запросов».
Observation
В Bundle для передачи результата ресурс Observation предназначен для передачи результата теста (в Bundle для передачи заявки этот же ресурс используется для указания других параметров). Содержание ресурса Observation определяется по значению параметра code. Также по данному параметру определяется обязательность заполнения полей valueQuantity, valueString.
Таблица 18. Виды Observation
OID справочника | Назначение | Обязательность заполнения полей valueQuantity, valueString |
---|---|---|
1.2.643.2.69.1.1.1.1 или 1.2.643.5.1.13.13.11.1080 | Для передачи результата теста клинического исследования | Должно передаваться или valueQuantity, или valueString, или dataAbsentReason |
1.2.643.5.1.13.13.11.1087 | Для передачи информации о выявленном микроорганизме (бактерии) | Может передаваться |
1.2.643.5.1.13.13.11.1088 | Для передачи информации о выявленном микроорганизме (грибы) | Может передаваться |
1.2.643.2.69.1.1.1.74 | Для передачи информации об антибиотике, чувствительность к которому определялась | Не должно передаваться |
1.2.643.2.69.1.1.1.94 | Для передачи информации о том, что микрофлора не выявлена | Не должно передаваться |
Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 19. Параметры Observation
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | code | CodeableConcept | 1..1 | Код теста, для которого передается результат в Observation:
|
2. | comments | string | 0..1 | Комментарий к результату теста |
3. | interpretation | CodeableConcept | 1..1 | Интерпретация результата теста: норма или выход за границы норм для клинических исследований, для микробиологических рост или отсутствие роста, чувствительность к антибиотикам:
|
4. | issued | instant | 1..1 | Дата-время выполнения теста |
5. | status | code | 1..1 | Статус ресурса (справочник FHIR. OID справочника в сервисе Терминологии: 1.2.643.2.69.1.1.1.47). Всегда передается статус final. |
6. | method | CodeableConcept | 0..1 | Методика исследования:
|
7. | performer | Reference (Practitioner) | 1..1 | Ссылка. Соотнесение с врачом-исполнителем. Должен передаваться ресурс Practitioner в Bundle или указываться ссылка на существующий Practitioner |
8. | valueQuantity | Quantity | 1..1 усл | Числовой результат теста с единицами измерения. Условия обязательности приведены в таблице выше |
8.1. | valueQuantity.value | decimal | 1..1 | Числовой результат теста |
8.2. | valueQuantity.code | code | 1..1 | Код единицы измерения по справочнику 1.2.643.5.1.13.13.11.1358 |
8.3. | valueQuantity.comparator | code | 0..1 | Интерпретация и сравнение полученного значения. Используемые знаки для сравнения (< | <= | >= | >) (только для результата микробиологического исследования |
9. | valueString | string | 1..1 усл | Текстовый результат теста. Условия обязательности приведены в таблице выше |
10. | dataAbsentReason | CodeableConcept | 1..1 усл | Причина, по которой результат отсутствует. Условия обязательности приведены в таблице выше.
|
11. | referenceRange | BackboneElement | 1..1 усл | Референтные значения для полученного результата. Должен иметь хотя бы нижнее (элемент low) либо верхнее (элемент high) значение, либо элемент text |
11.1. | referenceRange.low | SimpleQuantity | 1..1 усл | Нижняя граница порогового значения нормы:
|
11.2. | referenceRange.high | SimpleQuantity | 1..1 усл | Верхняя граница порогового значения нормы.
|
11.3. | referenceRange.text | string | 1..1 усл | Текстовое значения для указания референтного значения |
12. | device | Reference (Device) | 0..1 | Ссылка. Соотнесение с прибором исследования (Device). Должен передаваться ресурс Device в Bundle или указываться ссылка на существующий ресурс |
13. | related | BackboneElement | 0..* | Информация об антибиотиках в микробиологическом исследовании. |
13.1. | related.target | Observation | 1..1 | Ссылка на ресурс Observation, в котором передается антибиотик. Всегда передается ресурс. |
Результаты клинических исследований, а также результаты микробиологических исследований (если применимо) могут быть переданы в виде текстового или числового значения. При передаче результатов теста следует использовать следующие правила:
- если в сервис передается значение теста, для которого в справочнике тестов указана единица измерения – то значение должно передаваться только как число (valueQuantity), референтные значения должны передаваться только как число (referenceRange.low и/или referenceRange.high). Если для данного теста референтное значение отсутствует или неприменимо, допускается передача референтного значения как текст (referenceRange.text), но при этом значение может быть только «нет»
- результат теста и референтные значения должны передаваться в одних и тех же единицах измерения
- если в сервис передается значение теста, для которого в справочнике тестов не указана единица измерения – то значение должно передаваться только как текст (valueString), референтные значения должны передаваться только как текст (referenceRange.text). Если для данного теста референтное значение отсутствует или неприменимо, необходимо передавать референтное значение тоже как текст (referenceRange.text), но при этом значение должно быть «нет».
-
Передача информации о соответствии или несоответствии результата конкретного теста норме осуществляется путем передачи значения в поле interpretation. Перечень рекомендованных значений для клинических тестов: H (Повышенный), L (Пониженный), N (Нормальный (в пределах референсного диапазона)).
Примеры фрагментов Bundle для Observation приведены в разделе «Примеры запросов».
Пример передачи результата микробиологического исследования
Микробиологическое исследование состоит из следующих информационных объектов:
- Микроорганизм (бактерии, грибы);
- Антибиотик (в случае проверки на чувствительность).
С целью культивирования микроорганизмов, определение их вида, производят посев исследуемого материала на различные бактериологические (питательные) среды. Далее, для каждого высеянного микроорганизма, если предусмотрено исследованием, применяется определенный перечень антибиотиков для определения устойчивости микроорганизма к нему.
Для передачи каждого объекта микробиологического исследования (найденные микроорганизмы, использованные антибиотики) используется ресурс Observation. Содержание ресурса определяется по полю Observation.code.
Связывание ресурсов Observation в нужную иерархическую структуру организовано по полю Observation.related, в котором для определенного микроорганизма указывается ссылка на использованный антибиотик. Связывание должно быть организовано по структуре, представленной на рисунке ниже.
Рисунок 7. Схема отношения объектов предметной области микробиологических исследований
Таким образом, при передаче микроорганизма в ресурсе Observation, необходимо указывать в параметре Observation.related ссылки на все использованные в исследовании антибиотики. В случае, когда в лабораторном исследовании не определялась чувствительность к антибиотикам, эти данные не передаются.
Передача информации о выявлении роста или об отсутствии роста для конкретного микроорганизма осуществляется путем передачи значения в поле interpretation – DET (Обнаружено) и ND (Не обнаружено) соответственно. При наличии может быть передан количественный (например, количество выявленных бактерий) или текстовый (например, «Нет в поле зрения») результат.
Передача информации о чувствительности к тому или иному антибиотику для конкретного микроорганизма осуществляется путем передачи значения в поле interpretation. Рекомендуемые значения: R (Устойчивый), S (Чувствительный), I (Умеренно-устойчивый).
Передача информации об отсутствии роста микрофлоры осуществляется путем передачи ресурса Observation с system = 1.2.643.2.69.1.1.1.94, типа не выявленной микрофлоры в поле code, и значения ND (Не обнаружено) в поле interpretation.
Примеры базовых структур json-запроса для передачи результата по микробиологии приведены в разделе «Примеры запросов».
Practitioner
Ресурс Practitioner предназначен для передачи информации о враче. В этом ресурсе указывается:
- Врач, выполнивший тест;
- Врач, утвердивший результат тестов услуги.
Пример фрагмента Bundle для Practitioner приведен в разделе «Примеры запросов».
Device
В Bundle для передачи результата ресурс Device предназначен для передачи информации об устройстве, которое использовалось для получения результата исследования.
Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 20. Параметры Device
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | type | CodeableConcept | 1..1 | Тип устройства:
|
2. | manufacturer | string | 0..1 | Название производителя устройства |
3. | model | string | 0..1 | Идентификатор модели устройства, присвоенный производителем |
4. | version | string | 0..1 | Номер версии устройства |
5. | manufactureDate | dateTime | 0..1 | Дата производства устройства |
6. | expiry | dateTime | 0..1 | Дата истечения срока эксплуатации устройства |
7. | udi | string | 0..1 | Штрих-кода уникального идентификатора устройства |
8. | owner | Reference (Organization) | 1..1 | Ссылка. Соотнесение с организацией, которая ответственная за устройство |
Примеры фрагмента Bundle для Device приведен в разделе «Примеры запросов».
Передача результата без заявки (POST Bundle без заявки)
Сервис ДЛИ предоставляет возможность передачи результата выполненного лабораторного исследования без электронной заявки со стороны МИС. В данном случае, ЛИС, кроме данных о проведенном исследовании и его результате, необходимо передавать дополнительные данные по заявке, биоматериалу, пациенту.
Для передачи результата без заявки должен использоваться Bundle типа транзакция. В Bundle должна передаваться следующая информация:
- Общие сведения о заявке (отправитель, получатель)
- Информация о биоматериале
- Общие сведения о результате (идентификатор, дата и т.п.)
- Информация о пациенте
- Информация о враче, выполнившем исследование и утвердившем результат.
- Значение результата.
Отличие от аналогичного Bundle результата следующие:
- В Bundle включены ресурсы Order, Specimen, Patient;
- Вместо внешних ссылок на ресурсы Bundle заявки используется внутренние ссылки на ресурсы Order, Specimen, Patient
- В ресурсе DiagnosticReport передается ссылка на ресурсы Specimen, входящие в данный Bundle
Таблица 22. Параметры Observation
№ п/п | Ресурс | Ссылки на другие ресурсы | Описание |
---|---|---|---|
1. | Order |
|
В ресурсе указывается информация о направляющей МО и лаборатории:
|
2. | OrderResponse | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
3. | DiagnosticReport | См. описание ресурсов, входящих в состав Bundle результата. Дополнительно: DiagnosticReport.specimen – ссылка на Specimen | См. описание ресурсов, входящих в состав Bundle результата |
4. | Observation | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
5. | Specimen | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
6. | Practitioner | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
7. | Patient | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
8. | Device | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
9. | Binary | См. описание ресурсов, входящих в состав Bundle результата | См. описание ресурсов, входящих в состав Bundle результата |
Схема структуры Bundle приведена на рисунке ниже.
Рисунок 8. Структура Bundle
Допустимые операции над ресурсами Bundle
Список обязательных ресурсов и допустимые операции над ресурсами Bundle приведены в таблице ниже.
Таблица 23. Обязательность ресурсов внутри Bundle и допустимые операции
№ п/п | Ресурс | Кратность | Операции | Возможность использования ссылки на ресурс |
---|---|---|---|---|
1. | Order | 1..1 | Создание (POST) | Всегда должен передаваться ресурс |
2. | OrderResponse | 1..1 | Создание (POST) | Всегда должен передаваться ресурс |
3. | DiagnosticReport | 0..* усл. | Создание (POST) | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error |
4. | Observation | 0..* усл. | Создание (POST) | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error |
5. | Binary | 0..* усл. | Создание (POST) | Всегда должен передаваться ресурс. Не может передаваться ссылка на уже существующий. Исключение: может не передаваться, если статус заявки OrderResponse.orderstatus = rejected или error |
6. | Specimen | 0..* | Создание (POST) | Должен передаваться ресурс. Может не передаваться, если нет необходимой информации |
7. | Practitioner | 0..* | Создание (POST) | Ресурс может не передаваться, указывается ссылка на уже существующий |
8. | Patient | 0..1 | Создание (POST) | Ресурс может не передаваться, указывается ссылка на уже существующий |
9. | Device | 0..* | Создание (POST) | Ресурс может не передаваться, указывается ссылка на уже существующий |
Структура запроса Bundle результата без заявки
При добавлении результата в качестве адреса указывается URL в формате [base]/$addresults?_format=json. В ответе сервис возвращает сохраненные ресурсы из переданного Bundle со внутренними идентификаторами сервиса ДЛИ.
Json-запрос для передачи результата содержит следующие компоненты:
- Указание, что в запросе передается Bundle,
- Метаинформация,
- Тип Bundle,
- Данные о передаваемых ресурсах:
— Сам ресурс,- Операция над этим ресурсом.
Общее описание структуры запроса приведено на рисунке ниже.
Рисунок 9. Структура json-запроса для передачи Bundle результата
Примеры базовой структуры json-запроса для передачи результата без заявки приведены в разделе «Примеры запросов».
Описание дополнительных ресурсов, входящих в состав Bundle результата без заявки
Order
Ресурс Order предназначен для передачи информации о ЛПУ откуда поступил биоматериал и в какую лабораторию направлен на исследование. С реальной заявкой на исследование никак не связан, нужен для соблюдения стандарта FHIR. Также при получении ресурса Order сервисом автоматически формируется и возвращается идентификатор заявки (необходимо для соблюдения требований стандарта FHIR). Идентификатор формируется по следующим правилам: System = orderResponse.Identifier.System, Value = orderResponse.Identifier.Value, Assigner = Order.Source. Список используемых параметров и их описание приведены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 24. Параметры Order
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | source | Reference (Organization) | 1..1 | Ссылка. Соотнесение с кодом МО (или отделения). Должна указываться ссылка на существующую в БД Organization |
2. | target | Reference (Organization) | 1..1 | Ссылка. Соотнесение с целевой лабораторией. Должна указываться ссылка на существующую в БД Organization |
3. | detail | Reference (Any) | 1..1 | Пустая ссылка |
Пример фрагмента Bundle для Order приведен в разделе «Примеры запросов».
Запрос статуса ($getstatus)
Получение информации о статусе заявки может осуществляться двумя способами: с помощью запроса ресурса Order или с помощью дополнительной операции getstatus.
Для обращения к операции необходимо указывать ее URL в формате [base]/$[имя операции].
Операция возвращает статус заявки, соответствующей условиям поиска.
Описание параметров
Входные и выходные параметры операции getstatus приведены в таблице ниже.
Таблица 25. Параметры операции
№ п/п | Имя параметра | Описание | Кратность | Тип | Использование |
---|---|---|---|---|---|
1. | SourceCode | Код направившей организации. | 1..1 усл (указывается или OrderId или SourceCode + OrderMisID) | string | in |
2. | OrderMisID | Идентификатор заявки в МИС | 1..1 усл (указывается или OrderId или SourceCode + OrderMisID) | string | in |
3. | OrderId | Идентификатор заявки в сервисе ДЛИ | 1..1 усл (указывается или OrderId или SourceCode + OrderMisID) | string | in |
4. | Status | Статус заявки | 1..1 | string | out |
Пример запроса
При поиске результатов выполненных исследований в качестве адреса указывается URL в формате [base]/$getstatus?_format=json. В ответе сервис возвращает json со значением статуса заявки, найденной в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Запрос результата ($getresult)
Получение информации о результате выполненного исследования может осуществляться двумя способами: с помощью запроса ресурса OrderResponse или с помощью дополнительной операции getresult.
Для обращения к операции необходимо указывать ее URL в формате [base]/$[имя операции].
Операция возвращает список ресурсов OrderResponse, удовлетворяющих условиям поиска. Ресурсы, на которые имеются ссылки в OrderResponse, будут возвращаться запрашивающей системе с помощью функционала получения ресурса (GET с указанием ссылки на запрашиваемый ресурс).
Описание параметров
Входные и выходные параметры операции getresult приведены в таблице ниже.
Таблица 26. Параметры операции $getresult
№ п/п | Имя параметра | Описание | Кратность | Тип | Использование |
---|---|---|---|---|---|
1. | SourceCode | Код направившей организации | 1..1 | string | in |
2. | TargetCode | Код целевой организации (КДЛ) | 1..1 | string | in |
3. | OrderMisID | Идентификатор заявки в МИС | 1..1 | string | in |
4. | OrderResponse | Результат | 0..* | OrderResponse | out |
Пример запроса
При поиске результатов выполненных исследований в качестве адреса указывается URL в формате [base]/$getresult?_format=json. В ответе сервис возвращает json с массивом OrderResponse, найденных в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Запрос всех результатов для заданной МО ($getresults)
Получение информации о результатах выполненных исследований по заявкам заданной организации осуществляется с помощью дополнительной операции getresults.
Для обращения к операции необходимо указывать ее URL в формате [base]/$[имя операции].
Операция возвращает список ресурсов OrderResponse, удовлетворяющих условиям поиска. Ресурсы, на которые имеются ссылки в OrderResponse, будут возвращаться запрашивающей системе с помощью функционала получения ресурса (GET с указанием ссылки на запрашиваемый ресурс).
Описание параметров
Входные и выходные параметры операции getresults приведены в таблице ниже.
Таблица 27. Параметры операции $getresults
№ п/п | Имя параметра | Описание | Кратность | Тип | Использование |
---|---|---|---|---|---|
1. | SourceCode | Код направившей организации (МО) | 1..1 | string | in |
2. | TargetCode | Код целевой организации (КДЛ) | 0..1 | string | in |
3. | StartDate | Диапазон поиска (начало). Если время не указано, поиск идет с 00:00:00 | 1..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in |
4. | EndDate | Диапазон поиска (конец). Если время не указано, поиск идет по 23:59:59 | 0..1 | dateTime (yyyy-MM-ddTHH:mm:sszzz) | in |
5. | OrderResponse | Результат | 0..* | OrderResponse | out |
Пример запроса
При поиске результатов выполненных исследований в качестве адреса указывается URL в формате [base]/$getresults?_format=json. В ответе сервис возвращает json с массивом OrderResponse, найденных в сервисе ДЛИ.
Пример запроса приведен в разделе «Примеры запросов».
Запрос ресурсов
Любой ресурс можно запросить с помощью GET-запроса. В качестве адреса должен быть указан URL в формате [base]/[Наименование ресурса]/[идентификатор ресурса в сервисе ДЛИ]?_format=json. Например,
[base]/DiagnosticReport/9bacab3f-63d3-4a3a-8d10-599b5b598b39?_format=json
Отмена заявки ($cancelorder)
В ряде медицинских учреждений необходима возможность аннулирования заявки, переданной в сервис.
Отмена конкретной заявки осуществляется с помощью дополнительной операции (Custom Operation) cancelorder (POST).
При отмене заявки используется POST запрос, в качестве адреса указывается URL в формате [base]/$cancelorder?_format=json в теле запроса передаются параметры запроса. В ответе сервис возвращает json со статусом данной заявки cancelled.
При отмене заявки сервис ОДЛИ помечает заявку и все входящие в нее ресурсы как отмененные. Такая заявка более не может быть запрошена в сервисе методами запроса заявок. Возможна повторная передача заявки с таким же OrderMISID.
Ограничения метода:
- сервис ОДЛИ пассивный, т.е. он только получает информацию от участников информационного взаимодействия. Сервис ОДЛИ не может информировать ЛИС о том, что заявка отменена. Информирование контрагента в таком случае должно решаться иными способами.
- отмена заявки на исследование не может быть произведено после того, как заявка запрошена из ЛИС или по ней переданы результаты.
- отмена возможна только отправителем заявки. Авторизационный токен, используемый при отмене, должен совпадать с токеном, использованным при передаче.
Описание параметров
Входные параметры операции cancelorder приведены в таблице ниже.
Таблица 28. Параметры операции $cancelorder
№ п/п | Имя параметра | Описание | Кратность | Тип |
---|---|---|---|---|
1. | OrderId | GUID заявки в сервисе ДЛИ | 1..1 | string |
Выходным параметром является JSON вида {«resourceType»:»Parameters», «parameter»:[Х]}, где Х – это массив ресурсов, отмененных в ходе запроса. В параметре 79 «name» передается ссылка на ресурс, в параметре «valueString» статус операции: «True», означающий успешную отмену ресурса.
Пример файла запроса можно получить через службу технической поддержки. Метод может быть неактивен в учреждении.
Отмена результата ($cancelresult)
В ряде медицинских учреждений необходима возможность аннулирования результатов, переданных в сервис.
Отмена конкретного результата осуществляется с помощью дополнительной операции (Custom Operation) cancelresult (POST).
При отмене заявки используется POST запрос, в качестве адреса указывается URL в формате [base]/$cancelresult?_format=json, в теле запроса передаются параметры запроса. В ответе сервис возвращает json со статусом данной заявки cancelled.
При отмене заявки сервис ОДЛИ помечает результат и все входящие в него ресурсы как отмененные. Такой результат более не может быть запрошена в сервисе методами запроса результата. Возможна повторная передача результата с таким же OrderMISID.
Ограничения метода:
- сервис ОДЛИ пассивный, т.е. он только получает информацию от участников информационного взаимодействия. Сервис ОДЛИ не может информировать МИС о том, что результат отменен. Информирование контрагента в таком случае должно решаться иными способами.
- при отмене результата он не может быть отозван из федеральных сервисов (СЭМД, РЭМД и др.)
- отмена возможна только отправителем результата. Авторизационный токен, используемый при отмене, должен совпадать с токеном, использованным при передаче.
Описание параметров
Входные параметры операции cancelresult приведены в таблице ниже.
Таблица 29. Параметры операции $cancelresult
№ п/п | Имя параметра | Описание | Кратность | Тип |
---|---|---|---|---|
1. | OrderResponseId | GUID заявки в сервисе ДЛИ | 1..1 | string |
Выходным параметром является JSON вида {«resourceType»:»Parameters», «parameter»:[Х]}, где Х – это массив ресурсов, отмененных в ходе запроса. В параметре «name» передается ссылка на ресурс, в параметре «valueString» статус операции: «True», означающий успешную отмену ресурса.
Пример файла запроса можно получить через службу технической поддержки. Метод может быть неактивен в учреждении.
Обоснованность назначений ($validity)
Для некоторых лабораторных исследований, как правило – дорогостоящих, есть необходимость проверки – можно ли их назначать. При этом существуют три основных критерия, по которым определяется возможность назначения исследования:
- наличие ранее выполненных исследований в пределах срока годности или срока интерпретации (Пример: A09.05.202.001 Определение онкомаркера СА 125 иммунохемилюминесцентным методом нет смысла брать чаще чем раз в месяц)
- должность врача, назначающего исследование (Пример: A09.05.132.004 Определение фолликулостимулирующего гормона методом ИХЛ у женщин назначает гинеколог, эндокринолог)
- диагноз пациента, которому назначается исследование (Пример: A25.30.175 Определение антител класса G к хеликобактер пилори (полуколичественный) назначается при диагнозе K25.7 Язва желудка хроническая без кровотечения и прободения)
В сервисе реализован метод $validity, при помощи которого направляющая МИС может получить ответ на вопрос – является ли данное назначение обоснованным, нет ли нарушений одного из критериев.
Подготовка справочника
Для работы метода в справочник «Код услуги заявки» должны быть добавлены три атрибута
Таблица 30. Настройка ограничений в справочнике
№ п/п | Наименование атрибута | Описание | Тип данных | Пример заполнения |
---|---|---|---|---|
1. | Validity_Date | Срок актуальности исследования в днях | SimpleQuantity | 14 |
2. | Validity_Practitioner | Разрешенные коды должности врача | String | 24; 44; 56; 108 |
3. | Validity_Diagnosis | Разрешенные коды диагноза пациента | String | I10; I11; K25; K26 |
Ограничение метода: ЕСЛИ для услуги настраивается ограничение, ТО параметр Validity_Date ДОЛЖЕН быть заполнен обязательно.
Получение информации о возможности заказа лабораторного исследования (контроль обоснованности) может осуществляться с помощью дополнительной операции (Custom Operation) validity (POST).
При контроле обоснованности используется POST запрос, в качестве адреса указывается URL в формате [base]/$validity?_format=json, в теле запроса передаются параметры запроса. В ответе сервис возвращает json с ответом.
Описание параметров
Входные параметры операции validity приведены в таблице ниже.
Таблица 31. Параметры операции $validity
№ п/п | Имя параметра | Описание | Кратность | Тип |
---|---|---|---|---|
1. | Code | Код услуги, по которой запрашивается обоснованность | 1..1 | string |
2. | Patient | GUID пациента, для которого запрашивается обоснованность | 1..1 | string |
3. | Diagnosis | Код диагноза МКБ пациента, для которого запрашивается обоснованность | 0..1 | string |
4. | Practitioner | Код должности врача, запрашивающего исследование | 0..1 | string |
Выходным параметром является JSON вида {«resourceType»:»Parameters», «parameter»:[Х]}, где Х – это массив ресурсов, описывающих результаты проверки. В проверке участвуют те параметры, которые были переданы. Ответ True в параметре означает, что проверка на обоснованность по данному параметру прошла успешно, False – означает, что при проверке выявлены ограничения. Выходные параметры операции validity приведены в таблице ниже.
В случае, если указанный в запросе код услуги не найден в справочнике, или настройки ограничений не сделаны, сделаны неверно, отсутствуют для данной услуги — сервис вернет ошибку с HTTP кодом 422 и сообщением вида {«resourceType»: «OperationOutcome»,»issue»: [{«severity»: «error»,»diagnostics»: «%описание проблемы%»}]}
Таблица 32. Интерпретация ответов метода
№ п/п | Имя параметра | Описание | Результат == true | Результат == false |
---|---|---|---|---|
1. | Code | Валидация по наличию результатов в пределах срока актуальности | В пределах срока актуальности такие исследования отсутствуют | Есть результаты исследований в пределах срока актуальности |
2. | Diagnosis | Валидация по коду диагноза пациента | Ограничений по диагнозу нет | Исследование нельзя назначать при таком диагнозе |
3. | Practitioner | Валидация по коду должности врача | Ограничений по должности врача нет | Исследование нельзя назначать врачу на такой должности |
Пример файла запроса можно получить через службу технической поддержки. Метод может быть неактивен в учреждении.
Передача услуги (POST HealthcareService)
При работе сервиса существует необходимость ведения списка услуг, доступных к выполнению в данной МО, а также списка тестов, выполняемых в рамках данной услуги. Для реализации такого сервиса используется ресурс HealthcareService. Работа с данным ресурсом организуется следующим способом:
- Целевая МО, оказывающая перечень услуг, публикует этот перечень в сервисе путем передачи в сервис ресурсов HealthcareService (на каждую услугу передается один ресурс)
- Целевая МО может дополнительно указать для каждой услуги перечень тестов, входящих в данную услугу. Коды тестов передаются в составе ресурса HealthcareService, описывающего конкретную услугу
- Направляющая МО, использующая эти услуги в работе, запрашивает перечень доступных для целевой МО услуг и входящих в них тестов при помощи GET запроса ресурсов HealthcareService
Списком услуг, доступных для целевой МО, может управлять только данная МО. Запрашивать список доступных услуг может любая МО.
Для регистрации услуги в сервисе ДЛИ используется POST-запрос ресурса HealthcareService. В качестве адреса указывается URL в формате [base]/HealthcareService?_format=json. В ответе сервис возвращает json с созданным ресурсом и его идентификатором в сервисе ДЛИ.
Для обновления услуги в сервисе ДЛИ также используется POST-запрос ресурса HealthcareService. При обновлении данных должна передаваться полная информация по услуге, т.е. HealthcareService необходимо передать со всеми параметрами, в том числе и неизменившимися. Обновление ресурса разрешено только отправителям данного ресурса.
Для деактивации услуги следует пользоваться параметром «Дата окончания действия». Принимающая информационная система должна корректно обрабатывать данный параметр.
Описание параметров
Перечень параметров и их описание представлены в таблице ниже. Параметры, которые не используются в информационном обмене, в таблице не указаны.
Таблица 33. Параметры HealthcareService
№ п/п | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|
1. | identifier | identifier | 1..* | Идентификатор ресурса (код услуги, коды тестов)*
|
2. | providedBy | Reference | 1..1 | Ссылка на организацию, предоставляющую данный набор услуг. В параметре display указывается OID передающей ИС |
* Обязательно передается один код услуги, может передаваться один или несколько кодов тестов.
** Даты начала и окончания действия указываются «включительно», т.е. услуга с периодом действия 01/01/2018-13/12/2018 действует и 01/01/2018, и 13/12/2018. Даты начала и окончания действия указываются только для услуг, для тестов не требуется
Запрос списка услуг для заданной МО
Получение информации о списке услуг, оказываемых определенной МО, осуществляется с помощью GET запроса.
При запросе массива услуг в качестве адреса указывается URL в формате [base]/HealthcareService?organization=[GUID]. Выходным параметром является JSON вида {«resourceType»: «Bundle», «type»: «searchset», «entry»: [Х]}, где Х – это массив ресурсов HealthcareService, удовлетворяющих условиям запроса.
Работа с сервисом Терминологии
Для корректной работы подсистемы ОДЛИ смежные инфосистемы должны поддерживать методы сервиса Терминологии. Актуальная информация по работе с сервисом Терминологии находится по адресу Терминология.
Должны поддерживаться следующие методы:
- Запрос справочника
- Запрос списка версий справочника
- Запрос значений справочника ($expand)
- Поиск значения в справочнике ($lookup)
- Валидация значения в справочнике ($validate-code)
Запрос справочника
Получение информации о справочнике осуществляется с помощью GET-запроса. В качестве адреса должен быть указан URL в формате [base]/ValueSet?_format=json&url=urn:oid:[OID справочника].
Пример запроса:
Запрос списка версий справочника
Получение информации о списке версий справочника осуществляется с помощью GET-запроса. В качестве адреса должен быть указан URL в формате [base]/ValueSet/[идентификатор справочника в сервисе Терминологии]/$versions?_format=json.
Пример запроса:
Запрос значений справочника ($expand)
Получение значений заданного справочника осуществляется с помощью POSTзапроса по URL в формате [base]/ValueSet/$expand. Метод возвращает метаинформацию о справочнике и пары код-значение.
Пример запроса приведен в разделе «Примеры запросов».
Поиск значения в справочнике ($lookup)
Метод предназначен для получения дополнительной информации о значении справочника по коду этого значения. Поиск заданного значения в справочнике осуществляется с помощью POST-запроса по URL в формате [base]/ValueSet/$lookup. Метод возвращает json с детализированной информацией о значении, которое соответствует коду значения из запроса.
Пример запроса приведен в разделе «Примеры запросов».
Валидация значения в справочнике ($validate-code)
Метод предназначен для получения дополнительной информации о значении справочника по коду этого значения. Поиск заданного значения в справочнике осуществляется с помощью POST-запроса по URL в формате [base]/ValueSet/$lookup. Метод возвращает json с детализированной информацией о значении, которое соответствует коду значения из запроса.
Пример запроса приведен в разделе «Примеры запросов».
Регламент подключения МИС/ЛИС к сервису ОДЛИ, ОДИИ, ОДР
- Направить оператору РС ЕГИСЗ (МИАЦ или МЗ региона) извещение о намерении подключить МИС/ЛИС/РИС/РМИС к требуемому сервису. Запросить контакты службы технической поддержки (СТП).
- Направить на адрес электронной почты СТП заявку на подключение к тестовому стенду требуемого сервиса. На каждый сервис подается отдельная заявка, которая должна содержать следующие данные:
- Наименование компании разработчика ЛИС/МИС/РИС/РМИС с указанием формы собственности;
- Наименование ЛИС/МИС/РИС/РМИС;
- Роли, выполняемые ЛИС/МИС/РИС/РМИС в сервисе (передача заявок, результатов, рецептов и др.);
- Контактные данные ответственного за интеграцию сотрудника (ФИО, почта, телефон).
Ответ СТП будет содержать:
- Ссылки на тестовый сервис и НСИ (справочники, используемые при обмене данными);
- Ссылка на документ «Описание интеграционных профилей»;
- Реквизиты доступа к сервису (авторизационный токен, OID).
- Если в МО принято решение о передаче PDF/xml протоколов с УКЭП, дополнительно должны быть предоставлены:
- Корневые сертификаты удостоверяющих центров (УЦ), чьи подписи используются для работы с сервисом;
- Сертификаты промежуточных УЦ, если таковые используются в УЦ, чьи подписи используются для работы с сервисом;
- Списки отзыва (ссылки на них в сети интернет) сертификатов всех УЦ, чьи подписи используются для работы с сервисом;
- Образец протокола PDF/xml и открепленные подписи к нему в виде файлов.
- Для получения консультаций в процессе работы с сервисом следует отправлять запросы на адрес электронной почты СТП. Запрос на консультацию должен содержать:
- Наименование сервиса;
- Тип площадки (тестовая, продуктивная);
- URL куда отправляется запрос;
- Тип запроса (POST или GET);
- Авторизационный токен, указываемый в запросе;
- Лог в *txt запроса к сервису и ответа сервиса на запрос;
- Идентификатор N3RID, полученный в ответе сервиса;
- Сам вопрос по работе сервиса.
- Завершив работы по интеграции с тестовым стендом, передать в тестовый стенд корректные примеры запросов. Запросы по передаче тестового пациента должны включать как минимум данные по ФИО, полу, ДР пациента, данные полиса ОМС и СНИЛС. Запросы по передаче тестового врача должны включать как минимум данные по ФИО, должности, специальности врача, данные СНИЛС.
ОДЛИ
Тестовые заявки на лабораторные исследования должны удовлетворять следующим требованиями:
- Вид оплаты ОМС;
- Наличие биоматериала в заявке.
Тестовые результаты лабораторных исследований (ОДЛИ) должны удовлетворять следующим требованиями:
- Должны быть переданы все виды исследований, выполняемых ЛИС
- Для клинических результатов (гематология, биохимия и др.) должны быть переданы результаты как с численными, так и с текстовыми показателями, а также результаты с ответом о порче материала или невыполнении исследования (если применимо). Передача численных показателей текстом (ValueString) не допускается
- Для микробиологических результатов должны быть переданы результаты вида «микроорганизм не выявлен», «микроорганизм выявлен, антибиотикочувствительность не определялась», «микроорганизм выявлен, антибиотикочувствительность определялась»
- Для гистологических и цитологических результатов должны быть переданы все параметры, предусмотренные действующими отчётными формами
- PDF/xml протокол, передаваемый с результатом, должен соответствовать переданным в результате структурированным данным и удовлетворять требованиям, указанным в документации
- Если в принято решение о передаче PDF/xml протоколов в федеральный сервис РЭМД, примеры должны содержать протоколы, подписанные согласно требованиям документации
ОДИИ
Тестовые заявки на инструментальные исследования должны удовлетворять следующим требованиями:
- Вид оплаты ОМС;
- Наличие данных пациента (рост, вес) в заявке.
Тестовые результаты инструментальных исследований должны удовлетворять следующим требованиями:
- Если есть возможность передачи данных изображения с возможностью просмотра через viewer — должны быть переданы описание, заключение в структурированном виде, протокол PDF/xml, данные о снимке.
- Если возможность передачи данных изображения с возможностью просмотра через viewer отсутствует — должны быть переданы описание, заключение в структурированном виде, протокол PDF/xml.
- Если принято решение о передаче PDF/xml протоколов в федеральный сервис РЭМД, примеры должны содержать протоколы, подписанные согласно требованиям документации.
ОДР
Тестовые рецепты должны удовлетворять следующим требованиями:
- переданы все виды рецептов, формируемые в МО;
- бланк рецепта в PDF/xml подписан согласно требованиям документации.
- Направить на адрес электронной почты СТП извещение о завершении работ и сообщить параметры, необходимые для запроса из тестового стенда тестовых данных, переданных ЛИС/МИС/РИС/РМИС (идентификатор Bundle, присвоенный сервисом).
- При отсутствии ошибок в тестовых данных СТП по согласованию с оператором РС ЕГИСЗ выдаст реквизиты доступа к промышленному стенду соответствующего сервиса.
Методические рекомендации
Общие сведения
Использование справочника организаций
При работе с сервисом необходимо корректно заполнять данные организаций – направляющей, целевой и др. При этом, если на уровне региона справочник организаций ведется в древовидном виде с разделением на отделения и подразделения, необходимо всю информацию передавать детализированно, от имени конкретного отделения и подразделения. Передача информации от имени головной МО в данном случае недопустима.
В случае распределенной работы учреждения (бизнес-процесс лечения и исследования распределен на несколько подразделений и отделений) следует пользоваться следующими правилами: Если пациент числится в отделении А, лечится в отделении Б, заявку ему делают в подразделении В, врач работает в подразделении Г, а забор материала делается в подразделении Д, то:
- идентификатор МО в случае лечения (Encounter), в заявке (Order), и в пациенте, передаваемом в составе bundle заявки, должны быть равны. Оформление заявки на ЛИ вне рамок случая лечения, а также в рамках случая лечения в другом подразделении не допускается. Допускается оформление заявки на ЛИ со ссылкой на ранее переданного в сервис пациента, при этом пациент может быть зарегистрирован ранее от имени другого подразделения данной МО
- идентификатор МО врача может отличаться от вышеперечисленных идентификаторов в случае лечения и заявке (заявку на ЛИ может оформить в т.ч. врач другого подразделения данной МО)
- идентификатор МО для биоматериала не предусмотрен, т.е. место забора в сервис на данный момент не передается, требований по идентификатору МО при передаче биоматериала нет
Правила валидации данных
Сервис осуществляет валидацию входных данных при вызовах методов ОДЛИ.
Валидируются следующие данные:
- Авторизационные данные, передаваемые в заголовках (headers) метода.
- Данные, передаваемые в пути (path) запроса. Пример: передача GUID в GET запросах.
- Данные, передаваемые в теле (body) запроса:
- Уникальность передаваемых данных (обрабатывается отдельно для каждого ресурса).
- Валидация структуры (передаваемые данные).
- Валидация обязательности заполнения параметров.
- Валидация значений параметров:
- Тип данных.
- Значение согласно справочникам.
При валидации можно выделить следующие общие правила проверки:
# | Валидация | Правило |
---|---|---|
Общие правила валидации параметров | ||
V1 | Параметр обязательный. Кратность: {1..1, 1..2, 1..*} | Параметр должен быть передан и не должен быть пустым |
V2 | Тип данных uri ИЛИ oid | Валидация параметров с типом данных uri. Параметр должен передаваться по одной из схем:
a. Только для параметра Bundle.entry.fullUrl |
V3 | Параметр имеет тип Coding, CodeableConcept и содержит три вложенных параметра:
|
|
V4 | Параметр имеет тип Reference |
|
V5 | Кратность параметров | Если параметр является массивом по FHIR И количество передаваемых элементов ограничено в ОИП, то должно выполняться следующее: Количество передаваемых элементов должно быть в диапазоне указанной кратности параметра согласно ОИП
Кратность обозначается в ОИП: x..y, где x,y могут принимать значения 0,1, …, * (Пример: 0..2, 1..2, ..) |
V6 | Параметр имеет тип DateTime или Date | Параметр должен быть больше или равен текущей дате-времени / дате |
V7 | Параметр имеет тип Base64Binary | Значение должно должно быть зашифровано по Base64 |
V8 | Проверка изменений уникального ключа при обновлении (PUT) ресурса | При обновлении ресурса методом PUT {имя ресурса}/{GUID ресурса} набор параметров, определяющий уникальность ресурса, должен совпадать у передаваемого ресурса в теле запроса и обновляемого {имя ресурса}/{GUID ресурса} в БД. |
Общие правила валидации Bundle | ||
V9 | Обязательность ресурсов | Валидация обязательных ресурсов (кратность 1..*, 1..1, 1..2) согласно ОИП. Ресурс должен быть передан в составе Bundle |
V10 | Проверка ресурсов по признаку доступности | Ресурсы, передаваемые в составе Bundle или передаваемые, как ссылка на существующий в БД ресурс: PractitionerRole, Practitioner, Device проверяются на признак доступности:
|
Patient | ||
V11 | Уникальность Patient.identifier.system | Patient.identifier.system должен быть уникальным в пределах массива Patient.identifier |
V12 | Допустимые значения Patient.identifier.system | Patient.identifier.system должен содержать значения согласно ОИП |
V13 | Основной идентификатор пациента | В теле запроса обязательно должен передаваться Patient.identifier с Patient.identifier.system = 1.2.643.5.1.13.2.7.100.5 |
V14 | СМО | Если передается идентификатор полиса ОМС старого/нового образца или временное свидетельство (system == 1.2.643.2.69.1.1.1.6.226 / 227 / 228), то:
|
V15 | СНИЛС | При передаче СНИЛС (system == 1.2.643.2.69.1.1.1.6.223) должно выполняться следующее:
|
V16 | Проверка значения идентификатора | Patient.identifier.value должен передаваться либо числом либо по маске «{символы}:{число}», кроме основного идентификатора пациента в ИС. |
Practitioner | ||
V17 | Уникальность Practitioner.identifier.system | Practitioner.identifier.system должен быть уникальным в пределах массива Practitioner.identifier |
V18 | Допустимые Practitioner.identifier.system | Practitioner.identifier.system должен содержать значения согласно ОИП |
V19 | Основной идентификатор врача | В теле запроса обязательно должен передаваться Practitioner.identifier с Practitioner.identifier.system = 1.2.643.5.1.13.2.7.100.5 |
V20 | СНИЛС | При передаче СНИЛС (system == 1.2.643.2.69.1.1.1.6.223) должно выполняться следующее:
|
Заявка | ||
V21 | Источник финансирования ОМС | Если в заявке источник финансирования указан ОМС, то для пациента должен быть передан полис ОМС. |
V22 | Ссылки на пациента | Все ссылки на пациента в бандле заявки должны совпадать со ссылкой на пациента в Order.subject |
V23 | Валидация ссылок на разрешенные ресурсы | Сервис ОДЛИ контролирует передаваемые типы ресурсов в параметрах типа reference. Параметр должен содержать ссылку только на указанный разрешенный ресурс |
V24 | Проверка передающей ИС | Параметры:
Должны совпадать с параметром Order.identifier.system |
Результат / результата без заявки | ||
V25 | Сравнение пациента с заявкой (только для результата) | Все ссылки на пациента в бандле результата должны быть одинаковы и совпадать со ссылкой на пациента в заявке |
V26 | Валидация ссылок на разрешенные ресурсы | Сервис ОДЛИ контролирует передаваемые типы ресурсов в параметрах типа reference. Параметр должен содержать ссылку только на указанный разрешенный ресурс |
V27 | Проверка contentType | Binary.contentType И DiagnosticReport.presentedForm.contentType должен равняться одному из принятых значений на проекте:
|
V28 | Проверка передающей ИС | Параметры:
Должны совпадать с параметром Order.identifier.system |
V29 | Проверка передающей ИС (только для результата без заявки) | Параметр Patient.identifier.assigner.display при Patient.identifier.system = 1.2.643.5.1.13.2.7.100.5 должен совпадать с параметром Order.identifier.system |
V30 | Соответствие contentType | Параметры Binary.contentType И DiagnosticReport.presentedForm.contentType должны совпадать для одного и того же переданного ресурса Binary |
V31 | Проверка УКЭП | В проверке участвуют ресурсы: Binary, DiagnosticReport, PractitionerRole, Practitioner
Если в ресурсе DiagnosticReport передаются три ссылки на ресурсы Binary со следующими contentType:
|
Ссылки на ресурсы
При передаче данных методами ОДЛИ необходимо указывать связи между ресурсами. Данные связи называются ссылками и указываются в соответствующих параметрах. Для таких параметров указывается тип данных Reference.
Пример связей:
- В какой организации работает врач.
- Какому пациенту создана заявка на исследование.
В методах ОДЛИ используются два типа ссылок:
- Ссылка на внутренний ресурс, передаваемый в Bundle.
- Ссылка на уже созданный ранее ресурс.
В соответствии с этими типами ссылка должна передаваться определенной схемой.
№ | Тип ссылки | Описание | Пример |
---|---|---|---|
1 | На внутренний ресурс передаваемый в составе Bundle | Передается значение параметра fullUrl ссылаемого ресурса | «subject»: { «reference»:»urn:uuid:f0ceca14-6847-4ea4-b128-7c86820da555″ } |
2 | На созданный ранее ресурс | Передается по схеме [resourceType]/[GUID] | «subject»: { «reference»:»Patient/a0a7a0e8-c445-455b-8b2d-6618b26f8371″ } |
Использование fullUrl
При передаче любого ресурса в сервис (пример отдельных ресурсов — врач, пациент) — в ответе сервиса вернется переданный ресурс с присвоенным id. Этот id — уникальный идентификатор ресурса в сервисе, его можно в любой момент запросить GET запросом вида (адрес сервиса)/(имя ресурса)/(id)
При передаче бандла (связки ресурсов), то при передаче к каждому ресурсу добавляется fullURL (присваивается в МИС), это нужно для связки между ресурсами. Т.е., например, в бандле передается случай обслуживания, у него указан «fullUrl»:»urn:uuid:f0ceca14-6847-4ea4-b128-7c86820da555″, в этом случае мы сошлемся на него в DiagnosticReport по ссылке «encounter»: {«reference»:»urn:uuid:f0ceca14-6847-4ea4-b128-7c86820da555″}
Когда бандл обработается сервисом, все fulurl заменятся на id ресурса, все ссылки на fullurl заменятся на ссылки на ресурсы вида «encounter»: {«reference»:»Encounter/af2a113aed05-4d82-8633-bca6b76736d5″}
Методы работы с сервисом
В сервисе ОДЛИ реализовано несколько методов. Для полноценного использования сервиса необходима поддержка всех методов как со стороны МИС (передача направления, запрос результата), так и со стороны ЛИС (запрос направления, передача результата).
В таблице ниже указана обязательность поддержки методов со стороны МИС и ЛИС, а также возможные варианты поддержки методов.
№ | Наименование метода | Описание метода | Поддержка в МИС | Поддержка в ЛИС | ||
---|---|---|---|---|---|---|
Обязательность | Примечание | Обязательность | Примечание | |||
1 | POST Patient | Передача данных нового пациента (регистрация) | Условно обязательно | Регистрация пациента реализуется или отдельным методом, или в составе бандла заявки или результата | Условно обязательно | Регистрация пациента реализуется или отдельным методом, или в составе бандла заявки илирезультата |
2 | PUT Patient | Обновление данных пациента, зарегистрированного в сервисе | Условно обязательно | Обновление пациента реализуется или отдельным методом, или в составе бандла заявки или результата | Условно обязательно | Обновление пациента реализуется или отдельным методом, или в составе бандла заявки или результата |
3 | POST Practitioner | Передача данных нового врача (регистрация) | Условно обязательно | Регистрация врача реализуется или отдельным методом, или в составе бандла заявки или результата | Условно обязательно | Регистрация врача реализуется или отдельным методом, или в составе бандла заявки или результата |
4 | PUT Practitioner | Обновление данных врача, зарегистрированного в сервисе | Условно обязательно | Обновление врача реализуется или отдельным методом, или в составе бандла заявки или результата | Условно обязательно | Обновление врача реализуется или отдельным методом, или в составе бандла заявки или результата |
5 | POST Bundle заявки | Передача заявки | Условно обязательно | Не требуется | Необходимо в том случае, если лаборатория выполняет такие исследования | |
6 | POST Bundle заявки | Передача заявки (гистология) | Условно обязательно | Не требуется | ||
7 | $getorder | Запрос конкретной заявки | Не требуется | Условно обязательно | Может быть реализован один из методов – запрос конкретной заявки (по идентификатору заявки или штрихкоду) или запрос массива | |
8 | $getorders | Запрос массива заявок по условию | Не требуется | Условно обязательно | ||
9 | POST Bundle результата | Передача результата | Не требуется | Обязательно | ||
10 | POST Bundle результата | Передача результата (микробиол.) | Не требуется | Условно обязательно | Необходимо в том случае, если лаборатория выполняет такие исследования | |
11 | POST Bundle результата | Передача результата (гистология) | Не требуется | Условно обязательно | ||
12 | POST Bundle результата без заявки | Передача результата без заявки | Не требуется | Обязательно | ||
13 | POST Bundle без результата | Передача информации об отсутствии результата | Не требуется | Обязательно | ||
14 | $getstatus | Запрос статуса конкретной заявки | Условно обязательно | Необходимо в том случае, когда МИС хочет контролировать процесс выполнения исследований | Не требуется | |
15 | $getresult | Запрос результата по конкретной заявке | Условно обязательно | Может быть реализован один из методов – запрос результата по конкретной заявке или запрос массива заявок по условию | Не требуется | |
16 | $getresults | Запрос массива результатов по условию | Условно обязательно | Не требуется | ||
17 | GET resource | Запрос произвольного ресурса в сервисе | Обязательно | Обязательно | ||
18 | $cancelorder | Отмена заявки | Условно обязательно | Необходимо в случае наличия практики отмены заявок со стороны МИС | Не требуется | |
19 | $cancelresult | Отмена результата | Не требуется | Условно обязательно | Необходимо в случае наличия практики отмены результатов со стороны ЛИС | |
20 | POST HealthcareService | Передача списка услуг, оказываемых ЛИС | Не требуется | Условно обязательно | Необходимо в случае необходимост и обмена списком оказываемых услуг | |
21 | GET HealthcareService | Запрос списка услуг, оказываемых ЛИС | Условно обязательно | Необходимо в случае необходимости обмена списком оказываемых услуг | Не требуется |
Передача пациента
Общие положения
Минимально необходимая информация при передаче пациента: ФИО, пол, дата рождения, идентификатор в медицинской системе. Если в паспорте пациента не указано отчество, передается только фамилия и имя.
Пациент может передаваться в сервис или отдельной операцией, или в составе bundle заявки или результата. Также в bundle результата может передаваться не пациент, а ссылка на нужного пациента, ранее переданного в сервис. Оба способа являются правильными.
При повторной передаче пациента в сервис необходимо передавать всю информацию по пациенту, а не только измененную, т.е. необходимо запросить данные пациента из сервиса, откорректировать и передать в сервис.
Запрещается:
- передача различных пациентов (разные физические лица) с одним идентификатором МИС из одной МО
- передача одного пациента (одно физическое лицо) с разными идентификаторами МИС из одной МО
Требования к передаче данных:
- обязательно передавать все известные идентификаторы пациента: СНИЛС, ДУЛ, полисы
- рекомендуется передавать все известные данные пациента (адрес по прописке и регистрации, место рождения и др.)
Ограничения сервиса:
- передача заявки с типом оплаты «ОМС» возможна только в том случае, если для пациента был передан полис ОМС. Передача заявки с типом оплаты «ДМС» возможна вне зависимости от переданного полиса ДМС
- для пациента возможна передача только одного полиса ОМС (ЕП, временное св-во, полис старого образца) и только одного ДУЛ данного вида (например, нельзя передать ЕП и временное св-во, или два паспорта РФ)
Передача прикрепления в сервисе ОДЛИ
Правила передачи идентификатора с OID 1.2.643.5.1.13.2.7.100.9:
- если Patient.identifier.value = 0, то идентификатор может передаваться только один, иначе – идентификаторов приклепления может быть несколько
- запрещена передача нескольких идентификаторов прикрепления с одинаковым Patient.identifier.value
Назначение параметров и правила валидации
№ | Ресурс | Параметр | Тип | Кратность | Описание |
---|---|---|---|---|---|
1 | Patient | identifier.system | uri | 1..1 | Пространство имён идентификатора. OID (1.2.643.5.1.13.2.7.100.9) |
2 | Patient | identifier.use | code | 0..1 | Способ прикрепления (справочник FHIR):
|
3 | Patient | identifier.type | CodeableConcept | 0..1 | Код участка прикрепления
|
4 | Patient | identifier.value | string | 1..1 | Значение профиля прикрепления по справочнику 1.2.643.2.69.1.1.1.56.
Допустимые значения:
|
5 | Patient | identifier.period | Period | 0..1 | Период прикрепления. Может быть указана одна или обе даты.
|
6 | Patient | identifier.assigner.reference | Reference | 0..1 усл | Ссылка. Соотнесение с организацией прикрепления. |
7 | Patient | identifier.assigner.display | display | 0..1 усл | Текстовое наименование участка прикрепления. |
Пример передачи прикрепления:
{ "system": "urn:oid:1.2.643.5.1.13.2.7.100.9", "use": "temp", "type": { "coding": [ { "system": "urn:oid:{XXXXXXXXXXXXXXX}", "version": "1", "code": "1" } ] }, "value": "0", "period": { "start": "2010-05-05", "end": "2018-05-05", }, "assigner": { "reference": "Organization/a762831e-dd4c-46be-a329-6dd592a14bb6" } }
Бизнес-логика
Передача пациента
Для регистрации пациента в сервисе ДЛИ используется POST-запрос ресурса Patient. Структура передаваемых данных в ресурсе Patient описана в документе Описание Интеграционных Профилей сервиса ДЛИ.
Уникальность ресурса Patient определяется по следующим параметрам:
- identifier.assigner (где identifier.system = urn:oid:1.2.643.5.1.13.2.7.100.5),
- identifier.value,
- identifier.assigner.display,
- Patient.managingOrganization.
По приведенным выше параметрам при передаче ресурса Patient осуществляется поиск пациента в сервисе ДЛИ. В случае, когда:
- Пациент не найден в БД, создается новый пациент и сервис в ответ возвращает json с созданным пациентом и его идентификатор в сервисе ДЛИ.
- Пациент найден в БД, происходит обновление пациента, сервис в ответ возвращает json с обновленным пациентом, а также его идентификатор в сервисе ДЛИ. При обновлении ресурса Patient необходимо передавать все параметры, в том числе и неизменившиеся. Обновление ресурса Patient допускается только для той организации (подразделения), которая изначально зарегистрировала пациента.
Обновление пациента (PUT)
Для обновления пациента используется PUT-запрос ресурса Patient. Операция обновления создает новую текущую версию ресурса. Структура передаваемых данных в ресурсе Patient описана в документе Описание Интеграционных Профилей сервиса ДЛИ. При обновлении ресурса Patient необходимо передавать все параметры, в том числе и неизменившиеся, а также id ресурса в сервисе. Если указанный ресурс Patient не найден в БД, то сервис возвратит ошибку: «Ресурс не найден».
При операции PUT Patient бизнес-логика обновления следующая:
- В теле ресурса Patient ничего не изменилось, то ничего не происходит, сервис возвращает найденный ресурс Patient;
- Есть изменения в теле пациента, кроме параметров, по которым определяется уникальность ресурса:
- identifier.assigner (где identifier.system = urn:oid:1.2.643.5.1.13.2.7.100.5),
- identifier.value,
- identifier.assigner.display,
то происходит ОБНОВЛЕНИЕ ресурса операция PUT;
- Если изменения в параметрах, по которым определяется уникальность ресурса:
- identifier.assigner (где identifier.system = urn:oid:1.2.643.5.1.13.2.7.100.5),
- identifier.value,
- identifier.assigner,
то возвращается ошибка;
Обновление ресурса разрешено ТОЛЬКО отправителям данного ресурса. В случае попытки изменения ресурса, заведенного другим ЛПУ или другой ИС, сервис возвратит ошибку: «Доступ редактирования для данного OID передающей ИС или ЛПУ запрещен».
Передача врача
Общие положения
Минимально необходимая информация при передаче врача: ФИО, идентификатор в медицинской системе, код должности, код специальности. Если в паспорте врача не указано отчество, передается только фамилия и имя.
Врач может передаваться в сервис или отдельной операцией, или в составе bundle заявки или результата. Также в bundle результата может передаваться не врач, а ссылка на нужного врача, ранее переданного в сервис. Оба способа являются правильными.
При повторной передаче врача в сервис необходимо передавать всю информацию по врачу, а не только измененную, т.е. необходимо запросить данные врача из сервиса, откорректировать и передать в сервис.
Бизнес-логика
Передача врача
Для регистрации врача в сервисе ДЛИ используется POST-запрос ресурса Practitioner. Структура передаваемых данных в ресурсе Practitioner описана в соответствующем разделе документа Описание Интеграционных Профилей сервиса ДЛИ.
Уникальность ресурса Practitioner определяется по следующим параметрам:
- Practitioner.identifier.value;
- Practitioner.Identifier.system;
- Practitioner.practitionerRole.managingOrganization;
- Practitioner.specialty;
- Practitioner.role.
По приведенным выше параметрам при передаче ресурса Practitioner осуществляется поиск врача в сервисе ДЛИ. В случае, когда:
- Врач не найден в БД, создается новый врач и сервис в ответ возвращает json с созданным врачом и его идентификатор в сервисе ДЛИ.
- Врач найден в БД, происходит обновление врача, сервис в ответ возвращает json с обновленным врачом, а также его идентификатор в сервисе ДЛИ. При обновлении ресурса Practitioner необходимо передавать все параметры, в том числе и неизменившиеся.
Обновление врача (PUT)
Для обновления врача используется PUT-запрос ресурса Practitioner. Операция обновления создает новую текущую версию ресурса. Структура передаваемых данных в ресурсе Practitioner описана в документе Описание Интеграционных Профилей сервиса ДЛИ. При обновлении ресурса Practitioner необходимо передавать все параметры, в том числе и неизменившиеся, а также id ресурса в сервисе. Если указанный ресурс Practitioner не найден в БД, то сервис возвратит ошибку: «Ресурс не найден».
При операции PUT Practitioner бизнес-логика обновления следующая:
- В теле ресурса Practitioner ничего не изменилось, то ничего не происходит, сервис возвращает найденный ресурс Patient;
- Есть изменения в теле врача, кроме следующих параметров:
- identifier.assigner (где identifier.system = urn:oid:1.2.643.5.1.13.2.7.100.5),
- identifier.value,
- practitionerRole.managingOrganization,
то происходит ОБНОВЛЕНИЕ ресурса операция PUT;
- Если изменения в следующих параметрах:
- identifier.assigner (где identifier.system = urn:oid:1.2.643.5.1.13.2.7.100.5),
- identifier.value,
- practitionerRole.managingOrganization,
то возвращается ошибка;
Обновление ресурса разрешено ТОЛЬКО отправителям данного ресурса. В случае попытки изменения ресурса, заведенного другим ЛПУ или другой ИС, сервис возвратит ошибку: «Доступ редактирования для данного OID передающей ИС или ЛПУ запрещен».
Передача заявки
Общие положения
Заявка должна всегда передаваться за один раз, полностью, с уникальным идентификатором в МИС. Передача заявки частями не допускается. Передача заявки с тем же идентификатором в МИС не допускается.
Если источник финансирования в заявке ОМС, то для пациента должен быть передан полис ОМС.
Идентификатор МО в случае лечения (Encounter), в заявке (Order), и в пациенте, передаваемом в составе bundle заявки, должны быть равны.
Идентификатор биоматериала (штрих-код) должен быть уникален для данной передающей МИС на протяжении как минимум срока жизни образца, рекомендуется – на протяжении как минимум трех месяцев.
Штрихкод может содержать только цифры и буквы латинского алфавита. Не может содержать пробелы и любые другие символы.
Бизнес-логика
Для передачи заявки используется POST-запрос передачи ресурса Bundle. Ресурс Bundle представляет собой контейнер ресурсов, необходимых для передачи информации о заявке.
Уникальность заявки (ресурса Bundle) определяется по следующим параметрам:
- Order.identifier.value;
- Order.identifier.system;
- Order.identifier.assigner.
При повторном добавлении заявки сервис ДЛИ возвращает ошибку вида «Повторное добавление заявки».
При передаче ресурсов Patient, Practitioner в составе Bundle осуществляется поиск этих ресурсов по уникальным параметрам в сервисе ДЛИ. В случае, когда:
- Ресурсы найдены (Practitioner, Patient) в БД, происходит обновление ресурса, сервис возвращает в ответ json Bundle заявки с созданными/обновленными ресурсами и их идентификаторами в сервисе.
- Ресурсы не найдены (Practitioner, Patient) в БД, создаются не найденные ресурсы передаваемые в Bundle, сервис возвращает в ответ json Bundle заявки с созданными ресурсами и их идентификаторами в сервисе.
Проверка полиса пациента
При отправлении POST Bundle заявки осуществляется проверка передаваемого источника финансирования и наличие полиса у пациента.
При передаче POST Bundle заявки, в случае когда в параметре DiagnosticOrder.item.code.extension.valueCodeableConcept.coding.code передается код из справочника 1.2.643.2.69.1.1.1.32, соответствующий источнику финансирования – ОМС (указывается в конфигурационном файле) осуществляется проверка наличия у пациента полиса ОМС. При отсутствии полиса ОМС операция POST Bundle заявки завершится ошибкой вида «Требуется страховой полис для пациента».
Обновление информации в заявке после забора биоматериала
В ряде медицинских учреждений формирование заявки на лабораторное исследование и забор биоматериала с формированием штрихкода производятся в разных местах и в разное время и существует необходимость дополнить заявку информацией о забранном биоматериале отдельно, позже формирования самой заявки. Для автоматизации такого процесса направляющая МИС должна реализовать следующую последовательность действий:
- в ходе приема пациента врачом формируется заявка на лабораторное исследование и через МИС передается в сервис ОДЛИ методом, указанным в разделе «Передача заявки (POST Bundle заявки)» данного документа. При этом в ресурсе Specimen заполняется только параметр Specimen.subject.reference, т.к. на данном этапе другой информации по биоматериалу нет. Количество ресурсов Specimen, передаваемых с заявкой, должно соответствовать количеству биоматериала, подлежащего забору.
- перед забором биоматериала МИС запрашивает в сервисе ОДЛИ информацию по данной заявке (Order) одним из возможных методов, и по услугам в данной заявке (DiagnosticReport) путем запроса ресурсов. Определяется ссылка на Specimen для требуемого DiagnosticReport.
- после забора биоматериала, когда вся необходимая информация по биоматериалу, включая штрихкод, имеется – МИС обновляет данные по биоматериалу в сервисе ОДЛИ методом PUT Specimen. Параметры ресурса Specimen соответствуют параметрам, описанным в разделе «Передача заявки (POST Bundle заявки)» данного документа.
Ограничения метода:
- метод включается в настройках сервиса, по умолчанию — отключен
- обновление биоматериала возможно только по тем биоматериалам, которые были переданы в сервис без детальной информации (в ресурсе Specimen заполнен только параметр Specimen.subject.reference)
- обновление биоматериала возможно только один раз для конкретного ресурса
Передача результата
Общие положения
Каждый передаваемый результат должен ссылаться на соответствующую заявку.
Допускается:
- передавать результат частями, при этом необходимо указывать для OrderResponse статус “accepted”. При отправлении последней части выполненного результата на заявку необходимо указать статус “completed”, после чего заявка становится помеченная как выполненная, и возможность отправить еще результаты в ответ на данную заявку блокируется
- передавать результат одного исследования как «один DiagnosticReport – множество Observation», так и «множество DiagnosticReport с одним Observation». По первому способу, передаются, к примеру, результаты клинического анализа крови/мочи, по второму – результаты биохимического исследования
- передавать один PDF/xml документ в качестве приложения к нескольким DiagnosticReport, описывающим разные исследования или разные параметры одного исследования
- передавать в результате не те услуги, которые были заказаны в заявке (детально описано ниже)
Не допускается:
- передавать результат как выполненный, если в нем нет ответов на все заказанные в заявке услуги
Полнота ответа на заявку*
При работе с сервисом ОДЛИ потенциально может возникать следующая ситуация: ответом на заявку, содержащую несколько услуг, может является ответ, лишь частично «закрывающий» заявку. При этом такая ситуация может происходить по ряду причин:
- учреждение вместо заказанной услуги А выполнило услугу В, при этом такая замена допустима (например, заказана услуга «B03.016.002 Клинический анализ крови», в ответе «B03.016.003 Клинический анализ крови (развернутый)»
- учреждение вместо заказанной услуги А выполнило услугу В, при этом такая замена недопустима (например, заказана услуга «B03.016.003.998 Клинический анализ крови (развернутый) + ретикулоциты», в ответе «B03.016.002.999 Клинический анализ крови (3 показателя)»
- учреждение не выполнило заказанную услугу А и не дала никакой ответ по данному заказу.
Это приводит к тому, что нарушается корректность работы системы, МО не получают ответов на свои заявки и не понимают причину этого. Для исключения подобной ситуации необходимо:
- если заявка закрывается полностью, или отправляется последняя часть со статусом «completed», то для каждого DiagnosticOrder в заявке должен быть передан DiagnosticReport в ответе. Передача результата со статусом «completed» в том случае, если для одного или нескольких DiagnosticOrder в заявке не передается DiagnosticReport в ответе, недопустима
- если ответ по заявке передается со статусом «final» или «cancelled», то код услуги в DiagnosticReport должен равняться коду услуги в DiagnosticOrder
- если ответ по заявке передается со статусом «corrected», код услуги в DiagnosticReport может отличаться от кода услуги в DiagnosticOrder (в случае, если произошла обоснованная замена услуги результата. Ответственность за такую замену несет целевая МО/КДЛ)
- если ответ по заявке передается со статусом «cancelled», то в DiagnosticReport не передаются поля meta.security.code , result, presentedForm, codedDiagnosis. В поле conclusion указывается причина невыполнения заказанной услуги*
Таким образом, необходимо соблюдать требование «код услуги результата равен коду услуги заявки», в случае, если это невозможно – применять рекомендации, указанные выше.
Ситуация, когда в заявке указана одна услуга, а в результате несколько, в т.ч. заказанная, является допустимой.
*Данная проверка включается в настройках сервиса
Передача результатов тестов*
Результаты клинических исследований, а также результаты микробиологических исследований (если применимо) могут быть переданы в виде текста или числового значения. При передаче результатов теста следует использовать следующие правила:
- если в сервис передается значение теста, для которого в справочнике тестов указана единица измерения – то значение должно передаваться только как число (valueQuantity), референтные значения должны передаваться только как число (referenceRange.low и/или referenceRange.high).
- если в сервис передается значение теста, для которого в справочнике тестов не указана единица измерения – то значение должно передаваться только как текст (valueString), референтные значения должны передаваться только как текст (referenceRange.text).
- если для теста референтное значение отсутствует или неприменимо, необходимо передавать референтное значение тоже как текст (referenceRange.text), но при этом значение должно быть «нет».
*Данная проверка включается в настройках сервиса
Единицы измерения для тестов*
Результаты клинических исследований, а также результаты микробиологических исследований (если применимо) могут быть переданы в виде числового значения с указанием единиц измерения. При передаче результатов теста следует использовать следующие правила указания единиц измерения:
- если в сервис передается значение теста, для которого в справочнике тестов указана единица измерения (или несколько единиц измерения, разделенных точкой с запятой) – то единица измерения, передаваемая в значении (valueQuantity.code) и референтном значении (значениях) (referenceRange.low.code, referenceRange.high.code) должна быть равна единице измерения, указанной для данного теста в справочнике тестов (если единиц измерения в справочнике для данного теста несколько, то любой из указанных для теста единице измерения). Допускается передача результата в сопоставимых единицах измерения – передаваемая е.и. может быть приведена к е.и., указанной в справочнике тестов для данного теста, при помощи правил пересчета, приведенных в справочнике единиц измерения (пример: измерение теста в г/л может передаваться в г/мл, мг/мл, но не может в моль/л). Все передаваемые единицы измерения (valueQuantity.code, referenceRange.low.code, и/или referenceRange.high.code) должны быть одинаковые
*Данная проверка включается в настройках сервиса
Сортировка результатов исследований
Результаты лабораторных исследований, передаваемых в сервис, не имеют признака для сортировки. В ряде случаев со стороны ЛИС необходимо передавать признак сортировки, который позволит на стороне МИС отображать результаты в требуемом порядке. Такой признак может передаваться с помощью параметра identifier в DiagnosticReport и Observation. Строгих правил формирования такого идентификатора нет, порядок передачи определяется соглашением между разработчиками информационных систем.
Пример передачи идентификатора: «identifier»:[{«value»:»001.001″}]
Один из вариантов – кодировать очередность DiagnosticReport как «ХХХ», а очередность Observation как «ХХХ.УУУ», где ХХХ порядковый номер исследования (DiagnosticReport) в результате, а УУУ порядковый номер теста (Observation) в исследовании.
Бизнес-логика
Передача результата на заявку
Для передачи результата лабораторного исследования используется POST-запрос ресурса Bundle. Ресурс Bundle представляет собой контейнер ресурсов, необходимых для передачи информации о результате. Структура передаваемых данных описана в документе ОИП ДЛИ.
Уникальность результата (ресурса Bundle) определяется по следующим параметрам:
- OrderResponse.identifier.value;
- OrderResponse.identifier.system;
- OrderResponse.identifier.assigner.
При повторном добавлении результата сервис ДЛИ возвращает ошибку: «Повторное добавление результата».
Передача результата без заявки
Для передачи результата лабораторного исследования без заявки используется POST-запрос ресурса Bundle, операция $addresults. Структура передаваемых данных описана в документе Описание Интеграционных Профилей сервиса ДЛИ.
Уникальность результата (ресурса Bundle) определяется по следующим параметрам:
- OrderResponse.identifier.value;
- OrderResponse.identifier.system;
- OrderResponse.identifier.assigner.
При повторном добавлении результата сервис ДЛИ возвращает ошибку: «Повторное добавление результата».
Особенности использования дат в методах $getorder, $getorders, $getresults
В методах $getorder, $getorders, $getresults в качестве входных параметров используются:
- StartDate – дата начала периода
- EndDate – дата окончания периода
Датой периода является дата записи заявки/ результата в БД ДЛИ (служебное поле).
Использование даты записи заявки/ результата во входных параметрах позволяет получать данные за запрошенный период только один раз, и не потерять данные во временной шкале.
Пример: при запросе заявок ($getorders) за период 2018-03-15T13:00:00 — 2018-03-15T13:59:59, в ответ будут получены все заявки, переданные в сервис за этот диапазон (с учетом иных параметров запроса). Любые другие заявки, которые будут переданы в сервис позже, уже не будут попадать в данный диапазон дат и для их получения необходимо задавать другой (следующий) интервал.
Таким образом, информационная система, запрашивая последовательно смежные интервалы, будет последовательно выбирать все данные, поступившие в сервис за указанный период.
Особенности передачи результатов микробиологических исследований(примеры)
Передача чувствительности к бактериофагам
Вопрос: При передаче бактериологии есть передача чувствительности к антибиотикам, но нет передачи чувствительности к бактериофагам. Как быть в этой ситуации?
Ответ: Фактически – и антибиотики, и бактериофаги являются антибактериальными препаратами, хотя и отличаются по способу действия. В справочнике 1.2.643.2.69.1.1.1.74 «Антибиотики» на данный момент включены и антибиотики, и бактериофаги. Таким образом, передавать чувствительность к бактериофагам следует таким же методом, каким передается чувствительность к антибиотикам в рамках одного DiagnosticReport.
Передача результата анализа «Кал на дисбактериоз»
Вопрос: Есть такой результат анализа «Кал на дисбактериоз», состоящий фактически из нескольких блоков. Как корректно передать результаты по нему?
Ответ: Данный результат можно корректно передать следующим образом:
- антибиотикограмма и чувствительность к бактериофагам передается так, как указано в предыдущем абзаце;
- непосредственно анализ кала на дисбактериоз передается отдельным DiagnosticReport с указанием соответствующего кода услуги результата — A26.05.016 «Исследование микробиоценоза кишечника (дисбактериоз)», при этом в тестах (Observation) данного исследования следует передавать или конкретный микроорганизм по справочнику 1.2.643.5.1.13.13.11.1087, например 5087564 «Enterobacter cloacae», или род микроорганизмов, например 5003371 «Genus Enterobacter».
Передача количества выявленных микроорганизмов
Вопрос: Как при передаче микроорганизмов передать количество выявленных микроорганизмов с указанием единицы измерения?
Ответ: На данный момент сервис позволяет передавать результаты микробиологических исследований как число (valueQuantity) или текст (valueString), или не передавать вовсе.
При передаче результатов как текст в поле valueString следует писать значение с единицами измерения, например «10^5 КОЕ/г», норма также передается текстом, например «10^9 — 10^10 КОЕ/г»
При передаче результатов как число значение результата передается в поле valueQuantity.value, код единицы измерения в поле valueQuantity.code. Единицы измерения необходимо передавать в соответствии со справочником 1.2.643.5.1.13.13.11.1358. На данный момент в этом справочнике предусмотрены несколько значений, пригодных для передачи количества выявленных микроорганизмов, а именно:
Код | Наименование | Сокращенное наименование |
---|---|---|
448 | Колониеобразующая единица | КОЕ |
449 | Миллион колониеобразующих единиц | млн. КОЕ |
450 | Миллиард колониеобразующих единиц | млрд. КОЕ |
451 | Колониеобразующая единица в грамме | КОЕ/г |
452 | Миллион колониеобразующих единиц в грамме | млн.КОЕ/г |
500 | Колониеобразующая единица на дозу | КОЕ/доз |
501 | Миллион колониеобразующих единиц на дозу | млн. КОЕ/доз |
502 | Миллиард колониеобразующих единиц на дозу | млрд. КОЕ/доз |
Таким образом, результаты должны быть приведены к данным единицам измерения. Например, результат 10^5 может быть представлен как 0,1 млн.КОЕ/г, а результат 10^10 может быть представлен как 10000 млн.КОЕ/г. Норма (если применимо) передается аналогичным способом.
Особенности передачи протоколов лабораторных исследований в формате PDF, заверенных УКЭП
Для обеспечения юридической значимости электронного документооборота, а также для обеспечения возможности передачи информации в федеральный сервис РЭМД протоколы лабораторных исследований, передаваемые в бандле результата, должны подписываться УКЭП. Общие требования к передаваемым данным в файле УКЭП описаны ниже.
Передаваемая УКЭП врача проверяется:
- на соответствие СНИЛС врача, указанного в файле УКЭП, и СНИЛС врача, указанного в DiagnosticReport.performer.reference
- на соответствие ФИО врача, указанного в файле УКЭП, и ФИО врача, указанного в DiagnosticReport.performer.reference
Передаваемая УКЭП МО проверяется:
- на соответствие ОГРН МО, указанного в файле УКЭП, и ОГРН для МО, указанной в OrderResponce.who
Дополнительные проверки:
- передаваемый в бандле ресурс Practitioner должен содержать СНИЛС врача, т.е. должен передаваться параметр identifier с identifier.system = urn:oid:1.2.643.2.69.1.1.1.6.223, при этом identifier.value не должен быть пустым
- если врач передается ссылкой на имеющийся ресурс, то система определяет по ссылке врача и проверяет наличие СНИЛС (параметр identifier с identifier.system = urn:oid:1.2.643.2.69.1.1.1.6.223 должен быть, identifier.value не может быть пустым)
- передаваемый в бандле ресурс Patient должен содержать СНИЛС пациента, т.е. должен передаваться параметр identifier с identifier.system = urn:oid:1.2.643.2.69.1.1.1.6.223, при этом identifier.value не должен быть пустым
- если врач передается ссылкой на имеющийся ресурс, то система определяет по ссылке пациента и проверяет наличие СНИЛС (параметр identifier с identifier.system = urn:oid:1.2.643.2.69.1.1.1.6.223 должен быть, identifier.value не может быть пустым)
В бандле результата результаты исследования могут быть описаны одним или несколькими DiagnosticReport, а также одним или несколькими протоколами в формате PDF/xml, которые также передаются в бандле. Эти исследования могут быть выполнены одним или несколькими врачами. В случае, если DiagnosticReport несколько, и они выполнены разными врачами – протоколы PDF/xml должны быть подписаны этими же врачами, т.е. протокол PDF/xml, указанный для конкретного DiagnosticReport, должен быть подписан именно тем врачом, который указан в DiagnosticReport.performer.
Рассмотрим пример бандла, содержащего четыре DiagnosticReport и два протокола PDF (см. рис.).
Условия:
- Исследования выполнялись тремя врачами.
- Первый DiagnosticReport ссылается на протокол 1 и его выполнил врач 1
- Три остальных DiagnosticReport вместе ссылаются на протокол 2,
- Каждый DiagnosticReport выполнен своим врачом
- DiagnosticReport 2 и 3 выполнили врачи 2 и 3
- DiagnosticReport 4 выполнил врач 1.
В данном случае подписи должны быть сформированы следующим образом:
- Протокол 1 и 2 подписываются врачом 1 — формируются подписи Pra.Sig 1/1 и Pra.Sig 1/2.
- Протокол 2 подписывается врачом 2 и врачом 3 — формируются подписи Pra.Sig 2/2 и Pra.Sig 3/2.
- И оба протокола подписываются подписью МО — формируются подписи Org.Sig 1 и Org.Sig 2.
Рисунок 10. Пример бандла, содержащего четыре DiagnosticReport и два протокола PDF
В каждом DiagnosticReport указывается ссылка на врача, выполнившего исследование, ссылка на протокол PDF для данного исследования, а также ссылки на подпись данного протокола данным врачом и на подпись данного протокола подписью МО.
Проверка валидности подписей выполняется следующим образом:
- Берется первый DiagnosticReport из OrderResponse, по ссылкам в DiagnosticReport вычисляются врач, МО, протокол PDF и две подписи (врача и МО).
- Врач проверяется на наличие СНИЛС. Если СНИЛС врача не указан – возвращается ошибка с указанием ее причины.
- Подпись врача проверяется на соответствие передаваемому протоколу, а также на соответствие ФИО и СНИЛС врача в структурированных данных и ФИО и СНИЛС врача в подписи врача. Если проверки не выполняются – возвращается ошибка с указанием ее причины.
- Подпись МО проверяется на соответствие передаваемому протоколу, а также на соответствие ОГРН МО для МО, указанного в структурированных данных, и ОГРН МО в подписи МО. Если проверки не выполняются – возвращается ошибка с указанием ее причины.
- Шаги 1-4 повторяются для всех DiagnosticReport из OrderResponse.
Правила передачи эпидномера
Эпидномер присваивается организациями, ведущими учет особых заболеваний (Роспотребнадзор, Центры СПИД) и предназначен для однозначной идентификации инфицированного пациента. Эпидномер передается следующим образом:
- если эпидномер известен на момент составления заявки, он должен быть передан в заявке со стороны МИС в параметре Patient.identifier
- если эпидномер присваивается РПН при выполнении исследования, он должен быть передан в результате со стороны ЛИС в параметре DiagnosticReport.identifier. МИС, получившая DiagnosticReport с указанным эпидномером, обязана занести его в систему и передавать в последующих заявках в параметре Patient.identifier
Правила формирования параметра identifier для эпидномера в обоих случаях одинаковы и указаны в таблице ниже. Все параметры являются обязательными.
Identifier.type | CodeableConcept | Тип идентификатора.
|
identifier.system | uri | Пространство имён идентификатора. Для эпидномера всегда передается OID (1.2.643.5.1.13.2.7.100.6) |
identifier.value | string | Эпидномер. В идентификаторах запрещены пробелы и спецсимволы (прямой и обратный слэш, кавычки, %, $ и др.) |
identifier.assigner.reference | Reference (Organization) | Ссылка. Соотнесение с организацией, присвоившей эпидномер |
identifier.assigner.display | string | Всегда указывается «Эпидномер» |
Пример передачи эпидномера:
"identifier": [ { "type": { "coding": [ { "system": "urn:oid:1.2.643.2.69.1.1.1.122", "version": "1", "code": "RRI" } ] }, "system": "urn:oid:1.2.643.5.1.13.2.7.100.6", "value": "2128506", "assigner": { "reference": "Organization/f678d121-5f8e-396d-1942-104cf3d4e81f", "display": "Эпидномер" } } ]
Разбор ситуации по заявкам
В ходе работы с сервисом часто возникает вопрос – была ли заявка передана в сервис, запрашивали ли её, есть ли на нее результат и т.д. Для разбора таких ситуаций необходимо знать: адрес сервиса, авторизационный токен, идентификатор заявки в МИС, GUID направляющей МО. Работа осуществляется с помощью любого REST клиента. GUID направляющей МО можно получить из «Справочника МО» в сервисе Терминологии или при помощи запроса детальной информации по заявке (ниже).
Запрос статуса заявки
Запрос статуса заявки делается запросом вида:
POST http://[base]/exlab/api/fhir/$getstatus?_format=json authorization: N3 [token] content-type: application/json { "resourceType": "Parameters", "parameter": [ { "name": "SourceCode", "valueString": "[Source GUID]" }, { "name": "OrderMisID", "valueString": "[ID]" } ] }
Ответом сервиса является JSON, содержащий статус данной заявки:
{ "resourceType": "Parameters", "parameter": [ { "name": "Status" "valueString": "Requested" } ] }
Статусы заявки:
№ | Статус заявки | Описание ситуации |
---|---|---|
1 | Not found | Заявки нет в сервисе |
2 | Requested | Заявка отправлена из МИС в сервис и не запрашивалась из ЛИС |
3 | Received | Заявку запросили из ЛИС |
4 | Accepted | На заявку дан частичный ответ, должно быть продолжение |
5 | Completed | На заявку дан полный ответ, работа по заявке в ЛИС завершена |
6 | Cancelled | Заявка отменена |
Если результаты поиска не соответствуют ожидаемым, необходимо определить зоны ответственности.
Определение зоны ответственности
Определение зоны ответственности производится на основании того, какой этап информационного взаимодействия является последним найденным. Примерный алгоритм приведен в таблице.
№ | Статус заявки | Описание ситуации | Наиболее вероятная причина |
---|---|---|---|
1 | Not found | Заявки от МИС нет в сервисе | МИС не передавала заявку или при передаче возникли ошибки |
2 | Requested | Заявка отправлена из МИС в сервис и не запрашивалась из ЛИС | ЛИС не запрашивала заявку или при запросе возникли ошибки |
3 | Received | Заявка передана МИС в сервис и запрашивалась из ЛИС, но ответа на заявку пока нет | ЛИС не выполнила исследование и не передавала результат, или при передаче результата возникли ошибки |
4 | Accepted | Заявка частично выполнена в ЛИС | ЛИС выполнила заявку частично. Если результата нет в МИС – МИС не запрашивала результат или при запросе результата возникли ошибки |
5 | Completed | Заявка полностью выполнена в ЛИС | ЛИС выполнила заявку полностью. Если результата нет в МИС – МИС не запрашивала результат или при запросе результата возникли ошибки |
6 | Cancelled | Заявка отменена из МИС |
Получение детальной информации по заявке
Для получения детальной информации по заявке необходимо запросить эту информацию в сервисе. Это можно сделать с помощью GET запроса следующего вида:
GET http://[base]/exlab/api/fhir/Order?identifier= [Order MIS ID] authorization: N3 [token] content-type: application/json
Ответом сервиса является bundle типа searchset, содержащий информацию по найденным заявкам (Order)
Пример ответа, когда заявка с таким идентификатором не найдена:
{ "resourceType": "Bundle", "type": "searchset" }
Пример ответа, когда заявка с таким идентификатором найдена:
"entry": [ { "resource": { "resourceType": "Order", "id": "f6e80db5-ba47-4436-965e-8e4690eca42c", <--OrderGUID "meta": { "versionId": "371281c9-8862-4e20-a5fe-c688836ef355", "lastUpdated": "2019-01-10T10:38:01" <--Received DateTime }, "identifier": [ { "system": "urn:oid:1.2.643.2.69.1.2.1", "value": "254152", <--Order MIS ID "assigner": { "reference": "Organization/a762831e-dd4c-46be-a329-6dd592a14bb6" <--SourceGUID } } ] } } ]
В данном ответе нас интересуют OrderGUID, SourceGUID, Received DateTime:
- Received DateTime – время, когда заявка была передана в сервис
- OrderGUID – GUID заявки, присвоенный сервисом
- SourceGUID – GUID направляющей МО
На основании этих данных можно сделать запрос статуса заявки или запрос результата
Запрос результата по заявке
Запрос результата по заявке делается запросом вида:
GET http://[base]/exlab/api/fhir/OrderResponse?request=Order/[Order GUID] authorization: N3 [token] content-type: application/json
Ответом сервиса является bundle типа searchset, содержащий информацию по результатам (OrderResponse), найденным для указанной в запросе заявки.