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 FHIR DSTU2 ou STU3, consulte a documentação oficial do FHIR.
para saber como converter as amostras na 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 a
recursos FHIR a seguir:
- 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 FHIR do R4. 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 criou o recurso "Paciente".
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos FHIR do R4. 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 este exemplo, siga as instruções de configuração do Python na Guia de início rápido da API Cloud Healthcare usando bibliotecas de cliente. Para mais informações, consulte a API Cloud Healthcare Python documentação de referência.
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.
Após criar o recurso Encounter, 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 FHIR do R4. 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 "Paciente"
- ENCOUNTER_ID: o ID na resposta retornada pelo servidor quando você criou o recurso Encounter
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 condicionalmente um recurso FHIR
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 condicional create
de FHIR (DSTU2, STU3, R4).
É possível usar a criação condicional para evitar recursos FHIR duplicados. Por exemplo: cada recurso de paciente em um servidor FHIR geralmente tem um identificador exclusivo, como Número de registro médico (MRN, na sigla em inglês). Para criar um novo recurso "Paciente" e garantir que não exista um recurso de paciente com o mesmo MRN, condicionalmente criar o novo recurso usando uma consulta de pesquisa. A API Cloud Healthcare cria o novo recurso somente 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 um | 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
, faça o seguinte:
especifique um cabeçalho HTTP If-None-Exist
que contenha uma consulta de pesquisa FHIR
na sua solicitação:
If-None-Exist: FHIR_SEARCH_QUERY
Na API Cloud Healthcare v1, as operações condicionais usam exclusivamente o identifier
parâmetro de pesquisa, se houver para o tipo de recurso FHIR, para determinar qual FHIR
recursos 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 com falha. Para 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 retorna a resposta a seguir, e a solicitação de criação condicional falha na solicitação:
{
"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 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 FHIR do R4. 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 o 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 com
id
: se o critério de pesquisa não identificar nenhuma correspondência, o corpo da solicitação fornecido contém umid
, e o repositório FHIR temenableUpdateCreate
definido comotrue
, o recurso FHIR será criado comid
no corpo da solicitação. - Nenhuma correspondência sem um
id
: se o critério de pesquisa não identificar nenhuma correspondência e o corpo da solicitação fornecido não contiverid
, 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 identifier
parâmetro de pesquisa, se houver para o tipo de recurso FHIR, para determinar qual FHIR
recursos 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 Encounter
- BPM_VALUE: o valor de batimentos por minuto (BPM) no recurso 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 o 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 a operações especificadas em um patch de JSON documento.
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
para corrigir um recurso de observação. A observação dos batimentos cardíacos de um paciente por
minuto (BPM) é atualizado usando a operação de patch replace
.
As amostras de curl
e PowerShell a seguir funcionam com armazenamentos FHIR do R4. 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).
Executar a solicitação PATCH
em um pacote FHIR permite corrigir vários
Recursos FHIR de uma só vez, em vez de ter que 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
Verifique se o objeto resource
se parece com o seguinte:
"resource": {
"resourceType": "Binary",
"contentType": "application/json-patch+json",
"data": "WyB7ICJvcCI6ICJyZXBsYWNlIiwgInBhdGgiOiAiL2JpcnRoRGF0ZSIsICJ2YWx1ZSI6ICIxOTkwLTAxLTAxIiB9IF0K"
}
Veja a seguir o corpo do patch que foi codificado como 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 existente
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 identifier
parâmetro de pesquisa, se houver para o tipo de recurso FHIR, para determinar qual FHIR
recursos 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 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 FHIR do R4.
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 de 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 tipos de recursos 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 o 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
Conferir todos os detalhes do recurso Encounter
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 FHIR
Encounter-everything
definido nas seguintes versões 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 Encounter
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 na
gs://gcp-public-data--synthea-fhir-data-10-patients/fhir_r4_ndjson/
em um bucket público do Cloud Storage.
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 FHIR do R4. 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 obter todos os recursos associados a uma
específicas
compartimento do paciente (R4)
filtrada 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 FHIR do R4. 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 FHIR do R4. 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 FHIR de observação.
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 FHIR do R4. 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 o 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 identifier
parâmetro de pesquisa, se houver para o tipo de recurso FHIR, para determinar qual FHIR
recursos correspondem a uma consulta de pesquisa condicional.
Um recurso FHIR corresponde à consulta ?identifier=my-code-system|ABC-12345
se, e somente se, a propriedade identifier.system
é my-code-system
e identifier.value
é 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 individualmente cada recurso 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 application-default 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 application-default 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 o 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 FHIR do R4. 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:
{}