FHIR 가져오기

이 페이지에서는 Cloud Storage에서 Cloud Healthcare API로 FHIR 리소스를 가져오는 fhirStores.import 메서드를 선택하는 시기를 설명합니다.

fhirStores.import 메서드

fhirStores.import 메서드는 가져오는 중 다른 애플리케이션이 저장소에 액세스하지 않고 빈 FHIR 저장소에 데이터를 로드하는 데 주로 사용됩니다. 이 섹션에 설명된 대로 일부 FHIR 저장소 구성 옵션을 무시하는 가져오기 시맨틱스를 사용하여 대량의 데이터를 로드하도록 최적화되어 있습니다. fhirStores.import 사용에 대한 자세한 내용은 Cloud Storage를 사용하여 FHIR 리소스 가져오기 및 내보내기를 참조하세요.

fhirStores.import 메서드의 사용 여부를 결정할 때는 다음 특성을 고려하세요. fhirStores.import가 애플리케이션에 적합하지 않은 경우 fhir.executeBundle 메서드를 사용하여 데이터를 로드하는 것이 좋습니다. fhir.executeBundle에 대한 자세한 내용은 FHIR 번들을 사용하여 FHIR 리소스 관리를 참조하세요.

  • 입력의 각 리소스에는 클라이언트에서 제공하는 ID가 포함되어야 합니다. 각 리소스는 FHIR 저장소의 enableUpdateCreate 설정에 관계없이 제공된 ID를 사용하여 저장됩니다.
  • 가져오기 프로세스는 FHIR 저장소의 disableReferentialIntegrity 설정에 관계없이 참조 무결성을 적용하지 않습니다. 참조 무결성을 적용하지 않으면 그룹화 또는 정렬을 고려하지 않고 임의의 상호 의존성으로 리소스를 가져올 수 있습니다. 입력 데이터에 잘못된 참조가 있거나 일부 리소스를 가져오지 못한 경우 FHIR 저장소의 상태가 참조 무결성을 위반할 수 있습니다.
  • 지정된 ID를 가진 리소스가 이미 저장소에 있는 경우 새 버전의 리소스를 만들지 않고 리소스의 최신 버전을 덮어씁니다. FHIR 저장소의 disableResourceVersioning 설정에 관계없이 덮어쓰기가 수행됩니다. 가져오기 중에 일시적인 오류가 발생하면 성공적으로 가져온 리소스를 두 번 이상 덮어쓸 수 있습니다.
  • 가져오기 작업은 입력 데이터에 ID가 같지만 콘텐츠가 다른 여러 유효한 리소스가 포함되지 않는 한 멱등성을 갖습니다. 이 경우 가져오기가 완료된 후에는 저장소에 각 ID와 정확히 하나의 리소스가 포함되지만 중복 항목에는 모든 버전의 콘텐츠가 포함될 수 있습니다. 예를 들어 ID가 동일한 백만 개의 리소스를 가져오면 하나의 리소스만 저장소에 작성됩니다.
  • 작업 결과 카운터는 중복 ID를 오류로 간주하지 않습니다. 입력의 각 리소스는 하나의 성공으로 간주됩니다. 이로 인해 성공 횟수가 FHIR 저장소의 리소스 수보다 클 수 있습니다. 이는 각 번들에 많은 환자가 참조할 수 있는 Practitioner와 같은 자체 리소스 복사본이 포함된 Patient-everything으로 생성된 번들로 구성된 데이터를 가져올 때 자주 발생합니다.
  • 파싱 오류로 인해 일부 리소스를 가져오지 못하면 성공적으로 가져온 리소스가 롤백되지 않습니다. 예를 들어 리소스 100개 중 5개를 가져오지 못하면 나머지 95개 리소스를 저장소로 가져옵니다.
  • BUNDLE 형식을 사용할 때 가져오기 메서드는 Bundle.typehistory인 번들을 거부합니다. 가져오기 메서드는 배치 또는 트랜잭션 번들에 번들 처리 시맨틱스를 적용하지 않습니다. fhir.executeBundle과 달리 트랜잭션 번들은 단일 트랜잭션으로 실행되지 않으며 번들 내부 참조는 다시 작성되지 않습니다. 번들은 Bundle.entry.request를 무시하고 Bundle.entry.resource에 제공된 대로 작성되는 리소스 모음으로 취급됩니다. 예를 들어 FHIR 검색 또는 Patient-everything 작업으로 생성된 searchset 번들을 가져올 수 있습니다.