Share via


Azure Cognitive Services Health Insights Clinical Matching-Clientbibliothek für Python– Version 1.0.0b1

Health Insights ist ein Azure Applied AI Service, der mit dem Azure Cognitive Services-Framework erstellt wurde und mehrere Cognitive Services, Healthcare API-Dienste und andere Azure-Ressourcen nutzt. Das Klinische Abgleichsmodell empfängt Patientendaten und Protokolle klinischer Studien und stellt relevante klinische Studien auf der Grundlage von Zulassungskriterien bereit.

Quellcode | Paket (PyPI) | API-Referenzdokumentation | Produktdokumentation | Proben

Erste Schritte

Voraussetzungen

  • Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
  • Sie benötigen ein Azure-Abonnement , um dieses Paket verwenden zu können.
  • Eine vorhandene Cognitive Services Health Insights-instance.

Installieren des Pakets

pip install azure-healthinsights-clinicalmatching

Diese Tabelle gibt Aufschluss über die Beziehung zwischen SDK-Versionen und unterstützten API-Versionen des Diensts:

SDK-Version Unterstützte API-Version des Diensts
1.0.0b1 2023-03-01-preview

Authentifizieren des Clients

Abrufen des Endpunkts

Sie finden den Endpunkt für Ihre Health Insights-Dienstressource über das Azure-Portal oder die Azure CLI.

# Get the endpoint for the Health Insights service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"

Abrufen des API-Schlüssels

Sie können den API-Schlüssel aus der Health Insights-Dienstressource im Azure-Portal abrufen. Alternativ können Sie den folgenden Azure CLI-Codeausschnitt verwenden, um den API-Schlüssel Ihrer Ressource abzurufen.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Erstellen eines ClinicalMatchingClient mit api-Schlüsselanmeldeinformationen

Sobald Sie über den Wert für den API-Schlüssel verfügen, können Sie ihn als Zeichenfolge an eine instance von AzureKeyCredential übergeben. Verwenden Sie den Schlüssel als Anmeldeinformationsparameter, um den Client zu authentifizieren:

import os
from azure.core.credentials import AzureKeyCredential
from azure.healthinsights.clinicalmatching import ClinicalMatchingClient

KEY = os.environ["HEALTHINSIGHTS_KEY"]
ENDPOINT = os.environ["HEALTHINSIGHTS_ENDPOINT"]

trial_matcher_client = ClinicalMatchingClient(endpoint=ENDPOINT, credential=AzureKeyCredential(KEY))

Long-Running Vorgänge

Vorgänge mit langer Ausführungsdauer sind Vorgänge, die aus einer anfänglichen Anforderung bestehen, die an den Dienst gesendet wird, um einen Vorgang zu starten, gefolgt von der Abfrage des Diensts in Intervallen, um festzustellen, ob der Vorgang abgeschlossen oder fehlgeschlagen ist, und ob er erfolgreich war, um das Ergebnis zu erhalten.

Methoden, die die Analyse im Gesundheitswesen, die benutzerdefinierte Textanalyse oder mehrere Analysen unterstützen, werden als zeitintensive Vorgänge modelliert. Der Client macht eine begin_<method-name> Methode verfügbar, die ein Abfrageobjekt zurückgibt. Aufrufer sollten warten, bis der Vorgang abgeschlossen ist, indem sie für das Von der begin_<method-name> -Methode zurückgegebene Poller-Objekt aufrufenresult(). Beispielcodeausschnitte werden bereitgestellt, um die Verwendung von Vorgängen mit langer Ausführungszeit zu veranschaulichen unten.

Wichtige Begriffe

Trial Matcher stellt dem Benutzer der Dienste zwei Standard Betriebsmodi zur Verfügung: patientenzentrierte und klinische Studienzentriert.

  • Im patientenzentrierten Modus basiert das Testabgleichsmodell für den Patienten auf dem klinischen Zustand, dem Standort, den Prioritäten, den Eignungskriterien und anderen Kriterien, die der Patient und/oder der Dienstbenutzer priorisieren kann. Das Modell hilft dabei, den Satz relevanter klinischer Studien auf eine kleinere Gruppe von Studien einzugrenzen und zu priorisieren, für die der spezifische Patient geeignet zu sein scheint.
  • Bei klinischen Studien zentriert, findet der Trial Matcher eine Gruppe von Patienten, die potenziell für eine klinische Studie in Frage kommen. Der Trial Matcher schränkt die Patienten ein, gefiltert zuerst nach dem klinischen Zustand und ausgewählten klinischen Beobachtungen und konzentriert sich dann auf diejenigen Patienten, die die Baselinekriterien erfüllt haben, um die Gruppe von Patienten zu finden, die für eine Studie geeignet zu sein scheint.

Beispiele

Der folgende Abschnitt enthält mehrere Codeausschnitte, die einige der häufigsten Health Insights – Clinical Matching-Dienstaufgaben behandeln, einschließlich:

Abgleichen von Testversionen

Suche nach potenziellen geeigneten Studien für einen Patienten.

import os
import datetime
from azure.core.credentials import AzureKeyCredential
from azure.healthinsights.clinicalmatching import ClinicalMatchingClient, models

KEY = os.environ["HEALTHINSIGHTS_KEY"]
ENDPOINT = os.environ["HEALTHINSIGHTS_ENDPOINT"]

# Create a Trial Matcher client
# <client>
trial_matcher_client = ClinicalMatchingClient(endpoint=ENDPOINT,
                                              credential=AzureKeyCredential(KEY))
# </client>

# Create clinical info list
# <clinicalInfo>
clinical_info_list = [models.ClinicalCodedElement(system="http://www.nlm.nih.gov/research/umls",
                                                  code="C0032181",
                                                  name="Platelet count",
                                                  value="250000"),
                      models.ClinicalCodedElement(system="http://www.nlm.nih.gov/research/umls",
                                                  code="C0002965",
                                                  name="Unstable Angina",
                                                  value="true"),
                      models.ClinicalCodedElement(system="http://www.nlm.nih.gov/research/umls",
                                                  code="C1522449",
                                                  name="Radiotherapy",
                                                  value="false"),
                      models.ClinicalCodedElement(system="http://www.nlm.nih.gov/research/umls",
                                                  code="C0242957",
                                                  name="GeneOrProtein-Expression",
                                                  value="Negative;EntityType:GENEORPROTEIN-EXPRESSION"),
                      models.ClinicalCodedElement(system="http://www.nlm.nih.gov/research/umls",
                                                  code="C1300072",
                                                  name="cancer stage",
                                                  value="2")]

# </clinicalInfo>

# Construct Patient
# <PatientConstructor>
patient_info = models.PatientInfo(sex=models.PatientInfoSex.MALE, birth_date=datetime.date(1965, 12, 26),
                                  clinical_info=clinical_info_list)
patient1 = models.PatientRecord(id="patient_id", info=patient_info)
# </PatientConstructor>

# Create registry filter
registry_filters = models.ClinicalTrialRegistryFilter()
# Limit the trial to a specific patient condition ("Non-small cell lung cancer")
registry_filters.conditions = ["non small cell lung cancer (nsclc)"]
# Specify the clinical trial registry source as ClinicalTrials.Gov
registry_filters.sources = [models.ClinicalTrialSource.CLINICALTRIALS_GOV]
# Limit the clinical trial to a certain location, in this case California, USA
registry_filters.facility_locations = [
    models.GeographicLocation(country_or_region="United States", city="Gilbert", state="Arizona")]
# Limit the trial to a specific recruitment status
registry_filters.recruitment_statuses = [models.ClinicalTrialRecruitmentStatus.RECRUITING]

# Construct ClinicalTrial instance and attach the registry filter to it.
clinical_trials = models.ClinicalTrials(registry_filters=[registry_filters])

# Create TrialMatcherRequest
configuration = models.TrialMatcherModelConfiguration(clinical_trials=clinical_trials)
trial_matcher_data = models.TrialMatcherData(patients=[patient1], configuration=configuration)

poller = trial_matcher_client.begin_match_trials(trial_matcher_data)
trial_matcher_result = poller.result()
if trial_matcher_result.status == models.JobStatus.SUCCEEDED:
    tm_results = trial_matcher_result.results
    for patient_result in tm_results.patients:
        print(f"Inferences of Patient {patient_result.id}")
        for tm_inferences in patient_result.inferences:
            print(f"Trial Id {tm_inferences.id}")
            print(f"Type: {str(tm_inferences.type)}  Value: {tm_inferences.value}")
            print(f"Description {tm_inferences.description}")
else:
    tm_errors = trial_matcher_result.errors
    if tm_errors is not None:
        for error in tm_errors:
            print(f"{error.code} : {error.message}")

Problembehandlung

Allgemein

Die Health Insights Clinical Matching-Clientbibliothek löst ausnahmen aus, die in Azure Core definiert sind.

Protokollierung

Diese Bibliothek verwendet die Standardprotokollbibliothek für die Protokollierung.

Grundlegende Informationen zu HTTP-Sitzungen (URLs, Header usw.) werden auf ebener Ebene INFO protokolliert.

Die Protokollierung auf detaillierter DEBUG Ebene, einschließlich Anforderungs-/Antworttexten und nicht ausgeführten Headern, kann auf dem Client oder pro Vorgang mit dem logging_enable argument Schlüsselwort (keyword) aktiviert werden.

Die vollständige SDK-Protokollierungsdokumentation mit Beispielen finden Sie hier.

Optionale Konfiguration

Optionale Schlüsselwort (keyword) Argumente können auf Client- und Vorgangsebene übergeben werden. In der Azure Core-Referenzdokumentation werden verfügbare Konfigurationen für Wiederholungen, Protokollierung, Transportprotokolle und vieles mehr beschrieben.

Nächste Schritte

Zusätzliche Dokumentation

Eine ausführlichere Dokumentation zu Azure Health Insights Clinical Matching finden Sie in der Dokumentation zum klinischen Abgleich auf docs.microsoft.com.

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex, oder wenden Sie sich mit weiteren Fragen oder Kommentaren an opencode@microsoft.com.