Руководство к использованию стандарта FHIR в ЦИСЗ
0.2.6803 - ci-build
| № | Кейс | Перечень основных передаваемых ресурсов | Состав пакета медицинской информации |
|---|---|---|---|
| 1 | Пациент госпитализирован в отделение стационара | Hospitalisation FinalDiagnosis |
В составе MedicationDocument |
| 2 | Пациент переведен из одного отделения в другое в пределах одного стационара | Hospitalisation FinalDiagnosis |
В составе MedicationDocument |
| 3 | Пациент выписан из стационара | Hospitalisation FinalDiagnosis |
В составе MedicationDocument |
FinalDiagnosis ProvenanceDocumentInfoHosp |
|||
| 5 | Пациент обследован в приемном отделении стационара, но показаний к госпитализации выявлено не было | EncounterGeneral AttachDocument FinalDiagnosis |
В составе MedicationDocument |
| № | Кейс | Перечень основных передаваемых ресурсов | Состав пакета медицинской информации |
|---|---|---|---|
| 1 | Направление пациента на лечение в отделение дневного пребывания | ServiceRequestConsult | В составе MedicationDocument |
| 2 | Пациент госпитализирован в отделение дневного пребывания | DayCare MedicationOrder |
В составе MedicationDocument |
| 3 | Пациент выписан из отделения дневного пребывания | DayCare PhysiotherapyProcedure ProcedureFunctDiagn |
В составе MedicationDocument |
Основные положения:
На диаграмме представлена последовательность передачи врачом информации о лечении пациента в условиях стационара в ЦИСЗ.
sequenceDiagram
autonumber
actor Patient as Пациент
actor Pract as Врач приемного отделения
actor Pract1 as Врач отделения № 1
actor Pract2 as Врач отделения № 2
participant Foo as ЦИСЗ
Patient ->> Pract: Обратился в приемное отделение
note over Pract, Foo: Госпитализация пациента №1
Pract ->> Pract: Принимает решение госпитализировать пациента
Pract ->> Foo: Сведения о госпитализации пациента (Hospitalisation_01.status=active)
Patient ->> Pract1: Госпитализирован в отделение №1
note over Pract, Foo: Перевод пациента из отделения №1 в отделение №2
Pract1 ->> Pract1: Принимает решение о переводе пациента в отделение №2
Pract1 ->> Foo: Сведения о госпитализации пациента (Hospitalisation_02.status=active)
Patient ->> Pract2: Переведен в отделение №2
note over Pract, Foo: Выписка пациента из стационара и формирование эпикриза
Pract2 ->> Pract2: Принимает решение о выписке пациента
Pract2 ->> Foo: Сведения о госпитализации пациента (Hospitalisation_03.status=waitlist)
Patient ->> Patient: Выписан домой
Pract2 ->> Foo: Пакет медицинских данных BundleHospitalisation
Порядок действий:
sequenceDiagram
participant Foo as МИС
participant Foo1 as ЦИСЗ
alt ИН пациента известен
note over Foo: Проверка наличия пациента в ЦИСЗ
Foo ->> Foo1 : GET [FHIR_BASE]/Patient?identifier=778838387A893OE7
alt пациент найден
Foo1 -->> Foo : 200 OK/total: 1/Patient.identifier.value=778838387A893OE7
note over Foo: Проверка наличия у пациента ресурса Hospitalisation.status=active
Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/EpisodeOfCare?_profile=https.by/
StructureDefinition/Hospitalisation&status=active
alt ресурс найден
Foo1-->>Foo: 200 OK/total: 1/Hospitalisation_X
note right of Foo : Создание нового случая госпитализации невозможно,
необходимо закрыть предыдущий случай госпитализации
else ресурс не найден
Foo1-->>Foo: 200 OK/total: 0
end
else пациент не найден
Foo1 -->> Foo : 200 OK/total: 0
Foo -> Foo : Create PatientWithIdentificationNumber
end
Foo ->> Foo : Create Hospitalisation_01 + FinalDiagnosis
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + PatientWithIdentificationNumber +
Hospitalisation_01 + FinalDiagnosis
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
else ИН пациента неизвестен
Foo ->> Foo : Create PatientWithoutIdentificationNumber
Foo -> Foo : Create Hospitalisation_01 + FinalDiagnosis
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + PatientWithoutIdentificationNumber +
Hospitalisation_01 + FinalDiagnosis
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
end
sequenceDiagram
participant Foo as МИС
participant Foo1 as ЦИСЗ
note over Foo: Получение созданного ранее ресурса
Hospitalisation_01.status=active
Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/EpisodeOfCare?_profile=https.by/ StructureDefinition/Hospitalisation&status=active
Foo1-->>Foo: 200 OK/total: 1/Hospitalisation_01
Foo ->> Foo : Create Hospitalisation_02 + FinalDiagnosis
note right of Foo: Необходимо разместить ссылку
на полученный ресурс Hospitalisation_01
в элементе Hospitalisation_02.extension[PreviusResourceHospitalisation]
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + Hospitalisation_02. status=active + FinalDiagnosis
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
sequenceDiagram
participant Foo as МИС
participant Foo1 as ЦИСЗ
note over Foo: Получение созданного ранее ресурса
Hospitalisation_02.status=active
Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/EpisodeOfCare?_profile=https.by/StructureDefinition/Hospitalisation&status=active
Foo1-->>Foo: 200 OK/total: 1/Hospitalisation_02
Foo ->> Foo : Create Hospitalisation_02 + FinalDiagnosis
note right of Foo: Необходимо разместить ссылку
на полученный ресурс Hospitalisation_02
в элементе Hospitalisation_03.extension[PreviusResourceHospitalisation]
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + Hospitalisation_02.status=waitlist + FinalDiagnosis
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
sequenceDiagram
participant Foo as МИС
participant Foo1 as ЦИСЗ
note over Foo: Получение идентификатора
электронного документа
Foo ->> Foo1: POST [FHIR_BASE]/$get-document-id
Foo1-->> Foo: 200 OK/identifier:"05-196098789-2025000000000001"
note over Foo: Получение созданного ранее ресурса
Hospitalisation_02.status=watilist
Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/EpisodeOfCare?_profile=https.by/ StructureDefinition/Hospitalisation&status=waitlist
Foo1-->>Foo: 200 OK/total:1/Hospitalisation_03
note over Foo: Получение необходимых ресурсов,
созданных во время госпитализации
loop необходимое количество типов ресурсов
Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/$everithing?start=[startDate]&end=[endDate]& _type=[resourceType]
Foo1-->>Foo: 200 OK/total:n/Resouces...
Foo ->> Foo : Врач выбирает ресурсы для добавления в эпикриз
end
note over Foo: Создание ресурсов, необходимых
для добавления в эпикриз
Foo ->> Foo : Create Resources
Foo ->> Foo : Create BundleHospitalisation
note over Foo,Foo1: Импорт пакета медицинских данных BundleHospitalisation Bundle.identifier. value="05-196098789-2025000000000001"
Foo ->> Foo1 : POST[FHIR_BASE]/BundleHospitalisation
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
sequenceDiagram
participant Foo as МИС
participant Foo1 as ЦИСЗ
alt ИН пациента известен
note over Foo: Проверка наличия пациента в ЦИСЗ
Foo ->> Foo1 : GET [FHIR_BASE]/Patient?identifier=778838387A893OE7
alt пациент найден
Foo1 -->> Foo : 200 OK/total: 1/Patient.identifier.valie=778838387A893OE7
else пациент не найден
Foo1 -->> Foo : 200 OK/total: 0
Foo ->> Foo : Create PatientWithIdentificationNumber
end
Foo ->> Foo : Create Encounter + FinalDiagnosis + AttachDocument
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + PatientWithIdentificationNumber + Encounter + FinalDiagnosis + AttachDocument
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
else ИН пациента неизвестен
Foo ->> Foo : Create PatientWithoutIdentificationNumber
Foo ->> Foo : Create Encounter + FinalDiagnosis + AttachDocument
Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + PatientWithoutIdentificationNumber + Encounter + FinalDiagnosis + AttachDocument
Foo1 -->> Foo : 200 OK/Bundle status 'successed'
end
Основные положения:
На диаграмме представлена последовательность передачи врачом информации о лечении пациента в условиях отделения дневного пребывания в ЦИСЗ.
sequenceDiagram autonumber actor Patient as Пациент actor Pract as Врач отделения
дневного пребывания participant Foo as ЦИСЗ Patient ->> Pract: Обратился в отделение Pract ->> Pract: Составляет план лечения Pract ->> Foo: Сведения о начале лечения (DayCart_01.status=active) loop количество дней лечения Patient ->> Pract: Пришел в отделение Pract ->> Pract: Осмотр пациента opt опционально Pract ->> Foo: Сведения о приеме (EncounterGeneral, ObservationSubjective, ObservationObjective, VitalSignsBy) end end Pract ->> Pract: Выписывает пациента Pract ->> Foo: Сведения об окончании курса лечения (DayCart_02.status=finished)
Порядок действий:
sequenceDiagram participant Foo as МИС participant Foo1 as ЦИСЗ alt пациент является гражданином РБ или имеет вид на жительство note over Foo,Foo1: Получение информации о пациенте по ИН Foo ->> Foo1 : GET [FHIR_BASE]/Patient?identifier=778838387A893OE7 Foo1 -->> Foo : 200 OK/total:1/PatientWithIdentifierNumber else иностранный гражданин/беженец note over Foo,Foo1: Получение информации о пациенте по номеру паспорта иностранного гражданина или удостоверению беженца Foo ->> Foo1 : GET [FHIR-BASE]/Patient?_profile=https//fhir.by/structureDefinition/PatientWithoutIdentifierNumber&identifier:of-type=https://fhir.by/ValueSet/PersonalDocumentType|RCN|123321 Foo1 -->> Foo : 200 OK/total:1/PatientWithoutIdentifierNumber end Foo ->> Foo : Create DayCare_01 + FinalDiagnosis Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + Patient + DayCare_01 + FinalDiagnosis Foo1 -->> Foo : 200 OK/Bundle status 'successed'
sequenceDiagram participant Foo as МИС participant Foo1 as ЦИСЗ note over Foo,Foo1: Получение созданного ранее ресурса DayCare_01.status=active Foo ->> Foo1 : GET [FHIR_BASE]/Patient/[patient_id]/EpisodeOfCare?_profile=https.by/StructureDefinition/DayCare&status=active Foo1-->>Foo: 200 OK/total:1/DayCare_01 note over Foo,Foo1: Получение всех процедур и назначений, выполненных за период лечения Foo ->> Foo1: GET [FHIR_BASE]/Patient/[patientId]/$everything?start=[startDate]&end=[endDate]&_type=Procedure Foo1-->>Foo: 200 OK/total:N/Procedure_01 ... Procedure_N opt если в процессе лечения были изменены назначения лекарственных средст Foo ->> Foo1: GET [FHIR_BASE]/Patient/[patientId]/$everything?start=[startDate]&end=[endDate]&_type=MedicationRequest Foo1-->>Foo: 200 OK/total:N/MedicationRequest_01 ... MedicstionRequest_N end Foo ->> Foo : Create DayCare_02 + FinalDiagnosis note right of Foo: необходимо разместить ссылки:
- на полученный ресурс DayCare_01
- на необходимые ресурсы Procedure
- на MedicationOrder (при необходимости) Foo ->> Foo1 : POST [FHIR_BASE]/Bundle/$import/MedicationDocument + DayCare_02.status=finished Foo1 -->> Foo : 200 OK/Bundle status 'successed'
Скачать пример Пациент госпитализирован в отделение стационара
Скачать пример Пациент переведен из одного отделения в другое в пределах одного стационара
Скачать пример Пациент выписан из стационара
Скачать пример Пациент выписан из стационара (оформление электронного выписного эпикриза)
Скачать пример Направление пациента на лечение в отделение дневного пребывания
Скачать пример Пациент госпитализирован в отделение дневного пребывания
Скачать пример Пациент выписан из отделения дневного пребывания
| № п/п | Ситуация | Текст сообщения об ошибке для технических специалистов | Текст сообщения об ошибке в человекочитаемом формате |
|---|---|---|---|
| 1 | При попытке отправить в составе пакета медицинской информации о пациенте ресурс “Госпитализация”, который ссылается на неактивное направление на госпитализацию, будет возвращена следующая ошибка: | В секции EpisodeOfCare.referralRequest может быть указана ссылка только на активное направление. | В случае госпитализации указана ссылка на неактивное направление на госпитализацию. |
| 2 | При попытке отправить в составе пакета медицинской информации о пациенте ресурс “Лечение в условиях дневного стационара”, который ссылается на неактивное направление на консультацию, первичный или повторный прием, будет возвращена следующая ошибка: | В секции EpisodeOfCare.referralRequest может быть указана ссылка только на активное направление. | В случае лечения в условиях дневного стационара указана ссылка на неактивное направление на консультацию, первичный или повторный прием. |
| 3 | Попытка отправить в составе пакета медицинской информации о пациенте ресурс “Госпитализация” или ресурс “Лечение в условиях дневного стационара” при наличии у этого пациента активных одноименных ресурсов приведет к следующей ошибке: | Ресурс {0} профиля {1} со статусом ‘active’ уже существует для пациента id {2}. Текущее значение id равно {3}. | У пациента уже существуют не оконченные случай госпитализации или случай лечения в отделении дневного пребывания. |
| 4 | При попытке отправить в составе пакета медицинской информации о пациенте ресурс “Госпитализация” или ресурс “Лечение в условиях дневного стационара”, который ссылается на неактивный одноименный ресурс, будет возвращена следующая ошибка: | В ресурсе {0} профиля {1} в секции ‘extension:previusResource’ может быть указана ссылка исключительно на ресурс {2}, у которого статус равен ‘active’. | В случае госпитализации или в случае лечения в условиях дневного стационара должна быть указана ссылка на активный одноименный случай госпитализации или случай лечения в условиях дневного стационара. |
| 5 | Попытка отправить в составе пакета медицинской информации о пациенте ресурс “Госпитализация” или ресурс “Лечение в условиях дневного стационара”, который ссылается на предыдущий ресурс “Госпитализация” или ресурс “Лечение в условиях дневного стационара”, у которого не указан соответствующий профиль (т.е. в случае госпитализации ресурс должен ссылаться на EposodeOfCare профиля Hospitalisation, а в случае лечения в условиях дневного стационара - на EposodeOfCare профиля DayCare), приведет к следующей ошибке: | В ресурсе {0} профиля {1} в секции ‘extension:previusResource’ может быть указана ссылка исключительно на ресурс {2} идентичного профиля. | Случай госпитализации или случай лечения в условиях дневного стационара ссылается на одноименный случай, у которого неверно указан тип профиля (госпитализация или дневной стационар). |
| 6 | При попытке отправить в составе пакета ЭВЭ (электронный выписной эпикриз) ресурс “Госпитализация”, значение статуса которого не равно waitlist, будет возвращена следующая ошибка: | Электронный выписной эпикриз может быть создан исключительно для госпитализации, имеющей статус ‘waitlist’. | В случае госпитализации указано неверное значение статуса при создании выписного эпикриза (необходимое значение статуса - завершенный случай госпитализации). |
| 7 | При попытке в составе ресурса ‘Сводная информация о медработнике и организации - ЭВЭ’ в поле ‘display’ для организации здравоохранения передать значение, которое не соответствует наименованию организации, будет возвращена ошибка: | Поле ‘Provenance.agent:organization.who.display’ должно быть заполнено идентично полю ‘Organization.name`. | В сводной информации о медработнике и организации - ЭВЭ в текстовом поле для организации здравоохранения представлена информация, которая не соответствует наименованию организации здравоохранения. |
| 8 | При попытке в составе ресурса ‘Сводная информация о медработнике и организации - ЭВЭ’ в поле ‘display’ для медицинского работника передать значение, которое не соответствует ФИО медицинского работника, будет возвращена ошибка: | ‘Provenance.agent:practitioner.who.display’ должно быть заполнено идентично полю ‘Prectitioner.name.family. Practitioner.name.given[0] Practitioner.namegiven[1]’ | В сводной информации о медработнике и организации - ЭВЭ в текстовом поле для медицинского работника представлена информация, которая не соответствует ФИО медицинского работника. |
| 9 | При попытке в составе ресурса ‘Сводная информация о медработнике и организации - ЭВЭ’ в поле ‘display’ для роли медицинского работника передать значение, которое не соответствует наименованию должности медицинского работника в ресурсе ‘Роль медицинского работника’, будет возвращена ошибка: | ‘Provenance.agent:practitionerRole.who.display’ должно быть заполнено идентично полю ‘PractitionerRole.extension:practitionerPosition.extension:practitionerPositionType.valueCodeableConcept.coding.display’. | В сводной информации о медработнике и организации - ЭВЭ в текстовом поле для роли медицинского работника представлена информация, которая не соответствует наименованию должности медицинского работника. |
| 10 | При попытке в составе ресурса ‘Сводная информация о медработнике и организации - ЭВЭ’ в поле ‘display’ для структурного подразделения передать значение, которое не соответствует наименованию структурного подразделения, будет возвращена ошибка: | Поле ‘Provenance.location.display’ должно быть заполнено идентично полю ‘Location.name’. | В cводной информации о медработнике и организации - ЭВЭ в текстовом поле для структурного подразделения представлена информация, которая не соответствует наименованию структурного подразделения. |
| 11 | При попытке отправить в составе ресурса ‘Сводная информация о медработнике и организации - ЭВЭ’ ссылки на не связанные между собой ресурсы ‘Медицинский работник’ и ‘Роль медицинского работника’ будет возвращена ошибка: | ‘Provenance.agent:practitioner.who.reference’ должно быть заполнено идентично полю ‘PractitionerRole.practitioner’ для роли, указанной в ‘Provenance.agent:practitionerRole.who.reference’. | Сводная информация о медработнике и организации - ЭВЭ содержит ‘Роль (должность) медицинского работника’, не соответствующую ‘Медицинскому работнику’. |
| 12 | Попытка отправить в составе пакета медицинской информации о пациенте ресурс “Госпитализация” или ресурс “Лечение в условиях дневного стационара”, который ссылается на организацию, не соответствующую организации, указанной в направлении на госпитализацию или в направлении на консультацию, первичный или повторный прием соответственно, будет возвращена ошибка: | Исполнитель госпитализации не соответствует исполнителю из направления. | Организация здравоохранения в случае госпитализации или в случае лечения в условиях дневного стационара должна соответствовать организации, указанной в направлении на госпитализацию или в направлении на консультацию, первичный или повторный прием соответственно. |
| 13 | При попытке отправить в составе пакета ЭВЭ (электронный выписной эпикриз) ресурс “Госпитализация”, который не был ранее импортирован в ЦИСЗ, будет возвращена ошибка: | В электронном выписном эпикризе должен быть передан ранее созданный ресурс госпитализации. | Случай госпитализации отсутствует в ЦИСЗ. |