Руководство к использованию стандарта FHIR в МИС2
0.5.0 - ci-build
Руководство к использованию стандарта FHIR в МИС2 - Local Development build (v0.5.0). See the Directory of published versions
Данное руководство разъясняет основные правила использования всех видов направлений, например на консультацию, анализы, исследования и т.д. Специфика льготного стационарного направляния описана в отдельном приложении. Артефакты содержат детальную спецификацию UZBaseServiceRequest и примеры.
Каждый FHIR ресурс ДОЛЖЕН содержать тип ресурса (“resourceType”) и информацию о профиле (“meta.profile”).
"resourceType": "ServiceRequest",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBaseServiceRequest"
]
}
Запрос на создание направления должен быть направлен на FHIR endpoint, например в среде разработки на: https://mis.kodality.dev/fhir/ServiceRequest. В запросе следует:
При успешном создании endpoint вернёт код 20Х. При ошибке 40Х. Например запрос на создание направления дольен вернуть HTTP code = 201 Created.
По умолчанию возвращется ссылка на созданный ресурс в заголовке “Location”
Location: http://mis.kodality.dev/fhir/ServiceRequest/7704
и тело созданного ресурса не не возвращается. При необходимости вы можете переопределить поведение по умолчанию заголовком “Prefer”.
Различные категории описаны в классификаторе категорий направлений. Направление на анализы:
"category" : [
{
"coding" : [
{
"system" : "https://tx.ssv.uz/fhir/ValueSet/service-request-category",
"code" : "108252007",
"display" : "Лабораторное исследование"
}
]
}
]
Направление на льготное стационарное лечение должно содержать код 000000001.
"category" : [
{
"coding" : [
{
"system" : "https://tx.ssv.uz/fhir/ValueSet/service-request-category",
"code" : "000000001",
"display" : "Imtiyozli davolanish"
}
]
}
]
Ссылка на пациента задаётся в поле subject. Ссылка может быть задана тремя спосабами: 1) ссылка на пациента в МИС2
"subject" : {
"reference" : "Patient/123"
}
2) ссылка на пациента в МИС1
"subject" : {
"reference" : "https://mis.ssv.uz/Patient/92853-tjh46-m34j64-jh354"
}
3) используя натуральный идентификатор пациента
"subject" : {
"type": "Patient",
"identifier": {
"system": "urn:pin:ssv.uz:pid:ni:uzb",
"value": "31002736540023"
}
}
Информация о заказчике передаётся в поле requester. Информация об заказчике должна содержать организацию, специалиста, а также может содержать специальности и контактные данные - телефон и э-почту. Информацию об заказчике необходимо передавать в виде contained рессурса.
"contained": [
{
"resourceType" : "PractitionerRole",
"id" : "requester",
"practitioner" : {
"reference" : "Practitioner/cd005f03-3ae4-48e6-b01c-ea46e49a12e4",
"display" : "Aibolit"
},
"organization" : {
"reference" : "Organization/75074647-87c6-48d8-b7cc-f6446e252461",
"display" : "IT-Med Hospital"
}
}
],
"requester" : {
"reference" : "#requester",
"display" : "Dr Aibolit @ IT-Med"
},
Информация об испольнителе заказа передаётся в поле performer. Информация об исполнителе должна содержать организацию испольнителя, а также может содержать информацию об специальности исполнителя, конкретного врача или услугу. Информацию об организации, враче и/или специальности необходимо передавать в виде contained рессурса. Информацию об услуге надо передавать ссылкой на услугу в HealthcareService. NB! Льготный диагноз также опысывается как услуга!
"contained": [
{
"id": "performer",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBasePractitionerRolePerformer"
]
},
"resourceType": "PractitionerRole",
"organization": {
"reference": "Organization/37007889-eabc-42a9-83a2-136e7a105cb8"
}
}
],
"performer" : [
{
"reference" : "#performer",
"display" : "IT-Med Hospital"
},
{
"reference" : "HealthcareService/hs2",
"display" : "Услуга '1024' @ IT-Med"
}
],
Информация о диагнозе (МКБ-10) записывается в поле reasonReference. Для этого диагноз должен быть предварительно записан в виде отдельного ресурса.
"reasonReference" : [
{
"reference" : "Condition/condition1"
}
],
Как альтернатива данные об диагнозе можно записать кодом диагноза. В таком случае этот диагноз будет только на направлении и его не будет видно в истории болезни пациента.
"reasonReference" : [
{
"identifier" : {
"system": "https://tx.ssv.uz/fhir/ValueSet/icd10-uz",
"code": "F15.2",
"display": "Синдром зависимости"
}
}
]
Медицинская информация передаётся в поле supportingInfo. Информация включает анамнез (код 72185-2), клинический осмотр (75321-0), лечение (18776-5), которые передаются ввиде contained ресурсы типа ClinicalImpression.
"contained": [
{
"id": "anamnesis",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBaseClinicalImpressionAnamnesis"
]
},
"resourceType": "ClinicalImpression",
"status": "completed",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "72185-2",
"display": "Medical history"
}
]
},
"subject": {
"reference": "https://test-api.ssv.uz/v2/Patient/4ebb1581-955a-4a67-9ed8-532dd7789d3d"
},
"summary": "Жалобы и анамнез\n123"
},
{
"id": "finding",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBaseClinicalImpressionFinding"
]
},
"resourceType": "ClinicalImpression",
"status": "completed",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "75321-0",
"display": "Clinical finding"
}
]
},
"subject": {
"reference": "https://test-api.ssv.uz/v2/Patient/4ebb1581-955a-4a67-9ed8-532dd7789d3d"
},
"summary": "Клинический осмотр\n123"
},
{
"id": "treatment",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBaseClinicalImpressionTreatment"
]
},
"resourceType": "ClinicalImpression",
"status": "completed",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "18776-5",
"display": "Plan of care note"
}
]
},
"subject": {
"reference": "https://test-api.ssv.uz/v2/Patient/4ebb1581-955a-4a67-9ed8-532dd7789d3d"
},
"summary": "Назначенное лечение\n123"
}
],
"supportingInfo": [
{
"reference": "#anamnesis",
"type": "ClinicalImpression"
},
{
"reference": "#finding",
"type": "ClinicalImpression"
},
{
"reference": "#treatment",
"type": "ClinicalImpression"
}
]
Примечание к направлению передается с поле note.
"note": [
{
"text": "Примечание 123"
}
]
Информация о льготах связанных с направлением также передаётся в поле supportingInfo, ввиде contained ресурсов типа Observation.
"contained": [
{
"id": "benefit-2",
"meta": {
"profile": [
"https://ssv.uz/fhir/StructureDefinition/UZBaseSociaHistoryBenefit"
]
},
"resourceType": "Observation",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "social-history"
}
]
}
],
"code": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "224192004",
"display": "Benefit status"
}
]
},
"subject": {
"reference": "https://test-api.ssv.uz/v2/Patient/4ebb1581-955a-4a67-9ed8-532dd7789d3d"
},
"valueCodeableConcept": {
"coding": [
{
"system": "https://tx.ssv.uz/fhir/ValueSet/patient-benefit",
"code": "benefit-2"
}
]
}
}
],
"supportingInfo": [
{
"reference": "#benefit-2",
"type": "Observation"
}
]
Для описание состояния направлений используется статус и фаза. Список поддерживаемых статусов описан в классификаторе статусов направлений.
graph TD
draft -->|Confirm| active
draft -->|Edit| draft
active --> |Create new version| active
active --> |Use, Complete| completed
active --> |Cancel| revoked
Для Список поддерживаемых статусов описан в классификаторе фаз направлений. Фаза направлений является информативной и вычисляется автоматически. Изменение фазы происходит с помошью операций.
Направление, сохранённое через интеграцию, считается проверенным на льготы и начинает с фазы waiting-documentation-check
NB! МИС2 не использует поле intent. Поскольку поле по стандарту FHIR обязательно, то рекоммендуемым значением является order. При необходимости можете использовать это поле для своих целей.
В дополнение к стандартным действиям (создание - POST, изменение - PUT, отмена - DELETE) МИС2 предлагает целый ряд операций изменяющих статус и фазу направления
Описание | Операция | Параметры |
---|---|---|
Вернуть в режим изменения | POST /ServiceRequest/${id}/$reclaim-edit | |
Начать изучение документации / заблокировать режим изменения | POST /ServiceRequest/${id}/$start-treatment-check | |
Подтвердить соответствие документации требованиям | POST /ServiceRequest/${id}/$confirm-treatment | |
Отказать в лечении и отправить направление обратно | POST /ServiceRequest/${id}/$reject-treatment | reason |
Направить в другую организацию | POST /ServiceRequest/${id}/$reflex-treatment | reason |
Начать лечение / Использовать направление | POST /ServiceRequest/${id}/$start-fulfillment | |
Отменить лечение | POST /ServiceRequest/${id}/$revert-fulfillment | |
Закончить лечение / направление | POST /ServiceRequest/${id}/$complete | |
Отменить завершение лечения | POST /ServiceRequest/${id}/$revert-complete |
graph TD
mis1[(mis1)] -- льготное? --> A{ }
A -- нет --> waiting-fulfillment
A -- да --> waiting-documentation-check
waiting-documentation-check -- $start-treatment-check --> in-documentation-check
waiting-documentation-check -- $reclaim-edit --> mis1
in-documentation-check -- $reject-treatment --> rejected
in-documentation-check -- $reflex-treatment --> reflected
rejected -- $reclaim-edit --> mis1
in-documentation-check -- $confirm-treatment --> waiting-fulfillment
reflected -. новое направление .-> waiting-documentation-check
waiting-fulfillment -- $start-fulfillment --> fulfillment
fulfillment -- $complete --> completed