Zephyrnet-Logo

Erstellen Sie mithilfe der AWS AI-Services eine kognitive Suche und ein Gesundheitswissensdiagramm

Datum:

Medizinische Daten sind sehr kontextbezogen und stark multimodal, wobei jedes Datensilo separat behandelt wird. Um unterschiedliche Daten zu überbrücken, integriert ein auf Wissensgraphen basierender Ansatz Daten domänenübergreifend und hilft dabei, die komplexe Darstellung wissenschaftlicher Erkenntnisse natürlicher darzustellen. Zum Beispiel sind drei Komponenten der wichtigsten elektronischen Patientenakten (EHR) Diagnosecodes, Primärnotizen und spezifische Medikamente. Da diese in verschiedenen Datensilos dargestellt werden, ist die sekundäre Verwendung dieser Dokumente zur genauen Identifizierung von Patienten mit einem bestimmten beobachtbaren Merkmal eine entscheidende Herausforderung. Durch die Verknüpfung dieser verschiedenen Quellen verfügen Fachexperten über einen umfangreicheren Datenpool, um zu verstehen, wie verschiedene Konzepte wie Krankheiten und Symptome miteinander interagieren, und um ihre Forschung zu unterstützen. Dies hilft letztendlich Forschern und Praktikern aus den Bereichen Gesundheitswesen und Biowissenschaften, aus den Daten bessere Erkenntnisse für eine Vielzahl von Anwendungsfällen zu gewinnen, z. B. für die Entdeckung von Arzneimitteln und personalisierte Behandlungen.

In diesem Beitrag verwenden wir Amazon HealthLake um EHR-Daten in die zu exportieren Schnelle Interoperabilitätsressourcen für das Gesundheitswesen (FHIR) Datenformat. Anschließend erstellen wir ein Wissensdiagramm, das auf Schlüsselelementen basiert, die aus den medizinischen Daten extrahiert und harmonisiert wurden. Amazon HealthLake extrahiert und transformiert auch unstrukturierte medizinische Daten, wie z. B. medizinische Notizen, damit diese durchsucht und analysiert werden können. Zusammen mit Amazon Kendra und Amazon NeptunWir ermöglichen Domain-Experten, eine Frage in natürlicher Sprache zu stellen, die Ergebnisse und relevanten Dokumente anzuzeigen und verbundene Schlüsselelemente wie Behandlungen, abgeleitete ICD-10-Codes, Medikamente und mehr in Aufzeichnungen und Dokumenten anzuzeigen. Dies ermöglicht eine einfache Analyse des gleichzeitigen Auftretens von Schlüsselentitäten, der Komorbiditätsanalyse und der Patientenkohortenanalyse in einer integrierten Lösung. Durch die Kombination effektiver Suchfunktionen und Data Mining über Grafiknetzwerke werden Zeit und Kosten für Benutzer reduziert, um relevante Informationen rund um Patienten zu finden und die Servicefreundlichkeit von Wissen in Bezug auf EHRs zu verbessern. Die Codebasis für diesen Beitrag finden Sie auf der GitHub Repo.

Lösungsüberblick

In diesem Beitrag verwenden wir die Ausgabe von Amazon HealthLake für zwei Zwecke.

Zunächst indizieren wir EHRs in Amazon Kendra, um eine semantische und genaue Rangfolge der Dokumente aus Patientennotizen zu erhalten, die dazu beitragen, die Effizienz des Arztes bei der Identifizierung von Patientennotizen zu verbessern und sie mit anderen Patienten mit ähnlichen Merkmalen zu vergleichen. Dies wechselt von der Verwendung einer lexikalischen Suche zu einer semantischen Suche, die den Kontext um die Abfrage einführt, was zu einer besseren Suchausgabe führt (siehe folgenden Screenshot).

Zweitens verwenden wir Neptune, um Wissensdiagrammanwendungen zu erstellen, mit denen Benutzer Metadaten zu Patientennotizen in einer einfacheren und normalisierten Ansicht anzeigen können, um die wichtigen Merkmale eines Dokuments hervorzuheben (siehe folgenden Screenshot).

Das folgende Diagramm zeigt unsere Architektur.

Die Schritte zum Implementieren der Lösung lauten wie folgt:

  1. Erstellen und exportieren Sie Amazon HealthLake-Daten.
  2. Extrahieren Sie Notizen und Metadaten zu Patientenbesuchen.
  3. Laden Sie Patientennotizdaten in Amazon Kendra.
  4. Laden Sie die Daten in Neptune.
  5. Richten Sie das Backend und das Frontend ein, um die Web-App auszuführen.

Erstellen und exportieren Sie Amazon HealthLake-Daten

Erstellen Sie als ersten Schritt einen Datenspeicher mit Amazon HealthLake entweder über die Amazon HealthLake-Konsole oder über AWS-Befehlszeilenschnittstelle (AWS CLI). In diesem Beitrag konzentrieren wir uns auf den AWS CLI-Ansatz.

  1. Wir verwenden AWS Cloud9 um einen Datenspeicher mit dem folgenden Code zu erstellen, ersetzen < > mit einem eindeutigen Namen:
aws healthlake create-fhir-datastore --region us-east-1 --datastore-type-version R4 --preload-data-config PreloadDataType="SYNTHEA" --datastore-name "<<your_data_store_name>>"

Der vorstehende Code verwendet ein vorinstalliertes Dataset von Synthea, das in der FHIR-Version R4 unterstützt wird, um die Verwendung der Amazon HealthLake-Ausgabe zu untersuchen. Das Ausführen des Codes erzeugt eine Antwort ähnlich dem folgenden Code. Dieser Schritt dauert einige Minuten (ungefähr 30 Minuten zum Zeitpunkt des Schreibens):

{ "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>>"
}

Sie können den Abschlussstatus entweder in der Amazon HealthLake-Konsole oder in der AWS Cloud9-Umgebung überprüfen.

  1. Verwenden Sie den folgenden Code, um den Status in AWS Cloud9 zu überprüfen, und warten Sie bis DatastoreStatus ändert sich von CREATING zu ACTIVE:
aws healthlake describe-fhir-datastore --datastore-id "<<your_data_store_id>>" --region us-east-1

  1. Wenn sich der Status in ändert ACTIVEHolen Sie sich die Rolle ARN von der HEALTHLAKE-KNOWLEDGE-ANALYZER-IAMROLE stapeln in AWS CloudFormation, der physischen ID zugeordnet AmazonHealthLake-Export-us-east-1-HealthDataAccessRoleund kopieren Sie die ARN auf die verknüpfte Seite.
  2. Verwenden Sie in AWS Cloud9 den folgenden Code, um die Daten von Amazon HealthLake nach zu exportieren Amazon Simple Storage-Service (Amazon S3) Bucket generiert aus AWS Cloud-Entwicklungskit (AWS CDK) und beachten Sie die job-id Ausgabe:
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. Stellen Sie sicher, dass der Exportjob abgeschlossen ist, indem Sie den folgenden Code mit dem Code verwenden job-id erhalten aus dem letzten Code, den Sie ausgeführt haben. (Wenn der Export abgeschlossen ist, JobStatus in den Ausgangszuständen COMPLETED):
aws healthlake describe-fhir-export-job --datastore-id <<your_data_store_id>> --job-id <<your_job_id>>

Extrahieren Sie Notizen und Metadaten zu Patientenbesuchen

Der nächste Schritt besteht darin, Patientenbesuche zu dekodieren, um die Rohtexte zu erhalten. Wir importieren die folgende Datei DocumentReference-0.ndjson (im folgenden Screenshot von S3 gezeigt) aus dem zuvor abgeschlossenen Amazon HealthLake-Exportschritt in das bereitgestellte CDK Amazon Sage Maker Notebook-Instanz. Speichern Sie zunächst das vom Github-Repo bereitgestellte Notizbuch in der SageMaker-Instanz. Führen Sie dann das Notizbuch aus, um die DocumentReference-0.ndjson-Dateien automatisch aus S3 zu suchen und zu importieren.

Verwenden Sie für diesen Schritt den SageMaker mit Ressourcen, um das Notebook schnell auszuführen. Der erste Teil des Notizbuchs erstellt eine Textdatei, die Notizen von jedem Patientenbesuch enthält und an einem Amazon S3-Speicherort gespeichert wird. Da für einen einzelnen Patienten mehrere Besuche vorhanden sein können, kombiniert eine eindeutige Identifikation die eindeutige ID des Patienten und die Besuchs-ID. Die Notizen dieser Patienten werden verwendet, um eine semantische Suche gegen die Verwendung von Amazon Kendra durchzuführen.

Der nächste Schritt im Notizbuch besteht darin, Tripel basierend auf den automatisch extrahierten Metadaten zu erstellen. Durch Erstellen und Speichern der Metadaten an einem Amazon S3-Speicherort können Sie eine AWS Lambda Die Funktion wird ausgelöst, um die Tripel zu generieren, die die Besuchsnotizen des Patienten umgeben.

Laden Sie Patientennotendaten in Amazon Kendra

Die Textdateien, die in den Quellpfad des S3-Buckets hochgeladen werden, müssen gecrawlt und indiziert werden. Für diesen Beitrag wird während der AWS CDK-Bereitstellung eine Entwicklerversion erstellt, sodass der Index erstellt wird, um die rohen Patientennotizen zu verbinden.

  1. Suchen Sie in der AWS CloudFormation-Konsole unter dem Stapel HEALTHLAKE-KNOWLEDGE-ANALYZER-CORE nach Kendra auf dem Downloads Klicken Sie auf die Registerkarte und notieren Sie sich die Index-ID und die Datenquellen-ID (kopieren Sie den ersten Teil der physischen ID vor die Pipe (|)).

  1. Führen Sie in AWS Cloud9 den folgenden Befehl aus, um die Patientennotizen in Amazon S3 mit Amazon Kendra zu synchronisieren:
aws kendra start-data-source-sync-job --id <<data_source_id_2nd_circle>> --index-id <<index_id_1st_ circle>>

  1. Sie können überprüfen, wann der Synchronisierungsstatus abgeschlossen ist, indem Sie den folgenden Befehl ausführen:
aws kendra describe-data-source --id <<data_source_id_2nd_circle>> --index-id <<index_id_1st_circle>>

Da die aufgenommenen Daten sehr klein sind, sollte beim Ausführen des vorhergehenden Befehls sofort angezeigt werden, dass der Status AKTIV ist.

Laden Sie die Daten in Neptune

In diesem nächsten Schritt greifen wir auf die Amazon Elastic Compute-Cloud (Amazon EC2) -Instanz, die hochgefahren wurde und die Tripel von Amazon S3 mit dem folgenden Code in Neptune lädt:

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"
}'

Richten Sie das Backend und das Frontend ein, um die Web-App auszuführen

Der vorhergehende Schritt sollte einige Sekunden dauern. Konfigurieren Sie in der Zwischenzeit die EC2-Instanz für den Zugriff auf die Web-App. Stellen Sie sicher, dass sowohl Python als auch Node in der Instanz installiert sind.

  1. Führen Sie den folgenden Code im Terminal der Instanz aus:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3000

Dadurch wird die öffentliche Adresse an die bereitgestellte App weitergeleitet.

  1. Kopieren Sie die beiden Ordner mit dem Titel ka-webapp und ka-server-webapp und laden Sie sie in einen Ordner mit dem Namen hoch dev in der EC2-Instanz.
  2. Erstellen Sie für das Frontend einen Bildschirm, indem Sie den folgenden Befehl ausführen:
screen -S back 

  1. Ändern Sie in diesem Bildschirm den Ordner in ka-webapp und Renn npm installieren.
  2. Gehen Sie nach der Installation in die Datei .env.development und platzieren Sie die öffentliche IPv2-Adresse von Amazon EC4 und speichern Sie die Datei.
  3. Führen Sie npm Starten Sie den Bildschirm und nehmen Sie ihn ab.
  4. Erstellen Sie für das Backend einen weiteren Bildschirm, indem Sie Folgendes eingeben:
screen -S back

  1. Ändern Sie den Ordner in ka-server-webapp und Renn pip install -r requirements.txt.
  2. Geben Sie bei der Installation der Bibliotheken den folgenden Code ein:
  1. Trennen Sie sich vom aktuellen Bildschirm und rufen Sie mit einem beliebigen Browser die öffentliche IPv2-Adresse von Amazon EC4 auf, um auf die Web-App zuzugreifen.

Versuchen Sie, nach einer Patientendiagnose zu suchen, und wählen Sie einen Dokumentlink aus, um das Wissensdiagramm dieses Dokuments anzuzeigen.

Nächste Schritte

In diesem Beitrag integrieren wir die von Amazon HealthLake ausgegebene Daten in eine Such- und eine Grafikmaschine, um relevante Informationen semantisch zu durchsuchen und wichtige Entitäten hervorzuheben, die mit Dokumenten verknüpft sind. Sie können dieses Wissensdiagramm weiter erweitern und mit anderen Ontologien wie MeSH und MedDRA verknüpfen.

Darüber hinaus bietet dies eine Grundlage für die weitere Integration anderer klinischer Datensätze und die Erweiterung dieses Wissensdiagramms zum Aufbau einer Datenstruktur. Sie können historische Bevölkerungsdaten abfragen, strukturierte und sprachbasierte Suchen nach Kohortenauswahl verketten, um die Krankheit mit dem Patientenergebnis zu korrelieren.

Aufräumen

Führen Sie die folgenden Schritte aus, um Ihre Ressourcen zu bereinigen:

  1. Geben Sie zum Löschen der erstellten Stapel die folgenden Befehle in der angegebenen Reihenfolge ein, um alle Ressourcen ordnungsgemäß zu entfernen:
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-UPDATE-CORE
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-WEBAPP
$ cdk destroy HEALTHLAKE-KNOWLEDGE-ANALYZER-CORE

  1. Löschen Sie die erstellte Amazon Kendra-Datenquelle, während die vorhergehenden Befehle ausgeführt werden:
$ 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. Überprüfen Sie den Status, indem Sie den folgenden Befehl ausführen, um zu überprüfen, ob er gelöscht wurde:
$ aws healthlake describe-fhir-datastore --datastore-id "<<your_data_store_id>>" --region us-east-1

  1. Überprüfen Sie die AWS CloudFormation-Konsole, um sicherzustellen, dass alle zugehörigen Stapel mit beginnen HEALTHLAKE-KNOWLEDGE-ANALYZER wurden alle erfolgreich gelöscht.

Zusammenfassung

Amazon HealthLake bietet einen verwalteten Service, der auf dem FHIR-Standard basiert und es Ihnen ermöglicht, Gesundheits- und klinische Lösungen zu erstellen. Wenn Sie die Ausgabe von Amazon HealthLake mit Amazon Kendra und Neptune verbinden, können Sie eine kognitive Suche und ein Gesundheitswissensdiagramm erstellen, um Ihre intelligente Anwendung zu unterstützen.

Aufbauend auf diesem Ansatz können Forscher und Ärzte an vorderster Front problemlos klinische Notizen und Forschungsartikel durchsuchen, indem sie ihre Frage einfach in einen Webbrowser eingeben. Alle klinischen Beweise werden mithilfe von maschinellem Lernen markiert, indiziert und strukturiert, um evidenzbasierte Themen zu Themen wie Übertragung, Risikofaktoren, Therapeutika und Inkubation bereitzustellen. Diese besondere Funktionalität ist für Kliniker oder Wissenschaftler von enormem Wert, da sie es ihnen ermöglicht, schnell eine Frage zu stellen, um ihre klinische Entscheidungsunterstützung oder Forschung zu validieren und voranzutreiben.

Probieren Sie es selbst aus! Stellen Sie diese Lösung mithilfe von Amazon HealthLake in Ihrem AWS-Konto bereit, indem Sie das Beispiel am bereitstellen GitHub.


Über die Autoren

Prithiviraj JothikumarPhD ist Data Scientist bei AWS Professional Services, wo er Kunden beim Erstellen von Lösungen mithilfe von maschinellem Lernen unterstützt. Er genießt es, Filme und Sport zu schauen und Zeit zum Meditieren zu verbringen.

Phi Nguyen ist ein Lösungsarchitekt bei AWS, der Kunden bei ihrer Cloud-Reise unterstützt, wobei ein besonderer Schwerpunkt auf Data Lake, Analytics, Semantics-Technologien und maschinellem Lernen liegt. In seiner Freizeit fährt er mit dem Fahrrad zur Arbeit, trainiert die Fußballmannschaft seines Sohnes oder genießt einen Naturspaziergang mit seiner Familie

Parminder Bhatia ist ein führender Wissenschaftler in der AWS Health AI und entwickelt derzeit Deep-Learning-Algorithmen für den klinischen Bereich in großem Maßstab. Seine Expertise liegt im Bereich maschinelles Lernen und groß angelegte Textanalysetechniken in ressourcenarmen Umgebungen, insbesondere in den Bereichen Biomedizin, Biowissenschaften und Gesundheitstechnologien. Er spielt gerne Fußball, Wassersport und reist gerne mit seiner Familie.

Garin Keßler ist Senior Data Science Manager bei Amazon Web Services, wo er Teams von Datenwissenschaftlern und Anwendungsarchitekten leitet, um maßgeschneiderte Anwendungen für maschinelles Lernen für Kunden bereitzustellen. Außerhalb von AWS hält er in Georgetown Vorlesungen über maschinelles Lernen und neuronale Sprachmodelle. Wenn er nicht arbeitet, hört er gerne Musik von fragwürdiger Qualität mit Freunden und der Familie (und macht sie).

Dr. Taha Kass-Hout ist Director of Machine Learning und Chief Medical Officer bei Amazon Web Services und leitet unsere Strategie und Bemühungen im Bereich Gesundheits-KI, einschließlich Amazon Comprehend Medical und Amazon HealthLake. Taha arbeitet auch mit Teams bei Amazon zusammen, die für die Entwicklung von Wissenschaft, Technologie und Skalierung für COVID-19-Labortests verantwortlich sind. Als Arzt und Bioinformatiker diente Taha zwei Amtszeiten unter Präsident Obama, darunter der erste Chief Health Informatics Officer bei der FDA. Während dieser Zeit als Beamter leistete er Pionierarbeit beim Einsatz neuer Technologien und Clouds (CDC's Electronic Disease Surveillance) und gründete allgemein zugängliche globale Datenaustauschplattformen, die openFDA, die es Forschern und der Öffentlichkeit ermöglichten, Daten zu unerwünschten Ereignissen zu suchen und zu analysieren. und präziseFDA (Teil der Presidential Precision Medicine Initiative).

Münzsmart. Beste Bitcoin-Börse in Europa
Quelle: https://aws.amazon.com/blogs/machine-learning/build-a-cognitive-search-and-a-health-knowledge-graph-using-amazon-healthlake-amazon-kendra-and-amazon- Neptun/

spot_img

Neueste Intelligenz

spot_img

Chat mit uns

Hallo! Wie kann ich dir helfen?