Руководство к использованию стандарта 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'
Процесс лабораторного исследования.
Patient, соответствующий указанному идентификатору.ServiceRequestLab.active), Patient, EncounterGeneral, FinalDiagnosisServiceRequestLab (status=active) и МИС получает подтверждение успешной обработки пакета.Patient, соответствующий указанному идентификатору.SpecimenLab.Patient, SpecimenLab(status=available).SpecimenLab(status=available) и МИС получает подтверждение успешной обработки пакета.active в статус draft «получено ЛИС».draft «получено ЛИС».ServiceRequestLab(status=draft).SpecimenLab(status=available).draft «получено ЛИС» в статус on-hold «в работе в ЛИС».Patient, ObservationLabTest, DiagnosticReportLab.ServiceRequestLab на статус completed.SpecimenLab на статус unavailable.ObservationLabTest со статусом final, DiagnosticReportLab со статусом final и ЛИС получает подтверждение успешной обработки пакета.Скачать Направление на лабораторное исследование
Скачать Образец биоматериала для лабораторного исследования
Скачать Показатели и заключение лабораторного исследования без направления
| № п/п | Ситуация | Текст сообщения об ошибке для технических специалистов | Текст сообщения об ошибке в человеко-читаемом формате |
|---|---|---|---|
| 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 - ошибочный |