자습서: Azure IoT Hub를 통해 디바이스 메시지 받기

MedTech 서비스는 Azure IoT Hub의 IoT Hub를 통해 만들고 관리하는 디바이스에서 메시지를 받을 수 있습니다. 이 자습서에서는 ARM 템플릿(Azure Resource Manager 템플릿) 및 Azure에 배포 단추를 사용하여 MedTech 서비스를 배포합니다. 또한 템플릿은 디바이스를 만들고 관리하는 IoT 허브를 배포하고, 메시지는 MedTech 서비스가 읽고 처리할 수 있도록 디바이스 메시지를 이벤트 허브로 라우팅합니다. 디바이스 데이터 처리 후 FHIR® 리소스는 템플릿에도 포함된 FHIR 서비스에 유지됩니다.

Diagram of the IoT device message flow through an IoT hub and event hub, and then into the MedTech service.

MedTech 서비스가 FHIR 리소스로 디바이스 데이터를 FHIR 서비스로 변환하고 유지하는 방법에 대해 알아보려면 MedTech 서비스 디바이스 데이터 처리 단계 개요를 참조하세요.

이 자습서에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • Azure Portal에서 ARM 템플릿을 엽니다.
  • 배포에 대한 템플릿을 구성합니다.
  • 디바이스를 만듭니다.
  • 테스트 메시지를 보냅니다.
  • 테스트 메시지에 대한 메트릭을 검토합니다.

ARM 템플릿에 대한 자세한 내용은 ARM 템플릿이란?을 참조하세요.

필수 조건

배포를 시작하고 자습서를 완료하려면 다음 필수 구성 요소가 있어야 합니다.

  • 활성화된 Azure 구독 계정. Azure 구독이 없는 경우 구독 관련 결정 가이드를 참조하세요.

  • Azure 구독에서 소유자 또는 참가자 및 사용자 액세스 관리자 역할 할당. 자세한 내용은 Azure RBAC(Azure 역할 기반 액세스 제어)란?

  • Azure 구독에 등록된 Microsoft.HealthcareApis, Microsoft.EventHub 및 Microsoft.Devices 리소스 공급자. 자세한 내용은 Azure 리소스 공급자 및 유형을 참조하세요.

  • 로컬로 설치된 Visual Studio Code

  • Visual Studio Code에 설치된 Azure IoT Tools. Azure IoT Tools는 IoT 허브에 쉽게 연결하고, 디바이스를 만들고, 메시지를 보낼 수 있는 확장 컬렉션입니다. 이 자습서에서는 Visual Studio Code의 Azure IoT Hub 확장을 사용하여 배포된 IoT 허브에 연결하고, 디바이스를 만들고, 디바이스에서 IoT 허브로 테스트 메시지를 보냅니다.

이러한 필수 구성 요소가 있으면 Azure에 배포 단추를 사용하여 ARM 템플릿을 구성할 준비가 된 것입니다.

ARM 템플릿 검토

이 자습서에서 리소스를 배포하는 데 사용되는 ARM 템플릿은 GitHubazuredeploy.json 파일을 사용하여 Azure 빠른 시작 템플릿에서 사용할 수 있습니다.

Azure에 배포 단추 사용

Azure Portal에서 배포를 시작하려면 Azure에 배포 단추를 선택합니다.

Deploy to Azure

배포 구성

  1. Azure Portal의 Azure 빠른 시작 템플릿에 있는 기본 사항 탭에서 배포에 대한 다음 정보를 선택하거나 입력합니다.

    • 구독: 배포에 사용할 Azure 구독입니다.

    • 리소스 그룹: 기존 리소스 그룹이거나 새 리소스 그룹을 만들 수 있습니다.

    • 지역: 배포에 사용되는 리소스 그룹의 Azure 지역입니다. 지역은 리소스 그룹 지역을 사용하여 자동으로 채웁니다.

    • 기본 이름: 배포된 Azure 리소스 및 서비스의 이름에 추가된 값입니다. 이 자습서의 예제에서는 기본 이름 azuredocsdemo를 사용합니다. 사용자 고유의 기본 이름 값을 선택할 수 있습니다.

    • 위치: Azure Health Data Services에 대해 지원되는 Azure 지역(값은 리소스 그룹이 있는 지역과 동일하거나 다를 수 있음)입니다. Health Data Services를 사용할 수 있는 Azure 지역 목록은 지역별 사용 가능한 제품을 참조하세요.

    • Fhir 참가자 보안 주체 ID(선택 사항): FHIR 서비스 읽기/쓰기 권한을 제공하는 Microsoft Entra 사용자 개체 ID입니다.

      이 계정을 사용하여 FHIR 서비스에 대한 액세스 권한을 부여하여 이 자습서에서 생성된 FHIR 관찰을 볼 수 있습니다. FHIR 서비스의 메시지에 액세스할 수 있도록 고유한 Microsoft Entra 사용자 개체 ID를 사용하는 것이 좋습니다. Fhir 참가자 보안 주체 ID 옵션을 사용하지 않도록 선택한 경우 텍스트 상자의 선택을 취소합니다.

      Microsoft Entra 사용자 개체 ID를 가져오는 방법을 알아보려면 사용자 개체 ID 찾기를 참조하세요. 이 자습서에서 사용되는 사용자 개체 ID는 예제일 뿐입니다. 이 옵션을 사용하는 경우 자신의 사용자 개체 ID 또는 FHIR 서비스에 액세스하려는 다른 사용자의 개체 ID를 사용합니다.

    • 디바이스 매핑: 이 자습서의 기본값을 그대로 둡니다.

    • 대상 매핑: 이 자습서의 기본값을 그대로 둡니다.

    Screenshot that shows deployment options for the MedTech service for Health Data Services in the Azure portal.

  2. 구성의 유효성을 검사하려면 검토 + 만들기를 선택합니다.

    Screenshot that shows the Review + create button selected in the Azure portal.

  3. 검토 + 만들기에서 템플릿 유효성 검사 상태를 확인합니다. 유효성 검사에 성공하면 템플릿에 유효성 검사 통과가 표시됩니다. 유효성 검사가 실패하면 오류 메시지에 표시된 문제를 수정한 다음 검토 + 만들기를 다시 선택합니다.

    Screenshot that shows the Review + create pane displaying the Validation Passed message.

  4. 유효성 검사에 성공한 후, 배포를 시작하려면 만들기를 선택합니다.

    Screenshot that shows the highlighted Create button.

  5. 몇 분 후에 Azure Portal에 배포가 완료되었다는 메시지가 표시됩니다.

    Screenshot that shows a green checkmark and the message Your deployment is complete.

    Important

    여러 서비스에서 이벤트 허브로의 액세스를 허용하려면 각 서비스에 자체 이벤트 허브 소비자 그룹이 있어야 합니다.

    소비자 그룹을 사용하면 여러 소비 애플리케이션이 이벤트 스트림에 대한 별도의 보기를 가지며 자체 속도와 자체 오프셋을 사용하여 독립적으로 스트림을 읽을 수 있습니다. 자세한 내용은 소비자 그룹을 참조하세요.

    예:

    • 동일한 이벤트 허브에 액세스하는 두 개의 MedTech 서비스.

    • 동일한 이벤트 허브에 액세스하는 MedTech 서비스 및 스토리지 기록기 애플리케이션.

배포된 리소스 및 액세스 권한 검토

배포가 완료되면 다음 리소스 및 액세스 역할이 만들어집니다.

  • Event Hubs 네임스페이스 및 이벤트 허브. 이 배포에서 이벤트 허브의 이름은 devicedata입니다.

    • 이벤트 허브 소비자 그룹. 이 배포에서 소비자 그룹의 이름은 $Default입니다.

    • Azure Event Hubs 데이터 보낸 사람 역할. 이 배포에서 보낸 사람 역할의 이름은 devicedatasender이고 SAS(공유 액세스 서명)를 사용하여 이벤트 허브에 대한 액세스를 제공하는 데 사용할 수 있습니다. SAS를 사용하여 액세스 권한을 부여하는 방법에 대한 자세한 내용은 공유 액세스 서명을 사용하여 Event Hubs 리소스에 대한 액세스 권한 부여를 참조하세요. Azure Event Hubs 데이터 보낸 사람 역할은 이 자습서에서 사용되지 않습니다.

  • 디바이스 메시지를 이벤트 허브로 라우팅하도록 구성된 메시지 라우팅이 있는 IoT 허브.

  • IoT 허브에서 이벤트 허브로 보내기 액세스를 제공하는 사용자가 할당한 관리 ID. 관리 ID는 이벤트 허브의 IAM(액세스 제어 섹션)에서 Azure Event Hubs 데이터 보낸 사람 역할을 갖습니다.

  • Health Data Services 작업 영역.

  • Health Data Services FHIR 서비스.

  • 시스템이 할당한 관리 ID가 사용으로 설정되고 다음 액세스 역할을 부여한 Health Data Services MedTech 서비스:

    • 이벤트 허브의 경우, 이벤트 허브의 IAM(액세스 제어 섹션)에서 Azure Event Hubs 데이터 받는 사람 액세스 역할이 할당됩니다.

    • FHIR 서비스의 경우, FHIR 서비스의 IAM(액세스 제어 섹션)에서 FHIR 데이터 쓰기 권한자 액세스 역할이 할당됩니다.

  • 준수하고 유효한 MedTech 서비스 디바이스FHIR 대상 매핑. 해결 유형만들기로 설정됩니다.

Important

이 자습서에서 ARM 템플릿은 MedTech 서비스가 만들기 모드에서 작동하도록 구성합니다. FHIR 서비스로 데이터를 보내는 각 디바이스에 대해 환자 리소스 및 디바이스 리소스가 만들어집니다.

MedTech 서비스 해결 유형 만들기조회에 대한 자세한 내용은 대상 탭 구성을 참조하세요.

디바이스 만들기 및 테스트 메시지 보내기

리소스가 성공적으로 배포되면 다음으로, IoT 허브에 연결하고, 디바이스를 만들고, 테스트 메시지를 IoT 허브로 보냅니다. 이러한 단계를 완료하면 MedTech 서비스에서 다음을 수행할 수 있습니다.

  • 이벤트 허브에서 IoT 허브 라우팅 테스트 메시지를 읽습니다.
  • 테스트 메시지를 5개의 FHIR 관찰로 변환합니다.
  • FHIR 관찰을 FHIR 서비스에 그대로 유지합니다.

Azure IoT Hub 확장과 함께 Visual Studio Code를 사용하여 단계를 완료합니다.

  1. Azure IoT Tools가 설치된 Visual Studio Code를 엽니다.

  2. 탐색기의 Azure IoT Hub에서 를 선택하고 IoT Hub 선택을 선택합니다.

    Screenshot of Visual Studio Code with the Azure IoT Hub extension with the deployed IoT hub selected.

  3. IoT 허브가 프로비전된 Azure 구독을 선택합니다.

  4. IoT Hub를 선택합니다. IoT 허브의 이름은 ih- 접두사가 있는 리소스를 프로비전할 때 제공한 기본 이름입니다. 허브 이름 예는 ih-azuredocsdemo입니다.

  5. 탐색기의 Azure IoT Hub에서 를 선택하고 디바이스 만들기를 선택합니다. 디바이스 이름 예는 iot-001입니다.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension with Create device selected.

  6. 디바이스에서 IoT 허브로 테스트 메시지를 보내려면 디바이스를 마우스 오른쪽 단추로 클릭하고 IoT Hub에 D2C 메시지 보내기를 선택합니다.

    참고 항목

    이 D2C(디바이스-클라우드) 예제에서 클라우드는 디바이스 메시지를 받는 Azure IoT Hub의 IoT 허브입니다. Azure IoT Hub는 양방향 통신을 지원합니다. C2D(클라우드-디바이스) 시나리오를 설정하려면 디바이스 클라우드에 C2D 메시지 보내기를 선택합니다.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension and the Send D2C Message to IoT Hub option selected.

  7. D2C 메시지 보내기에서 다음 값을 선택하거나 입력합니다.

    • 메시지를 보내는 디바이스: 사용자가 만든 디바이스의 이름입니다.

    • 디바이스당 메시지 수: 1.

    • 두 메시지 간 간격: 1초.

    • 메시지: 일반 텍스트입니다.

    • 편집: 기존 텍스트를 지우고 다음 테스트 메시지 JSON을 복사/붙여넣습니다.

      아래 테스트 메시지의 오른쪽 모서리에 있는 복사 옵션을 사용한 다음 편집 창에 붙여넣을 수 있습니다.

      {
          "PatientId": "patient1",
          "HeartRate": 78,
          "RespiratoryRate": 12,
          "HeartRateVariability": 30,
          "BodyTemperature": 98.6,
          "BloodPressure": {
             "Systolic": 120,
             "Diastolic": 80
          }
      }  
      
  8. 테스트 메시지를 IoT 허브로 보내는 프로세스를 시작하려면 보내기를 선택합니다.

    Screenshot that shows Visual Studio Code with the Azure IoT Hub extension with the device message options selected.

    보내기를 선택한 후, FHIR 리소스를 FHIR 서비스에서 사용하는 데 최대 5분이 걸릴 수 있습니다.

    Important

    D2C(디바이스-클라우드) 메시지에서 디바이스 스푸핑을 방지하기 위해 Azure IoT Hub는 이벤트 허브로 라우팅하기 전에 모든 디바이스 메시지를 추가 속성으로 보강합니다. 예: SystemProperties: iothub-connection-device-idProperties: iothub-creation-time-utc. 자세한 내용은 스푸핑 방지 속성MedTech 서비스 디바이스 매핑과 함께 IotJsonPathContent 템플릿을 사용하는 방법을 참조하세요.

    보강이 IoT 허브에 의해 복제되고 이로 인해 MedTech 서비스에 오류가 발생하기 때문에 이 예제 디바이스 메시지를 IoT 허브에 보내지 않습니다. 이는 IoT 허브에서 디바이스 메시지를 보강하는 방법의 예일 뿐입니다.

    예시:

    Screenshot of an Azure IoT Hub enriched device message.

    patientIdExpression만들기 모드의 MedTech 서비스에만 필요하므로 조회를 사용하는 경우 일치하는 디바이스 식별자가 있는 디바이스 리소스가 FHIR 서비스에 있어야 합니다. 이 예제에서는 MedTech 서비스가 만들기 모드에 있다고 가정합니다. 이 자습서의 해결 유형만들기로 설정되어 있습니다. 대상 속성: 만들기조회에 대한 자세한 내용은 대상 탭 구성을 참조하세요.

테스트 메시지에서 메트릭 검토

IoT 허브에 테스트 메시지를 성공적으로 보낸 후에는 MedTech 서비스 메트릭을 검토할 수 있습니다. 메트릭을 검토하여 MedTech 서비스가 테스트 메시지를 수신하고, FHIR 서비스로 그룹화 및 변환하고 유지했는지 확인합니다. 자세한 내용은 MedTech 서비스 모니터링 및 상태 검사 탭을 사용하는 방법을 참조하세요.

MedTech 서비스 메트릭의 경우 MedTech 서비스가 테스트 메시지에 대해 다음 단계를 완료했음을 확인할 수 있습니다.

  • 들어오는 메시지 수: 이벤트 허브에서 들어오는 테스트 메시지를 받았습니다.
  • 정규화된 메시지 수: 정규화된 5개의 메시지를 만들었습니다.
  • 측정 수: 5개의 측정값을 만들었습니다.
  • FHIR 리소스 수: FHIR 서비스에서 지속되는 5개의 FHIR 리소스를 만들었습니다.

Screenshot that shows a MedTech service metrics tile and test data metrics.

Screenshot that shows a second MedTech service metrics tile and test data metrics.

FHIR 서비스에서 테스트 데이터 보기

배포 템플릿의 Fhir 참가자 보안 주체 ID 옵션에 대한 선택적 값으로 사용자의 Microsoft Entra 사용자 개체 ID를 제공한 경우 FHIR 서비스에서 FHIR 리소스를 쿼리할 수 있습니다. IoT 허브로 전송되고 MedTech 서비스에서 처리한 테스트 메시지를 기반으로 FHIR 서비스에서 다음 FHIR 관찰 리소스를 확인할 수 있습니다.

  • HeartRate
  • RespiratoryRate
  • HeartRateVariability
  • BodyTemperature
  • BloodPressure

Microsoft Entra 액세스 토큰을 가져오고 FHIR 서비스에서 FHIR 리소스를 보는 방법에 대한 자세한 내용은 Postman을 사용하여 액세스를 참조하세요. Postman GET 요청에서 다음 값을 사용하여 테스트 메시지에서 만든 FHIR 관찰 리소스를 확인해야 합니다. {{fhirurl}}/Observation

다음 단계

MedTech 서비스에 대한 배포 방법 선택

MedTech 서비스 디바이스 데이터 처리 단계 개요

MedTech 서비스에 대한 질문과 대답

참고 항목

FHIR®은 HL7의 등록 상표이며, HL7의 사용 허가 하에 사용됩니다.