Pub/Sub 알림 구성

Cloud Healthcare API 데이터 스토어에서 임상 이벤트가 발생할 때 Pub/Sub를 사용하여 알림을 수신할 수 있습니다. 이러한 알림은 다음 상황을 알려줍니다.

  • DICOM 인스턴스는 dicomStores.dicomWeb.studies.storeInstances 메서드를 사용하여 DICOM 저장소에 저장되거나 Cloud Storage에서 가져옵니다.
  • FHIR 리소스가 FHIR 저장소에서 생성, 업데이트 또는 삭제된 경우. 하지만 FHIR 리소스를 Cloud Storage에서 가져올 때 알림이 전송되지 않습니다.
  • HL7v2 메시지가 처음으로 HL7v2 저장소에서 수집되거나 생성된 경우. 중복 메시지는 알림을 트리거하지 않습니다.

이러한 이벤트 중 하나가 발생하면 Cloud Healthcare API는 주제라는 이름이 지정된 Pub/Sub 리소스에 메시지를 게시합니다. 그런 다음 이 주제를 구독하는 애플리케이션에서 메시지를 수신할 수 있습니다.

DICOM 및 HL7v2의 경우 이러한 메시지에 개인 정보가 포함되지 않습니다. 다음 항목만 포함됩니다.

  • 생성된 메시지의 프로젝트
  • 메시지 ID
  • HL7v2 메시지의 HL7v2 메시지 유형

FHIR Pub/Sub 메시지는 개인 정보를 수집할 수 있습니다. 자세한 내용은 FHIR 리소스 데이터를 포함하는 FHIR 알림을 참조하세요.

Cloud Healthcare API에서 Pub/Sub 알림 사용에 대한 개요는 Pub/Sub 알림을 참조하세요.

시작하기 전에

Pub/Sub 할당량 검토

Pub/Sub 알림을 구성하기 전 Pub/Sub 할당량 및 한도를 숙지하세요. 할당량 확인 및 추가 할당량 요청 방법과 할당량이 부족할 때 발생하는 결과에 대한 자세한 내용은 할당량 작업을 참조하세요.

Pub/Sub API 사용 설정

Pub/Sub API를 사용 설정하려면 다음 버튼을 클릭합니다.

API 사용 설정

Pub/Sub 권한 구성

Cloud Healthcare API에서 Pub/Sub로 메시지를 게시하려면 프로젝트의 Cloud Healthcare 서비스 에이전트 서비스 계정pubsub.publisher 역할을 추가해야 합니다. 필요한 역할을 추가하는 단계는 DICOM, FHIR, HL7v2 저장소 Pub/Sub 권한을 참조하세요.

Pub/Sub 주제 만들기

알림을 수신할 각 데이터 스토어에 대해 Pub/Sub 주제를 구성해야 합니다. 개별 데이터 스토어에는 자체 Pub/Sub 주제가 있거나 여러 데이터 스토어가 동일한 주제를 공유할 수 있습니다. Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 주제를 만들 수 있습니다.

주제를 만들거나 데이터 스토어 구성에서 주제를 참조할 때는 다음 형식의 정규화된 URI를 사용해야 합니다.

projects/PROJECT_ID/topics/TOPIC_NAME

여기서 PROJECT_ID는 Google Cloud 프로젝트 ID이고 TOPIC_NAME은 주제의 이름입니다.

주제를 만들려면 다음 단계를 완료합니다.

콘솔

  1. Google Cloud 콘솔에서 Pub/Sub 주제 페이지로 이동합니다.

    Pub/Sub 주제 페이지로 이동

  2. 주제 만들기를 클릭합니다.

  3. URI와 함께 주제 이름을 입력합니다.

    projects/PROJECT_ID/topics/TOPIC_NAME

    여기서 PROJECT_ID는 Google Cloud 프로젝트 ID입니다.

  4. 만들기를 클릭합니다.

gcloud

주제를 만들려면 gcloud pubsub topics create 명령어를 실행합니다.

gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME

요청이 성공하면 명령어는 다음 출력을 반환합니다.

Created topic [projects/PROJECT_ID/topics/TOPIC_NAME].

Pub/Sub 구독 만들기

주제에 게시된 메시지를 받으려면 Pub/Sub 구독을 만들어야 합니다. 모든 Pub/Sub 주제에는 하나 이상의 Pub/Sub 구독이 있어야 합니다.

구독은 주제에 게시된 메시지를 수신하고 처리하는 구독자 애플리케이션과 주제를 연결합니다.

구독은 내보내기 모델이나 가져오기 모델을 이용하도록 구성할 수 있습니다.

구독은 해당 속성을 기준으로 메시지를 필터링하도록 구성할 수 있습니다. 구독에서 메시지 필터링 안내를 참조하세요.

구독을 만들려면 다음 단계를 완료하세요.

콘솔

  1. Google Cloud 콘솔에서 Pub/Sub 주제 페이지로 이동합니다.

    Pub/Sub 주제 페이지로 이동

  2. 프로젝트 주제를 클릭합니다.

  3. 구독 만들기를 클릭합니다.

  4. 구독 이름을 입력합니다.

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    전송 유형가져오기로 설정합니다.

  5. 만들기를 클릭합니다.

gcloud

주제를 만들려면 gcloud pubsub subscriptions create 명령어를 실행합니다.

gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

요청이 성공하면 명령어는 다음 출력을 반환합니다.

Created subscription [projects/PROJECT_ID/subscriptions/TOPIC_NAME].

저장된 DICOM 인스턴스 알림 보기

DICOM 데이터로 Pub/Sub 알림을 사용하는 방법에 관한 자세한 내용은 DICOM Pub/Sub 알림을 참고하세요.

HL7v2 알림 보기

Hl7V2Store 리소스에는 Pub/Sub 주제 및 필터링 기준을 지정할 수 있는 notificationConfigs 배열이 포함됩니다.

HL7v2 메시지가 HL7v2 저장소에서 수집되거나 생성되면 Cloud Healthcare API는 HL7v2 메시지와 일치하는 필터가 있는 Pub/Sub 주제에 메시지를 게시합니다.

수집된 HL7v2 메시지의 알림을 보려면 다음 단계를 완료하세요.

  1. HL7v2 저장소를 만들거나 수정하고 Pub/Sub 주제로 구성합니다.
  2. 프로젝트의 서비스 계정에 필요한 pubsub.publisher 역할을 추가합니다.
  3. HL7v2 저장소에 HL7v2 메시지를 수집합니다. 이렇게 하면 Cloud Healthcare API가 메시지를 구성된 Pub/Sub 주제에 게시합니다.
  4. Pub/Sub 주제에 게시된 메시지를 보려면 gcloud pubsub subscriptions pull 명령어를 실행합니다.

    gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION
    

    명령어는 수집된 HL7v2 메시지에 대한 다음 출력을 반환합니다.

    ┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐
    |                                                                 DATA                                               |    MESSAGE_ID   |   ATTRIBUTES  |
    ├--------------------------------------------------------------------------------------------------------------------|-----------------|---------------|
    | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID | 123456789012345 | msgType=TYPE  |
    └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘
    

Cloud Healthcare API 및 Pub/Sub 메시지 스토리지 정책

Cloud Healthcare API 데이터와 Pub/Sub 메시지의 관련 데이터가 동일한 리전에 있는지 확인하려면 Pub/Sub 메시지 스토리지 정책을 설정해야 합니다.

데이터가 동일한 리전에 유지되도록 하려면 데이터 스토어에 구성된 Pub/Sub 주제에 메시지 스토리지 정책을 명시적으로 설정해야 합니다. 예를 들어 Cloud Healthcare API 데이터 세트 및 FHIR 저장소가 us-central1에 있으면 메시지 스토리지 정책에서 us-central1 리전만 허용해야 합니다.

메시지 스토리지 정책을 구성하려면 메시지 저장소 정책 구성을 참조하세요.

누락된 Pub/Sub 메시지 문제 해결

Pub/Sub에 알림을 게시할 수 없는 경우 Cloud Logging에 오류가 로깅됩니다. 자세한 내용은 Cloud Logging에서 오류 로그 보기를 참조하세요.

오류 생성 속도가 한도를 초과하면 한도를 초과한 오류는 Cloud Logging에 제출되지 않습니다.

다음 단계

Pub/Sub 주제를 구성하는 방법 알아보기: