Os armazenamentos FHIR na API Cloud Healthcare são compatíveis com várias versões da especificação rápida de recursos de interoperabilidade (FHIR) publicada pela Health nível 7 internacional (HL7).
A API v1 é compatível com as seguintes versões:
- R5 versão 5.0.0 (versão 5)
- R4 versão 4.0.1 (Versão 4)
- STU3 versão 3.0.1 (Versão 3 - Padrão para uso de teste)
- DSTU2 versão 1.0.2 (rascunho padrão para uso de teste)
Ao criar um armazenamento FHIR, você especifica a versão FHIR como um parâmetro para o método fhirStores.create. Não é possível alterar a versão FHIR após a criação do armazenamento.
A interface da API de cada armazenamento está em conformidade com a versão FHIR dessa loja. Por exemplo, a interação conformance do DSTU2 é diferente da interação capabilities do STU3, mas ambas compartilham o caminho REST /fhir/metadata. Portanto, esse caminho retorna respostas diferentes com base na versão FHIR do armazenamento.
A funcionalidade adicionada em versões posteriores do FHIR estará disponível em armazenamentos que usam versões anteriores do FHIR se não criar incompatibilidade. Por exemplo, a interação patch está disponível em um armazenamento DSTU2, mesmo que essa interação seja definida apenas a partir do STU3.
Detalhes da funcionalidade compatível na versão v1 da API FHIR
R5
A instrução de capacidade do servidor indica as partes da especificação compatíveis.
- Armazenamento e recuperação de todos os recursos R5, incluindo suporte para elementos de extensão. A API aceita, armazena e retorna extensões em qualquer elemento de dados.
- Todos os métodos na API RESTful que usam o tipo de conteúdo JSON são compatíveis, exceto: - As interações de histórico no nível do tipo e do sistema que recuperam o histórico em vários recursos não são compatíveis. O histórico de recursos só pode ser recuperado para um recurso por vez.
- A interação em lote/transação não é compatível com operações de pesquisa dentro do pacote.
 
- A validação e aplicação de Perfil são compatíveis.
- A API v1beta1 dá suporte aos parâmetros de pesquisa definidos pelo usuário, incluindo pesquisas em elementos de extensão.
- Toda a funcionalidade de pesquisa é compatível, exceto: - Os parâmetros de pesquisa Group-characteristic-value,Location-near,Location-contains,DocumentReference-relationship,Bundle-composition,Bundle-message,Observation-component-value-canonical,Observation-value-canonical,QuestionnaireResponse-item-subjecteComposition-section-textnão são compatíveis.
- Os parâmetros de pesquisa que executam a correspondência telefônica não são compatíveis.
- Os parâmetros de resultado da pesquisa _contained,_containedType,_summary=counte_summary=truenão são compatíveis.
- O parâmetro de pesquisa especial _contentpesquisa todos os campos do recurso aos quais os parâmetros de pesquisa se referem. Ele exclui campos que não são pesquisáveis. Ele não é compatível comANDexplícito (os termos são combinados implicitamente comAND) ou com colchetes.
- Os parâmetros de pesquisa especiais Resource-query,Resource-filter,Resource-language,Resource-ineResource-listnão são compatíveis.
- O parâmetro _sort, quando usado em campos com elementos repetidos, classifica pelo primeiro elemento; isso é diferente da especificação._sorté compatível com parâmetros de pesquisa do tiponumber,data,string,tokenequantity.
- Não há suporte para o modificador de pesquisa de token :of-type,:code-text,text-advancede:texte para o modificador de pesquisa de referência:identifier,not-in,text-advancede:code-text. Não há suporte para o modificadorcontainsem pesquisas de URI.
- As pesquisas de referência canônica não são suportadas. As referências canônicas são tratadas como referências normais. Os modificadores aboveebelownão são compatíveis.
- Ao usar o parâmetro _type, apenas os parâmetros de pesquisa comuns (para todos os recursos) podem ser usados, e não a interseção dos tipos de recursos especificados.
- Os seguintes subconjuntos de parâmetros de pesquisa compostos são compatíveis: - Observation-code-value-concept
- Observation-code-value-date
- Observation-code-value-quantity
- Observation-code-value-string
- Observation-combo-code-value-concept
- Observation-combo-code-value-quantity
- Observation-component-code-value-concept
- Observation-component-code-value-quantity
 - Os parâmetros de pesquisa compostos restantes não são compatíveis. 
- A pesquisa que usa o método - POSTnão aceita parâmetros- application/x-www-form-urlencodedno corpo da solicitação.
- O caractere curinga ( - *) é aceito para- _include, mas não para- _revinclude.
 
- Os parâmetros de pesquisa 
As áreas que não são compatíveis incluem:
- O tipo de conteúdo XML não é suportado.
- A operação de patch não é compatível com o patch XML ou com o patch FHIRPath.
- As solicitações HTTP HEAD não são compatíveis.
Alguns aspectos da API se desviaram da especificação do FHIR devido à compatibilidade com versões anteriores do FHIR. Estes problemas foram corrigidos na R5:
- Quando a validação de campo obrigatório está ativada, os campos nulle vazios (por exemplo,{}) são rejeitados.
- Não há mais suporte para UpperCamelCase em campos de recursos em JSON.
- As referências urn:uuidnão são permitidas em pacotes em lote, mesmo que a integridade referencial esteja desativada. Os pacotes em lote nunca reescrevem referências.
- Os pacotes de transações são mais rigorosos na regravação de referências do que antes e têm erros em FullUrls inválidos nas entradas, conforme definido pela especificação: https://www.hl7.org/fhir/bundle.html#references.
- As referências que se parecem com referências de recursos precisam ter IDs válidos.
- A validação do perfil básico está ativada para solicitações PATCH.
R4
A instrução de capacidade do servidor indica as partes da especificação compatíveis.
- Armazenamento e recuperação de todos os recursos R4, incluindo suporte para elementos de extensão. A API aceita, armazena e retorna extensões em qualquer elemento de dados.
- Todos os métodos na API RESTful que usam o tipo de conteúdo JSON são compatíveis, exceto: - As interações de histórico no nível do tipo e do sistema que recuperam o histórico em vários recursos não são compatíveis. O histórico de recursos só pode ser recuperado para um recurso por vez.
- A interação em lote/transação não é compatível com operações de pesquisa dentro do pacote.
 
- A validação e aplicação de Perfil são compatíveis.
- A API v1beta1 dá suporte aos parâmetros de pesquisa definidos pelo usuário, incluindo pesquisas em elementos de extensão.
- Toda a funcionalidade de pesquisa é compatível, exceto: - Os parâmetros de pesquisa Group-characteristic-value,Location-near,Bundle-compositioneBundle-messagenão são compatíveis.
- Os parâmetros de pesquisa que executam a correspondência telefônica não são compatíveis.
- Os parâmetros de resultado da pesquisa _contained,_containedType,_summary=counte_summary=truenão são compatíveis.
- O parâmetro de pesquisa especial _contentpesquisa todos os campos do recurso aos quais os parâmetros de pesquisa se referem. Ele exclui campos que não são pesquisáveis. Ele não é compatível comANDexplícito (os termos são combinados implicitamente comAND) ou com colchetes.
- Não há suporte aos parâmetros de pesquisa especiais _query,_filtere_list.
- O parâmetro _sort, quando usado em campos com elementos repetidos, classifica pelo primeiro elemento; isso é diferente da especificação._sorté compatível com parâmetros de pesquisa do tiponumber,data,string,tokenequantity.
- Não há suporte ao modificador de pesquisa de token :of-typee o modificador de pesquisa de referência:identifier.
- As pesquisas de referência canônica não são suportadas. As referências canônicas são tratadas como referências normais.
- Ao usar o parâmetro _type, apenas os parâmetros de pesquisa comuns (para todos os recursos) podem ser usados, e não a interseção dos tipos de recursos especificados.
- Os seguintes subconjuntos de parâmetros de pesquisa compostos são compatíveis: - DocumentReference-relationship
- Observation-code-value-concept
- Observation-code-value-date
- Observation-code-value-quantity
- Observation-code-value-string
- Observation-combo-code-value-concept
- Observation-combo-code-value-quantity
- Observation-component-code-value-concept
- Observation-component-code-value-quantity
 - Os parâmetros de pesquisa compostos restantes não são compatíveis. 
- A pesquisa que usa o método - POSTnão aceita parâmetros- application/x-www-form-urlencodedno corpo da solicitação.
- O caractere curinga ( - *) é aceito para- _include, mas não para- _revinclude.
 
- Os parâmetros de pesquisa 
As áreas que não são compatíveis incluem:
- A maioria das operações estendidas não é implementada.
- O tipo de conteúdo XML não é suportado.
- A operação de patch não é compatível com o patch XML ou com o patch FHIRPath.
- As solicitações HTTP HEAD não são compatíveis.
Áreas em que a API se desvia da especificação FHIR para permitir a compatibilidade com versões anteriores:
- nullé aceito para campos obrigatórios
- Um código vazio é aceito para campos obrigatórios
- As referências urn:uuidsão permitidas em pacotes de lote quando a integridade referencial está desativada.
STU3
A instrução de capacidade do servidor indica as partes da especificação compatíveis.
- O armazenamento e a recuperação de todos os recursos STU3 são compatíveis, incluindo suporte para elementos de extensão. A API aceita, armazena e retorna extensões em qualquer elemento de dados.
- Todos os métodos na API RESTful que usam o tipo de conteúdo JSON são compatíveis, exceto: - As interações de histórico no nível do tipo e do sistema que recuperam o histórico em vários recursos não são compatíveis. O histórico de recursos só pode ser recuperado para um recurso por vez.
- A interação em lote/transação não é compatível com operações de pesquisa dentro do pacote.
 
- A validação e aplicação de Perfil são compatíveis. 
- A API v1beta1 dá suporte aos parâmetros de pesquisa definidos pelo usuário, incluindo pesquisas em elementos de extensão. 
- Toda a funcionalidade de pesquisa é compatível, exceto: - Os parâmetros de pesquisa Group-characteristic-value,Sequence-coordinate,Location-near,Location-near-distance,Bundle-compositioneBundle-messagenão são compatíveis.
- Os parâmetros de pesquisa que executam a correspondência telefônica não são compatíveis.
- Os parâmetros de resultado da pesquisa _contained,_containedType,_summary=counte_summary=truenão são compatíveis.
- O parâmetro de pesquisa especial _contentpesquisa todos os campos do recurso que são referenciados pelos parâmetros de pesquisa. Ele exclui campos que não são pesquisáveis. Ele não suportaANDexplícito (os termos são combinados implicitamente com AND) ou colchetes.
- Não há suporte aos parâmetros de pesquisa especiais _query,_filtere_list.
- O parâmetro _sort, quando usado em campos com elementos repetidos, classifica pelo primeiro elemento; isso é diferente da especificação._sorté compatível com parâmetros de pesquisa do tiponumber,data,string,tokenequantity.
- A pesquisa que usa o método POSTnão aceita parâmetrosapplication/x-www-form-urlencodedno corpo da solicitação.
- O caractere curinga (*) é aceito para_include, mas não para_revinclude.
 
- Os parâmetros de pesquisa 
As áreas que não são compatíveis incluem:
- A maioria das operações estendidas não é implementada.
- O tipo de conteúdo XML não é suportado.
- A operação patch não é compatível com o patch XML ou FHIRPath.
Áreas em que a API se desvia da especificação FHIR para permitir a compatibilidade com versões anteriores:
- nullé aceito para campos obrigatórios
- Um código vazio é aceito para campos obrigatórios
- As referências urn:uuidsão permitidas em pacotes de lote quando a integridade referencial está desativada.
DSTU2
A declaração de conformidade do servidor indica as partes da especificação compatíveis.
- O armazenamento e a recuperação de todos os recursos DSTU2 são compatíveis, incluindo suporte para elementos de extensão. A API aceita, armazena e retorna extensões em qualquer elemento de dados.
- Todos os métodos na API RESTful que usam o tipo de conteúdo JSON são compatíveis, exceto: - As interações de histórico no nível do tipo e do sistema que recuperam o histórico em vários recursos não são compatíveis. O histórico de recursos só pode ser recuperado para um recurso por vez.
- A interação em lote/transação não é compatível com operações de pesquisa dentro do pacote.
 
- A validação e aplicação de Perfil são compatíveis.
- Toda a funcionalidade de pesquisa é suportada, exceto: - Os parâmetros de pesquisa Group-characteristic-value,Location-near,Location-near-distance,Bundle-composition,Bundle-message,Coverage-dependenteCoverage-sequencenão são compatíveis.
- Os parâmetros de pesquisa definidos nos elementos da extensão não são compatíveis.
- Os parâmetros de pesquisa que executam a correspondência telefônica não são compatíveis.
- Os parâmetros de resultado da pesquisa _contained,_containedType,_summary=counte_summary=truenão são compatíveis.
- O parâmetro de pesquisa especial _contentpesquisa todos os campos do recurso que são referenciados pelos parâmetros de pesquisa. Ele exclui campos que não são pesquisáveis. Ele não suportaANDexplícito (os termos são combinados implicitamente com AND) ou colchetes.
- Não há suporte aos parâmetros de pesquisa especiais _query,_filtere_list.
- O parâmetro _sort, quando usado em campos com elementos repetidos, classifica pelo primeiro elemento; isso é diferente da especificação._sorté compatível com parâmetros de pesquisa do tiponumber,data,string,tokenequantity.
- A pesquisa que usa o método POSTnão aceita parâmetrosapplication/x-www-form-urlencodedno corpo da solicitação.
- O caractere curinga (*) é aceito para_include, mas não para_revinclude.
 
- Os parâmetros de pesquisa 
As áreas que não são compatíveis incluem:
- A maioria das operações estendidas não é implementada.
- Não há suporte aos parâmetros de pesquisa definidos pelo usuário para DSTU2.
- O tipo de conteúdo XML não é suportado.
Áreas em que a API se desvia da especificação FHIR para permitir a compatibilidade com versões anteriores:
- nullé aceito para campos obrigatórios
- Um código vazio é aceito para campos obrigatórios
- As referências urn:uuidsão permitidas em pacotes de lote quando a integridade referencial está desativada.
Detalhes das operações fora da especificação publicada
- A configuração do armazenamento FHIR inclui uma opção para notificar um tópico do Pub/Sub especificado pelo usuário para todas as alterações nos recursos do armazenamento. Esse mecanismo de notificação é comum em todos os armazenamentos da API Cloud Healthcare e não se destina a substituir a funcionalidade FHIR Subscription (DSTU2, STU3, R4 e R5).
- A operação de exportação da loja FHIR para destinos do Cloud Storage oferece apenas uma exportação em massa de toda a loja. Não é uma implementação da especificação de rascunho de dados em massa FHIR.
- A operação de importação de armazenamento FHIR não está definida na especificação.
- A operação Resource-purgeque remove versões históricas de recursos não é definida na especificação. Essa API poderá mudar no futuro se o processo de padrões ou outras implementações de FHIR forem convertidas em um método de API diferente para esse caso de uso.
- O endpoint ExecuteBundleaceita pacoteshistoryna v1beta1 para criar versões históricas de recursos.