Medlinx

Medlinx

  • Интеграция
  • Интеграция ЛИС
  • Авторизация и права доступа
  • FAQ

›Часто задаваемые вопросы

Часто задаваемые вопросы

  • Работа с сервером
  • Авторизация
  • Кодовые системы
  • Формирование заказа
  • Предзаказ
  • Справочная информация
  • Получение результатов

Часто задаваемые вопросы по формированию заказа

Есть исследование, его можно делать по разным БМ (или по всем сразу)?

По одному, если нужно 2 исследования, то добавляете в корзину 2 разных исследования с разным БМ.

Для связи сущностей в fhir/$CreateDiagnosticRequest используются ссылки "reference" : "urn:uuid:d5437d23-e414-4ab3-ad00-9367f15a3d00". Где взять эти uuid?

Эти ссылки создает контрагент при создании Bundle. Коды должны представлять из себя Guid (Uuid) и быть согласованными в рамках Bundle. При сохранении ресурсов им будут присвоены другие идентификаторы. Данные идентификаторы используются только для построения связей внутри одного Bundle.

Как выглядят локальные ссылки внутри Bundle и как получить идентификатор в сервере для внешнего взаимодействия?

Ссылки вида:

"subject": {
    "reference": "urn:uuid:c853bd9a-f12d-4d65-bed7-51dade65ac77"
}

являются по стандарту ЛОКАЛЬНЫМИ для bundle. Они задают ссылки только внутри Bundle и нужны для восстановления реальных связей между сущностями. Вы не можете задать id на сервере снаружи из соображений безопасности, но можете заполнять поле Identifier (идентификатор во внешних системах) и опираться на него.

Как получить идентификатор в сервере? После успешного выполнения запроса вам в ответ возвращается Bundle у которого заполнены все Id ресурсов, по этим Id вы в т.ч. можете обращаться на сервер по запросам вида procedurerequest/{Id}.

В сервисе fhir/$CreateDiagnosticRequest - specimenQuantity - что за атрибут, чем его заполнять?

Поле отображается количество биоматериала, взятого в рамках данного образца. Необходимое количество биоматериала приходит по запросу преаналитики в блоке:

"collection": {
  "quantity": 30,
  "method": "Протокол взятия крови из вены"
}

Что означает параметр specimenQuantity в элементе Specimen? Количество собранного биоматериала или количество требуемого, полученного от сервиса преаналитики?

Требуемого.

Quantity в заявке - это то количество, которое реально было взято у пациента? Если я передам то же значение, что получилось из преаналитики, будет нормально?

Да, будет нормально.

Для чего нужен параметр requisition в ProcedureRequest при том, что есть OrderProcessingTask, который объединяет все исследования в логическую сущность Заказ. Или я неправильно понимаю суть requisition в ProcedureRequest?

Requisition - требования стандарта для объединения заявок (товарных позиций) в заказ. Task - по стандарту сущность для отслеживания workflow выполнения, ее применение отдается на откуп разработчикам. В нашем случае разработчики используют Task типа OrderProcessingTask для отслеживания статуса всего заказа. Фактически Requisition - требование стандарта, OrderProcessingTask - требование medlinx. Можно привести примеры, когда в стандарте возможна ситуация, где OrderProcessingTask содержат одни и те же заявки. В medlinx пока такой подход не поддерживается.

ProcedureRequest.occurrenceDateTime - что это должна быть за дата?

Дата создания запроса на исследование.

Как заполнить значение поля "subject": { в QuestionnaireResponce

"reference": "procedurerequest/<guid>", как определить guid? Должен быть тот же гуид procedurerequest-а, который отправляется в bundle для связи опросника с исследованием. Если procedurerequest несколько, можно указать любой (на каждый procedurerequest есть requisition, который связывает их в заказе).

Как обновить ресурс (в т.ч. пациента)?

Сервер поддерживает обновление с указанием версии ресурса. В момент получения ресурса в заголовках HTTP приходит поле ETag (например, W/"1"). Для обновления ресурса необходимо выполнить метод:

PUT <Resource>/&lt;id&gt;

Указав заголовок If-Match с версией, полученной в поле ETag: If-Match: W/"1"

Ресурс обновляется целиком.

Вызвал fhir/patient по вашей инструкции с if-none-exists возвращает ошибку 412 Precondition failed, как получилось два пациента с одинаковым идентификатором?

Ошибка 412 возникает, если пациентов с заданым критерием поиска больше одного.

Какие-то запросы были без if-none-exist это вы нарушили требование обеспечить уникальность с вашей стороны.

Пытаюсь обновить данные пациента. Вызываю POST /fhir/patient, в body указал ваш id пациента, в ответ получаю ошибку, в чем проблема?

В документации fhir написано, что такой запрос, если поддерживается сервером, создаст нового пациента с нужным id, мы такой запрос не поддерживаем, необходимо делать запрос на POST /fhir/patient/{id}. По стандарту обновление делается через метод PUT.

Зачем нужен If-Match header в методе PUT?

Для версии ресурса используется optimistic concurrency подход, это требование стандарта.

Если в запросе на обновление отсутствуют "identifier": [{ "value": "", "system": "" они будут уничтожены у ресурса?

Ресурс перезаписывается целиком. Да, будут уничтожены.

Для обновления пациента можно взять ETag из ответа POST fhir/patient? Можно брать ETag из POST для последующего PUT, не вызывая GET?

Можно. Версия возвращается в момент получения ресурса, т.е. кто-то может успеть обновить ресурс раньше и старая версия не примется. Etag можно получить в заголовке либо методом GET fhir/patient/id, либо в ответе POST fhir/patient.

← Часто задаваемые вопросы по кодовым системамЧасто задаваемые вопросы по предзаказам →
  • Есть исследование, его можно делать по разным БМ (или по всем сразу)?
  • Для связи сущностей в fhir/$CreateDiagnosticRequest используются ссылки "reference" : "urn:uuid:d5437d23-e414-4ab3-ad00-9367f15a3d00". Где взять эти uuid?
  • Как выглядят локальные ссылки внутри Bundle и как получить идентификатор в сервере для внешнего взаимодействия?
  • В сервисе fhir/$CreateDiagnosticRequest - specimenQuantity - что за атрибут, чем его заполнять?
  • Что означает параметр specimenQuantity в элементе Specimen? Количество собранного биоматериала или количество требуемого, полученного от сервиса преаналитики?
  • Quantity в заявке - это то количество, которое реально было взято у пациента? Если я передам то же значение, что получилось из преаналитики, будет нормально?
  • Для чего нужен параметр requisition в ProcedureRequest при том, что есть OrderProcessingTask, который объединяет все исследования в логическую сущность Заказ. Или я неправильно понимаю суть requisition в ProcedureRequest?
  • ProcedureRequest.occurrenceDateTime - что это должна быть за дата?
  • Как заполнить значение поля "subject": { в QuestionnaireResponce
  • Как обновить ресурс (в т.ч. пациента)?
  • Вызвал fhir/patient по вашей инструкции с if-none-exists возвращает ошибку 412 Precondition failed, как получилось два пациента с одинаковым идентификатором?
  • Пытаюсь обновить данные пациента. Вызываю POST /fhir/patient, в body указал ваш id пациента, в ответ получаю ошибку, в чем проблема?
  • Зачем нужен If-Match header в методе PUT?
  • Если в запросе на обновление отсутствуют "identifier": [{ "value": "", "system": "" они будут уничтожены у ресурса?
  • Для обновления пациента можно взять ETag из ответа POST fhir/patient? Можно брать ETag из POST для последующего PUT, не вызывая GET?
Medlinx
Docs
ИнтеграцияАвторизацияFAQ
Copyright © 2025 Medlinx