Azure Cognitive Services Health Insights- klientbibliotek för klinisk matchning för Python – version 1.0.0b1
Health Insights är en Azure Applied AI-tjänst som skapats med Azure Cognitive Services Framework och som utnyttjar flera Cognitive Services, Healthcare API-tjänster och andra Azure-resurser. Modellen för klinisk matchning tar emot patientdata och protokoll för kliniska prövningar och tillhandahåller relevanta kliniska prövningar baserat på berättigandekriterier.
| Källkod Paket (PyPI) | API-referensdokumentation | Produktdokumentation | Prover
Komma igång
Förutsättningar
- Python 3.7 eller senare krävs för att använda det här paketet.
- Du behöver en Azure-prenumeration för att använda det här paketet.
- En befintlig Cognitive Services Health Insights-instans.
Installera paketet
pip install azure-healthinsights-clinicalmatching
Den här tabellen visar relationen mellan SDK-versioner och API-versioner som stöds av tjänsten:
SDK-version | API-version av tjänsten som stöds |
---|---|
1.0.0b1 | Förhandsversion av 2023-03-01 |
Autentisera klienten
Hämta slutpunkten
Du hittar slutpunkten för din Health Insights-tjänstresurs med hjälp av Azure-portalen eller 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"
Hämta API-nyckeln
Du kan hämta API-nyckeln från Health Insights-tjänstresursen i Azure-portalen. Du kan också använda Azure CLI-kodfragmentet nedan för att hämta API-nyckeln för din resurs.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Skapa en ClinicalMatchingClient med en API-nyckelautentiseringsuppgift
När du har värdet för API-nyckeln kan du skicka den som en sträng till en instans av AzureKeyCredential. Använd nyckeln som parameter för autentiseringsuppgifter för att autentisera klienten:
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 åtgärder
Långvariga åtgärder är åtgärder som består av en första begäran som skickas till tjänsten för att starta en åtgärd, följt av avsökning av tjänsten med jämna mellanrum för att avgöra om åtgärden har slutförts eller misslyckats, och om den har lyckats för att få resultatet.
Metoder som stöder hälso- och sjukvårdsanalys, anpassad textanalys eller flera analyser modelleras som långvariga åtgärder.
Klienten exponerar en begin_<method-name>
metod som returnerar ett pollerobjekt. Anropare bör vänta tills åtgärden har slutförts genom att anropa result()
det pollerobjekt som returneras från begin_<method-name>
metoden .
Exempelkodfragment tillhandahålls för att illustrera med hjälp av långvariga åtgärder nedan.
Viktiga begrepp
Trial Matcher ger användaren av tjänsterna två huvudsakliga driftslägen: patienter centrerad och klinisk prövning centrerad.
- I centrerad patientläge baseras testmatchningsmodellen på patientens matchning på kliniskt tillstånd, plats, prioriteringar, berättigandekriterier och andra kriterier som patienten och/eller tjänstanvändare kan välja att prioritera. Modellen hjälper till att begränsa och prioritera uppsättningen relevanta kliniska prövningar till en mindre uppsättning prövningar till att börja med, som den specifika patienten verkar vara kvalificerad för.
- På centrerad klinisk prövning finner Trial Matcher en grupp patienter som potentiellt är berättigade till en klinisk prövning. Studiematchare begränsar patienterna, filtrerar först på kliniskt tillstånd och utvalda kliniska observationer och fokuserar sedan på de patienter som uppfyllde baslinjekriterierna, för att hitta den grupp patienter som verkar vara berättigade patienter till en studie.
Exempel
Följande avsnitt innehåller flera kodfragment som täcker några av de vanligaste hälsoinsikterna – kliniska matchningstjänstuppgifter, inklusive:
Matcha utvärderingsversioner
Hitta potentiella berättigade försök för en patient.
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}")
Felsökning
Allmänt
Health Insights-klientbiblioteket för klinisk matchning genererar undantag som definierats i Azure Core.
Loggning
Det här biblioteket använder standardloggningsbiblioteket för loggning.
Grundläggande information om HTTP-sessioner (URL:er, rubriker osv.) loggas på INFO
nivå.
Detaljerad DEBUG
nivåloggning, inklusive begärande-/svarskroppar och oredigerade rubriker, kan aktiveras på klienten eller per åtgärd med nyckelordsargumentet logging_enable
.
Se fullständig SDK-loggningsdokumentation med exempel här.
Valfri konfiguration
Valfria nyckelordsargument kan skickas in på klient- och åtgärdsnivå. Referensdokumentationen för azure-core beskriver tillgängliga konfigurationer för återförsök, loggning, transportprotokoll med mera.
Nästa steg
Ytterligare dokumentation
Mer omfattande dokumentation om klinisk matchning i Azure Health Insights finns i dokumentationen om klinisk matchning på docs.microsoft.com.
Bidra
Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.
När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.
Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Du hittar mer information i Vanliga frågor om uppförandekod eller kontakta opencode@microsoft.com för ytterligare frågor eller kommentarer.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för