FHIR 참조 무결성

이 페이지에서는 Cloud Healthcare API의 FHIR 저장소 내의 리소스와 관련된 참조 무결성의 개념을 설명합니다.

FHIR 저장소는 동일한 저장소 내의 다른 리소스 참조에 대한 참조 무결성을 적용합니다.

  • 리소스를 생성, 업데이트 또는 패치할 때 리소스의 결과 콘텐츠에 존재하지 않는 리소스 또는 리소스 버전에 대한 참조가 포함된 경우 작업이 실패합니다.
  • 리소스를 삭제할 때 저장소에 해당 리소스를 참조하는 다른 리소스가 있으면 작업이 실패합니다.

저장소를 만들 때 disableReferentialIntegrity 옵션을 설정하여 참조 무결성을 사용 중지할 수 있습니다.

예외 및 제한

FHIR 사양은 다양한 형태의 참조를 허용하며, 일부는 참조 무결성에서 다루지 않습니다.

  • FHIR 저장소의 기본 URL과 일치하지 않는 URL로 지정된 외부 참조입니다.
  • 비즈니스 식별자로 지정된 논리 참조입니다.
  • 사람이 읽을 수 있는 표시 문자열만 포함된 참조입니다.
  • 알려진 문제: FHIR 확장 프로그램 내의 참조에는 참조 무결성이 적용되지 않습니다.

일부 API 메소드는 특정 조건에서 참조 무결성을 위반할 수 있습니다.

  • FHIR을 사용하면 참조가 [resource type]/[resource ID]/_history/[version ID] 형식을 사용하여 리소스의 특정 기록 버전을 가리킬 수 있습니다. 참조 무결성은 생성 또는 업데이트될 때 이러한 참조에 적용되지만 Resource-purge 메서드를 사용하여 리소스의 이전 버전을 삭제할 때는 수신 참조가 선택되지 않습니다.
  • FHIR import 메서드는 참조 무결성을 적용하지 않습니다. 참조 무결성이 필요하지 않거나 참조 무결성을 충족하는 것으로 알려진 경우에 메서드를 사용할 수 있습니다. 후자의 경우 모든 리소스를 성공적으로 가져오면 FHIR 저장소 내의 참조가 eventual consistency에 도달합니다.
  • deidentify 메서드는 필터를 사용하여 리소스의 하위 집합을 선택하는 경우, 작업 중에 일시적으로 또는 영구적으로 참조 무결성을 충족하지 않는 상태로 FHIR 저장소를 만들 수 있습니다.

무결성이 적용되지만 이전 사례 중 하나에 의해 위반된 상태는 업데이트가 잘못된 참조를 수정하거나 삭제하지 않는 한 잘못된 참조를 포함하는 리소스에서 업데이트가 거부됩니다. 이러한 상태는 무결성을 가정하는 저장소를 사용하는 애플리케이션에도 문제를 일으킬 수 있습니다.

포함된 리소스

FHIR 사양은 모든 포함된 리소스가 포함하고 있는 리소스(다른 포함된 리소스의 참조 포함) 내의 어딘가에서 참조되어야 하며 포함된 리소스에 대한 모든 참조가 유효해야 한다는 제약 조건을 포함합니다. 이 제약 조건은 참조 무결성과 별도로 적용되며 각 개별 리소스의 FHIRPath 불변에 정의되므로 사용 중지할 수 없습니다.