Поделиться через


Использование patient-everything в службе FHIR

Операция Patient-all используется для предоставления представления всех ресурсов, связанных с пациентом. Эта операция может быть полезна для предоставления пациентам доступа ко всей их записи или для поставщика или другого пользователя для выполнения массовой загрузки данных, связанных с пациентом. Согласно спецификации ресурсов быстрого взаимодействия в сфере здравоохранения (FHIR®), patient-all возвращает всю информацию, связанную с одним или несколькими пациентами, описанными в ресурсе или контексте, в котором вызывается эта операция. В службе FHIR в Службах медицинских данных Azure (поэтому она называется службой FHIR) вы можете получить данные, связанные с конкретным пациентом.

Использование patient-everything

Чтобы вызвать Patient-everything, используйте следующую команду:

GET {FHIRURL}/Patient/{ID}/$everything

Примечание

Необходимо указать идентификатор конкретного пациента. Если вам нужны все данные для всех пациентов, см. $export.

Служба FHIR проверяет, может ли она найти пациента, соответствующего указанному идентификатору пациента. Если результат найден, ответ будет иметь тип searchset пакета со следующими сведениями:

Примечание

Если у пациента более 100 связанных устройств, будет возвращено только 100 устройств.

Параметры patient-everything

Служба FHIR поддерживает следующие параметры запроса. Все эти параметры являются необязательными:

Параметр запроса Описание
_type Позволяет указать, какие типы ресурсов будут включены в ответ. Например, _type=Encounter вернет только Encounter ресурсы, связанные с пациентом.
Возвращает только те ресурсы, которые были изменены с момента предоставления.
start Указание даты начала приведет к извлечению ресурсов, в которых их клиническая дата находится после указанной даты начала. Если дата начала не указана, все записи до даты окончания находятся в области действия.
end Указание даты окончания приведет к извлечению ресурсов, в которых их клиническая дата находится до указанной даты окончания. Если дата окончания не указана, все записи после даты начала находятся в области действия.

Примечание

Эта реализация Patient-everything не поддерживает параметр _count.

В ресурсе пациента есть элемент под названием link, который связывает пациента с другими пациентами или связанными лицами. Эти связанные пациенты помогают дать целостное представление о первоначальном пациенте. Ссылка может использоваться, когда пациент заменяет другого пациента или когда два ресурса пациента содержат дополнительную информацию. Одним из вариантов использования ссылок является сообщение ADT 38 или 39 HL7v2. В нем описывается обновление для пациента. Это обновление может храниться в качестве ссылки между двумя пациентами в элементе link.

Спецификация FHIR содержит подробный обзор различных типов ссылок для пациентов, но мы включили обобщенную сводку:

  • replaces — ресурс Patient заменяет другой объект Patient.
  • refer — пациент является допустимым, но он не считается основным источником информации. Указывает другому пациенту для получения дополнительной информации.
  • seealso — пациент содержит не менее допустимую ссылку на другого пациента.
  • replaced-by — ресурс Patient заменяет другой объект Patient.

Пациент-все операции в службе FHIR обрабатывает связи пациентов различными способами, чтобы дать вам наиболее целостное представление о пациенте.

Примечание

Ссылка также может ссылаться на RelatedPerson. Сейчас RelatedPerson ресурсы не обрабатываются в patient-все и не возвращаются в пакете.

Сейчас ссылки на замены и ссылки игнорируются операцией Patient-everything, и связанный пациент не возвращается в пакете.

Как описано, ссылки seealso ссылаются на другого пациента, который считается одинаково допустимым для оригинала. После выполнения операции "Пациент-все", если у пациента есть seealso связи с другими пациентами, операция выполняется Пациент-все по каждому seealso каналу. Это означает, что если пациент ссылается на пять других пациентов с типом seealso ссылки, мы будем запускать Patient-все на каждом из этих пяти пациентов.

Примечание

Эта настройка настроена для переходов seealso по ссылкам только на один слой. Ссылки не обрабатываются seealsoseealso .

См. также схему потоков.

Последний тип ссылки заменяется-на. В этом случае исходный ресурс пациента больше не используется, и replaced-by ссылка указывает на пациента, который следует использовать. Эта реализация Patient-everything будет включать по умолчанию результат операции в начале пакета с предупреждением о том, что пациент больше недействителен. Это также будет происходить, если для заголовка Prefer задано значение handling=lenient.

Кроме того, можно задать для заголовка Prefer значение handling=strict , чтобы вызвать ошибку. В этом случае возвращается код ошибки 301 MovedPermanently , указывающий, что текущий пациент устарел, и возвращает идентификатор правильного пациента, включенный в ссылку. Заголовок ContentLocation возвращенной ошибки указывает на правильный и актуальный запрос.

Примечание

replaced-by Если ссылка присутствует, Prefer: handling=lenient а результаты возвращаются асинхронно в нескольких пакетах, в одном пакете возвращается только результат операции.

Порядок ответа "Пациент-все"

Операция Patient-everything возвращает результаты по этапам:

  1. Этап 1 возвращает Patient сам ресурс в дополнение к любым generalPractitioner ссылкам и managingOrganization на ресурсы ir.
  2. Этапы 2 и 3 возвращают ресурсы в отсеке пациента. start Если указаны параметры запроса или end , этап 2 возвращает ресурсы из отсека, которые можно отфильтровать по их клинической дате, а этап 3 возвращает ресурсы из отсека, которые не могут быть отфильтрованы по их клинической дате. Если ни из этих параметров не указан, этап 2 пропускается, а этап 3 возвращает все ресурсы отделения пациентов.
  3. Этап 4 возвращает все устройства, ссылающиеся на пациента.

Каждый этап возвращает результаты в пакете. Если результаты охватывают несколько страниц, следующая ссылка в пакете будет указывать на следующую страницу результатов для этого этапа. После возврата всех результатов этапа следующая ссылка в пакете будет указывать на вызов для запуска следующего этапа.

Если у исходного пациента есть какие-либо seealso связи, этапы с 1 по 4 будут повторяться для каждого из этих пациентов.

Примеры пациентов-все

Ниже приведены некоторые примеры использования операции Patient-everything. В дополнение к этим примерам мы имеем пример REST-файла , который показывает, как seealso работает поведение и replaced-by .

Чтобы использовать Patient-everything для запроса "все" пациента в период с 2010 по 2020 год, используйте следующий вызов:

GET {FHIRURL}/Patient/{ID}/$everything?start=2010&end=2020

Чтобы использовать Patient-everything для запроса наблюдения и встречи пациента, используйте следующий вызов:

GET {FHIRURL}/Patient/{ID}/$everything?_type=Observation,Encounter 

Чтобы использовать Patient-everything для запроса "все" пациента с 2021-05-27T05:00:00Z, используйте следующий вызов:

GET {FHIRURL}/Patient/{ID}/$everything?_since=2021-05-27T05:00:00Z 

Если пациент найден для каждого из этих вызовов, вы получите ответ 200 с Bundle соответствующими ресурсами.

Дальнейшие действия

Теперь, когда вы знаете, как использовать операцию Patient-everything, вы можете узнать о параметрах поиска. Дополнительные сведения см. в разделе

FHIR® является зарегистрированным товарным знаком HL7 и используется с разрешения HL7.