Использование patient-everything в службе FHIR
Операция Patient-all используется для предоставления представления всех ресурсов, связанных с пациентом. Эта операция может быть полезна для предоставления пациентам доступа ко всей их записи или для поставщика или другого пользователя для выполнения массовой загрузки данных, связанных с пациентом. Согласно спецификации ресурсов быстрого взаимодействия в сфере здравоохранения (FHIR®), patient-all возвращает всю информацию, связанную с одним или несколькими пациентами, описанными в ресурсе или контексте, в котором вызывается эта операция. В службе FHIR в Службах медицинских данных Azure (поэтому она называется службой FHIR) вы можете получить данные, связанные с конкретным пациентом.
Использование patient-everything
Чтобы вызвать Patient-everything, используйте следующую команду:
GET {FHIRURL}/Patient/{ID}/$everything
Примечание
Необходимо указать идентификатор конкретного пациента. Если вам нужны все данные для всех пациентов, см. $export.
Служба FHIR проверяет, может ли она найти пациента, соответствующего указанному идентификатору пациента. Если результат найден, ответ будет иметь тип searchset
пакета со следующими сведениями:
- Ресурс для пациентов.
- Ресурсы, на которые напрямую ссылается ресурс patient, за исключением ссылок , которые не отображаются также или если
seealso
ссылка ссылаетсяRelatedPerson
на . - При наличии
seealso
ссылок на других пациентов результаты будут включать операцию "Пациент-все" противseealso
перечисленных пациентов. - Ресурсы в отсеке для пациентов.
- Ресурсы устройства , ссылающиеся на ресурс пациента.
Примечание
Если у пациента более 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
по ссылкам только на один слой. Ссылки не обрабатываются seealso
seealso
.
Последний тип ссылки заменяется-на. В этом случае исходный ресурс пациента больше не используется, и replaced-by
ссылка указывает на пациента, который следует использовать. Эта реализация Patient-everything
будет включать по умолчанию результат операции в начале пакета с предупреждением о том, что пациент больше недействителен. Это также будет происходить, если для заголовка Prefer
задано значение handling=lenient
.
Кроме того, можно задать для заголовка Prefer
значение handling=strict
, чтобы вызвать ошибку. В этом случае возвращается код ошибки 301 MovedPermanently
, указывающий, что текущий пациент устарел, и возвращает идентификатор правильного пациента, включенный в ссылку. Заголовок ContentLocation
возвращенной ошибки указывает на правильный и актуальный запрос.
Примечание
replaced-by
Если ссылка присутствует, Prefer: handling=lenient
а результаты возвращаются асинхронно в нескольких пакетах, в одном пакете возвращается только результат операции.
Порядок ответа "Пациент-все"
Операция Patient-everything возвращает результаты по этапам:
- Этап 1 возвращает
Patient
сам ресурс в дополнение к любымgeneralPractitioner
ссылкам иmanagingOrganization
на ресурсы ir. - Этапы 2 и 3 возвращают ресурсы в отсеке пациента.
start
Если указаны параметры запроса илиend
, этап 2 возвращает ресурсы из отсека, которые можно отфильтровать по их клинической дате, а этап 3 возвращает ресурсы из отсека, которые не могут быть отфильтрованы по их клинической дате. Если ни из этих параметров не указан, этап 2 пропускается, а этап 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.