의료 데이터를 쿼리할 때 필터를 사용하여 검색 결과를 세분화할 수 있습니다. 검색 요청에서 필터를 제공하여 특정 검색 결과를 포함하거나 제외하는 기준을 적용할 수 있습니다.
예를 들어 단일 환자의 데이터를 검색하는 경우 검색 요청 본문에 환자 ID를 지정하는 다음 필터 표현식이 포함되어야 합니다.
"filter": "patient_id: ANY(\"PATIENT_ID\")"
이 페이지에서는 의료 검색용 필터를 정의하는 방법을 보여줍니다.
시작하기 전에
시작하기 전에 다음을 수행합니다.
- 의료 검색 앱과 의료 검색 데이터 스토어를 만들고 FHIR R4 데이터를 가져옵니다. 자세한 내용은 의료 검색 앱 만들기 및 의료 검색 데이터 스토어 만들기를 참조하세요.
- Vertex AI Search에서 색인이 생성되고 검색 가능하며 검색 가능한 필드로 지원하는 FHIR R4 리소스 목록을 검토합니다. 자세한 내용은 의료 FHIR R4 데이터 스키마 참조를 참조하세요.
- 필터 표현식 구문을 이해합니다.
필터 정의
필터는 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 프로젝트의 IDDATA_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\")"