Para pesquisar dados clínicos na Vertex AI para Pesquisa, siga um destes fluxos de trabalho:
- Crie um repositório de dados de saúde, importe dados do FHIR R4 para ele, conecte-o a um app de pesquisa de saúde e consulte os dados clínicos.
- Crie um app de pesquisa de saúde, crie um repositório de dados de saúde e importe dados do FHIR R4 para o repositório durante o processo de criação do app e consulte os dados clínicos. Para mais informações, consulte Criar um app de pesquisa de saúde.
Esta página descreve o primeiro método.
Sobre a frequência de importação de dados
É possível importar dados do FHIR R4 para um repositório de dados das seguintes maneiras:
Importação em lote: uma importação única. Os dados são importados para um repositório de dados. Para outras importações incrementais, consulte Atualizar dados de saúde.
Importação de streaming (pré-lançamento): uma importação de dados de streaming quase em tempo real. Todas as mudanças incrementais na loja FHIR de origem são sincronizadas no armazenamento de dados da Vertex AI para Pesquisa. O streaming requer um conector de dados, que é um tipo de armazenamento de dados que contém uma entidade. Uma entidade também é uma instância de repositório de dados.
A taxa de streaming de dados de um determinado projeto Google Cloud depende das cotas a seguir. Se você exceder a cota, poderá ocorrer atrasos no streaming.
- O número de gravações pendentes de streaming do FHIR ou do BigQuery por minuto. Para mais informações, consulte Cotas e limites.
- O número de operações de leitura do FHIR por minuto por região. Para mais informações, consulte Cotas do FHIR da API Cloud Healthcare.
É possível selecionar a frequência de importação de dados no momento da criação do repositório de dados, mas não é possível mudar essa configuração depois.
A importação de streaming está disponível para todos os recursos compatíveis com a Vertex AI para Pesquisa. Para mais informações, consulte a referência do esquema de dados do FHIR R4 para cuidados de saúde.
Antes de começar
Antes de criar o repositório de dados de saúde e importar dados para ele, cumpra estes requisitos:
Entenda a relação entre apps e armazenamentos de dados para a pesquisa de saúde. Para mais informações, consulte Sobre apps e repositórios de dados.
A Vertex AI para Pesquisa de saúde oferece serviços de pesquisa apenas na multirregião dos EUA (
us
). Portanto, o app de pesquisa e os repositórios de dados de saúde precisam estar na multirregiãous
.
Criar um repositório de dados
É possível criar um repositório de dados no console do Google Cloud ou usando a API. As duas abordagens diferem da seguinte maneira:
- No console do Google Cloud: selecione o armazenamento FHIR de origem na API Cloud Healthcare e importe dados FHIR como parte do processo de criação de armazenamento de dados de pesquisa de saúde. Para transmitir dados FHIR (pré-lançamento), a loja de FHIR de origem precisa estar no mesmo projeto Google Cloud que a loja de dados de destino da Vertex AI para Pesquisa.
- Pela API REST: é possível importar dados FHIR de um armazenamento FHIR da API Cloud Healthcare
que esteja no mesmo projeto Google Cloud ou em outro.
- Use o método
dataStores.create
para criar um repositório de dados de saúde. - Use o método
documents.import
para especificar o armazenamento FHIR na API Cloud Healthcare e importar dados R4 do FHIR.
- Use o método
Para criar um repositório de dados de saúde, siga estas etapas.
Permissões exigidas para a tarefa
Conceda as permissões a seguir
ou os seguintes papéis do Gerenciamento de identidade e acesso (IAM)
à conta de serviço
service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
.
- Para importação única de dados FHIR de armazenamentos FHIR na API Cloud Healthcare.
Permissões
bigquery.jobs.create
bigquery.datasets.create
bigquery.tables.export
healthcare.datasets.get
healthcare.datasets.list
healthcare.fhirStores.get
healthcare.fhirStores.list
healthcare.fhirStores.export
Papéis
- Para importação de streaming de dados FHIR de armazenamentos FHIR na API Cloud Healthcare (pré-lançamento).
Permissões
healthcare.datasets.get
healthcare.datasets.list
healthcare.fhirStores.get
healthcare.fhirStores.update
healthcare.fhirStores.list
healthcare.fhirStores.export
healthcare.fhirResources.get
Papéis
- Para personalizar o esquema ao criar um repositório de dados (pré-lançamento) e configurar a capacidade de indexação,
pesquisa e recuperação de recursos e elementos do FHIR.
Permissões
storage.objects.create
storage.objects.delete
storage.objects.list
Papéis
- Para importar dados FHIR que fazem referência a arquivos em Google Cloud. Elas são concedidas por padrão se
os arquivos referenciados estiverem no mesmo Google Cloud projeto do app de pesquisa da Vertex AI.
Permissões
storage.objects.get
storage.buckets.create
Papéis
No Console do Google Cloud, acesse a página Criador de agentes.
No menu de navegação, clique em Repositórios de dados.
Clique em add_box Criar repositório de dados.
- No painel Selecionar uma fonte de dados, escolha API Healthcare (FHIR) como sua fonte de dados.
- Para importar dados do armazenamento FHIR, faça um destes procedimentos:
- Selecione o armazenamento de FHIR na lista de opções disponíveis:
- Abra o campo Armazenamento FHIR.
- Nessa lista, selecione um conjunto de dados que esteja em um local permitido e, em seguida, selecione um armazenamento de FHIR que use a versão R4.
Para transmitir dados FHIR (pré-lançamento), a loja de FHIR de origem precisa estar no mesmo Google Cloud projeto que a loja de dados de destino da Vertex AI para Pesquisa.
- Insira o armazenamento FHIR manualmente:
- Abra o campo Armazenamento FHIR.
- Clique em Inserir armazenamento FHIR manualmente.
- Na caixa de diálogo Nome da loja FHIR, insira o nome completo da loja FHIR no seguinte formato:
project/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID
- Clique em Salvar.
- Selecione o armazenamento de FHIR na lista de opções disponíveis:
- Na seção Sincronização, selecione uma das seguintes opções.
Essa seleção não pode ser alterada após a criação do repositório de dados.
- Única: para realizar uma importação única de dados em lote. Para mais importações incrementais, consulte Atualizar dados de saúde.
- Streaming: para realizar uma importação de dados de streaming quase em tempo real. Para transmitir dados, crie um conector de dados, que é um tipo de repositório de dados. Este é um recurso em fase de pré-lançamento. Para configurar um repositório de dados de streaming usando a API REST, entre em contato com o engenheiro de clientes.
- Na seção Qual é o esquema desses dados?, selecione uma destas opções:
- Esquema predefinido do Google: para manter as configurações de esquema definidas pelo Google, como
indexabilidade, capacidade de pesquisa e recuperação, para os recursos e elementos
do FHIR compatíveis. Depois de selecionar essa opção, não será possível atualizar o esquema após a criação do repositório de dados. Se você quiser
mudar o esquema após a criação do repositório de dados, selecione a opção
Esquema personalizado (pré-lançamento).
- Clique em Continuar.
- No campo Nome do repositório de dados, insira um nome para o repositório.
- Clique em Criar.
O repositório de dados que você criou é listado na página Repositórios de dados.
- Esquema personalizado (pré-lançamento): para definir suas próprias configurações de esquema, como
indexabilidade, capacidade de pesquisa e recuperação, para os recursos e elementos
do FHIR com suporte. Este é um recurso em fase de pré-lançamento. Para configurar um esquema
configurável, entre em contato com o Engenheiro de clientes.
- Clique em Continuar.
- Revise o esquema, expanda cada campo e edite as configurações.
- Clique em Adicionar novos campos para adicionar novos campos nos recursos FHIR compatíveis. Não é possível remover os campos fornecidos no esquema definido pelo Google.
- Clique em Continuar.
- No campo Nome do conector de dados, insira um nome para o conector.
- Clique em Criar.
O conector de dados criado é listado na página Repositórios de dados. O armazenamento FHIR de origem é adicionado como uma entidade no conector de dados.
- Esquema predefinido do Google: para manter as configurações de esquema definidas pelo Google, como
indexabilidade, capacidade de pesquisa e recuperação, para os recursos e elementos
do FHIR compatíveis. Depois de selecionar essa opção, não será possível atualizar o esquema após a criação do repositório de dados. Se você quiser
mudar o esquema após a criação do repositório de dados, selecione a opção
Esquema personalizado (pré-lançamento).
- Clique em Continuar.
Crie um repositório de dados.
curl -X POST\ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json"\ -H "X-Goog-User-Project:
PROJECT_ID " \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID /locations/us/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID " \ -d '{ "displayName": "DATA_STORE_DISPLAY_NAME ", "industryVertical": "HEALTHCARE_FHIR", "solutionTypes": ["SOLUTION_TYPE_SEARCH"], "searchTier": "STANDARD", "searchAddOns": ["LLM"] }'Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa que você quer criar. Esse ID só pode conter letras minúsculas, dígitos, sublinhados e hifens.DATA_STORE_DISPLAY_NAME
: o nome de exibição do repositório de dados da Vertex AI para Pesquisa que você quer criar.
Resposta
Você receberá uma resposta JSON semelhante a seguinte. Se o valor da chave
done
fortrue
, isso indica que a operação de criação do repositório de dados foi concluída. Caso contrário, a operação de criação do repositório de dados não foi bem-sucedida.{ "name": "projects/
PROJECT_NUMBER /locations/us/collections/default_collection/operations/DATA_STORE_CREATION_OPERATION_ID ", "done": true }Se a loja de FHIR de origem e a loja de dados da Vertex AI para Pesquisa estiverem no mesmo projeto Google Cloud , chame o método a seguir para realizar uma importação em lote única. Se eles não estiverem no mesmo projeto, vá para a próxima etapa.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "X-Goog-User-Project:
PROJECT_ID " \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID /locations/us/dataStores/DATA_STORE_ID /branches/0/documents:import" \ -d '{ "reconciliation_mode": "FULL", "fhir_store_source": {"fhir_store": "projects/PROJECT_ID /locations/CLOUD_HEALTHCARE_DATASET_LOCATION /datasets/CLOUD_HEALTHCARE_DATASET_ID /fhirStores/FHIR_STORE_ID "} }'Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa.CLOUD_HEALTHCARE_DATASET_ID
: o ID do conjunto de dados da API Cloud Healthcare que contém o armazenamento FHIR de origem.CLOUD_HEALTHCARE_DATASET_LOCATION
: o local do conjunto de dados da API Cloud Healthcare que contém o armazenamento de FHIR de origem.FHIR_STORE_ID
: o ID da loja FHIR R4 da API Cloud Healthcare.
Resposta
Você receberá uma resposta JSON semelhante a seguinte. A resposta contém um identificador para uma operação de longa duração. Operações de longa duração são retornadas quando as chamadas de método podem demorar um tempo significativo para serem concluídas. Observe o valor de IMPORT_OPERATION_ID. Você precisa desse valor para verificar o status da importação.
{ "name": "projects/
PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata" } }Se o armazenamento de origem do FHIR e o armazenamento de dados de destino da Vertex AI para Pesquisa estiverem em projetos Google Cloud diferentes, chame o método a seguir para realizar uma importação em lote única. Se eles estiverem no mesmo projeto, volte para a etapa anterior.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "X-Goog-User-Project:
TARGET_PROJECT_ID " \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/TARGET_PROJECT_ID /locations/us/dataStores/DATA_STORE_ID /branches/0/documents:import" \ -d '{ "reconciliation_mode": "FULL", "fhir_store_source": {"fhir_store": "projects/SOURCE_PROJECT_ID /locations/CLOUD_HEALTHCARE_DATASET_LOCATION /datasets/CLOUD_HEALTHCARE_DATASET_ID /fhirStores/FHIR_STORE_ID "} }'Substitua:
TARGET_PROJECT_ID
: o ID do projeto Google Cloud que contém o repositório de dados da Vertex AI para Pesquisa.DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa.SOURCE_PROJECT_ID
: o ID do projeto Google Cloud que contém o conjunto de dados da API Cloud Healthcare e o armazenamento FHIR.CLOUD_HEALTHCARE_DATASET_ID
: o ID do conjunto de dados da API Cloud Healthcare que contém o armazenamento FHIR de origem.CLOUD_HEALTHCARE_DATASET_LOCATION
: o local do conjunto de dados da API Cloud Healthcare que contém o armazenamento FHIR de origem.FHIR_STORE_ID
: o ID da loja FHIR R4 da API Cloud Healthcare.
Resposta
Você receberá uma resposta JSON semelhante a seguinte. A resposta contém um identificador para uma operação de longa duração. Operações de longa duração são retornadas quando as chamadas de método podem demorar um tempo significativo para serem concluídas. Observe o valor de IMPORT_OPERATION_ID. Você precisa desse valor para verificar o status da importação.
{ "name": "projects/
TARGET_PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata" } }Opcional: para configurar uma importação de dados de streaming (pré-lançamento) usando a API REST, entre em contato com seu engenheiro de atendimento ao cliente.
Para mais informações, consulte a documentação de referência da API Python do Vertex AI Agent Builder.
Para autenticar no Vertex AI Agent Builder, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um repositório de dados
Importar documentos
Verificar a criação do repositório de dados e a importação de dados FHIR
Esta tarefa mostra como verificar se um repositório de dados foi criado e se os dados do FHIR foram importados para o repositório.
- No console do Google Cloud: selecione o repositório de dados e verifique os detalhes.
- Pela API REST:
- Use o método
dataStores.get
para conferir os detalhes do repositório de dados de saúde. - Use o método
operations.get
para conferir os detalhes da operação de importação.
- Use o método
Para verificar a criação e a importação de dados do repositório, siga estas etapas.
No Console do Google Cloud, acesse a página Criador de agentes.
No menu de navegação, clique em Repositórios de dados.
A página Armazenamentos de dados mostra uma lista de repositórios de dados no projeto Google Cloud com os detalhes deles.
Verifique se o repositório de dados ou o conector de dados que você criou está na lista de repositórios de dados.
Selecione o repositório de dados ou o conector de dados e verifique os detalhes.
- Para um armazenamento de dados:
- A tabela de resumo lista os seguintes detalhes:
- O ID, o tipo e a região do repositório de dados.
- O número de documentos que indicam o número de recursos FHIR importados.
- O carimbo de data/hora em que o último documento foi importado.
- Opcionalmente, clique em Ver detalhes para conferir os detalhes da importação de documentos, como detalhes sobre uma importação bem-sucedida, parcial ou com falha.
- A guia Documentos lista os IDs dos recursos FHIR importados e os tipos de recursos em uma tabela paginada. É possível filtrar essa tabela para verificar se um recurso específico foi importado.
- A guia Atividade lista os detalhes da importação de documentos, como os detalhes sobre uma importação bem-sucedida, parcial ou com falha.
- A tabela de resumo lista os seguintes detalhes:
- Para um conector de dados:
- A tabela de resumo lista os seguintes detalhes:
- O ID, o tipo e a região da coleção.
- O nome do app conectado.
- O estado do conector, que pode ser ativo ou pausado.
- A tabela Entidades mostra a entidade no conector de dados.
O nome da entidade é o nome da loja FHIR de origem. O ID da entidade é
o ID do conector de dados anexado ao nome do armazenamento FHIR de origem.
- Clique no nome da entidade para conferir os detalhes. Como uma entidade é uma instância de armazenamento de dados em um conector de dados, os detalhes da entidade são iguais aos detalhes de um armazenamento de dados.
- A tabela de resumo lista os seguintes detalhes:
- Para um armazenamento de dados:
Na guia Esquema, confira as propriedades dos recursos e elementos do FHIR com suporte. Clique em Editar para configurar o esquema. Este é um recurso de pré-lançamento privado. Para configurar um esquema configurável, entre em contato com o engenheiro de clientes.
Verifique a criação do repositório de dados.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json"\ -H "X-Goog-User-Project:
PROJECT_ID " \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID "Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa.
Resposta
Você receberá uma resposta JSON semelhante a seguinte. A resposta contém detalhes do repositório de dados criado.
{ "name": "projects/
PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID ", "displayName": "DATA_STORE_DISPLAY_NAME ", "industryVertical": "HEALTHCARE_FHIR", "createTime": "DATA_STORE_CREATION_TIMESTAMP ", "solutionTypes": [ "SOLUTION_TYPE_SEARCH" ], "defaultSchemaId": "default_schema", "documentProcessingConfig": { "defaultParsingConfig": { "ocrParsingConfig": {} } } }Verifique se a operação de importação de dados FHIR foi concluída.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://us-discoveryengine.googleapis.com/v1alpha/projects/
PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID "Substitua:
PROJECT_ID
: o ID do projeto Google Cloud .DATA_STORE_ID
: o ID do repositório de dados da Vertex AI para Pesquisa.IMPORT_OPERATION_ID
: o ID da operação de longa duração que é retornado quando você chama o métodoimport
.
Resposta
Você receberá uma resposta JSON semelhante a seguinte. A operação de importação é demorada. Enquanto a operação está em execução, a resposta contém os seguintes campos:
successCount
: indica o número de recursos FHIR importados até o momento.failureCount
: indica o número de recursos FHIR que não foram importados até o momento. Esse campo é exibido apenas se houver recursos do FHIR que não puderam ser importados.
Quando a operação for concluída, a resposta vai conter os seguintes campos:
successCount
: indica o número de recursos FHIR importados.failureCount
: indica o número de recursos FHIR que não foram importados. Esse campo é exibido apenas se houver recursos do FHIR que não puderam ser importados.totalCount
: indica o número de recursos FHIR presentes no armazenamento FHIR de origem. Esse campo é exibido apenas se houver recursos do FHIR que não puderam ser importados.done
: tem o valortrue
para indicar que a operação de importação foi concluída.errorSamples
: fornece informações sobre os recursos que não foram importados. Esse campo é exibido apenas se houver recursos do FHIR que não puderam ser importados.errorConfig
: fornece um caminho para um local do Cloud Storage que contém o arquivo de registro de resumo de erros.
{ "name": "projects/
PROJECT_ID /locations/us/collections/default_collection/dataStores/DATA_STORE_ID /branches/0/operations/IMPORT_OPERATION_ID ", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsMetadata", "createTime": "START_TIMESTAMP ", "updateTime": "END_TIMESTAMP ", "successCount": "SUCCESS_COUNT ", "failureCount": "FAILURE_COUNT ", "totalCount": "TOTAL_COUNT ", }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1alpha.ImportDocumentsResponse", "errorSamples": [ERROR_SAMPLE ], "errorConfig": { "gcsPrefix": "LOG_FILE_LOCATION " } } }
A seguir
- Crie um app de pesquisa de saúde e conecte seu repositório de dados a ele.
- Pesquise dados de saúde no seu app de pesquisa de saúde.
- Atualizar dados de saúde.