Руководство к использованию стандарта FHIR в ЦИСЗ
0.2.7245 - ci-build

Методы ЕАМИ

Кейсы

Взаимодействие ЕАМИ ↔ МИС (исследование в формате DICOM):

  1. Пациент приходит к врачу;
  2. Врач открывает в МИС карточку пациента;
  3. Врач проводит осмотр и создает направление на визуальное исследование;
  4. МИС формирует ServiceRequestImaging и направляет в ЦИСЗ. ServiceRequestImaging создается со статусом status = active;
  5. Пациент приходит в медицинское учреждение для проведения диагностического обследования;
  6. МИС запрашивает в ЦИСЗ список ServiceRequestImaging в контексте пациента;
  7. Лаборант берет в работу направление. Следует учесть, что статус направления active свидетельствует о том, что исследование по этому направлению еще не проводилось. Рекомендуется брать в работу только их, чтобы лишний раз не облучать пациента;
  8. Пациенту проводят диагностическое исследование. Для удобного поиска исследований в центральном хранилище рекомендуется на аппарате в PatientID указывать карточку пациента в МИС;
  9. Во время исследования PACS в медицинском учреждении загружает исследование в PACS-ЦИСЗ;
  10. По окончании проведения исследования лаборант запрашивает список загруженных в PACS исследований по пациенту в МИС;
  11. МИС делает запрос в ЦИСЗ по поиску ImagingStudyBasic. Рекомендуется делать запрос в контексте организации с указанием даты исследования и PatientID;
  12. Лаборант выбирает из полученного списка исследование, принадлежащее нашему пациенту;
  13. МИС формирует ImagingStudyBy с статусом registered на основании списка ImagingStudyBasic по выбранному исследованию и направляет в ЦИСЗ;
  14. В ЦИСЗ ресурс ServiceRequestImaging, на который ссылается созданный ImagingStudyBy, меняет статус на status = on-hold;
  15. Врач-диагност открывает в МИС список исследований, которые ему необходимо описать;
  16. МИС осуществляет поиск в ЦИСЗ всех ресурсов ImagingStudyBy со статусом status = registered;
  17. Врач-диагност выбирает исследование и проходит по ссылке, открывающей DICOM Viewer;
  18. Врач-диагност описывает исследование и делает заключение в МИС. Также врач-диагност может сохранить аннотации на исследование в DICOM Viewer. Врач-диагност имеет возможность запросить второе мнение на момент создания заключения;
  19. МИС формирует ImagingDiagnosticReport в ЦИСЗ. Если врач-диагност запросил второе мнение, то созданный ImagingDiagnosticReport должен иметь статус status = preliminary. В ином случае ImagingDiagnosticReport должен иметь статус status = final;
  20. ЦИСЗ изменяет статус ServiceRequestImaging на значение status = completed в тот момент, когда создается ресурс ImagingDiagnosticReport со статусом status = final со сылкой на этот ресурс;
  21. Пациент может просмотреть свои заключения в “Личном кабинете пациента”.

Взаимодействие ЕАМИ ↔ МИС (исследование в формате JPEG/PNG/TIFF):

  1. Пациент приходит к врачу;
  2. Врач открывает в МИС карточку пациента;
  3. Врач проводит осмотр и создает направление на визуальное исследование;
  4. МИС формирует ServiceRequestImaging и направляет в ЦИСЗ. ServiceRequestImaging создается со статусом status = active;
  5. Пациент приходит в медицинское учреждение для проведения диагностического обследования;
  6. Лаборант открывает карточку пациента в МИС, открывает список направлений;
  7. МИС запрашивает в ЦИСЗ список ServiceRequestImaging в контексте пациента;
  8. Лаборант берет в работу направление. Следует учесть, что статус направления active сведетельствует о том, что исследование по этому направлению еще не проводилось. Рекомендуется брать в работу только их, чтобы лишний раз не облучать пациента;
  9. Пациенту проводят диагностическое исследование;
  10. По окончанию проведения исследования лаборант загружает в PACS-ЦИСЗ медицинское изображение;
  11. МИС формирует ImagingStudyBy со статусом registered на загруженные исследования и направляет в ЦИСЗ;
  12. В ЦИСЗ ресурс ServiceRequestImaging, на который ссылается созданный ImagingStudyBy, меняет статус на значение status = on-hold;
  13. Врач-диагност открывает в МИС список исследований, которые ему необходимо описать;
  14. МИС осуществляет поиск в ЦИСЗ всех ресурсов ImagingStudyBy со статусом status = registered;
  15. Врач-диагност выбирает исследование и проходит по ссылке, открывающей DICOM Viewer;
  16. Врач-диагност описывает исследование и делает заключение в МИС. Также врач-диагност может сохранить аннотации на исследование в DICOM-Viewer. Врач-диагност имеет возможность запросить второе мнение на момент создания заключения;
  17. МИС формирует ImagingDiagnosticReport в ЦИСЗ. Если врач-диагност запросил второе мнение, созданный ImagingDiagnosticReport должен иметь статус status = preliminary.  В ином случае ImagingDiagnosticReport должен иметь статус status = final;
  18. ЦИСЗ изменяет статус ServiceRequestImaging на значение status = completed в тот момент, когда создается ресурс ImagingDiagnosticReport со статусом status = final со сылкой на этот ресурс.

Порядок работы с Device и DeviceDefinition

Создание ресурсов:

  1. Для добавления нового устройства в ЦИСЗ администратору ОЗ необходимо предоставить весь необходимый для создания ресурса Device набор данных. При необходимости добавления DICOM-принтера также необходимо указать значения для создания DeviceDefinition.

  2. Если добавляемое устройство DICOM-принтер:
    • администратор ОЗ запрашивает список имеющихся DeviceDefinition по своей организации;
    • если уже существует DeviceDefinition с нужными параметрами – используется его ссылка, если нет – администратор ОЗ создает новый DeviceDefinition.
  3. Администратор ОЗ создает ресурс Device в ЦИСЗ. Если к Device был создан DeviceDefinition – ссылка на ресурс указывается в Device.

Использование Device:

  1. Данный ресурс используется на момент создания ресурса ImagingStudy как устройство, на котором было произведено исследование.
  • перед созданием ImagingStudy МИС опрашивает ЦИСЗ на получение ресурса Device по организации и AETitle устройства. Если устройство не найдено, МИС необоходимо сообщить об этой ошибке врачу, описывающему ImagingStudy.
  1. Данный ресурс используется DICOM Viewer для печати на DICOM-принтере:
    • DICOM Viewer запрашивает в ЦИСЗ список Device;
    • медицинский работник выбирает из списка Device нужный;
    • DICOM Viewer запрашивает в ЦИСЗ список DeviceDefinition для выбранного Device;
    • медицинский работник выбирает нужные параметры печати из DeviceDefinition и отправляет на печать.

Примечание:

При передаче DICOM-ов в центральный PACS по TCP в DICOM в теге (0008,0080) LO Institution Name необходимо передавать OrganizationID из НСИ. Для этого необходимо вызвать инженера, обслуживающего локальный PACS или диагностический аппарат, и попросить его установить значение этого тэга.

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

Диаграмма взаимодействия ЕАМИ ↔ МИС (исследование в формате DICOM)


sequenceDiagram
    participant P as Пациент
    participant D as Врач
    participant M as МИС
    participant C as ЦИСЗ
    participant L as Лаборант
    participant PAC as PACS
    participant PCIS as PACS-ЦИСЗ
    participant VD as Врач-диагност
    participant DV as DICOM Viewer
    participant VD2 as Врач-диагност
(второе мнение) Note over P,VD: 1. Инициация обследования P->>D: Обращается за помощью D->>M: Открывает карточку пациента D->>M: Создает направление на исследование M->>C: Формирует ServiceRequestImaging (status: active) Note over P,VD: 2. Подготовка к обследованию P->>L: Приходит в мед. учреждение L->>M: Открывает карточку пациента L->>M: Запрашивает список направлений пациента M->>C: Запрашивает ServiceRequestImaging C-->>M: Возвращает список направлений с статусами M->>L: Показывает список направления пациента L->>M: Берет в работу направление Note over P,VD: 3. Проведение исследования L->>PAC: Проводит диагностическое исследование Note right of L: PatientID = карточка МИС PAC->>PCIS: Загружает исследование в PACS-ЦИСЗ PCIS-->>C: Отправляет на сохранение метадату исследования C->>C: Сохраняет метадату в ресурс ImagingStudyBasic Note over P,VD: 4. Обработка результатов L->>M: Запрашивает список загруженных исследований M->>C: Поиск ImagingStudyBasic (по assigner, created, patient-id) C-->>M: Возвращает список ImagingStudyBasic M->>L: Показывает список непривязанных исследований по запросу L->>M: Выбирает исследование пациента Note over P,VD: 5. Создание и регистрация M->>C: Формирует ImagingStudyBy C->>C: Изменяет ServiceRequestImaging (status: on-hold) Note over P,VD: 6. Диагностическое описание P->>C: Просматривает список исследований в ЛКП, может скачать свое VD->>M: Открывает список исследований (status: registered) M->>C: Поиск ImagingStudyBy (status: registered) C-->>M: Возвращает список исследований VD->>M: Выбирает исследование M->>DV: Открывает DICOM Viewer Note over P,VD: 7. Формирование заключения VD->>DV: Просматривает и анализирует изображения VD->>DV: Сохраняет аннотации (опционально) VD->>M: Создает ImagingDiagnosticReport Note over VD,VD: Запрашивает второе мнение (опционально) Note over P,VD: 8. Финальная обработка alt Второе мнение запрошено M->>C: Создает ImagingDiagnosticReport (status: preliminary) Note over VD2,VD2: ПОВТОРЕНИЕ ШАГОВ 6-8
для второго мнения VD2->>M: Создает ImagingDiagnosticReport (второе мнение) M->>C: Создает ImagingDiagnosticReport (status: final) else Второе мнение не запрошено M->>C: Создает ImagingDiagnosticReport (status: final) end C->>C: ServiceRequestImaging (status: completed)
ImagingStudyBy (status: available) Note over P,VD: Завершение процесса P->>C: Просматривает список заключений в ЛКП

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


sequenceDiagram
    alt При необходимости создания DeviceDefinition
        Администратор ОЗ->>ЦИСЗ: Запрашивает список DeviceDefinition
        Администратор ОЗ->>ЦИСЗ: Создает DeviceDefinition(если нет нужного)
    end
    Администратор ОЗ->>ЦИСЗ: Создает Device

    opt Создание ImagingStudy
        МИС->>ЦИСЗ: Запрашивает Device по организации и AETitle
        ЦИСЗ->>МИС: Отдает Device
        МИС->>ЦИСЗ: Ссылается на конкретный Device при создании ImagingStudy
    end

    opt Печать на DICOM-принтере
        DICOM Viewer->>ЦИСЗ: Запрашивает список Device
        ЦИСЗ->>DICOM Viewer: Отдает список Device
        DICOM Viewer->>ЦИСЗ: Запрашивает DeviceDefinition по Device
        ЦИСЗ->>DICOM Viewer: Отдает DeviceDefinition
        DICOM Viewer->>DICOM-принтер: Отправляет на печать DeviceImagingStudy
    end

Диаграмма последовательности: просмотр исследования врачом в DICOM Viewer


sequenceDiagram
    participant Пациент
    participant Врач
    participant МИС
    participant ЦИСЗ
    participant DICOM Viewer

    Пациент->>Врач: Пришел на прием
    Врач->>МИС: Открыть карточку пациента
    МИС->>ЦИСЗ: Запросить список исследований пациента
    ЦИСЗ-->>МИС: Список исследований
    МИС->>Врач: Отобразить список исследований
    Врач->>МИС: Выбрать исследование и нажать "открыть"
    МИС->>DICOM Viewer: Открыть исследование в новой вкладке
    DICOM Viewer->>Врач: Отобразить исследование

Операции изменения и отмены статуса ресурса

Операция изменения и отмены статуса ресурса ServiceRequest

Метод: POST  
URL: [FHIR_BASE]/{compartmentType}/{compartmentResourceId}/ServiceRequest/{id}/$set-status  
Авторизация: Bearer <access_token>  

Описание: Операция позволяет изменить статус ресурса ServiceRequestImaging. Может выполняться в контексте организации. При переводе статуса в revoked (отмена направления) обязательно передаётся параметр declineReason с причиной отмены.

Тело запроса передаётся в виде ресурса Parameters. Входные параметры (path):

№ Обозначение Тип данных Обязательность Наименование Пример
1 compartmentType string 1..1 Тип контекста (Organization) “Organization”
2 compartmentResourceId string 1..1 Идентификатор контекста “a1a103d1-bf02-4c95-818a-3e3bc32cabe0”
3 id string 1..1 Идентификатор ресурса ServiceRequestImaging “mi-6f7e619e-b4a6-11f0-9a35-6655202d800b”

Пример запроса на изменение статуса:

Body:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "status",
      "valueCode": "[status_code]"
    }
  ]
}

Пример запроса на отмену:

Body:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "status",
      "valueCode": "revoked"
    },
    {  
      "name": "declineReason",  
      "valueCode": "refusal"  
    }  
  ]
}

Выходные параметры:

№ Обозначение Тип данных Наименование
1 return OperationOutcome Операция возвращает ресурс OperationOutcome, который может содержать информацию об успешном выполнении операции или перечень ошибок, которые возникли при получении запроса на выполнение операции или в результате ее выполнения

Результат выполнения:

  • В случае успешного выполнения операции система возвращает ресурс ServiceRequestImaging с информацией об успешном выполнении изменения статуса направления HTTP-code 200 OK.
  • В случае ошибки возвращается ресурс OperationOutcome с информацией об ошибке.

Пример успешного выполнения изменения статуса:

{
"resourceType": "OperationOutcome",
"issue": [
  {
    "severity": "success",
    "code": "success",
    "details": {
      "text": "Статус ресурса {ServiceRequest_Id} успешно изменен на {status_code}" 
      }
    }
  ]
}

Пример изменения статуса с информацией об ошибке (при отмене отсутствует declineReason):

{
"resourceType": "OperationOutcome", 
"issue": [
  {
    "severity": "error",
    "code": "invalid", 
    "details": {
      "text": "При установки статуса 'revoked', должен быть указан единственный name = 'declineReason'."
            },
            "diagnostics": "При обработке запроса произошла ошибка на стороне МИС."
        }
    ]
}

Автоматические изменения статусов:

  1. При создании ресурса ImagingStudyBy статус связанного ресурса ServiceRequestImaging автоматически изменяется на on-hold.
  2. При создании ресурса DiagnosticReport со статусом preliminary статусы ресурсов ImagingStudyBy и ServiceRequestImaging не изменяются.
  3. При создании ресурса DiagnosticReport со статусом final статус ресурса ImagingStudyBy автоматически изменяется на available, а ServiceRequestImaging — на completed.

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

№ п/п Ситуация Текст сообщения об ошибке для технических специалистов Текст сообщения об ошибке в человекочитаемом формате error/warning
1 При вызове api/metadata/Get, значение Conditions пустое. Не заданы параметры поиска. Не заданы параметры поиска. error
2 Создание ImagingStudy c status != registered. Запрещено создание ImagingStudy.status != ‘registered’. Набор изображений исследования должен быть в статусе ‘изображения загружены, заключение ещё не сформировано’. error
3 Создание ServiceRequest c status != active. Запрещено создание ServiceRequest.status != ‘active’. Направление на визуальное исследование должно быть в статусе ‘не производилось исследование’. error
4 Создание DiagnosticReport.status != (preliminary or final). DiagnosticReport должен иметь статус preliminary или final. Статус в заключении диагностического исследования должен быть ‘в работе, требует подтверждения’ или ‘окончательное заключение’. error
5 Создание ServiceRequest.priority != (routine or urgent). ServiceRequest.priority должен быть либо ‘Routine’ либо ‘Urgent’. Приоритет выполнения в направлении на визуальное исследование должен быть ‘плановый’ или ‘срочный’. error
6 При обращении:
Device/$set-status не в контексте organization
ServiceRequest/$set-status не в контексте organization
Установка статуса доступна только в контексте организации. При обработке запроса произошла ошибка на стороне МИС. error
7 Во время создания ImagingStudy, не были найдены метаданные Изображения с dicomIds = [ {notLoadedDicomIds} ] не загружены. Произошла ошибка. Изображения не загружены. error
8 При создании ImagingStudy, если ImagingStudy.basedOn
(ServiceRequest).status = completed.
Не удается добавить ImagingStudy, поскольку ServiceRequest.id = ‘{serviceRequestId}’ имеет status = ‘completed’. Не удается добавить набор изображений исследования, поскольку направление на визуальное исследование имеет статус ‘проведено исследование и готово заключение’. error
9 При вызове Meta/Add, basic уже существует (по study-instance-uid, series-instance-uid, sop-instance-uid). Basic c такими свойствами уже существует. Метаданные переданных медицинских изображений с такими свойствами уже существует. error
10 При вызове ImagingStudy/{id}/$updateState, Parameters.parameter.count = 0 Не указаны параметры. Не указаны параметры. error
11 ImagingStudy/{id}/$updateState
Device/{id}/$set-status
ServiceRequest/{id}/$set-status
Ресурс {resourceType}/{id} не найден. ServiceRequest: Направление на визуальное исследование не найдено.
Device: DICOM-устройство не найдено.
ImagingStudy: Набор изображений исследования не найдено
Basic: Метаданные переданных медицинских изображений не найдены.
DeviceDefinition: Описание DICOM принтера не найдено.
DiagnosticReport: Заключение диагностического исследования не найдено.
other: Ресурс не найден.
error
12 Если в area несколько профилей ServiceRequest/Device, а set-status ограничен определенными профилями $set-status доступен для {profile}. При обработке запроса произошла ошибка на стороне МИС. error
13 При вызове Device/{id}/$set-status, где status != (active or inactive) Нельзя сменить на статус ‘{status}’. Разрешено изменять на статусы ‘active’ и ‘inactive’. Разрешено изменять на статусы ‘активный’ и ‘неактивный’. error
14 При вызове:
ServiceRequest/{id}/$set-status - контекст организации не совпадает с departmentIds
Device/{id}/$set-status
Контекст организации не совпадает с departmentIds
device.owner не совпадает с контекстом организации
Изменение статуса ServiceRequest разрешено только в рамках своей организации. При обработке запроса произошла ошибка на стороне МИС. error
15 При вызове Meta/Add
Один из:
modality
series-instance-uid
sop-instance-uid
sop-class-uid
patient-id
study-instance-uid
institution-id
Отсутствуют обязательные данные: {requiredParams}. Отсутствуют обязательные данные: {requiredParams}. error
16 Было указано >1 или не указан name в Parameters.parameter
ImagingStudy/{id}/$updateState → imageState
Device/{id}/$set-status → status
ServiceRequest/{id}/$set-status → status, declineReason
Parameters.parameter должен содержать единственный parameter.name = ‘{name}’. При обработке запроса произошла ошибка на стороне МИС. error
17 Указан не верный тип value
ImagingStudy/{id}/$updateState → imageState
Device/{id}/$set-status → device
ServiceRequest/{id}/$set-status → status, declineReason
Значение в name = ‘{name}’, должно быть указано в valueCode. При обработке запроса произошла ошибка на стороне МИС. error
18 При установке статуса ServiceRequest ‘revoked’ не указан единственный параметр ‘declineReason’. При установки статуса ‘revoked’, должен быть указан единственный name = ‘declineReason’. При обработке запроса произошла ошибка на стороне МИС. error
19 Значение не по справочнику
ImagingStudy/{id}/$updateState → imageState
Device/{id}/$set-status → status
ServiceRequest/{id}/$set-status → status, declineReason
Неизвестное значение valueCode = ‘{code}’. При обработке запроса произошла ошибка на стороне МИС. error
20 В Parameters.parameter передано не верное кол-во parameter
ImagingStudy/{id}/$updateState
Device/{id}/$set-status
ServiceRequest/{id}/$set-status
Задано неверное количество Parameters.parameter ({parameterCount}), ожидалось {expectedParameters}. При обработке запроса произошла ошибка на стороне МИС. error
21 ServiceRequest/{id}/$set-status status должен быть только revoked. ServiceRequest.status нельзя изменить на ‘{status}’. Ожидается ‘revoked’. Изменять статус в направлении на визуальное исследование можно только на ‘отменено’. error
22 Установка статуса не соответствует типу ресурса ServiceRequest или Device. $set-status для ‘{resourceType}’ не поддерживается. При обработке запроса произошла ошибка на стороне МИС. error
▲ Вверх