제퍼넷 로고

AWS AI 서비스를 사용하여 코 그너 티브 검색 및 건강 지식 그래프 구축

시간

의료 데이터는 각 데이터 사일로가 개별적으로 처리되는 상황에 맞는 고도의 다중 모드입니다. 다양한 데이터를 연결하기 위해 지식 그래프 기반 접근 방식은 도메인간에 데이터를 통합하고 과학 지식의 복잡한 표현을보다 자연스럽게 표현하는 데 도움이됩니다. 예를 들어, 주요 전자 건강 기록 (EHR)의 세 가지 구성 요소는 진단 코드, 기본 메모 및 특정 약물입니다. 이들은 서로 다른 데이터 사일로에 표시되기 때문에 특정 관찰 가능한 특성을 가진 환자를 정확하게 식별하기 위해이 문서를 이차적으로 사용하는 것은 중요한 과제입니다. 이러한 다양한 소스를 연결함으로써 주제 전문가는 질병 및 증상과 같은 다양한 개념이 서로 어떻게 상호 작용하는지 이해하고 연구를 수행하는 데 도움이되는 풍부한 데이터 풀을 갖게됩니다. 이는 궁극적으로 의료 및 생명 과학 연구자와 실무자가 신약 발견 및 개인화 된 치료와 같은 다양한 사용 사례에 대한 데이터에서 더 나은 통찰력을 생성하는 데 도움이됩니다.

이 게시물에서 우리는 아마존 헬스 레이크 EHR 데이터를 빠른 의료 상호 운용성 리소스 (FHIR) 데이터 형식. 그런 다음 의료 데이터에서 추출 및 조화 된 주요 엔티티를 기반으로 지식 그래프를 작성합니다. Amazon HealthLake는 또한 의료 기록과 같은 비정형 의료 데이터를 추출하고 변환하므로 검색 및 분석이 가능합니다. 함께 아마존 켄드라아마존 해왕성, 우리는 도메인 전문가가 자연어 질문을하고, 결과와 관련 문서를 표면화하고, 기록 및 문서 전반에 걸쳐 치료, 추론 된 ICD-10 코드, 약물 등과 같은 연결된 주요 엔티티를 표시 할 수 있습니다. 이를 통해 통합 솔루션에서 주요 엔터티의 동시 발생, 동반 질환 분석 및 환자 코호트 분석을 쉽게 분석 할 수 있습니다. 그래프 네트워크를 통해 효과적인 검색 기능과 데이터 마이닝을 결합하면 사용자가 환자에 대한 관련 정보를 찾고 EHR을 둘러싼 지식 서비스 가능성을 개선하는 데 드는 시간과 비용을 줄일 수 있습니다. 이 게시물의 코드베이스는 GitHub 레포.

솔루션 개요

이 게시물에서는 Amazon HealthLake의 출력을 두 가지 목적으로 사용합니다.

먼저 환자 메모에서 의미론적이고 정확한 문서 순위를 매기기 위해 EHR을 Amazon Kendra에 인덱싱하여 환자 메모를 식별하는 의사의 효율성을 개선하고 유사한 특성을 공유하는 다른 환자와 비교합니다. 이는 어휘 검색 사용에서 쿼리 주변에 컨텍스트를 도입하는 의미 검색으로 전환되어 더 나은 검색 결과를 제공합니다 (다음 스크린 샷 참조).

둘째, Neptune을 사용하여 사용자가 환자 메모와 관련된 메타 데이터를보다 간단하고 표준화 된보기로 볼 수있는 지식 그래프 애플리케이션을 구축하여 문서에서 비롯된 중요한 특성을 강조 할 수 있습니다 (다음 스크린 샷 참조).

다음 다이어그램은 아키텍처를 보여줍니다.

솔루션을 구현하는 단계는 다음과 같습니다.

  1. Amazon HealthLake 데이터를 생성하고 내 보냅니다.
  2. 환자 방문 기록 및 메타 데이터를 추출합니다.
  3. 환자 메모 데이터를 Amazon Kendra에로드합니다.
  4. Neptune에 데이터를로드합니다.
  5. 웹앱을 실행하도록 백엔드 및 프런트 엔드를 설정합니다.

Amazon HealthLake 데이터 생성 및 내보내기

첫 번째 단계로 Amazon HealthLake 콘솔을 통해 또는 Amazon HealthLake를 사용하여 데이터 스토어를 생성합니다. AWS 명령 줄 인터페이스 (AWS CLI). 이 게시물에서는 AWS CLI 접근 방식에 중점을 둡니다.

  1. 우리는 사용 AWS 클라우드9 다음 코드로 데이터 저장소를 만들려면 < > 고유 한 이름으로 :
aws healthlake create-fhir-datastore --region us-east-1 --datastore-type-version R4 --preload-data-config PreloadDataType="SYNTHEA" --datastore-name "<<your_data_store_name>>"

앞의 코드는 FHIR 버전 R4에서 지원되는 Synthea의 사전로드 된 데이터 세트를 사용하여 Amazon HealthLake 출력을 사용하는 방법을 탐색합니다. 코드를 실행하면 다음 코드와 유사한 응답이 생성되며이 단계는 완료하는 데 몇 분 정도 걸립니다 (작성 시점에 약 30 분).

{ "DatastoreEndpoint": "https://healthlake.us-east-1.amazonaws.com/datastore/<<your_data_store_id>>/r4/", "DatastoreArn": "arn:aws:healthlake:us-east-1:<<your_AWS_account_number>>:datastore/fhir/<<your_data_store_id>>", "DatastoreStatus": "CREATING", "DatastoreId": "<<your_data_store_id>>"
}

Amazon HealthLake 콘솔 또는 AWS Cloud9 환경에서 완료 상태를 확인할 수 있습니다.

  1. AWS Cloud9에서 상태를 확인하려면 다음 코드를 사용하여 상태를 확인하고 DatastoreStatus 변경 CREATINGACTIVE:
aws healthlake describe-fhir-datastore --datastore-id "<<your_data_store_id>>" --region us-east-1

  1. 상태가 다음으로 변경 될 때 ACTIVE에서 역할 ARN을 가져옵니다. HEALTHLAKE-KNOWLEDGE-ANALYZER-IAMROLE 쌓다 AWS 클라우드 포메이션, 물리적 ID와 연결됨 AmazonHealthLake-Export-us-east-1-HealthDataAccessRole을 클릭하고 링크 된 페이지에서 ARN을 복사합니다.
  2. AWS Cloud9에서 다음 코드를 사용하여 Amazon HealthLake의 데이터를 아마존 단순 스토리지 서비스 (Amazon S3) 버킷 생성 AWS 클라우드 개발 키트 (AWS CDK) 및 job-id 출력 :
aws healthlake start-fhir-export-job --output-data-config S3Uri="s3://hl-synthea-export-<<your_AWS_account_number>>/export-$(date +"%d-%m-%y")" --datastore-id <<your_data_store_id>> --data-access-role-arn arn:aws:iam::<<your_AWS_account_number>>:role/AmazonHealthLake-Export-us-east-1-HealthKnoMaDataAccessRole

  1. 다음 코드를 사용하여 내보내기 작업이 완료되었는지 확인하십시오. job-id 마지막으로 실행 한 코드에서 얻었습니다. (내보내기가 완료되면 JobStatus 출력 상태 COMPLETED):
aws healthlake describe-fhir-export-job --datastore-id <<your_data_store_id>> --job-id <<your_job_id>>

환자 방문 기록 및 메타 데이터 추출

다음 단계는 원시 텍스트를 얻기 위해 환자 방문을 해독하는 것입니다. 이전에 완료 한 Amazon HealthLake 내보내기 단계에서 배포 된 CDK로 다음 파일 DocumentReference-0.ndjson (S3의 다음 스크린 샷에 표시됨)을 가져옵니다. 아마존 세이지 메이커 노트북 인스턴스. 먼저 Github 리포지토리에서 제공된 노트북을 SageMaker 인스턴스에 저장합니다. 그런 다음 노트북을 실행하여 S0에서 DocumentReference-3.ndjson 파일을 자동으로 찾아 가져옵니다.

이 단계에서는 리소스가 지정된 SageMaker를 사용하여 노트북을 빠르게 실행합니다. 노트북의 첫 번째 부분은 각 환자의 방문 기록이 포함 된 텍스트 파일을 생성하고 Amazon S3 위치에 저장됩니다. 단일 환자에 대해 여러 방문이 존재할 수 있기 때문에 고유 식별은 환자 고유 ID와 방문 ID를 결합합니다. 이러한 환자의 메모는 Amazon Kendra 사용에 대한 의미 검색을 수행하는 데 사용됩니다.

노트북의 다음 단계는 자동으로 추출 된 메타 데이터를 기반으로 트리플을 생성하는 것입니다. Amazon S3 위치에서 메타 데이터를 생성하고 저장하면 AWS 람다 기능이 트리거되어 환자 방문 메모를 둘러싼 트리플을 생성합니다.

Amazon Kendra에 환자 메모 데이터로드

S3 버킷의 소스 경로에 업로드 된 텍스트 파일을 크롤링하고 인덱싱해야합니다. 이 게시물에서는 AWS CDK 배포 중에 개발자 에디션이 생성되므로 원시 환자 메모를 연결하기 위해 인덱스가 생성됩니다.

  1. HEALTHLAKE-KNOWLEDGE-ANALYZER-CORE 스택 아래의 AWS CloudFormation 콘솔에서 kendra를 검색합니다. 자료 탭을 클릭하고 인덱스 ID와 데이터 원본 ID를 기록해 둡니다 (파이프 앞에 물리적 ID의 첫 번째 부분 (|) 복사).

  1. AWS Cloud9로 돌아가서 다음 명령을 실행하여 Amazon S3의 환자 메모를 Amazon Kendra에 동기화합니다.
aws kendra start-data-source-sync-job --id <<data_source_id_2nd_circle>> --index-id <<index_id_1st_ circle>>

  1. 다음 명령을 실행하여 동기화 상태가 완료되었는지 확인할 수 있습니다.
aws kendra describe-data-source --id <<data_source_id_2nd_circle>> --index-id <<index_id_1st_circle>>

수집 된 데이터는 매우 작기 때문에 이전 명령을 실행하면 즉시 Status가 ACTIVE로 표시되어야합니다.

Neptune에 데이터로드

이 다음 단계에서는 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) 인스턴스가 회전되고 다음 코드를 사용하여 Amazon S3에서 Neptune으로 트리플을로드합니다.

curl -X POST -H 'Content-Type: application/json' https://healthlake-knowledge-analyzer-vpc-and-neptune-neptunedbcluster.cluster-<<your_unique_id>>.us-east-1.neptune.amazonaws.com:8182/loader -d '
{ "source": "s3://<<your_Amazon_S3_bucket>>/stdized-data/neptune_triples/nquads/", "format": "nquads", "iamRoleArn": "arn:aws:iam::<<your_AWS_account_number>>:role/KNOWLEDGE-ANALYZER-IAMROLE-ServiceRole", "region": "us-east-1", "failOnError": "TRUE"
}'

웹앱을 실행하도록 백엔드 및 프런트 엔드 설정

이전 단계는 완료하는 데 몇 초 정도 걸립니다. 그 동안 웹 앱에 액세스하도록 EC2 인스턴스를 구성하십시오. 인스턴스에 Python과 Node가 모두 설치되어 있는지 확인합니다.

  1. 인스턴스의 터미널에서 다음 코드를 실행합니다.
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000

이렇게하면 공개 주소가 배포 된 앱으로 라우팅됩니다.

  1. 제목이 지정된 두 폴더를 복사합니다. ka-webappka-server-webapp 이름이 지정된 폴더에 업로드합니다. dev EC2 인스턴스에서.
  2. 프런트 엔드의 경우 다음 명령을 실행하여 화면을 만듭니다.
screen -S back 

  1. 이 화면에서 폴더를 ka-webapp 실행하다 npm 설치합니다.
  2. 설치 후 파일로 이동하십시오. .env.development Amazon EC2 퍼블릭 IPv4 주소를 배치하고 파일을 저장합니다.
  3. 달리기 npm 시작하고 화면을 분리하십시오.
  4. 백엔드의 경우 다음을 입력하여 다른 화면을 만듭니다.
screen -S back

  1. 폴더를 다음으로 변경하십시오. ka-server-webapp 실행하다 pip install -r requirements.txt.
  2. 라이브러리가 설치되면 다음 코드를 입력하십시오.
  1. 현재 화면에서 분리하고 브라우저를 사용하여 Amazon EC2 퍼블릭 IPv4 주소로 이동하여 웹 앱에 액세스합니다.

환자 진단을 검색하고 문서 링크를 선택하여 해당 문서의 지식 그래프를 시각화하십시오.

다음 단계

이 게시물에서는 Amazon HealthLake의 데이터 출력을 검색 및 그래프 엔진에 통합하여 의미 론적으로 관련 정보를 검색하고 문서에 연결된 중요한 엔터티를 강조 표시합니다. 이 지식 그래프를 추가로 확장하고 MeSH 및 MedDRA와 같은 다른 온톨로지에 연결할 수 있습니다.

또한 이는 다른 임상 데이터 세트를 추가로 통합하고이 지식 그래프를 확장하여 데이터 패브릭을 구축 할 수있는 기반을 제공합니다. 과거 인구 데이터에 대한 쿼리를 만들고, 코호트 선택을위한 구조화 된 언어 기반 검색을 연결하여 질병과 환자 결과를 연관시킬 수 있습니다.

정리

자원을 정리하려면 다음 단계를 완료하십시오.

  1. 생성 된 스택을 삭제하려면 주어진 순서대로 다음 명령을 입력하여 모든 리소스를 올바르게 제거합니다.
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-UPDATE-CORE
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-WEBAPP
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-CORE

  1. 이전 명령이 진행되는 동안 생성 된 Amazon Kendra 데이터 원본을 삭제합니다.
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-VPC-AND-NEPTUNE
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-IAMROLE
$ aws healthlake delete-fhir-datastore --datastore-id <<your_data_store_id>> 

  1. 삭제되었는지 확인하려면 다음 명령을 실행하여 상태를 확인하십시오.
$ aws healthlake describe-fhir-datastore --datastore-id "<<your_data_store_id>>" --region us-east-1

  1. AWS CloudFormation 콘솔을 확인하여 다음으로 시작하는 모든 관련 스택을 확인하십시오. HEALTHLAKE-KNOWLEDGE-ANALYZER 모두 성공적으로 삭제되었습니다.

결론

Amazon HealthLake는 건강 및 임상 솔루션을 구축 할 수 있도록 FHIR 표준을 기반으로하는 관리 형 서비스를 제공합니다. Amazon HealthLake의 출력을 Amazon Kendra 및 Neptune에 연결하면인지 검색 및 건강 지식 그래프를 구축하여 지능형 애플리케이션을 강화할 수 있습니다.

이러한 접근 방식을 기반으로 연구자와 일선 의사는 웹 브라우저에 질문을 입력하기 만하면 임상 기록 및 연구 기사를 쉽게 검색 할 수 있습니다. 모든 임상 증거는 기계 학습을 사용하여 태그, 색인화 및 구조화되어 전파, 위험 요소, 치료 및 배양과 같은 증거 기반 주제를 제공합니다. 이 특정 기능은 임상 의사 결정 지원 또는 연구를 검증하고 발전시키기 위해 신속하게 질문을 할 수 있기 때문에 임상의 또는 과학자에게 매우 유용합니다.

직접 시도해보십시오! 예제를 배포하여 AWS 계정에서 Amazon HealthLake를 사용하여이 솔루션을 배포합니다. GitHub의.


저자에 관하여

프리 티비 라즈 조티 쿠마르, PhD는 AWS Professional Services의 데이터 과학자로, 기계 학습을 사용하여 고객이 솔루션을 구축 할 수 있도록 지원합니다. 그는 영화와 스포츠를보고 명상하는 시간을 보내는 것을 즐깁니다.

피 응 우옌 AWS의 솔루션 아키텍트는 데이터 레이크, 분석, 의미론 기술 및 기계 학습에 특별히 중점을두고 고객의 클라우드 여정을 지원합니다. 여가 시간에는 자전거를 타고 출근하거나, 아들의 축구 팀을지도하거나, 가족과 함께 자연 산책을 즐길 수 있습니다.

파민더 바티아 AWS Health AI의 과학 리더로 현재 임상 도메인을위한 딥 러닝 알고리즘을 대규모로 구축하고 있습니다. 그의 전문 지식은 낮은 리소스 설정, 특히 생물 의학, 생명 과학 및 의료 기술에서 기계 학습 및 대규모 텍스트 분석 기술에 있습니다. 그는 축구, 수상 스포츠, 가족 여행을 즐깁니다.

가린 케슬러 Amazon Web Services의 선임 데이터 과학 관리자로서 데이터 과학자 및 애플리케이션 설계자 팀을 이끌고 고객을위한 맞춤형 기계 학습 애플리케이션을 제공합니다. AWS 외부에서 그는 Georgetown에서 기계 학습 및 신경 언어 모델에 대해 강의합니다. 일하지 않을 때는 친구 및 가족과 함께 의심스러운 음질의 음악을 듣고 만드는 것을 즐깁니다.

Taha Kass-Hout 박사 Amazon Web Services의 기계 학습 이사 겸 최고 의료 책임자이며 Amazon Comprehend Medical 및 Amazon HealthLake를 포함한 건강 AI 전략 및 노력을 이끌고 있습니다. Taha는 또한 COVID-19 실험실 테스트를위한 과학, 기술 및 규모 개발을 담당하는 Amazon의 팀과 협력하고 있습니다. 의사이자 생물 정보 학자 인 Taha는 오바마 대통령 밑에서 두 번의 임기를 역임했으며, 여기에는 FDA의 첫 번째 최고 건강 정보학 책임자가 포함됩니다. 이 기간 동안 공무원으로서 그는 신흥 기술 및 클라우드 (CDC의 전자 질병 감시) 사용을 개척했으며, 연구자와 대중이 부작용 데이터를 검색하고 분석 할 수 있도록 널리 액세스 할 수있는 글로벌 데이터 공유 플랫폼 인 openFDA를 구축했습니다. 및 precisionFDA (Presidential Precision Medicine 이니셔티브의 일부).

코인 스마트. 유로파 최고의 비트 코인-보르 스
출처 : https://aws.amazon.com/blogs/machine-learning/build-a-cognitive-search-and-a-health-knowledge-graph-using-amazon-healthlake-amazon-kendra-and-amazon- 해왕성 /

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?