Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan konsep integritas referensial sehubungan dengan
resource dalam penyimpanan FHIR di Cloud Healthcare API.
Penyimpanan FHIR menerapkan integritas referensial pada referensi ke resource lain
dalam penyimpanan yang sama:
Saat membuat, mengupdate, atau menerapkan patch pada resource, operasi akan gagal jika konten resource yang dihasilkan berisi referensi ke resource atau versi resource yang tidak ada.
Saat menghapus resource, operasi akan gagal jika ada resource lain di penyimpanan yang
mereferensikan resource tersebut.
Integritas referensi dapat dinonaktifkan dengan menetapkan opsi disableReferentialIntegrity pada saat pembuatan toko.
Pengecualian dan batasan
Spesifikasi FHIR memungkinkan berbagai bentuk
referensi, beberapa di antaranya tidak
tercakup dalam integritas referensial:
Referensi eksternal yang ditentukan oleh URL yang tidak cocok dengan URL dasar penyimpanan FHIR.
Referensi logis yang ditentukan oleh ID bisnis.
Referensi yang hanya berisi string tampilan yang dapat dibaca manusia.
Referensi di dalam ekstensi
FHIR hanya tunduk pada integritas referensial jika complexDataTypeReferenceParsing
ditetapkan ke ENABLED. Ini adalah nilai default untuk penyimpanan FHIR baru.
Metode API tertentu dapat menyebabkan integritas referensi dilanggar dalam beberapa kondisi:
FHIR memungkinkan referensi untuk mengarah ke versi histori tertentu dari resource menggunakan form
[resource type]/[resource ID]/_history/[version ID]. Integritas referensial diterapkan ke referensi
ini saat dibuat atau diperbarui, tetapi saat menggunakan
metode Resource-purge
untuk menghapus versi historis resource, referensi masuk tidak diperiksa.
Metode import
FHIR tidak menerapkan integritas referensial. Metode ini dapat digunakan jika integritas referensial tidak diperlukan, atau jika input diketahui memenuhi integritas referensial. Dalam kasus terakhir, referensi di dalam penyimpanan FHIR akan mencapai konsistensi
akhir setelah setiap resource berhasil diimpor.
Metode
deidentify
berpotensi dapat membuat penyimpanan FHIR dalam status yang tidak memenuhi integritas referensi
secara sementara selama operasi, atau secara permanen jika filter digunakan untuk memilih sebagian
resource.
Status saat integritas diterapkan, tetapi telah dilanggar oleh salah satu kasus sebelumnya akan
menyebabkan update resource ditolak pada resource yang berisi referensi yang tidak valid, kecuali jika
update memperbaiki atau menghapus semua referensi yang tidak valid. Status tersebut juga dapat menimbulkan kesulitan bagi
aplikasi yang menggunakan penyimpanan yang mengasumsikan integritas.
Resource yang dimuat
Spesifikasi FHIR berisi batasan bahwa setiap
resource yang dimuat harus
direferensikan dari suatu tempat dalam resource yang memuatnya (termasuk referensi dari
resource lain yang dimuat), dan setiap referensi ke resource yang dimuat harus valid. Batasan ini
diterapkan secara terpisah dari integritas referensial dan tidak dapat dinonaktifkan karena ditentukan dalam
invariant FHIRPath pada setiap resource.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-04 UTC."],[[["\u003cp\u003eThis page outlines how the Cloud Healthcare API's FHIR store enforces referential integrity on references to other resources within the same store, causing operations to fail if references are invalid or if referenced resources are deleted.\u003c/p\u003e\n"],["\u003cp\u003eReferential integrity can be disabled during FHIR store creation using the \u003ccode\u003edisableReferentialIntegrity\u003c/code\u003e option.\u003c/p\u003e\n"],["\u003cp\u003eCertain types of references, such as external URLs, logical identifiers, or simple display strings, are excluded from referential integrity checks, and references within FHIR extensions are only checked if \u003ccode\u003ecomplexDataTypeReferenceParsing\u003c/code\u003e is enabled.\u003c/p\u003e\n"],["\u003cp\u003eSpecific API methods like \u003ccode\u003eResource-purge\u003c/code\u003e, \u003ccode\u003eimport\u003c/code\u003e, and \u003ccode\u003edeidentify\u003c/code\u003e can bypass referential integrity checks, potentially leading to a state where integrity is violated.\u003c/p\u003e\n"],["\u003cp\u003eThe FHIR specification's constraint on contained resources, which requires them to be referenced within their containing resource and every reference to them to be valid, is enforced independently and cannot be disabled.\u003c/p\u003e\n"]]],[],null,["# FHIR referential integrity\n\nThis page explains the concept of referential integrity as it relates to\nresources within a FHIR store in the Cloud Healthcare API.\n\nThe FHIR store enforces referential integrity on references to other resources\nwithin the same store:\n\n- When creating, updating, or patching a resource, the operation will fail if the resulting content of the resource contains a reference to a resource or resource version that does not exist.\n- When deleting a resource, the operation will fail if there are other resources in the store that reference that resource.\n\nReferential integrity can be disabled by setting the\n[`disableReferentialIntegrity`](/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores#FhirStore.FIELDS.disable_referential_integrity) option at the time of store creation.\n\nExclusions and limitations\n--------------------------\n\nThe FHIR specification allows various forms of\n[references](http://hl7.org/fhir/references.html), some of which are not\ncovered by referential integrity:\n\n- An external reference specified by a URL that does not match the base URL of the FHIR store.\n- A logical reference specified by a business identifier.\n- A reference containing only a human-readable display string.\n- References inside FHIR [extensions](http://hl7.org/fhir/extensibility.html) are only subject to referential integrity if [`complexDataTypeReferenceParsing`](/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores#ComplexDataTypeReferenceParsing) is set to `ENABLED`. This is the default value for new FHIR stores.\n\nCertain API methods can cause referential integrity to be violated under some conditions:\n\n- FHIR allows references to point to a specific history version of a resource using the form `[resource type]/[resource ID]/_history/[version ID]`. Referential integrity is applied to these references when created or updated, but when using the [`Resource-purge`](/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores.fhir/Resource-purge) method to remove historical versions of a resource, incoming references are **not** checked.\n- The FHIR [`import`](/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores/import) method does not enforce referential integrity. The method may be used either in cases where referential integrity is not required, or where the input is known to satisfy referential integrity. In the latter case, the references inside the FHIR store will reach eventual consistency after every resource is successfully imported.\n- The [`deidentify`](/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores/deidentify) method can potentially create a FHIR store in a state that does not satisfy referential integrity temporarily during the operation, or permanently if filters are used to select a subset of resources.\n\nA state where integrity is being enforced but has been violated by one of the previous cases will\ncause resource updates to be rejected on a resource that contains an invalid reference, unless the\nupdate fixes or removes all invalid references. Such a state might also create difficulties for\napplications using the store that assume integrity.\n\nContained resources\n-------------------\n\nThe FHIR specification contains a constraint that every\n[contained resource](http://hl7.org/fhir/references.html#contained) must be\nreferenced from somewhere within its containing resource (including references from other\ncontained resources), and every reference to a contained resource must be valid. This constraint\nis enforced separately from referential integrity and cannot be disabled as it is defined in the\nFHIRPath invariants on each individual resource."]]