Nesta página, explicamos como criar, atualizar, corrigir, visualizar, listar, recuperar e excluir recursos FHIR.
Um recurso FHIR pode conter dados sobre um paciente, um dispositivo, uma observação e muito mais. Para uma lista completa de recursos FHIR, consulte o Índice de recursos FHIR (DSTU2, STU3 ou R4).
As amostras curl
e PowerShell nesta página funcionam com um armazenamento de FHIR R4,
e não têm garantia de trabalho se você estiver usando um armazenamento de FHIR DSTU2 ou STU3.
Se você estiver usando um armazenamento de FHIR DSTU2 ou STU3, consulte a documentação oficial do FHIR
para informações sobre como converter as amostras para a versão FHIR que você está usando.
As amostras em Go, Java, Node.js e Python funcionam com um armazenamento de FHIR STU3.
Como criar um recurso FHIR
Antes de criar recursos FHIR, é necessário criar um armazenamento FHIR.
Os exemplos curl
, PowerShell e Python mostram como criar os
seguintes recursos FHIR:
- Um recurso paciente (DSTU2, STU3 e R4) (links em inglês)
- Um recurso de encontro (DSTU2, STU3 e R4) (links em inglês) para o paciente
- Um recurso de observação (DSTU2, STU3 e R4) (links em inglês) para o encontro
As amostras para todas as outras linguagens mostram como criar um recurso FHIR genérico.
Para ver mais informações, consulte projects.locations.datasets.fhirStores.fhir.create
.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
Corpo JSON da solicitação:
{ "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "name": [ { "use": "official", "family": "Smith", "given": [ "Darcy" ] } ], "gender": "female", "birthDate": "1970-01-01", "resourceType": "Patient" } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Go
Java
Node.js
Python
Depois de criar o recurso do paciente, crie um recurso de encontro para descrever uma interação entre o paciente e um profissional.
No campo PATIENT_ID, substitua o ID da resposta retornada pelo servidor quando você criou o recurso de paciente.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. A amostra em Python funciona com os armazenamentos FHIR STU3.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- PATIENT_ID: a resposta retornada pelo servidor quando você criou o recurso de paciente
Corpo JSON da solicitação:
{ "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "status": "finished", "class": { "system": "http://hl7.org/fhir/v3/ActCode", "code": "IMP", "display": "inpatient encounter" }, "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "subject": { "reference": "Patient/PATIENT_ID" }, "resourceType": "Encounter" } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido da API Cloud Healthcare: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python da API Cloud Healthcare.
Para autenticar na API Cloud Healthcare, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Depois de criar o recurso de encontro, crie um recurso de observação associado a ele. O recurso de observação fornece uma medição da frequência cardíaca do paciente em batimentos por minuto (BPM) (80
em bpm
).
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. A amostra em Python funciona com os armazenamentos FHIR STU3.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- PATIENT_ID: o ID na resposta retornada pelo servidor quando você criou o recurso de paciente.
- ENCOUNTER_ID: o ID na resposta retornada pelo servidor quando você criou o recurso de encontro
Corpo JSON da solicitação:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": 80, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido da API Cloud Healthcare: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python da API Cloud Healthcare.
Para autenticar na API Cloud Healthcare, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um recurso FHIR condicionalmente
O exemplo de curl
a seguir mostra como usar o método
projects.locations.datasets.fhirStores.fhir.create
para criar condicionalmente um recurso FHIR. O método implementa
a interação create
condicional de FHIR (DSTU2, STU3, R4).
Você pode usar a criação condicional para evitar a criação de recursos FHIR duplicados. Por exemplo, cada recurso de paciente em um servidor FHIR geralmente tem um identificador exclusivo, como um número de registro médico (MRN, na sigla em inglês). Para criar um novo recurso de paciente e garantir que nenhum recurso de paciente com o mesmo MRN exista, crie condicionalmente o novo recurso usando uma consulta de pesquisa. A API Cloud Healthcare só cria o novo recurso se não houver correspondências para a consulta de pesquisa.
A resposta do servidor depende de quantos recursos correspondem à consulta de pesquisa:
Corresponde a | Código de resposta HTTP | Comportamento |
---|---|---|
Zero | 201 CREATED |
Cria o novo recurso. |
One | 200 OK |
Não cria um novo recurso. |
Mais de uma | 412 Precondition Failed |
Não cria um novo recurso e retorna um erro "search criteria are not selective enough" . |
Para usar a interação condicional create
em vez da create
,
especifique um cabeçalho HTTP If-None-Exist
contendo uma consulta de pesquisa FHIR
na solicitação:
If-None-Exist: FHIR_SEARCH_QUERY
Na API Cloud Healthcare v1, as operações condicionais usam exclusivamente o parâmetro de pesquisa identifier
, se ele existir para o tipo de recurso FHIR, para determinar quais recursos FHIR correspondem a uma consulta de pesquisa condicional.
REST
O exemplo a seguir mostra como criar um recurso de observação usando um
cabeçalho HTTP If-None-Exist: identifier=my-code-system|ABC-12345
. A API Cloud Healthcare
cria o recurso somente se nenhum recurso de observação existente corresponder
à consulta identifier=my-code-system|ABC-12345
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/fhir+json" \ -H "If-None-Exist: identifier=my-code-system|ABC-12345" \ -d @request.json \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation"
O exemplo de saída a seguir mostra intencionalmente uma solicitação falha. Para ver a resposta de uma solicitação bem-sucedida, consulte Como criar um recurso FHIR.
Se vários recursos de observação corresponderem à consulta, a API Cloud Healthcare vai retornar a seguinte resposta, e a solicitação de criação condicional vai falhar:
{
"issue": [
{
"code": "conflict",
"details": {
"text": "ambiguous_query"
},
"diagnostics": "search criteria are not selective enough",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
Como atualizar um recurso FHIR
Os exemplos a seguir mostram como usar o método projects.locations.datasets.fhirStores.fhir.update
para atualizar um recurso FHIR. O método implementa a interação de atualização padrão FHIR (DSTU2, STU3 e R4).
Ao atualizar um recurso, você atualiza todo o conteúdo do recurso. Isso é diferente do patch de um recurso, que atualiza apenas parte dele.
Se o armazenamento de FHIR tiver enableUpdateCreate
definido, a solicitação será tratada como um upsert (atualização ou inserção) que atualizará o recurso se ele existir ou o inserirá usando o ID especificado, caso não exista.
O corpo da solicitação precisa ter um recurso FHIR codificado em JSON e os cabeçalhos da solicitação precisam ter Content-Type: application/fhir+json
. O recurso precisa ter um elemento id
com um valor idêntico ao ID no caminho REST da solicitação.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
REST
Os exemplos a seguir mostram como atualizar os batimentos por minuto (BPM) em um recurso de observação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- OBSERVATION_ID: o ID do recurso de observação
- PATIENT_ID: o ID do recurso do paciente
- ENCOUNTER_ID: o ID do recurso de encontro
- BPM_VALUE: o valor de batimentos por minuto (BPM) no recurso de observação atualizado
Corpo JSON da solicitação:
{ "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "resourceType": "Observation", "id": "OBSERVATION_ID", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Go
Node.js
Python
Como atualizar condicionalmente um recurso FHIR
Os exemplos a seguir mostram como chamar o método projects.locations.datasets.fhirStores.fhir.conditionalUpdate
para atualizar um recurso FHIR que corresponda a uma consulta de pesquisa, em vez de identificar o recurso pelo ID. O método implementa a interação de atualização condicional padrão FHIR (DSTU2, STU3 e R4).
Uma atualização condicional só pode ser aplicada a um recurso FHIR por vez.
A resposta retornada pelo servidor depende de quantas correspondências houver com base nos critérios de pesquisa:
- Uma correspondência: o recurso foi atualizado ou um erro foi retornado.
- Mais de uma correspondência: a solicitação retorna um erro
412 Precondition Failed
. - Nenhuma correspondência é feita com um
id
: se os critérios de pesquisa identificarem zero correspondências, o corpo do recurso fornecido tiver umid
e o armazenamento FHIRenableUpdateCreate
for definido comotrue
, o recurso FHIR será criado com oid
no corpo da solicitação. - Nenhuma correspondência sem um
id
: se os critérios de pesquisa identificarem zero correspondências e o corpo da solicitação fornecido não tiver umid
, o recurso FHIR será criado com um ID atribuído pelo servidor, como se o recurso tivesse sido criado usandoprojects.locations.datasets.fhirStores.fhir.create
.
O corpo da solicitação precisa ter um recurso FHIR codificado em JSON e os cabeçalhos da solicitação precisam ter Content-Type: application/fhir+json
.
Na API Cloud Healthcare v1, as operações condicionais usam exclusivamente o parâmetro de pesquisa identifier
, se ele existir para o tipo de recurso FHIR, para determinar quais recursos FHIR correspondem a uma consulta de pesquisa condicional.
REST
O exemplo a seguir mostra como enviar uma solicitação PUT
usando curl
e
o PowerShell para editar um recurso de observação usando o identificador de observação
(ABC-12345
em my-code-system
). A observação fornece uma medição dos batimentos cardíacos por minuto (BPM) de um paciente.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- PATIENT_ID: o ID do recurso do paciente
- ENCOUNTER_ID: o ID do recurso de encontro
- BPM_VALUE: o valor de batimentos por minuto (BPM) no recurso de observação
Corpo JSON da solicitação:
{ "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X PUT \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "identifier": [ { "system": "my-code-system", "value": "ABC-12345" } ], "code": { "coding": [ { "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" } ] }, "valueQuantity": { "value": BPM_VALUE, "unit": "bpm" }, "encounter": { "reference": "Encounter/ENCOUNTER_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PUT `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Corrigir um recurso FHIR
Os exemplos a seguir mostram como chamar o método projects.locations.datasets.fhirStores.fhir.patch
para corrigir um recurso FHIR. O método implementa a interação de patch padrão FHIR (DSTU2, STU3 e R4).
Ao corrigir um recurso, você atualiza parte dele aplicando as operações especificadas em um documento de patch JSON.
A solicitação precisa ter um documento de patch JSON e os cabeçalhos de solicitação precisam conter Content-Type: application/json-patch+json
.
Os exemplos a seguir mostram como
corrigir um recurso de observação. A observação dos batimentos cardíacos por minuto (BPM) de um paciente é atualizada usando a operação de patch replace
.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- OBSERVATION_ID: o ID do recurso de observação
- BPM_VALUE: o valor de batimentos por minuto (BPM) no recurso de observação corrigido
Corpo JSON da solicitação:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Go
Java
Node.js
Python
Como executar uma solicitação PATCH
em um pacote FHIR
É possível especificar uma solicitação PATCH
em um pacote FHIR (somente FHIR R4).
A execução da solicitação PATCH
em um pacote FHIR permite que você faça patches em muitos
recursos FHIR de uma só vez, em vez de fazer solicitações de patch individuais
para cada recurso FHIR.
Para fazer uma solicitação PATCH
em um pacote, especifique as seguintes informações em
um objeto resource
na solicitação:
- Um campo
resourceType
definido comoBinary
- Um campo
contentType
definido comoapplication/json-patch+json
- O corpo do patch codificado em base64
Confira se o objeto resource
tem esta aparência:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
O exemplo a seguir mostra o corpo do patch codificado em base64 no campo data
:
[
{
"op": "replace",
"path": "/birthdate",
"value": "1990-01-01"
}
]
Os exemplos a seguir mostram como usar uma solicitação PATCH
em um pacote para corrigir
o recurso de paciente criado em
Como criar um recurso FHIR para ter um valor birthDate
de 1990-01-01
:
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: é o ID do projeto do Google Cloud.
- LOCATION: o local do conjunto de dados pai
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- PATIENT_ID: o ID de um recurso de paciente
Corpo JSON da solicitação:
{ "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/fhir+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' { "type": "transaction", "resourceType": "Bundle", "entry": [ { "request": { "method": "PATCH", "url": "Patient/PATIENT_ID" }, "resource": { "resourceType": "Binary", "contentType": "application/json-patch+json", "data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K" } } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/fhir+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
Corrigir condicionalmente um recurso FHIR
Os exemplos a seguir mostram como chamar o método projects.locations.datasets.fhirStores.fhir.conditionalPatch
para fazer patch de um recurso FHIR que corresponda a uma consulta de pesquisa, em vez de identificar o recurso pelo ID. O método implementa a interação de patch condicional padrão FHIR (DSTU2, STU3 e R4).
Um patch condicional só pode ser aplicado a um recurso por vez. Se os critérios de pesquisa identificarem mais de uma correspondência, a solicitação retornará um erro 412 Precondition Failed
.
Na API Cloud Healthcare v1, as operações condicionais usam exclusivamente o parâmetro de pesquisa identifier
, se ele existir para o tipo de recurso FHIR, para determinar quais recursos FHIR correspondem a uma consulta de pesquisa condicional.
REST
O exemplo a seguir mostra como enviar uma solicitação PATCH
usando curl
e PowerShell
para editar um recurso de observação se o identificador da observação for
ABC-12345
em my-code-system
.
A Observação dos batimentos cardíacos por minuto (BPM) de um paciente é atualizada usando a operação de patch replace
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- BPM_VALUE: o valor de batimentos por minuto (BPM) no recurso de observação
Corpo JSON da solicitação:
[ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ]
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] EOF
Depois execute o comando a seguir para enviar a solicitação REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json-patch+json" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Salve o corpo da solicitação em um arquivo chamado request.json
.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@' [ { "op": "replace", "path": "/valueQuantity/value", "value": BPM_VALUE } ] '@ | Out-File -FilePath request.json -Encoding utf8
Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json-patch+json" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Como conseguir um recurso FHIR
Os exemplos a seguir mostram como usar o método
projects.locations.datasets.fhirStores.fhir.read
para acessar o conteúdo de um recurso FHIR.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR.
As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
Console
Para acessar o conteúdo de um recurso FHIR, siga estas etapas:
No console do Google Cloud, acesse a página do visualizador FHIR.
Na lista suspensa Armazenamento de FHIR, selecione um conjunto de dados e, em seguida, selecione um armazenamento de FHIR no conjunto de dados.
Para filtrar a lista de tipos de recursos, pesquise os que você quer exibir.
Clique no campo Resource Type.
Na lista suspensa Propriedades, selecione Tipo de recurso.
Insira um tipo de recurso.
Para procurar outro tipo de recurso, selecione OU na lista suspensa Operadores exibida e insira outro tipo de recurso.
Na lista de tipos de recursos, selecione o tipo em que você quer receber o conteúdo.
Na tabela de recursos exibida, selecione ou procure um recurso.
REST
Os exemplos a seguir mostram como acessar os detalhes do recurso de observação criado em uma seção anterior.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- OBSERVATION_ID: o ID do recurso de observação
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Go
Java
Node.js
Python
Receber todos os detalhes do recurso de encontro
Os exemplos a seguir mostram como usar o método
projects.locations.datasets.fhirStores.fhir.Encounter-everything
para conferir detalhes sobre um recurso de encontro e
todos os recursos relacionados a ele.
O método implementa a operação estendida Encounter-everything
do FHIR definida nas seguintes versões do FHIR:
REST
Use o método projects.locations.datasets.fhirStores.fhir.Encounter-everything
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do seu projeto do Google Cloud;LOCATION
: o local do conjunto de dados;DATASET_ID
: o ID do conjunto de dados;FHIR_STORE_ID
: o ID de armazenamento de FHIRENCOUNTER_ID
: o ID do recurso de encontro
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Encounter/ENCOUNTER_ID/\$everything" | Select-Object -Expand Content
c427ce3e-7677-400e-bc06-33a8cecfdd77
, que é um recurso sintético no bucket público do Cloud Storage gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
.
Como conseguir todos os recursos de compartimento de pacientes
Os exemplos a seguir mostram como conseguir todos os recursos associados a um determinado compartimento de pacientes (DSTU2, STU3 e R4).
Para ver mais informações, consulte
projects.locations.datasets.fhirStores.fhir.Patient-everything
.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
curl
Para receber os recursos de um compartimento de pacientes, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O ID do paciente
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything"
Se a solicitação for bem-sucedida, o servidor retornará uma resposta semelhante à seguinte amostra no formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
PowerShell
Para receber os recursos de um compartimento de pacientes, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O ID do paciente
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando o PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything' | ConvertTo-Json
Se a solicitação for bem-sucedida, o servidor retornará uma resposta semelhante à seguinte amostra no formato JSON:
{ "entry": [ { "resource": { "birthDate": "1970-01-01", "gender": "female", "id": "PATIENT_ID", "name": [ { "family": "Smith", "given": [ "Darcy" ], "use": "official" } ], "resourceType": "Patient" } }, { "resource": { "class": { "code": "IMP", "display": "inpatient encounter", "system": "http://hl7.org/fhir/v3/ActCode" }, "id": "ENCOUNTER_ID", "reasonCode": [ { "text": "The patient had an abnormal heart rate. She was concerned about this." } ], "resourceType": "Encounter", "status": "finished", "subject": { "reference": "Patient/PATIENT_ID" } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": BPM_VALUE } } } ], "resourceType": "Bundle", "type": "searchset" }
Go
Java
Node.js
Python
Como filtrar recursos de compartimento de pacientes filtrados por tipo ou data
Os exemplos a seguir mostram como acessar todos os recursos associados a um
compartimento de paciente (R4)
específico, filtrado por uma lista de tipos e desde uma data e hora especificadas.
Para mais informações, consulte projects.locations.datasets.fhirStores.fhir.Patient-everything
.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR.
curl
Para receber os recursos em um compartimento de pacientes de um tipo especificado e desde uma data especificada, faça uma solicitação GET
e especifique as seguintes informações:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O ID do paciente
- Uma string de consulta que contém uma lista de tipo de recurso e data de início separados por vírgulas.
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/PATIENT_ID/\$everything?_type=RESOURCE_TYPES&_since=DATE"
Se a solicitação for bem-sucedida, o servidor retornará todos os recursos que correspondem aos critérios especificados no formato JSON.
PowerShell
Para receber os recursos em um compartimento de pacientes de um tipo especificado e desde uma data especificada, faça uma solicitação GET
e especifique as seguintes informações:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O ID do paciente
- Uma string de consulta que contém uma lista de tipo de recurso e data de início separados por vírgulas.
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando o PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri 'https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient/RESOURCE_ID/$everything?_type=RESOURCE_TYPES&_since=DATE' | ConvertTo-Json
Se a solicitação for bem-sucedida, o servidor retornará todos os recursos que correspondem aos critérios especificados no formato JSON.
Como listar versões de recursos FHIR
Os exemplos a seguir mostram como listar todas as versões históricas de um recurso FHIR. Para ver mais informações, consulte projects.locations.datasets.fhirStores.fhir.history
.
As amostras usam os recursos criados em Como criar um recurso FHIR e mostram como listar as versões de um recurso de observação.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
curl
O exemplo a seguir mostra como listar todas as versões de um recurso de observação. A observação foi atualizada uma vez após a criação original para alterar os batimentos cardíacos por minuto (BPM).
Para listar todas as versões de um recurso FHIR, incluindo a versão atual e as versões excluídas, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history"
Se a solicitação for bem-sucedida, o servidor retornará a resposta no formato JSON. Neste exemplo, ele retorna duas versões da observação. Na primeira versão, a frequência cardíaca do paciente era de 75 BPM. Na segunda versão, a frequência cardíaca do paciente era de 85 BPM.
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
PowerShell
O exemplo a seguir mostra como listar todas as versões de um recurso de observação. A observação foi atualizada uma vez após a criação original para alterar os batimentos cardíacos por minuto (BPM).
Para listar todas as versões de um recurso FHIR, incluindo a versão atual e as versões excluídas, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
feita com o Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history" | Select-Object -Expand Content
Se a solicitação for bem-sucedida, o servidor retornará a resposta no formato JSON. Neste exemplo, ele retorna duas versões da observação. Na primeira versão, a frequência cardíaca do paciente era de 75 BPM. Na segunda versão, a frequência cardíaca do paciente era de 85 BPM.
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 85 } } }, { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } } } ], "resourceType": "Bundle", "type": "history" }
Go
Java
Node.js
Python
Como recuperar uma versão de recurso FHIR
Os exemplos a seguir mostram como recuperar uma versão específica de um recurso.
Para ver mais informações, consulte projects.locations.datasets.fhirStores.fhir.vread
.
Os IDs de versão do recurso de observação de Como listar versões de recursos FHIR estão em destaque abaixo:
{ "entry": [ { "resource": { "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-02T00:00:00+00:00", "versionId": "MTU0MTE5MDk5Mzk2ODcyODAwMA" }, ... { "resource": { "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, ... }
Os exemplos a seguir usam os recursos criados em Como criar um recurso FHIR e mostram como visualizar um recurso de observação.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Node.js e Python funcionam com os armazenamentos FHIR STU3.
curl
Para receber uma versão específica de um recurso FHIR, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- A versão do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/_history/RESOURCE_VERSION"
Se a solicitação for bem-sucedida, o servidor retornará a resposta no formato JSON. Neste exemplo, a primeira versão da observação, em que a frequência cardíaca do paciente era de 75 BPM, é retornada.
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
PowerShell
Para receber uma versão específica de um recurso FHIR, faça uma solicitação GET
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- A versão do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação GET
usando curl
.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/RESOURCE_VERSION/_history" | Select-Object -Expand Content
Se a solicitação for bem-sucedida, o servidor retornará a resposta no formato JSON. Neste exemplo, a primeira versão da observação, em que a frequência cardíaca do paciente era de 75 BPM, é retornada.
{ "encounter": { "reference": "Encounter/ENCOUNTER_ID" }, "effectiveDateTime": "2020-01-01T00:00:00+00:00", "id": "OBSERVATION_ID", "meta": { "lastUpdated": "2020-01-01T00:00:00+00:00", "versionId": "MTU0MTE5MDg4MTY0MzQ3MjAwMA" }, "resourceType": "Observation", "status": "final", "subject": { "reference": "Patient/PATIENT_ID" }, "valueQuantity": { "unit": "bpm", "value": 75 } }
Go
Java
Node.js
Python
Como excluir um recurso FHIR
Os exemplos a seguir mostram como chamar o método
projects.locations.datasets.fhirStores.fhir.delete
para excluir um recurso de observação FHIR.
Independentemente de a operação ser bem-sucedida ou falhar, o servidor retorna um código de status HTTP 200 OK
. Para verificar se o recurso foi excluído, pesquise ou consiga o recurso e veja se ele existe.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- LOCATION: o local do conjunto de dados;
- DATASET_ID: o conjunto de dados pai do armazenamento de FHIR
- FHIR_STORE_ID: o ID de armazenamento de FHIR
- OBSERVATION_ID: o ID do recurso de observação
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation/OBSERVATION_ID" | Select-Object -Expand Content
APIs Explorer
Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
Você receberá uma resposta JSON semelhante a esta:
Go
Java
Node.js
Python
Excluir condicionalmente um recurso FHIR
Na API Cloud Healthcare v1, as operações condicionais usam exclusivamente o parâmetro de pesquisa identifier
, se ele existir para o tipo de recurso FHIR, para determinar quais recursos FHIR correspondem a uma consulta de pesquisa condicional.
Um recurso FHIR corresponde à consulta ?identifier=my-code-system|ABC-12345
se e somente se o identifier.system
do recurso
for my-code-system
e o identifier.value
for ABC-12345
. Se um recurso FHIR
corresponder à consulta, a API Cloud Healthcare vai excluir o recurso.
Se a consulta usar o parâmetro de pesquisa identifier
e
corresponder a vários recursos do FHIR, a API Cloud Healthcare vai retornar um
erro "412 - Condition not selective enough"
.
Para excluir os recursos individualmente, siga estas etapas:
- Pesquise cada recurso para receber o ID exclusivo atribuído pelo servidor.
- Exclua cada recurso individualmente usando o ID.
Os exemplos a seguir mostram como excluir condicionalmente um recurso FHIR que corresponda a uma consulta de pesquisa,
em vez de identificar o recurso FHIR pelo ID.
A consulta de pesquisa corresponde e exclui um recurso de observação usando o
identificador da observação (ABC-12345
em my-code-system
).
REST
Use o método projects.locations.datasets.fhirStores.fhir.conditionalDelete
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do seu projeto do Google Cloud;LOCATION
: o local do conjunto de dados;DATASET_ID
: o conjunto de dados pai do armazenamento de FHIRFHIR_STORE_ID
: o ID de armazenamento de FHIR
Para enviar a solicitação, escolha uma destas opções:
curl
execute o seguinte comando:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Observation?identifier=my-code-system|ABC-12345" | Select-Object -Expand Content
APIs Explorer
Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.
Como excluir versões históricas de um recurso FHIR
Os exemplos a seguir mostram como excluir todas as versões históricas de um recurso FHIR. Para ver mais informações, consulte projects.locations.datasets.fhirStores.fhir.Resource-purge
.
Para chamar o método projects.locations.datasets.fhirStores.fhir.Resource-purge
, é necessário que o usuário (autor da chamada) tenha o papel roles/healthcare.fhirStoreAdmin
. Usuários com o papel roles/healthcare.fhirResourceEditor
não podem chamar o método. Para permitir que um autor da chamada exclua versões históricas de um recurso FHIR:
- Verifique se o autor da chamada tem o papel
roles/healthcare.fhirStoreAdmin
. - Crie um papel personalizado do IAM com a permissão
healthcare.fhirResources.purge
e atribua o papel ao autor da chamada.
As amostras usam os recursos criados em Como criar um recurso FHIR e mostram como excluir as versões de um recurso de observação.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos de R4 FHIR. As amostras em Go, Java, Node.js e Python funcionam com armazenamentos FHIR STU3.
curl
Para excluir todas as versões históricas de um recurso FHIR, faça uma solicitação DELETE
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação DELETE
usando curl
.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/fhir+json; charset=utf-8" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/\$purge"
Se a solicitação for bem-sucedida, o servidor retornará o corpo de resposta vazio no formato JSON:
{}
PowerShell
Para excluir todas as versões históricas de um recurso FHIR, faça uma solicitação DELETE
e especifique as informações a seguir:
- O nome do conjunto de dados pai
- O nome do armazenamento FHIR
- O tipo e o ID do recurso
- Um token de acesso
O exemplo a seguir mostra uma solicitação DELETE
feita com o Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Delete ` -Headers $headers ` -ContentType: "application/fhir+json; charset=utf-8" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID/$purge" | ConvertTo-Json
Se a solicitação for bem-sucedida, o servidor retornará o corpo de resposta vazio no formato JSON:
{}