Share via


FHIR의 Patient-Everything

Patient-all 작업은 환자와 관련된 모든 리소스의 보기를 제공하는 데 사용됩니다. 이 작업은 환자의 전체 기록에 대한 액세스 권한을 부여하거나 공급자 또는 다른 사용자가 환자와 관련된 대량 데이터 다운로드를 수행하는 데 유용할 수 있습니다. FHIR 사양에 따라 Patient-all은 이 작업이 호출되는 리소스 또는 컨텍스트에 설명된 하나 이상의 환자와 관련된 모든 정보를 반환합니다. Azure API for FHIR에서 Patient-everything은 특정 환자와 관련된 데이터를 끌어올 수 있습니다.

Patient-everything 사용

Patient-everything을 호출하려면 다음 명령을 사용합니다.

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

참고

특정 환자의 ID를 지정해야 합니다. 모든 환자에 대한 모든 데이터가 필요한 경우 $export 참조하세요.

Azure API for FHIR은 제공된 환자 ID와 일치하는 환자를 찾을 수 있는지 확인합니다. 결과가 발견되면 응답은 다음 정보가 포함된 형식 searchset 의 번들입니다.

  • 환자 리소스
  • seealso가 아닌 링크 참조를 제외하고 또는 링크가 를 참조하는 경우를 제외하고 환자 리소스에서 seealso 직접 참조하는 리소스입니다RelatedPerson.
  • 다른 환자에 대한 링크 참조가 있는 seealso 경우 결과에 나열된 환자에 대한 seealso Patient-everything 작업이 포함됩니다.
  • 환자 구획의 리소스
  • 환자 리소스를 참조하는 디바이스 리소스입니다.

참고

환자에게 100개 이상의 디바이스가 연결된 경우 100개만 반환됩니다.

Patient-everything 매개 변수

Azure API for FHIR은 다음 쿼리 매개 변수를 지원합니다. 이러한 매개 변수는 모두 선택 사항입니다.

쿼리 매개 변수 Description
_type 응답에 포함할 리소스 유형을 지정할 수 있습니다. 예를 들어 _type=Encounter는 환자와 연결된 리소스만 Encounter 반환합니다.
_이후 제공된 시간 이후 수정된 리소스만 반환합니다.
start 시작 날짜를 지정하면 임상 날짜가 지정된 시작 날짜 이후인 리소스가 가져옵니다. 시작 날짜가 제공되지 않으면 종료 날짜 이전의 모든 레코드가 scope.
end 종료 날짜를 지정하면 임상 날짜가 지정된 종료 날짜 이전인 리소스가 가져옵니다. 종료 날짜가 제공되지 않으면 시작 날짜 이후의 모든 레코드가 scope.

참고

Patient-everything의 이 구현은 _count 매개 변수를 지원하지 않습니다.

환자 리소스에는 환자를 다른 환자 또는 관련 사람과 연결하는 link라는 요소가 있습니다. 이 연결된 환자는 원래 환자의 전체적인 보기를 주는 것을 돕습니다. 링크 참조는 환자가 다른 환자를 교체하거나 두 개의 환자 리소스에 보완 정보가 있는 경우 사용할 수 있습니다. 링크의 한 가지 사용 사례는 ADT 38 또는 39 HL7v2 메시지가 오는 경우입니다. ADT38/39는 환자에 대한 업데이트를 설명합니다. 이 업데이트는 링크 요소에 있는 두 환자 간의 참조로 저장할 수 있습니다.

FHIR 사양에는 다양한 유형의 환자 링크에 대한 자세한 개요가 있지만 대략적인 요약은 다음과 같습니다.

  • replaces - 환자 리소스가 다른 Patient를 대체합니다.
  • refer - 환자는 유효하지만 기본 정보 원본으로 간주되지 않습니다. 추가 정보를 검색하기 위해 다른 환자를 가리킵니다.
  • seealso - Patient에는 동등하게 유효한 다른 환자에 대한 링크가 포함되어 있습니다.
  • replaced-by - Patient 리소스가 다른 Patient를 대체합니다.

Azure API for FHIR의 Patient-everything 작업은 환자 링크를 다양한 방법으로 처리하여 환자를 가장 전체적으로 볼 수 있도록 합니다.

참고

링크는 를 참조할 RelatedPerson수도 있습니다. 현재 RelatedPerson 리소스는 Patient-everything에서 처리되지 않으며 번들에 반환되지 않습니다.

지금, 바꾸기참조 링크는 Patient-everything 작업에 의해 무시되고, 연결된 환자는 번들에 반환되지 않습니다.

설명된 대로 seealso 링크는 원래 환자와 동일하게 유효한 것으로 간주되는 다른 환자를 참조합니다. Patient-everything 수술이 실행된 후에 환자가 다른 환자에 대한 링크가 있는 경우 수술은 seealsoseealso 링크에서 Patient-Everything을 실행합니다. 이것은 환자가 모형 seealso 링크를 가진 5명의 그밖 환자에 연결되는 경우에, 우리는 그 5명의 환자의 각각에 Patient-everything를 실행할 것이라는 것을 의미합니다.

참고

이는 한 계층 깊이의 링크만 따르 seealso 도록 설정됩니다. 링크의 링크를 seealso 처리 seealso 하지 않습니다.

흐름 다이어그램도 참조하세요.

최종 링크 형식이 대체됩니다. 이 경우 원래 환자 리소스는 더 이상 사용되지 않으며 replaced-by 링크는 사용해야 하는 환자를 가리킵니다. 의 이 구현 Patient-everything 에는 기본적으로 환자가 더 이상 유효하지 않음을 경고하는 연산 결과가 번들의 시작 부분에 포함됩니다. 헤더가 로 설정된 경우에도 Prefer 동작이 됩니다 handling=lenient.

또한 헤더 handling=strictPrefer 로 설정하여 오류를 throw할 수 있습니다. 이 경우 오류 코드 301 MovedPermanently 의 반환은 현재 환자가 만료되었음을 나타내고 링크에 포함된 올바른 환자의 ID를 반환합니다. 반환된 오류의 헤더는 ContentLocation 올바른 최신 요청을 가리킵니다.

참고

링크가 replaced-by 있고 Prefer: handling=lenient 결과가 여러 번들에 비동기적으로 반환되는 경우 작업 결과만 한 번들에 반환됩니다.

환자-모든 응답 순서

Patient-everything 작업은 결과를 단계별로 반환합니다.

  1. 1단계는 PatientgeneralPractitionermanagingOrganization 리소스 ir 참조 외에도 리소스 자체를 반환합니다.
  2. 2단계와 3단계는 모두 환자 구획에 있는 자원을 반환합니다. 시작 또는 끝 쿼리 매개 변수를 지정하면 2단계는 임상 날짜별로 필터링할 수 있는 구획의 리소스를 반환하고, 3단계는 임상 날짜까지 필터링할 수 없는 구획에서 리소스를 반환합니다. 이러한 매개 변수를 모두 지정하지 않으면 2단계를 건너뛰고 3단계는 모든 환자 구획 리소스를 반환합니다.
  3. 4단계는 환자를 참조하는 모든 디바이스를 반환합니다.

각 단계에서는 번들로 결과를 반환합니다. 결과가 여러 페이지에 걸쳐 있는 경우 번들의 다음 링크는 해당 단계에 대한 결과의 다음 페이지를 가리킵니다. 단계의 모든 결과가 반환되면 번들의 다음 링크는 다음 단계를 시작하기 위한 호출을 가리킵니다.

원래 환자에게 어떤 링크가 있는 seealso 경우에, 단계 1에서 4는 그 환자의 각각을 위해 반복될 것입니다.

환자-모든 항목의 예

다음은 Patient-everything 연산을 사용하는 몇 가지 예입니다. 예제 외에도 및 replaced-by 동작의 작동 방식을 seealso 보여 주는 샘플 REST 파일이 있습니다.

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 의 권한으로 사용됩니다.