En esta página se explica el concepto de integridad referencial en relación con los recursos de un almacén FHIR de la API Cloud Healthcare.
El almacén FHIR aplica la integridad referencial a las referencias a otros recursos del mismo almacén:
- Cuando se crea, actualiza o aplica un parche a un recurso, la operación fallará si el contenido resultante del recurso contiene una referencia a un recurso o a una versión de un recurso que no existe.
- Al eliminar un recurso, la operación fallará si hay otros recursos en el almacén que hagan referencia a ese recurso.
La integridad referencial se puede inhabilitar configurando la opción disableReferentialIntegrity
en el momento de crear la tienda.
Exclusiones y limitaciones
La especificación FHIR permite varias formas de referencias, algunas de las cuales no están cubiertas por la integridad referencial:
- Una referencia externa especificada por una URL que no coincide con la URL base del almacén de FHIR.
- Referencia lógica especificada por un identificador de empresa.
- Referencia que contiene solo una cadena de visualización legible por humanos.
- Las referencias dentro de las extensiones de FHIR solo están sujetas a la integridad referencial si
complexDataTypeReferenceParsing
se define comoENABLED
. Este es el valor predeterminado de los nuevos almacenes FHIR.
Algunos métodos de la API pueden provocar que se infrinja la integridad referencial en determinadas condiciones:
- FHIR permite que las referencias apunten a una versión específica del historial de un recurso mediante el formato
[resource type]/[resource ID]/_history/[version ID]
. La integridad referencial se aplica a estas referencias cuando se crean o actualizan, pero cuando se usa el métodoResource-purge
para quitar versiones históricas de un recurso, las referencias entrantes no se comprueban. - El método
import
de FHIR no aplica la integridad referencial. Este método se puede usar en los casos en los que no se requiere integridad referencial o en los que se sabe que la entrada cumple la integridad referencial. En este último caso, las referencias del almacén FHIR alcanzarán la coherencia final después de que se haya importado correctamente cada recurso. - El método
deidentify
puede crear un almacén de FHIR en un estado que no cumpla la integridad referencial temporalmente durante la operación o de forma permanente si se usan filtros para seleccionar un subconjunto de recursos.
Estado en el que se aplica la integridad, pero se ha infringido en uno de los casos anteriores. Esto provocará que se rechacen las actualizaciones de recursos en un recurso que contenga una referencia no válida, a menos que la actualización corrija o elimine todas las referencias no válidas. Este estado también puede crear dificultades para las aplicaciones que usan la tienda y que asumen la integridad.
Recursos incluidos
La especificación FHIR contiene una restricción que indica que se debe hacer referencia a todos los recursos incluidos desde algún lugar del recurso que los contiene (incluidas las referencias de otros recursos incluidos) y que todas las referencias a un recurso incluido deben ser válidas. Esta restricción se aplica por separado de la integridad referencial y no se puede inhabilitar, ya que se define en las invariantes de FHIRPath de cada recurso.