이 페이지에서는 Healthcare Natural Language API를 사용 설정하고, 권한을 구성하고, analyzeEntities
메서드를 호출하여 의료 텍스트의 유용한 의료 정보를 추출하는 방법을 설명합니다.
개요
Healthcare Natural Language API는 의료 텍스트에서 유용한 정보를 도출하는 머신러닝 솔루션을 제공합니다. Healthcare Natural Language API는 Cloud Healthcare API의 일부입니다. Healthcare Natural Language API의 개요는 Healthcare Natural Language API 개념 문서를 참조하세요.
Healthcare Natural Language API는 의료 레코드 또는 보험금 청구와 같은 구조화되지 않은 의료 텍스트를 파싱합니다. 그런 다음 다운스트림 분석 및 자동화를 위해 이러한 데이터 소스에 저장된 의학 지식 항목의 구조화된 데이터 표현을 생성합니다. 관련 예시는 아래와 같습니다.
- 질병, 약물, 의료기기, 시술, 임상 관련 속성 등의 의학 개념에 대한 정보 추출
- RxNorm, ICD-10, MeSH, SNOMED CT (미국 및 영국 사용자만 해당)와 같은 일반적인 의학 용어에 의료 개념 매핑
- 텍스트에서 유용한 의학 정보를 추출하여 Google Cloud의 데이터 분석 제품과 통합
사용 가능한 위치
Healthcare Natural Language API는 다음 위치에서 사용할 수 있습니다.
위치 이름 | 위치 설명 |
---|---|
asia-south1 |
인도 뭄바이 |
australia-southeast1 |
오스트레일리아 시드니 |
europe-west2 |
영국 런던 |
europe-west4 |
네덜란드 |
northamerica-northeast1 |
캐나다 몬트리올 |
us-central1 |
미국 아이오와주 |
Healthcare Natural Language API 사용 설정
Healthcare Natural Language API를 사용하기 전에 Google Cloud 프로젝트에 API를 사용 설정해야 합니다. Cloud Healthcare API 기능을 사용 설정하거나 사용하지 않고도 Healthcare Natural Language API를 사용할 수 있습니다.
API를 사용 설정하려면 다음 단계를 완료하세요.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Create a service account:
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Project > Owner role to the service account.
To grant the role, find the Select a role list, then select Project > Owner.
- Click Continue.
-
Click Done to finish creating the service account.
Do not close your browser window. You will use it in the next step.
-
-
Create a service account key:
- In the Google Cloud console, click the email address for the service account that you created.
- Click Keys.
- Click Add key, and then click Create new key.
- Click Create. A JSON key file is downloaded to your computer.
- Click Close.
-
Set the environment variable
GOOGLE_APPLICATION_CREDENTIALS
to the path of the JSON file that contains your credentials. This variable applies only to your current shell session, so if you open a new session, set the variable again. -
Enable the Cloud Healthcare API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
권한 설정
이 가이드의 기능을 사용하려면 healthcare.nlpServiceViewer
역할에 포함된 healthcare.nlpservice.analyzeEntities
권한이 있어야 합니다.
이 역할을 할당하려면 gcloud projects add-iam-policy-binding
명령어를 실행합니다.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_ID \ --role roles/healthcare.nlpServiceViewer
항목, 관계, 컨텍스트 속성 추출
Healthcare Natural Language API는 컨텍스트 인식 모델을 사용하여 의료 항목, 관계, 컨텍스트 속성을 추출합니다. 각 텍스트 항목은 의학 사전 항목으로 추출됩니다. 의학 텍스트에 이와 같은 수준의 유용한 의학 정보를 추출하려면 projects.locations.services.nlp.analyzeEntities
메서드를 사용합니다.
항목 멘션에 SNOMED CT 라이선스 어휘를 포함하려면 라이선스 어휘 포함을 참조하세요.
Healthcare Natural Language API를 사용하여 의료 텍스트에서 유용한 의학 정보를 추출하려면 POST
요청을 실행하고 documentContent
필드에 대상 텍스트를 지정합니다. 의학 텍스트 최대 크기는 유니코드 문자 20,000자입니다.
다음 샘플은 analyzeEntities
메서드를 사용하여 "당뇨에 인슐린 양성 5단위 IV 관리" 의료 텍스트에서 의료 정보를 추출하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치
JSON 요청 본문:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"
PowerShell
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes." } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
요청이 성공하면 응답에 다음 정보가 포함됩니다.
- 인식된 의학 지식 항목
- 기능적 특징
- 인식된 항목 간의 관계
- 문맥 속성
- 의학 지식 항목을 표준 용어로 매핑
지원되는 항목, 속성, 관계 유형 목록은 Healthcare Natural Language API 기능을 참조하세요.
다음 응답에서는 NCI 용어 시스템에 코드 C581
가 있는 항목인 치료용 인슐린을 약물로 식별합니다. 응답에는 응답에 할당된 신뢰도 점수도 포함됩니다. 응답 필드에 대한 자세한 내용은 analyzeEntities
문서를 참조하세요.
라이선스 어휘 포함
기본적으로 Healthcare Natural Language API 응답에는 지원되는 의료 어휘가 포함됩니다.
요청이 다음 요구사항을 충족하는 경우 응답에 SNOMED 임상 용어, 미국 기준(SNOMEDCT_US) 어휘를 포함할 수 있습니다.
- API 요청은 미국에서 시작됩니다.
- 본문 요청의
licensedVocabularies
필드에는SNOMEDCT_US
값이 포함됩니다.
SNOMED CT 어휘가 필요하지 않으면 이러한 제한사항이 적용되지 않습니다.
다음 샘플은 LicensedVocabularies
객체에 SNOMED CT 라이선스 어휘를 포함하여 "당뇨에 인슐린 양성 5단위 IV 관리" 의료 텍스트에서 의료 정보를 추출하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치
JSON 요청 본문:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"
PowerShell
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "licensedVocabularies": [ "SNOMEDCT_US", "ICD10CM" ] } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
SNOMEDCT_US
및 ICD10CM
라이선스 어휘의 어휘 코드가 포함됩니다. 출력은 다음과 같으며 요청된 라이선스 어휘 코드는 굵게 표시됩니다.
FHIR R4 번들로 출력 추출
텍스트에서 항목을 추출하고 FHIR R4 리소스 및 요소에 매핑할 수 있습니다. 결과 FHIR R4 번들에는 모든 항목, 항목 멘션, 관계가 JSON 형식으로 포함됩니다. 예를 들어 Healthcare Natural Language API는 기본 항목 PROBLEM
을 Condition
FHIR R4 리소스에 매핑하고 항목 PROBLEM.ANATOMICAL_STRUCTURE
를 Condition.bodySite
FHIR 요소에 매핑합니다. 다른 매핑 목록은 FHIR 번들로 Healthcare Natural Language API 출력을 참조하세요.
다음 샘플은 FHIR R4 번들에서 "당뇨에 인슐린 양생 5단위 IV 관리" 의료 텍스트에서 의료 정보를 추출하는 방법을 보여줍니다.
자세한 내용은 AlternativeOutputFormat
객체를 참조하세요.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트의 IDLOCATION
: 데이터 세트 위치
JSON 요청 본문:
{ "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
cat > request.json << 'EOF' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"
PowerShell
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
@' { "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.", "alternativeOutputFormat": "FHIR_BUNDLE" } '@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
- 인식된 항목은 항목, 관계, 컨텍스트 속성 추출의 출력과 유사한 형식으로 항목 및 관계를 언급합니다.
- 문자열 형식의 FHIR 번들 리소스를 포함하는
fhirBundle
키. FHIR 번들에는 모든 항목, 항목 멘션, 관계가 JSON 형식으로 포함됩니다.