커스텀 FHIR 검색 만들기

이 페이지에서는 FHIR 표준 검색 매개변수가 적용되지 않는 필드 및 확장 프로그램에 대한 커스텀 검색 매개변수를 지원하도록 FHIR 저장소를 구성하는 방법을 설명합니다.

커스텀 검색 매개변수는 다음과 같은 여러 상황에서 유용할 수 있습니다.

  • FHIR 리소스에서 필드를 검색해야 하지만 필드에 대해 지원되는 검색 매개변수가 없습니다.
  • FHIR 데이터 모델에 추가된 확장에서 검색을 수행해야 합니다.

개요

기본적으로 FHIR 리소스 검색FHIR 사양에 정의된 표준 검색 매개변수를 지원하며, FHIR 기능 문 또는 FHIR 적합성 명세에 몇 가지 예외가 기록되어 있습니다.

하나 이상의 커스텀 검색 매개변수를 만들고 search 메서드를 통해 쿼리에서 이를 지원하도록 FHIR 저장소를 구성할 수 있습니다. 커스텀 검색 매개변수는 다음 상황에서 유용합니다.

  • 표준 검색 매개변수에 포함되지 않은 필드에서 검색을 수행합니다.
  • FHIR 데이터 모델에 대한 확장에서 검색을 수행합니다.

많은 FHIR 구현 가이드에서 검색에 사용할 수 있는 검색 파라미터를 정의합니다.

커스텀 검색 매개변수는 다음과 같은 표준 검색 매개변수로 고급 FHIR 검색 기능을 비롯한 동일한 검색 동작을 지원합니다.

  • 수정자
  • _include, _revinclude
  • 연결된 검색
  • _sort

FHIR 저장소에서 커스텀 검색을 사용하려면 먼저 검색 동작을 정의하는 SearchParameter 리소스를 하나 이상 만들어야 합니다. SearchParameter는 다른 리소스 유형과 동일한 메서드를 사용하여 생성, 업데이트 또는 삭제할 수 있는 표준 FHIR 리소스 유형입니다. 스토어에서 검색 매개변수 리소스 만들기를 참조하세요.

FHIR 저장소의 SearchParameter 리소스는 configureSearch 메서드를 사용하여 구성될 때까지 적용되지 않습니다. 이 메서드는 커스텀 검색 매개변수 목록을 제공합니다. 이 메서드가 호출될 때마다 이전 매개변수 목록이 대체됩니다. configureSearch에 대해 장기 실행 작업이 트리거되어 새로운 검색 매개변수에 따라 저장소 내 모든 관련 리소스의 색인이 다시 생성됩니다. 메서드 호출 이후의 모든 신규 및 업데이트된 리소스는 새 구성에 따라 색인이 생성됩니다. 구성에 더 이상 없는 커스텀 검색 매개변수의 색인 데이터는 삭제됩니다. configureSearch를 사용하는 방법에 대한 자세한 내용은 FHIR 저장소에 커스텀 검색 매개변수 사용 설정을 참조하세요.

fhir.capabilities 메서드를 통해 검색한 저장소의 CapabilityStatement에는 표준 검색 매개변수와 커스텀 검색 매개변수가 모두 나열됩니다. 리소스의 검색 매개변수는 rest.resource.searchParam 필드에서 찾을 수 있습니다.

FHIR 저장소에서 SearchParameter 리소스 만들기

다음 샘플은 projects.locations.datasets.fhirStores.fhir.create 메서드를 사용하여 커스텀 검색 매개변수 리소스를 만드는 방법을 보여줍니다. projects.locations.datasets.fhirStores.import 메서드를 사용할 수도 있습니다.

검색 매개변수의 관련 필드에 대한 설명은 SearchParameter 리소스 필드를 참조하세요.

curl

다음 샘플은 curl을 사용하는 POST 요청을 보여줍니다.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
        \"resourceType\": \"SearchParameter\",
        \"url\": \"CANONICAL_URL\",
        \"base\": [\"RESOURCE_TYPE\"],
        \"code\": \"SEARCH_PARAMETER_CODE\",
        \"name\": \"SEARCH_PARAMETER_NAME\",
        \"type\": \"SEARCH_PARAMETER_TYPE\",
        \"expression\": \"SEARCH_PARAMETER_EXPRESSION\",
        \"status\": \"active\",
        \"description\": \"SEARCH_PARAMETER_DESCRIPTION\"
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "resourceType": "SearchParameter",
  "url": "CANONICAL_URL",
  "base": ["RESOURCE_TYPE"],
  "code": "SEARCH_PARAMETER_CODE",
  "name": "SEARCH_PARAMETER_NAME",
  "type": "SEARCH_PARAMETER_TYPE",
  "expression": "SEARCH_PARAMETER_EXPRESSION",
  "status": "active",
  "description": "SEARCH_PARAMETER_DESCRIPTION",
  "meta": {
    "lastUpdated": "LAST_UPDATED",
    "versionId": "VERSION_ID"
  },
}

PowerShell

다음 샘플은 Windows PowerShell을 사용한 POST 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

$SearchParameter = '{
    "resourceType": "SearchParameter",
    "url": "CANONICAL_URL",
    "base": ["RESOURCE_TYPE"],
    "code": "SEARCH_PARAMETER_CODE",
    "name": "SEARCH_PARAMETER_NAME",
    "type": "SEARCH_PARAMETER_TYPE",
    "expression": "SEARCH_PARAMETER_EXPRESSION",
    "status": "active",
    "description": "SEARCH_PARAMETER_DESCRIPTION"
}'

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $SearchParameter `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter" | ConvertTo-Json

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "resourceType": "SearchParameter",
  "url": "CANONICAL_URL",
  "base": ["RESOURCE_TYPE"],
  "code": "SEARCH_PARAMETER_CODE",
  "name": "SEARCH_PARAMETER_NAME",
  "type": "SEARCH_PARAMETER_TYPE",
  "expression": "SEARCH_PARAMETER_EXPRESSION",
  "status": "active",
  "description": "SEARCH_PARAMETER_DESCRIPTION",
  "meta": {
    "lastUpdated": "LAST_UPDATED",
    "versionId": "VERSION_ID"
  },
}

FHIR 저장소에 커스텀 검색 매개변수 사용 설정

FHIR 저장소에 하나 이상의 커스텀 검색 매개변수를 사용 설정하려면 [store base URL]:configureSearch 메서드에 POST 요청을 실행하고 사용 설정할 각 검색 매개변수의 표준 URL을 지정합니다.

표준 URL은 다음 형식 중 하나로 지정됩니다.

  • uri: 해당 URI의 저장소에서 사용 가능한 최고 version을 선택합니다.
  • uri|version 특정 버전을 선택합니다.

예를 들어 저장소에 http://example.com/search URI가 있는 검색 매개변수의 버전 1.0.01.0.1이 포함된 경우 표준 URL http://example.com/search|1.0.01.0.0 버전을 선택합니다. 표준 URL http://example.com/search1.0.1 버전을 선택합니다.

이 메서드에 제공된 URL 목록은 이전 구성을 대체하며 이전에 적용되었던 커스텀 검색 매개변수를 삭제합니다. 이 구성은 configureSearch가 호출된 시점에 존재하는 SearchParameter 리소스의 콘텐츠에 따라 캐시됩니다. configureSearch가 다시 호출될 때까지 SearchParameter 리소스가 업데이트되거나 삭제될 경우 구성은 업데이트되지 않습니다.

[store base URL]:configureSearch 메서드 호출이 성공하면 반환 값은 새 구성에 따라 저장소의 리소스에 대한 색인을 다시 생성하는 장기 실행 작업의 이름입니다. operations.get 메서드를 사용하여 장기 실행 작업의 상태를 볼 수 있으며 operations.cancel 메서드를 사용하여 취소할 수 있습니다. 상태에는 성공적으로 색인이 다시 생성된 리소스 수를 나타내는 카운터가 포함됩니다.

장기 실행 작업이 실행되는 동안 저장소에서의 검색은 정상적으로 계속 작동합니다. 단, 이 작업으로 추가 또는 변경된 커스텀 검색 매개변수는 부분 결과를 반환합니다. 작업을 취소해도 안전하지만 커스텀 검색 매개변수의 부분 색인 생성이 이루어집니다. 새로 추가되거나 변경된 매개변수로 검색하기 전에 성공적인 색인 재생성 작업 전체를 완료하는 것이 중요합니다.

오류가 있으면 Cloud Logging에 표시됩니다.

configureSearch 메서드를 "validate_only": true 옵션과 함께 사용하여 저장소 구성을 수정하거나 데이터 색인을 다시 생성하지 않고 지정된 검색 매개변수의 유효성을 검사할 수도 있습니다.

다음 샘플은 projects.locations.datasets.fhirStores.configureSearch 메서드를 사용하여 FHIR 저장소에 커스텀 검색 매개변수를 한 개 이상 사용 설정하는 방법을 보여줍니다.

curl

다음 샘플은 curl을 사용하는 POST 요청을 보여줍니다.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
        \"canonicalUrls\": [\"CANONICAL_URL1\",\"CANONICAL_URL2\"],
    }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

응답에 작업 이름이 포함됩니다. 작업 상태를 추적하려면 작업 get 메서드를 사용합니다.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

장기 실행 작업이 아직 실행 중이면 서버는 JSON 형식의 색인 재생성을 대기 중인 FHIR 리소스 수가 포함된 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.fhir.FhirStoreService.ConfigureSearch",
    "createTime": "CREATE_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "pending": "PENDING_COUNT"
    }
  }
}

LRO가 완료되면 서버가 JSON 형식의 작업 상태가 포함된 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.configureSearch",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty",
  }
}

LRO가 성공하면 응답에 성공적으로 다시 색인이 생성된 FHIR 리소스 수와 google.protobuf.Empty 응답 유형이 포함됩니다.

PowerShell

다음 샘플은 Windows PowerShell을 사용한 POST 요청을 보여줍니다.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

$configureSearch = '{
  "canonical_urls": [
    "CANONICAL_URL1",
    "CANONICAL_URL2"
  ]
}'

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body $configureSearch `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"

요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}

응답에 작업 이름이 포함됩니다. 작업 상태를 추적하려면 작업 get 메서드를 사용합니다.

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"

장기 실행 작업이 아직 실행 중이면 서버는 JSON 형식의 색인 재생성을 대기 중인 FHIR 리소스 수가 포함된 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.fhir.FhirStoreService.ConfigureSearch",
    "createTime": "CREATE_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "pending": "PENDING_COUNT"
    }
  }
}

LRO가 완료되면 서버가 JSON 형식의 작업 상태가 포함된 응답을 반환합니다.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1.fhir.FhirService.configureSearch",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME",
    "logsUrl": "https://console.cloud.google.com/logs/query/CLOUD_LOGGING_URL",
    "counter": {
      "success": "SUCCESS_COUNT"
    }
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.protobuf.Empty",
  }
}

LRO가 성공하면 응답에 성공적으로 다시 색인이 생성된 FHIR 리소스 수와 google.protobuf.Empty 응답 유형이 포함됩니다.

커스텀 SearchParameter를 사용하여 다른 검색과 동일한 방식으로 검색할 수 있습니다. 검색 매개변수 리소스의 code 값을 검색어의 key로 사용합니다. 자세한 내용은 FHIR 리소스 검색을 참조하세요.

SearchParameter 리소스 필드

다음 섹션에서는 커스텀 검색과 관련된 SearchParameter 리소스의 필드를 설명합니다. 이러한 필드는 FHIR의 STU3 및 R4 버전에서 모두 사용할 수 있습니다.

uri, version

필수 uri 필드와 선택사항인 version 필드는 SearchParameter 리소스의 표준 URL을 정의합니다. uriversion의 조합은 FHIR 저장소 내에서 고유해야 합니다.

표준 URL은 configureSearch 호출에 사용되는 URL입니다.

name, description, status

name, description, status 필드는 필수이지만 기능적으로 영향을 미치지 않습니다.

base

base 필드에는 이 검색이 적용되는 FHIR 리소스 유형이 나열됩니다.

유형이 두 개 이상인 경우 expression 필드에 각 유형에 대한 절이 있어야 합니다. 두 유형에 하나의 매개변수를 정의하거나 각 유형에 하나의 매개변수를 정의하는 것 사이에는 차이가 없습니다. 여러 리소스 유형에 하나의 매개변수를 정의하는 것이 더 간단합니다.

code

code 필드는 FHIR 검색어에 사용할 키를 정의합니다. 예를 들어 codepayment-type으로 정의되고 baseClaim으로 정의된 경우 이 매개변수를 사용하는 검색어는 Claim?payment-type=ABC입니다.

code 필드는 동일한 리소스 유형의 다른 표준 또는 커스텀 검색 매개변수와 동일한 값을 가질 수 없습니다. 커스텀 검색 매개변수를 사용하여 표준 검색 매개변수를 다시 정의하거나 수정할 수 없습니다. configureSearch 메서드는 중복 검색 매개변수를 거부합니다.

code 필드 값은 다음 요구사항을 충족해야 합니다.

  • 문자로 시작해야 합니다.
  • 64자(영문 기준) 이하여야 합니다.
  • 다음이 포함되어야 합니다.
    • 영숫자 문자
    • 하이픈 문자 -
    • 밑줄 문자 _

code 필드의 FHIR 표준 규칙은 대시로 연결된 소문자입니다.

type

type 필드는 검색 매개변수 유형을 정의합니다. 검색 매개변수 유형은 FHIR 검색 사양에 정의된 검색 조건의 시맨틱스를 결정합니다. 이 type 값은 expression 필드에서 지정된 필드의 데이터 유형과 호환되어야 합니다. 그렇지 않으면 configureSearch는 커스텀 검색 매개변수를 거부합니다.

type 필드는 다음 중 하나로 정의되어야 합니다.

  • number
  • date
  • string
  • token
  • reference
  • quantity
  • uri

compositespecial 유형은 지원되지 않습니다.

expression

expression 필드는 검색 매개변수가 쿼리하는 필드 또는 확장 프로그램을 정의합니다. 이 필드는 FHIRPath의 일부 구문과 함수를 사용합니다.

필드 구문

expression 필드는 리소스 유형으로 시작하고 .로 구분된 하나 이상의 필드(예: Patient.contact.name.given)로 시작하는 경로로 정의됩니다. FHIR 데이터의 필드 구조는 FHIR 리소스FHIR 데이터 유형에서 찾을 수 있습니다.

여러 절

expression 필드에는 |로 구분된 여러 절이 포함될 수 있습니다. 이 경우 검색 매개변수는 절이 리소스와 일치하는지 판정합니다. 예를 들어 표현식이 Patient.name.given | Patient.name.family인 검색 매개변수는 이 두 필드 중 하나와의 일치 여부를 판정합니다. base에 리소스 유형이 1개를 초과하여 지정된 경우 여러 절을 사용합니다. 예를 들어 PatientPractitioner에 모두 적용되는 검색 매개변수는 Patient.name.given | Practitioner.name.given입니다.

.as([data type])

필드에 잠재적인 데이터 유형이 2개 이상 있으면 .as([data type]) 함수를 사용합니다. 예를 들어 Observation.value 필드에는 다양한 검색 유형을 사용하는 Quantity, String 등 여러 유형이 포함될 수 있습니다. Observation.value.as(Quantity) 또는 Observation.value.as(String)을 사용하여 이러한 검색 유형을 선택할 수 있습니다.

확장 프로그램 선택

.extension([canonical url]) 함수를 사용하여 확장 프로그램을 선택할 수 있습니다. 확장 프로그램에는 모든 데이터 유형을 포함할 수 있는 value 필드가 포함되어 있으므로 전체 경로는 .extension([canonical url]).value.as([data type])로 정의됩니다. 복잡한 확장 프로그램은 여러 .extension() 구성요소를 사용할 수 있습니다(예: Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-citizenship').extension('code').value.as(CodeableConcept)).

.extension.where(url='[canonical url]') 함수를 사용하여 확장 프로그램을 선택할 수도 있습니다. 이는 where() 함수가 허용되는 유일한 컨텍스트입니다.

다른 FHIRPath 함수는 지원되지 않습니다.

target

type 필드가 reference로 정의된 경우 target 필드에는 이 참조 검색의 대상이 될 수 있는 리소스 유형을 정의하는 하나 이상의 FHIR 리소스 유형이 포함되어야 합니다.

예를 들어 Patient.generalPractitioner 필드가 Practitioner, PractitionerRole, Organization에 대한 참조를 허용하는 경우 검색 매개변수는 특히 Practitioner, PractitionerRole 또는 Organization에 대한 참조 일치 여부를 판정할 수 있습니다. 모든 대상의 참조 유형을 일치시키려면 target 필드에 모든 유형을 포함합니다.

modifier, comparator, multipleOr, multipleAnd, chain

modifier, comparator, multipleOr, multipleAnd, chain 필드는 무시됩니다. 커스텀 검색 매개변수로 사용할 수 있는 옵션 및 기능은 동일한 유형의 표준 검색 매개변수에서 FHIR 저장소가 지원하는 옵션과 동일합니다.

FHIR 구현 가이드에서 가져온 검색 매개변수를 구현하는 경우 다음 메서드 중 하나를 사용하여 구현 가이드의 JSON 파일에서 FHIR 저장소로 SearchParameter 리소스를 가져옵니다.

경우에 따라 이를 지원하도록 Cloud Healthcare API에 대해 게시된 검색 매개변수를 변환해야 합니다. 검색 매개변수가 변환되지 않으면 configureSearch 메서드가 이를 거부합니다. 구현 가이드의 검색 매개변수에는 다음 제약조건이 적용됩니다.

  • 검색 매개변수가 기본 FHIR 사양의 매개변수와 동일한 경우 configureSearch 메서드가 중복 검색 매개변수를 거부합니다. configureSearch를 호출할 때 이러한 중복을 생략합니다. 자세한 내용은 code를 참조하세요.

  • 검색 매개변수에 xpath 표현식만 포함된 경우 표현식을 동등한 FHIRPath 표현식으로 변환하고 expression 필드에 사용합니다. 자세한 내용은 expression을 참조하세요.

  • compositespecial 검색 매개변수 유형은 지원되지 않습니다.

  • 대체 유형 변환 구문(([field] as [data type]))은 지원되지 않습니다. 지원되는 동등 항목 [field].as([data type])로 변환합니다. 자세한 내용은 .as([data type])를 참조하세요.

  • 참조된 리소스 유형을 제한하는 [reference field].where(resolve() is [resource type]) 규칙은 지원되지 않습니다. where() 절을 삭제하고 대신 참조된 리소스 유형을 SearchParameter.target 필드에 저장합니다. 자세한 내용은 target을 참조하세요.

  • 일부 구현 가이드에서는 Cloud Healthcare API FHIR 저장소에 필요한 일부 경로 구성요소를 생략하는 확장에 표현식을 사용합니다. 예를 들어 Patient.extension('url')Patient.extension('url').value.as([data type])로, Patient.extension('url').extension.valuePatient.extension('url').extension('url2').value.as([data type])로 수정해야 합니다.

커스텀 검색을 사용하여 확장 프로그램 필드에서 검색

다음 단계는 환자 리소스의 mothersMaidenName 확장 프로그램 내에서 텍스트를 검색하는 예시를 보여줍니다.

  1. 샘플 환자 리소스 만들기:

    curl

    다음 샘플은 curl을 사용하여 POST 요청을 보내 환자 리소스를 만드는 방법을 보여줍니다. 이 환자 리소스의 mothersMaidenName 확장 프로그램은 Marca로 설정되었습니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
          \"name\": [
              {
                  \"use\": \"official\",
                  \"family\": \"Smith\",
                  \"given\": [
                      \"Darcy\"
                  ]
              }
          ],
          \"gender\": \"female\",
          \"birthDate\": \"1970-01-01\",
          \"resourceType\": \"Patient\",
          \"extension\": [
              {
                  \"url\": \"http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName\",
                  \"valueString\": \"Marca\"
              }
          ]
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
    

    요청이 성공하면 서버는 다음 샘플과 비슷한 응답을 JSON 형식으로 반환합니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
            "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
            "valueString": "Marca"
        }
      ]
    }
    

    PowerShell

    다음 샘플은 Windows PowerShell을 사용하여 POST 요청을 보내 환자 리소스를 만드는 방법을 보여줍니다. 이 환자 리소스의 mothersMaidenName 확장 프로그램은 Marca로 설정되었습니다.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $Patient = '{
        "name": [
            {
                "use": "official",
                "family": "Smith",
                "given": [
                    "Darcy"
                ]
            }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient",
        "extension": [
            {
                "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                "valueString": "Marca"
            }
        ]
    }'
    
    Invoke-RestMethod `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/fhir+json; charset=utf-8" `
      -Body $Patient `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | ConvertTo-Json
    

    요청이 성공하면 서버는 다음 샘플과 비슷한 응답을 JSON 형식으로 반환합니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
            "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
            "valueString": "Marca"
        }
      ]
    }
    

  2. 커스텀 검색 매개변수 리소스 만들기:

    curl

    다음 샘플은 curl을 사용하여 POST 요청을 보내 mothersMaidenName 확장 프로그램의 커스텀 검색 매개변수 리소스를 만드는 방법을 보여줍니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"resourceType\": \"SearchParameter\",
            \"url\": \"http://example.com/SearchParameter/patient-mothersMaidenName\",
            \"base\": [\"Patient\"],
            \"code\": \"mothers-maiden-name\",
            \"name\": \"mothers-maiden-name\",
            \"type\": \"string\",
            \"expression\": \"Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)\",
            \"status\": \"active\",
            \"description\": \"search on mother's maiden name\"
      }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    { 
     "resourceType": "SearchParameter",
     "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
     "base": ["Patient"],
     "code": "mothers-maiden-name",
     "name": "mothers-maiden-name",
     "type": "string",
     "expression": "Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)",
     "status": "active",
     "description": "search on mother's maiden name",
     "meta": {
      "lastUpdated": "2020-01-01T00:00:00+00:00",
      "versionId": "VERSION_ID"
     },
    }

    PowerShell

    다음은 Windows PowerShell을 사용하여 'POST' 요청을 보내 'mothersMaidenName' 확장 프로그램의 커스텀 검색 매개변수 리소스를 만드는 방법을 보여줍니다.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $SearchParameter = '{
        "resourceType": "SearchParameter",
        "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
        "base": ["Patient"],
        "code": "mothers-maiden-name",
        "name": "mothers-maiden-name",
        "type": "string",
        "expression": "Patient.extension(''http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName'').value.as(String)",
        "status": "active",
        "description": "search on mother''s maiden name"
    }'
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $SearchParameter `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    { 
     "resourceType": "SearchParameter",
     "url": "http://example.com/SearchParameter/patient-mothersMaidenName",
     "base": ["Patient"],
     "code": "mothers-maiden-name",
     "name": "mothers-maiden-name",
     "type": "string",
     "expression": "Patient.extension('http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName').value.as(String)",
     "status": "active",
     "description": "search on mother's maiden name",
     "meta": {
       "lastUpdated": "2020-01-01T00:00:00+00:00",
       "versionId": "VERSION_ID"
     },
    }
    expression 필드에서 서로 다른 데이터 유형을 타겟팅하려면 .as([data type]) 함수를 사용합니다. 예를 들어 불리언 값의 검색 표현식을 지정하려면 .value.as(Boolean)을 사용합니다. 자세한 내용은 .as([data type])을 참조하세요.

  3. 검색 매개변수 사용 설정:

    curl

    커스텀 검색 매개변수를 사용 설정하려면 POST 요청을 수행하고 사용 설정할 각 검색 매개변수의 표준 URL을 지정합니다.

    다음 샘플은 curl을 사용하는 POST 요청을 보여줍니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"canonicalUrls\": [\"http://example.com/SearchParameter/patient-mothersMaidenName\"],
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

    PowerShell

    커스텀 검색 매개변수를 사용 설정하려면 POST 요청을 수행하고 사용 설정할 각 검색 매개변수의 표준 URL을 지정합니다.

    다음 샘플은 Windows PowerShell을 사용한 POST 요청을 보여줍니다.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $configureSearch = '{
      "canonicalUrls": "http://example.com/SearchParameter/patient-mothersMaidenName"
    }' `
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $configureSearch `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

  4. 커스텀 검색 매개변수를 사용하여 검색:

    curl

    다음 샘플은 curl을 사용하여 GET 요청을 보내 mothersMaidenName 확장 프로그램의 Marca 문자열로 환자 리소스를 검색하는 방법을 보여줍니다.

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?mothers-maiden-name:exact=Marca"
    

    요청이 성공하면 서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                  "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                  "valueString": "Marca"
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

    PowerShell

    다음 샘플은 Windows PowerShell을 사용하여 'GET' 요청을 보내 'mothersMaidenName' 확장 프로그램의 'Marca' 문자열로 환자 리소스를 검색하는 방법을 보여줍니다.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-RestMethod `
      -Method Get `
      -Headers $headers `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?mothers-maiden-name:exact=Marca" | ConvertTo-Json
    

    요청이 성공하면 서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                  "url": "http://hl7.org/fhir/StructureDefinition/patient-mothersMaidenName",
                  "valueString": "Marca"
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?family%3Aexact=Smith"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

커스텀 검색을 사용하여 2단계 확장 프로그램 필드에서 검색

다음 단계는 환자 리소스의 us-core-ethnicity 확장 프로그램 내에서 코드를 검색하는 방법을 보여줍니다.

  1. 샘플 환자 리소스 만들기:

    curl

    다음 샘플은 curl을 사용하여 POST 요청을 보내 환자 리소스를 만드는 방법을 보여줍니다. 이 환자 리소스의 us-core-ethnicity 확장 프로그램이 설정되었습니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
          \"name\": [
              {
                  \"use\": \"official\",
                  \"family\": \"Smith\",
                  \"given\": [
                      \"Darcy\"
                  ]
              }
          ],
          \"gender\": \"female\",
          \"birthDate\": \"1970-01-01\",
          \"resourceType\": \"Patient\",
          \"extension\": [
              {
                \"url\": \"http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity\",
                \"extension\": [
                  {
                    \"url\" : \"ombCategory\",
                    \"valueCoding\" : {
                      \"system\" : \"urn:oid:2.16.840.1.113883.6.238\",
                      \"code\" : \"2028-9\",
                      \"display\" : \"Asian\"
                    }
                  }
                ]
              }
          ]
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
    

    요청이 성공하면 서버는 다음 샘플과 비슷한 응답을 JSON 형식으로 반환합니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
          "extension": [
            {
              "url" : "ombCategory",
              "valueCoding" : {
                "system" : "urn:oid:2.16.840.1.113883.6.238",
                "code" : "2028-9",
                "display" : "Asian"
              }
            }
          ]
        }
      ]
    }
    

    PowerShell

    다음 샘플은 Windows PowerShell을 사용하여 POST 요청을 보내 환자 리소스를 만드는 방법을 보여줍니다. 이 환자 리소스의 us-core-ethnicity 확장 프로그램이 설정되었습니다.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $Patient = '{
        "name": [
            {
                "use": "official",
                "family": "Smith",
                "given": [
                    "Darcy"
                ]
            }
        ],
        "gender": "female",
        "birthDate": "1970-01-01",
        "resourceType": "Patient",
        "extension": [
          {
            "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
            "extension": [
              {
                "url" : "ombCategory",
                "valueCoding" : {
                  "system" : "urn:oid:2.16.840.1.113883.6.238",
                  "code" : "2028-9",
                  "display" : "Asian"
                }
              }
            ]
          }
        ]
    }'
    
    Invoke-RestMethod `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/fhir+json; charset=utf-8" `
      -Body $Patient `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | ConvertTo-Json
    

    요청이 성공하면 서버는 다음 샘플과 비슷한 응답을 JSON 형식으로 반환합니다.

    {
      "birthDate": "1970-01-01",
      "gender": "female",
      "id": "PATIENT_ID",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
      "name": [
        {
          "family": "Smith",
          "given": [
            "Darcy"
          ],
          "use": "official"
        }
      ],
      "resourceType": "Patient"
      "extension": [
        {
          "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
          "extension": [
            {
              "url" : "ombCategory",
              "valueCoding" : {
                "system" : "urn:oid:2.16.840.1.113883.6.238",
                "code" : "2028-9",
                "display" : "Asian"
              }
            }
          ]
        }
      ]
    }
    

  2. 커스텀 검색 매개변수 리소스 만들기:

    curl

    다음 샘플은 curl을 사용하여 POST 요청을 보내 us-core-ethnicity 확장 프로그램의 커스텀 검색 매개변수 리소스를 만드는 방법을 보여줍니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"resourceType\": \"SearchParameter\",
            \"url\": \"http://example.com/SearchParameter/patient-us-core-ethnicity\",
            \"base\": [\"Patient\"],
            \"code\": \"ethnicity\",
            \"name\": \"ethnicity\",
            \"type\": \"token\",
            \"expression\": \"Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)\",
            \"status\": \"active\",
            \"description\": \"search on the ombCategory of a patient.\"
      }" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "resourceType": "SearchParameter",
      "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
      "base": ["Patient"],
      "code": "ethnicity",
      "name": "ethnicity",
      "type": "token",
      "expression": "Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)",
      "status": "active",
      "description": "search on the ombCategory of a patient.",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
    }
    
    

    PowerShell

    다음 샘플은 Windows PowerShell을 사용하여 'POST' 요청을 보내 'mothersMaidenName' 확장 프로그램의 커스텀 검색 매개변수 리소스를 만드는 방법을 보여줍니다.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $SearchParameter = '{
        "resourceType": "SearchParameter",
        "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
        "base": ["Patient"],
        "code": "ethnicity",
        "name": "ethnicity",
        "type": "token",
        "expression": "Patient.extension(''http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity'').extension(''ombCategory'').value.as(Coding)",
        "status": "active",
        "description": "search on the ombCategory of a patient."
    }'
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $SearchParameter `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/SearchParameter"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "resourceType": "SearchParameter",
      "url": "http://example.com/SearchParameter/patient-us-core-ethnicity",
      "base": ["Patient"],
      "code": "ethnicity",
      "name": "ethnicity",
      "type": "token",
      "expression": "Patient.extension('http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity').extension('ombCategory').value.as(Coding)",
      "status": "active",
      "description": "search on the ombCategory of a patient.",
      "meta": {
        "lastUpdated": "2020-01-01T00:00:00+00:00",
        "versionId": "VERSION_ID"
      },
    }
    
    

  3. 검색 매개변수 사용 설정:

    curl

    커스텀 검색 매개변수를 사용 설정하려면 POST 요청을 수행하고 사용 설정할 각 검색 매개변수의 표준 URL을 지정합니다.

    다음 샘플은 curl을 사용하는 POST 요청을 보여줍니다.

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        --data "{
            \"canonicalUrls\": [\"http://example.com/SearchParameter/patient-us-core-ethnicity\"],
        }" \
        "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

    PowerShell

    커스텀 검색 매개변수를 사용 설정하려면 POST 요청을 수행하고 사용 설정할 각 검색 매개변수의 표준 URL을 지정합니다.

    다음 샘플은 Windows PowerShell을 사용한 POST 요청을 보여줍니다.

    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    $configureSearch = '{
      "canonicalUrls": "http://example.com/SearchParameter/patient-us-core-ethnicity"
    }' `
    
    Invoke-WebRequest `
      -Method Post `
      -Headers $headers `
      -ContentType: "application/json; charset=utf-8" `
      -Body $configureSearch `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:configureSearch"
    

    요청이 성공하면 서버가 JSON 형식으로 응답을 반환합니다.

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
    }
    

  4. 커스텀 검색 매개변수를 사용하여 검색:

    curl

    다음 샘플은 curl을 사용하여 GET 요청을 보내 us-core-ethnicity 확장 프로그램의 urn:oid:2.16.840.1.113883.6.238|2028-9 코드로 환자 리소스를 검색하는 방법을 보여줍니다.

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"
    

    요청이 성공하면 서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
                "extension": [
                  {
                    "url" : "ombCategory",
                    "valueCoding" : {
                      "system" : "urn:oid:2.16.840.1.113883.6.238",
                      "code" : "2028-9",
                      "display" : "Asian"
                    }
                  }
                ]
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }
    

    PowerShell

    다음 샘플은 Windows PowerShell을 사용하여 'GET'요청을 보내 'us-core-ethnicity' 확장 프로그램의 `urn:oid:2.16.840.1.113883.6.238|2028-9` 코드로 환자 리소스를 검색하는 방법을 보여줍니다.
    $cred = gcloud auth application-default print-access-token
    $headers = @{ Authorization = "Bearer $cred" }
    
    Invoke-RestMethod `
      -Method Get `
      -Headers $headers `
      -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9 | ConvertTo-Json
    

    요청이 성공하면 서버가 JSON 형식의 FHIR Bundle로 응답을 반환합니다. Bundle.typesearchset이며 검색 결과는 Bundle.entry 배열의 항목입니다. 이 예시에서 요청은 해당 리소스 내의 데이터가 포함된 단일 환자 리소스를 반환합니다.

    {
      "entry": [
        {
          "fullUrl": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID",
          "resource": {
            "birthDate": "1970-01-01",
            "gender": "female",
            "id": "PATIENT_ID",
            "meta": {
              "lastUpdated": "LAST_UPDATED",
              "versionId": "VERSION_ID"
            },
            "name": [
              {
                "family": "Smith",
                "given": [
                  "Darcy"
                ],
                "use": "official"
              }
            ],
            "resourceType": "Patient"
            "extension": [
              {
                "url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
                "extension": [
                  {
                    "url" : "ombCategory",
                    "valueCoding" : {
                      "system" : "urn:oid:2.16.840.1.113883.6.238",
                      "code" : "2028-9",
                      "display" : "Asian"
                    }
                  }
                ]
              }
            ]
          },
          "search": {
            "mode": "match"
          }
        }
      ],
      "link": [
        {
          "url": "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/?ethnicity=urn:oid:2.16.840.1.113883.6.238|2028-9"
        }
      ],
      "resourceType": "Bundle",
      "total": 1,
      "type": "searchset"
    }