Biblioteca de cliente do Azure Cognitive Services Health Insights Clinical Matching para Python – versão 1.0.0b1
O Health Insights é um Serviço de IA Aplicado do Azure criado com o Azure Cognitive Services Framework, que tira partido de vários Serviços Cognitivos, serviços de API de Cuidados de Saúde e outros recursos do Azure. O modelo de Correspondência Clínica recebe dados dos pacientes e protocolos de ensaios clínicos e fornece ensaios clínicos relevantes com base em critérios de elegibilidade.
Código fonte | Pacote (PyPI) | Documentação | de referência da APIDocumentação do | produto Exemplos
Introdução
Pré-requisitos
- O Python 3.7 ou posterior é necessário para utilizar este pacote.
- Precisa de uma subscrição do Azure para utilizar este pacote.
- Uma instância das Informações de Estado de Funcionamento dos Serviços Cognitivos existente.
Instalar o pacote
pip install azure-healthinsights-clinicalmatching
Esta tabela mostra a relação entre as versões do SDK e as versões de API suportadas do serviço:
Versão do SDK | Versão de serviço da API suportada |
---|---|
1.0.0b1 | 2023-03-01-preview |
Autenticar o cliente
Obter o ponto final
Pode encontrar o ponto final do recurso do serviço Informações de Estado de Funcionamento com o Portal do Azure ou a CLI do Azure
# Get the endpoint for the Health Insights service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"
Obter a Chave de API
Pode obter a Chave de API a partir do recurso do serviço Informações de Estado de Funcionamento no portal do Azure. Em alternativa, pode utilizar o fragmento da CLI do Azure abaixo para obter a chave de API do recurso.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Criar um ClinicalMatchingClient com uma Credencial de Chave de API
Assim que tiver o valor da chave de API, pode passá-lo como uma cadeia numa instância do AzureKeyCredential. Utilize a chave como o parâmetro de credencial para autenticar o cliente:
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))
Operações de Long-Running
As operações de execução prolongada são operações que consistem num pedido inicial enviado ao serviço para iniciar uma operação, seguidas de consulta do serviço em intervalos para determinar se a operação foi concluída ou falhou e, se foi bem-sucedida, para obter o resultado.
Os métodos que suportam a análise de cuidados de saúde, a análise de texto personalizado ou várias análises são modelados como operações de execução prolongada.
O cliente expõe um begin_<method-name>
método que devolve um objeto poller. Os autores da chamada devem aguardar que a operação seja concluída ao chamar result()
o objeto poller devolvido do begin_<method-name>
método .
Os fragmentos de código de exemplo são fornecidos para ilustrar a utilização de operações de execução prolongada abaixo.
Conceitos-chave
O Trial Matcher fornece ao utilizador dos serviços dois modos principais de funcionamento: pacientes centrados e centrados no ensaio clínico.
- No modo centrado no paciente, o modelo Do Matcher de Avaliação baseia a correspondência do paciente na condição clínica, na localização, nas prioridades, nos critérios de elegibilidade e noutros critérios que os utilizadores do paciente e/ou do serviço podem optar por atribuir prioridades. O modelo ajuda a reduzir e priorizar o conjunto de ensaios clínicos relevantes para um conjunto mais pequeno de ensaios, para começar, para o qual o paciente específico parece estar qualificado.
- No ensaio clínico centrado, o Matcher de Ensaio está a encontrar um grupo de pacientes potencialmente elegíveis para um ensaio clínico. O Matcher de Ensaio restringe os pacientes, primeiro filtrado em condição clínica e observações clínicas selecionadas, e depois foca-se nos pacientes que cumpriram os critérios de linha de base, para encontrar o grupo de pacientes que parece ser pacientes elegíveis para um ensaio.
Exemplos
A secção seguinte fornece vários fragmentos de código que abrangem algumas das tarefas mais comuns do serviço Informações de Saúde – Correspondência Clínica, incluindo:
Corresponder a avaliações
Encontrar potenciais testes elegíveis para um paciente.
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}")
Resolução de problemas
Geral
A biblioteca de cliente de Correspondência Clínica do Health Insights irá gerar exceções definidas no Azure Core.
Registo
Esta biblioteca utiliza a biblioteca de registo padrão para registo.
As informações básicas sobre sessões HTTP (URLs, cabeçalhos, etc.) são registadas ao INFO
nível.
O registo de nível detalhado DEBUG
, incluindo os corpos de pedido/resposta e os cabeçalhos não retotados , pode ser ativado no cliente ou por operação com o logging_enable
argumento de palavra-chave.
Veja a documentação completa do registo do SDK com exemplos aqui.
Configuração opcional
Os argumentos de palavra-chave opcionais podem ser transmitidos ao nível do cliente e por operação. A documentação de referência azure-core descreve as configurações disponíveis para repetições, registo, protocolos de transporte e muito mais.
Passos seguintes
Documentação adicional
Para obter documentação mais extensa sobre a Correspondência Clínica do Azure Health Insights, veja a documentação de Correspondência Clínica sobre docs.microsoft.com.
Contribuir
Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Quando submete um pedido Pull, um bot do CLA determina automaticamente se tem de fornecer um CLA e decorar o PR de forma adequada (por exemplo, etiqueta, comentário). Só tem de seguir as instruções fornecidas pelo bot. Apenas terá de fazer isto uma vez em todos os repositórios com o nosso CLA.
Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, veja a Code of Conduct FAQ (FAQ do Código de Conduta) ou envie um e-mail para opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.
Azure SDK for Python
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários