Pustaka klien Pencocokan Klinis Azure Cognitive Services Health Insights untuk Python - versi 1.0.0b1
Wawasan Kesehatan adalah Layanan AI Terapan Azure yang dibangun dengan Azure Cognitive Services Framework, yang memanfaatkan beberapa Cognitive Services, layanan Healthcare API, dan sumber daya Azure lainnya. Model Clinical Matching menerima data pasien dan protokol uji klinis, dan menyediakan uji klinis yang relevan berdasarkan kriteria kelayakan.
Kode sumber | Paket (PyPI) | Dokumentasi | referensi API Dokumentasi | produk Sampel
Memulai
Prasyarat
- Python 3.7 atau yang lebih baru diharuskan untuk menggunakan paket ini.
- Anda memerlukan langganan Azure untuk menggunakan paket ini.
- Instans Cognitive Services Health Insights yang ada.
Instal paketnya
pip install azure-healthinsights-clinicalmatching
Tabel ini menunjukkan hubungan antara versi SDK dan versi API layanan yang didukung:
Versi SDK | Versi API layanan yang didukung |
---|---|
1.0.0b1 | Pratinjau 01-03-2023 |
Mengautentikasi klien
Mendapatkan titik akhir
Anda dapat menemukan titik akhir untuk sumber daya layanan Wawasan Kesehatan Anda menggunakan Portal Azure atau 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"
Dapatkan Kunci API
Anda bisa mendapatkan Kunci API dari sumber daya layanan Wawasan Kesehatan di Portal Microsoft Azure. Atau, Anda dapat menggunakan cuplikan Azure CLI di bawah ini untuk mendapatkan kunci API sumber daya Anda.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Membuat ClinicalMatchingClient dengan Kredensial Kunci API
Setelah Anda memiliki nilai untuk kunci API, Anda dapat meneruskannya sebagai string ke dalam instans AzureKeyCredential. Gunakan kunci sebagai parameter kredensial untuk mengautentikasi klien:
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))
Operasi Long-Running
Operasi jangka panjang adalah operasi yang terdiri dari permintaan awal yang dikirim ke layanan untuk memulai operasi, diikuti dengan polling layanan pada interval untuk menentukan apakah operasi telah selesai atau gagal, dan jika telah berhasil, untuk mendapatkan hasilnya.
Metode yang mendukung analisis layanan kesehatan, analisis teks kustom, atau beberapa analisis dimodelkan sebagai operasi yang berjalan lama.
Klien mengekspos begin_<method-name>
metode yang mengembalikan objek poller. Penelepon harus menunggu operasi selesai dengan memanggil result()
objek poller yang dikembalikan dari begin_<method-name>
metode .
Cuplikan kode sampel disediakan untuk mengilustrasikan menggunakan Contoh operasi yang berjalan lama di bawah ini.
Konsep utama
Trial Matcher menyediakan pengguna layanan dua mode operasi utama: pasien sentris dan uji klinis sentris.
- Pada mode sentris pasien, model Pencocokan Uji Coba mendasarkan pencocokan pasien pada kondisi klinis, lokasi, prioritas, kriteria kelayakan, dan kriteria lain yang dapat dipilih pasien dan/atau pengguna layanan untuk diprioritaskan. Model ini membantu mempersempit dan memprioritaskan serangkaian uji klinis yang relevan ke serangkaian uji coba yang lebih kecil untuk memulai, yang tampaknya memenuhi syarat untuk pasien tertentu.
- Pada uji klinis yang sentris, Trial Matcher menemukan sekelompok pasien yang berpotensi memenuhi syarat untuk uji klinis. Trial Matcher mempersempit pasien, pertama kali difilter pada kondisi klinis dan pengamatan klinis yang dipilih, dan kemudian berfokus pada pasien yang memenuhi kriteria dasar, untuk menemukan kelompok pasien yang tampaknya memenuhi syarat pasien untuk uji coba.
Contoh
Bagian berikut ini menyediakan beberapa cuplikan kode yang mencakup beberapa tugas layanan Health Insights - Clinical Matching yang paling umum, termasuk:
Cocokkan uji coba
Menemukan potensi uji coba yang memenuhi syarat untuk pasien.
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}")
Pemecahan Masalah
Umum
Pustaka klien Pencocokan Klinis Health Insights akan memunculkan pengecualian yang ditentukan dalam Azure Core.
Pembuatan Log
Pustaka ini menggunakan pustaka pengelogan standar untuk pengelogan.
Informasi dasar tentang sesi HTTP (URL, header, dll.) dicatat pada INFO
tingkat.
Pengelogan tingkat terperinci, termasuk isi DEBUG
permintaan/respons dan header yang tidak diredaksikan , dapat diaktifkan pada klien atau per operasi dengan logging_enable
argumen kata kunci.
Lihat dokumentasi pengelogan SDK lengkap dengan contoh di sini.
Konfigurasi Opsional
Argumen kata kunci opsional dapat diteruskan di tingkat klien dan per operasi. Dokumentasi referensi azure-core menjelaskan konfigurasi yang tersedia untuk percobaan ulang, pengelogan, protokol transportasi, dan banyak lagi.
Langkah berikutnya
Dokumentasi tambahan
Untuk dokumentasi yang lebih luas tentang Pencocokan Klinis Azure Health Insights, lihat dokumentasi Pencocokan Klinis tentang docs.microsoft.com.
Berkontribusi
Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.
Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.
Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Kode Etik atau kontak dengan pertanyaan atau komentar opencode@microsoft.com tambahan.
Azure SDK for Python
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk