의료 검색 필터링

의료 데이터를 쿼리할 때 필터를 사용하여 검색 결과를 세분화할 수 있습니다. 검색 요청에서 필터를 제공하여 특정 검색 결과를 포함하거나 제외하는 기준을 적용할 수 있습니다.

예를 들어 단일 환자의 데이터를 검색하는 경우 검색 요청 본문에 환자 ID를 지정하는 다음 필터 표현식이 포함되어야 합니다.

"filter": "patient_id: ANY(\"PATIENT_ID\")"

이 페이지에서는 의료 검색용 필터를 정의하는 방법을 보여줍니다.

시작하기 전에

시작하기 전에 다음을 수행합니다.

필터 정의

필터는 servingConfigs.search 메서드의 요청 본문에서 filter 필드에 지정됩니다.

필터 정의는 필터 표현식 구문을 따릅니다. 필터 표현식에서 리터럴은 검색어에 대한 응답의 색인 생성 가능한 필드가 될 수 있습니다. 예를 들어 응답에 관찰 리소스가 포함된 경우 관찰 리소스가 참조하는 patient_id를 필터 리터럴로 사용할 수 있습니다.

다음 섹션에서는 필터를 구성하는 방법에 관한 몇 가지 예시를 보여줍니다.

resource_datetime 필터 정의

이 예시에서는 지정된 날짜 및 시간 이후의 resource_datetime 값을 갖는 리소스만 포함하는 검색 필터를 지정하는 방법을 보여줍니다.

REST

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/us/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search:search" \
    -d '{
"query": "QUERY",
"filter": "patient_id: ANY(\"PATIENT_ID\") AND resource_datetime > \"DATE_TIME_VALUE,
"contentSearchSpec":{"snippetSpec":{"returnSnippet":true}}
}'

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID
  • DATA_STORE_ID: Vertex AI Search 데이터 스토어의 ID입니다.
  • QUERY: 검색어입니다.
  • PATIENT_ID: 데이터를 검색하려는 환자의 리소스 ID입니다.
  • DATE_TIME_VALUE: FHIR dateTime 형식으로 날짜 및 시간을 나타내는 resource_datetime 필드의 값입니다. 이 필드의 예시는 다음과 같습니다.
    • T 구분자로 구분된 시간대로 날짜와 시간을 지정하는 경우: 2022-08-05T01:00:00+00:00
    • 날짜를 지정하려는 경우: 2022-08-05
    • 월을 지정하려는 경우: 2022-08
    • 연도를 지정하려는 경우: 2022

리소스 유형 필터 정의

다음 예시에서는 AND 연산자를 사용하여 먼저 모든 구성 리소스를 필터링한 다음 날짜가 지정된 날짜 및 시간 이후의 리소스를 필터링하는 필터를 구성하는 방법을 보여줍니다.

"filter": "resource_type: ANY("Composition") AND Composition.date > "2022-08-05T01:00:00+00:00""

FHIR 리소스 필터 정의

필터를 사용하여 FHIR 리소스가 Vertex AI Search 데이터 스토어에 있는지 확인할 수 있습니다. 예를 들어 다음 필터를 사용하여 ID가 6112d1ac-c6bd-4755-d689-bfb71d59afc5인 DocumentReference 리소스를 검색할 수 있습니다.

"filter": "DocumentReference.id: ANY(\"6112d1ac-c6bd-4755-d689-bfb71d59afc5\")"