FHIR 참조 무결성

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

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

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

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

예외 및 제한

FHIR 사양은 다양한 형식의 참조를 허용하며 일부는 참조 무결성이 적용되지 않습니다.

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

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

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

무결성이 시행되지만 이전 사례 중 하나로 위반된 경우 업데이트가 수정되거나 유효하지 않은 참조를 모두 삭제하지 않는 한 유효하지 않은 참조가 포함된 리소스에서의 리소스 업데이트는 거부됩니다. 이러한 상태로 인해 무결성이 가정되는 저장소를 사용하는 애플리케이션에도 문제가 발생할 수 있습니다.

포함된 리소스

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