Руководство к использованию стандарта FHIR в ЦИСЗ (ВЕТКА release-1-3-t2-08-26-11)
1.3.446 - ci-build

Лабораторные исследования. Взаимодействие МИС – ЦИСЗ

Кейсы

Предусловие: в ЛИС реализован метод API для получения штрихкода

Кейсы в контексте создания направлений (врач, медицинская сестра)

Кейс Последовательность действий Передаваемые ресурсы
1 Создать направление на исследование Найти пациента
Создать и отправить направление на лабораторное исследование в ЦИСЗ
Получить статус импорта пакета медицинской информации
Patient (любого профиля)
FinalDiagnosis
Encounter
ServiceRequest
2 Отменить направление на лабораторное исследование, если оно было создано по ошибке или потеряло актуальность Найти пациента
Найти направления на лабораторные исследования
Выполнить отмену направления, статус “revoked”
Проверить статус направления
Операция изменения статусов: $set-status

Кейсы в контексте медработника производящего забор материала для исследования (процедурная медицинская сестра, врач)

Кейс Последовательность действий Передаваемые ресурсы
1 Произвести забор биологического материала для исследования Найти пациента
Найти направления пациента
Получить из ЦИСЗ идентификатор образца биологического материала
Создать и отправить сведения об образце для исследования
Получить статус импорта пакета медицинской информации
На основе полученного идентификатора, сгенерировать штрихкод, напечатать и наклеить на контейнер с биоматериалом
Patient (любого профиля)
Specimen
2 Отметить образец непригодным к дальнейшему исследованию  Найти направления в статусе active
Найти нужный образец материала для лабораторного исследования
Изменить статус образца  ”unsatisfactory” - непригодный
Проверить статус образца
Уведомить врача, который назначил исследование
Операция изменения статусов: $set-status

Кейсы в контексте получения результатов и истории исследований пациента

Кейс Последовательность действий
1 Получить результаты исследования для конкретного направления Найти пациента
Найти направления пациента (если статус comleted выполнить следующие шаги)
Получить результаты в виде DR для конкретного направления
Получить результаты в виде Observation для конкретного направления
2 Получить все образцы в рамках одной организации со статусом ”unsatisfactory” - непригодный Найти все id образцы  в рамках одной организации со статусом “unsatisfactory” - непригодный
3 Получить историю результатов лабораторных исследований пациента Найти пациента
Найти заключения лабораторных исследований 

Кейсы в контексте проведения исследований в рамках одной организации (процедурная медицинская сестра, врач)

Кейс Последовательность действий Передаваемые ресурсы
1 Передать результаты исследований без направления Найти пациента
Создать и отправить данные  исследований в ЦИСЗ
Patient (любого профиля)
ObservationLabTest
ObservationLabMicroorganism
DiagnosticReportLab

Диаграмма последовательности


sequenceDiagram

 autonumber
    actor P as Пациент
    actor D as Врач
    actor N as Медсестра
    participant M as МИС
    participant R as Сервис маршрутизации
    participant L as ЛИС
    participant I as ЦИСЗ
    

    %% 1. Начало обследования. Создание направления
    Note over P,I: 1. Начало исследования. Создание направления
    P->>D: Обращается за помощью
    D->>M: Выполняет поиск пациента 
    M->>I: GET [FHIR_BASE]/Patient?identifier=1111111A100PB0
    I-->>M:200 OK/total:1 Patient.identifier.value=1111111A100PB0
    M-->>N: Отображается информация о пациенте
    M->>R: GET [INTEGRATION_URL]/Mis/GetMyLaboratories
    R-->>M: Список маршрутов получен
    M-->>N: Отображается информация о доступных 
лабораториях, видах исследований и условиях маршрутизации D->>M: Создаёт направление на исследование M->>M: Сопоставляет поля ServiceRequestLab M->>I: POST [FHIR_BASE]/Bundle/$import
MedicationDocument + Patient + ServiceRequestLab(status=active) + EncounterGeneral+ FinalDiagnosis I-->>M:200 OK/Bundle status 'Successed' %% 2. Подготовка к забору биоматериала Note over P,I: 2. Подготовка к забору биоматериала P->>N: Приходит в процедурный кабинет N->>M: Выполняет поиск пациента M->>I: GET [FHIR_BASE]/Patient?identifier=1111111A100PB0 I-->>M:200 OK/total:1 Patient.identifier.value=1111111A100PB0 M-->>N: Отображается информация о пациенте N->>M: Проверяет наличие активных направлений пациента M->>I: GET [FHIR_BASE]//Patient//ServiceRequest?_profile=https://fhir.by/StructureDefinition/ServiceRequestLab&status=active I-->>M:200 OK/total:1 ServiceRequestLab M->>N: Отображается направление пациента N->>M: Выбирает направление для дальнейшего выполнения процедуры M->>L: Запрашивает штрихкод для образца POST [INTEGRATION_URL]/Mis/GetBarcode L-->>M: Штрихкод получен %% 3. Проведение забора биоматериала Note over P,I: 3. Проведение забора биоматериала N->>M: Выполняет забор образца материала M->>M: Сопоставляет поля SpecimenLab M->>I: POST [FHIR_BASE]/Bundle/$import
MedicationDocument + Patient + SpecimenLab (status=available) I-->>M: 200 OK/Bundle status 'Successed' %% 4. Транспортировка образца материала в лабораторию. Прием образца, выполнение и завершение исследования Note over P,I: 4. Прием образца материала, выполнение и завершение исследования L->>I: POST [FHIR_BASE]/Organization/ORG_ID/ServiceRequest/{id}/$set-status I-->>L: 200 OK change status ServiceRequestLab(status=draft) L->>I: GET [FHIR_BASE]/Organization/ORG_ID/ServiceRequest?_profile=https://fhir.by/StructureDefinition/ServiceRequestLab&
status=draft&performer=Organization/ORG_ID&authoredOn=ge2026-01-06&authoredOn=le2026-01-31 I-->>L: 200 OK/total:1 ServiceRequestLab(status=draft) L->>I: GET [FHIR_BASE]/Organization/ORG_ID/Specimen?_profile=https://fhir.by/StructureDefinition/SpecimenLab&based-on=ServiceRequest/SR_ID I-->>L: 200 OK/total:1 SpecimenLab(status=available) L->>L: Выполняют поиск емкости с образцом материала по штрихкоду L->>I: POST [FHIR_BASE]/Organization/ORG_ID/ServiceRequest/{id}/$set-status I-->>L: 200 OK change status ServiceRequestLab(status=on-hold) L->>L: Выполняет исследование и получают значения показателей L->>I: POST [FHIR_BASE]/Bundle/$import
MedicationDocument + Patient + ObservationLabTest(status=final) + DiagnosticReportLab(status=final) I ->> I: change status ServiceRequestLab(status=completed) I ->> I: change status SpecimenLab(status=unavailable) I-->>L: 200 OK/Bundle status 'Successed'

Процесс лабораторного исследования.

  1. Пациент обращается за медицинской помощью в учреждение здравоохранения.
  2. Врач инициирует поиск пациента.
  3. МИС отправляет в ЦИСЗ запрос на поиск пациента по идентификатору.
  4. Возвращается ресурс Patient, соответствующий указанному идентификатору.
  5. Медсестре отображается информация о пациенте.
  6. МИС запрашивает у сервиса маршрутизации информацию, о доступных лабораториях, видах исследований и условиях маршрутизации.
  7. Сервис маршрутизации возвращает список маршрутов.
  8. Медсестре отображается информация о доступных лабораториях, видах исследований и условиях маршрутизации.
  9. Врач инициирует создание направления на лабораторное исследование.
  10. В МИС выполняется сопоставление полей ресурса ServiceRequestLab.
  11. МИС выполняет импорт пакета медицинской информации о пациенте в ЦИСЗ: ServiceRequestLab(status=active), Patient, EncounterGeneral, FinalDiagnosis
  12. В ЦИСЗ получен ServiceRequestLab (status=active) и МИС получает подтверждение успешной обработки пакета.
  13. Пациент приходит в процедурный кабинет для сдачи образца материала.
  14. Медсестра инициирует поиск пациента перед забором.
  15. МИС отправляет в ЦИСЗ запрос на поиск пациента по идентификатору.
  16. Возвращается ресурс Patient, соответствующий указанному идентификатору.
  17. Медсестре отображается информация о пациенте.
  18. Медсестра проверяет наличие активных направлений на лабораторные исследования.
  19. МИС отправляет в ЦИСЗ запрос на наличие активных направлений на лабораторные исследования.
  20. Найдено 1 активное направление.
  21. Медсестре отображается активное направление пациента.
  22. Медсестра выбирает направление для дальнейшего выполнения процедуры.
  23. МИС запрашивает штрихкод подразделения лаборатории для маркировки пробирки с образцом материала.
  24. ЛИС возвращает штрихкод для маркировки пробирки с образцом материала.
  25. Медсестра выполняет забор образца материала в процедурном кабинете.
  26. В МИС выполняется сопоставление полей ресурса SpecimenLab.
  27. МИС выполняет импорт пакета медицинской информации о пациенте в ЦИСЗ: Patient, SpecimenLab(status=available).
  28. В ЦИСЗ получен SpecimenLab(status=available) и МИС получает подтверждение успешной обработки пакета.
  29. Работник ЛИС выполняет запрос в ЦИСЗ на изменение направления из статуса active в статус draft «получено ЛИС».
  30. Запрос на смену статуса обработан успешно.
  31. Работник ЛИС выполняет запрос в ЦИСЗ на получение новых направлений со статусом draft «получено ЛИС».
  32. Возвращается ресурс ServiceRequestLab(status=draft).
  33. Работник ЛИС выполняет запрос на получение образца материала, указанного в направлении.
  34. Возвращается ресурс SpecimenLab(status=available).
  35. Работник ЛИС выполняет поиск емкости с образцом материала, доставленным в лабораторию по штрихкоду указанному в образце.
  36. Работник ЛИС выполняет запрос в ЦИСЗ на изменение направления из статуса draft «получено ЛИС» в статус on-hold «в работе в ЛИС».
  37. Запрос на смену статуса обработан успешно.
  38. Работник ЛИС выполняет исследование и получает значения показателей.
  39. Работник ЛИС выполняет импорт пакета медицинской информации о пациенте в ЦИСЗ: Patient, ObservationLabTest, DiagnosticReportLab.
  40. В ЦИСЗ изменяется ServiceRequestLab на статус completed.
  41. В ЦИСЗ изменяется SpecimenLab на статус unavailable.
  42. В ЦИСЗ получен ObservationLabTest со статусом final, DiagnosticReportLab со статусом final и ЛИС получает подтверждение успешной обработки пакета.

Примеры в формате JSON

Скачать Направление на лабораторное исследование

Скачать Образец биоматериала для лабораторного исследования

Скачать Показатели и заключение лабораторного исследования без направления

Логические проверки

№ п/п Ситуация Текст сообщения об ошибке для технических специалистов Текст сообщения об ошибке в человеко-читаемом формате
1 При попытке отправить ресурс ServiceRequest, в котором значение authoredOn больше текущей даты, будет возвращена ошибка: Значение ServiceRequest.authoredOn не может быть больше текущей даты. Дата создания направления не может быть позднее текущей даты.
2 При попытке отправить ресурс ServiceRequest, в котором значение occurrenceDateTime больше значения authoredOn, будет возвращена ошибка: Значение ServiceRequest.occurrenceDateTime не может быть меньше значения ServiceRequest.authoredOn. Дата выполнения услуги не может быть раньше даты создания направления.
3 При попытке отправить ресурс ServiceRequest, в котором значение location не относится к организации, указанной в performer, будет возвращена ошибка: Значение ServiceRequest.location должно соответствовать организации, указанной в ServiceRequest.performer. Указанное место оказания услуги не принадлежит указанной организации. Указанное подразделение оказания услуги не относится к организации, выбранной в качестве исполнителя.
4 Проверяют существует ли Location в контексте Organization Структурное подразделение в ServiceRequest.identifier.assigner.extension(https://fhir.by/StructureDefinition/LocationReference).reference не принадлежит организации ServiceRequest.identifier.assigner.reference. Cтруктурное подразделение оказания услуги не принадлежит организации, присвоившей идентификатор.
5 Ресурс не найден (при обновлении ресурса) Ресурс {resourceType}/{id} не найден. Варианты:
Направление на исследования, выполняемые в лаборатории не найдено.
Образец материала для лабораторного исследования не найден.
Заключение лабораторного исследования не найдено.
Данные показателя лабораторного исследования не найдены
Ресурс не найден.
6 При обновлении статуса в ресурсе ServiceRequest Нельзя перевести ресурс {referenceId} с статусом {oldStatus} в статус {newStatus}. Нельзя перевести направление на исследования, выполняемые в лаборатории со статусом {oldStatus} в статус {newStatus}.
{oldStatus}/ {newStatus}:
active - создано в МИС
draft - получено ЛИС
on-hold - в работе в ЛИС
revoked - отозвано МИС
completed - выполнено
entered-in-error - отменено ЛИС
unknown - неизвестный
7 При обновлении статуса в ресурсе Specimen Нельзя перевести ресурс {referenceId} с статусом {oldStatus} в статус {newStatus}. Нельзя перевести образец материала для лабораторного исследования со статусом {oldStatus} в статус {newStatus}.
{oldStatus} / {newStatus}:
available - биоматериал пригоден
unsatisfactory - имеются проблемы, требуется повторить забор биоматериала
unavailable - биоматериал был использован
entered-in-error - ошибочный
▲ Вверх