MedTech 서비스 FHIR 대상 매핑 개요

이 문서에서는 MedTech 서비스 FHIR® 대상 매핑에 대한 개요를 제공합니다.

MedTech 서비스에는 Azure Portal 또는 Azure Resource Manager API를 통해 MedTech 서비스에 추가되는 두 가지 유형의 JSON 매핑이 필요합니다. 디바이스 매핑은 첫 번째 형식이며 MedTech 서비스로 전송된 디바이스 데이터의 값을 정규화된 내부 데이터 개체에 매핑하는 것을 제어합니다. 디바이스 매핑에는 MedTech 서비스에서 형식, 디바이스 식별자, 측정 날짜와 시간 및 측정값을 추출하는 데 사용하는 식이 포함됩니다. FHIR 대상 매핑은 두 번째 형식이며 정규화된 데이터가 FHIR 관찰에 매핑되는 방법을 제어합니다.

참고 항목

디바이스 및 FHIR 대상 매핑은 디바이스 메시지가 처리될 때마다 다시 평가됩니다. 매핑에 대한 모든 업데이트는 즉시 적용됩니다.

FHIR 대상 매핑 기본 사항

FHIR 대상 매핑은 디바이스 메시지에서 추출된 정규화된 데이터가 FHIR 관찰에 매핑되는 방법을 제어합니다.

  • 특정 시점 또는 1시간 동안 관찰을 만들어야 하나요?
  • 관찰에 추가해야 하는 코드는 무엇인가요?
  • 값을 SampledData 또는 Quantity로 표시해야 하나요?

이러한 데이터 형식은 FHIR 대상 매핑 구성에서 제어하는 모든 옵션입니다.

디바이스 데이터가 정규화된 데이터 모델로 변환되면 해당 정규화된 데이터는 FHIR 관찰로 변환하기 위해 수집됩니다. 관찰 유형이 SampledData인 경우 데이터는 디바이스 식별자, 측정 유형 및 기간(기간은 1시간 또는 24시간일 수 있음)에 따라 그룹화됩니다. 이 그룹화의 출력은 해당 데이터 형식의 기간을 나타내는 단일 FHIR 관찰로 변환하기 위해 전송됩니다. 다른 관찰 유형(Quantity, CodeableConceptString)의 경우 데이터가 그룹화되지 않는 대신, 각 측정값이 특정 시점을 나타내는 단일 관찰로 변환됩니다.

MedTech 서비스가 FHIR 서비스의 지속성을 위해 디바이스 메시지 데이터를 FHIR 관찰로 처리하는 방법에 대한 자세한 내용은 MedTech 서비스 디바이스 메시지 처리 단계 개요를 참조하세요.

이 다이어그램은 MedTech 서비스 내의 변환 단계에서 발생하는 작업을 설명합니다.

Diagram example of the MedTech service device message transformation stage.

참고 항목

이 다이어그램의 FHIR 관찰은 완전한 리소스가 아닙니다. 전체 FHIR 관찰에 대해서는 이 개요의 예제를 참조하세요.

CollectionFhir

CollectionFhir은 MedTech 서비스 FHIR 대상 매핑에서 사용하는 루트 템플릿 형식입니다. CollectionFhir은 변환 단계에서 사용되는 모든 템플릿의 목록입니다. 모든 템플릿에 대해 평가되는 정규화된 각 메시지를 사용하여 CollectionFhir 내에서 하나 이상의 템플릿을 정의할 수 있습니다.

Diagram showing MedTech service FHIR destination mapping template and code architecture.

CodeValueFhir

CodeValueFhir은 현재 FHIR 대상 매핑에서 지원되는 유일한 템플릿입니다. 이를 통해 코드, 유효 기간 및 관찰 값을 정의할 수 있습니다. SampledData, CodeableConcept, QuantityString의 여러 값 형식이 지원됩니다. 이러한 구성 가능한 값과 함께 관찰 리소스의 식별자 및 적절한 디바이스와 환자 리소스에 대한 연결이 자동으로 처리됩니다.

Important

해결 유형에서는 MedTech 서비스가 디바이스 리소스 및 환자 리소스와 디바이스 데이터를 연결하는 방법을 지정합니다. MedTech 서비스는 디바이스 식별자환자 식별자를 사용하여 FHIR 서비스에서 디바이스 및 환자 리소스를 읽습니다. 디바이스 데이터 페이로드에서 encounter 식별자를 지정하고 추출하는 경우 해당 식별자를 사용하여 FHIR 서비스에 encounter가 있는지 여부에 대한 관찰에 연결됩니다. encounter 식별자가 성공적으로 정규화되었지만 해당 encounter 식별자를 갖는 FHIR Encounter가 없으면 FhirResourceNotFound 예외가 발생합니다. MedTech 서비스 해결 유형 구성에 대한 자세한 내용은 대상 탭 구성을 참조하세요.

요소 설명 필수
typeName 이 템플릿이 바인딩해야 하는 측정 형식입니다. 참고: 동일한 typeName이 있는 하나 이상의 디바이스 매핑 템플릿이 있어야 합니다. typeName 요소는 FHIR 대상 매핑 템플릿을 하나 이상의 디바이스 매핑 템플릿에 연결하는 데 사용됩니다. 동일한 typeName 요소를 갖는 디바이스 매핑 템플릿은 동일한 typeName이 있는 FHIR 대상 매핑 템플릿을 사용하여 평가되는 정규화된 데이터를 생성합니다. True
periodInterval 생성된 관찰이 표시해야 하는 기간입니다. 지원되는 값은 0(인스턴스), 60(시간), 1440(일)입니다. 관찰 유형이 SampledData인 경우 True이고, 다른 관찰 유형에 대해서는 무시됩니다.
category 생성된 관찰 유형을 분류하는 데 사용할 여러 CodeableConcepts입니다. False
codes 생성된 관찰에 적용할 하나 이상의 Coding입니다. True
codes[].code codes 요소의 Coding에 대한 코드입니다. True
codes[].system codes 요소의 Coding에 대한 시스템입니다. False
codes[].display codes 요소의 Coding에 대한 디스플레이입니다. False
value 관찰에서 추출하고 표시할 값입니다. value 요소에 포함된 요소에 대한 자세한 내용은 값 형식을 참조하세요. components 요소가 사용되지 않는 경우 True입니다(관찰 유형이 CodebleConcept가 아닌 경우 이 요소는 '필요하지 않을' 뿐만 아니라 무시됨).
구성 요소 관찰에서 만들 하나 이상의 구성 요소입니다. value 요소가 대신 사용되지 않는 경우 True입니다.
components[].codes 구성 요소에 적용할 하나 이상의 Coding입니다. False
components[].value 구성 요소에서 추출하고 표시할 값입니다. components[].value 요소에 포함된 요소에 대한 자세한 내용은 값 형식을 참조하세요. components 요소가 사용되는 경우 True입니다(관찰 유형이 CodebleConcept가 아닌 경우 이 요소는 '필요하지 않을' 뿐만 아니라 무시됨).

값 형식

모든 CodeValueFhir 템플릿의 value 요소는 다음과 같은 요소를 포함합니다.

요소 설명 필수
valueType 값 형식입니다. 이 값은 값 형식에 따라 "SampledData", "Quantity", "CodeableConcept" 또는 "String"입니다. True
valueName 값의 이름입니다. valueType이 CodeableConcept가 아니면 True입니다.

MedTech 서비스 FHIR 대상 매핑에서 지원되는 값 형식은 다음과 같습니다.

SampledData

SampledData FHIR 데이터 형식을 나타냅니다. 관찰 측정값은 특정 시점부터 시작하여 정의된 기간을 사용하여 정방향으로 증분하는 값 스트림에 기록됩니다. 값이 없으면 E가 데이터 스트림에 기록됩니다. 기간에 대해 데이터 스트림에서 둘 이상의 값이 동일한 위치를 차지하게 되면 최신 값이 사용됩니다. SampledData를 사용한 관찰이 업데이트될 때는 동일한 논리가 적용됩니다. SampledData 값 형식이 있는 CodeValueFhir 템플릿의 경우 템플릿의 value 요소에는 다음 요소가 포함됩니다.

요소 설명 필수
defaultPeriod 사용할 기본 기간(밀리초)입니다. True
단위 SampledData의 원점에서 설정할 단위입니다. True

수량

Quantity FHIR 데이터 형식을 나타냅니다. 이 형식은 단일 시점에서 관찰을 만듭니다. 동일한 디바이스 식별자, 측정 유형 및 타임스탬프를 포함하는 새 값이 나타나면 이전 관찰이 새 값으로 업데이트됩니다. Quantity 값 형식이 있는 CodeValueFhir 템플릿의 경우 템플릿의 value 요소에는 다음 요소가 포함됩니다.

요소 설명 필수
단위 단위 표현입니다. False
code 단위의 코딩된 형식입니다. False
시스템 코딩된 단위 형식을 정의하는 시스템입니다. False

CodeableConcept

CodeableConcept FHIR 데이터 형식을 나타냅니다. 정규화된 데이터 모델의 값은 사용되지 않으며, 대신 이 형식의 데이터를 수신하면 특정 시점에 관찰이 기록되었음을 나타내는 특정 코드로 관찰이 생성됩니다. CodeableConcept 값 형식이 있는 CodeValueFhir 템플릿의 경우 템플릿의 value 요소에는 다음 요소가 포함됩니다.

요소 설명 필수
text 일반 텍스트 표현입니다. False
codes 생성된 관찰에 적용할 하나 이상의 Coding입니다. True
codes[].code codes 요소의 Coding에 대한 코드입니다. True
codes[].system codes 요소의 Coding에 대한 시스템입니다. False
codes[].display codes 요소의 Coding에 대한 디스플레이입니다. False

문자열

String FHIR 데이터 형식을 나타냅니다. 이 형식은 단일 시점에서 관찰을 만듭니다. 동일한 디바이스 식별자, 측정 유형 및 타임스탬프를 포함하는 새 값이 나타나면 이전 관찰이 새 값으로 업데이트됩니다. 다른 요소는 정의되지 않습니다.

예시

MedTech 서비스 매핑 디버거를 사용하여 MedTech 서비스 디바이스 및 FHIR 대상 매핑을 만들고 업데이트하고 문제를 해결하도록 지원할 수 있습니다. 매핑 디버거를 사용하면 Azure Portal을 벗어나지 않고도 실시간으로 인라인을 쉽게 보고 조정할 수 있습니다. 매핑 디버거를 통해 테스트 디바이스 메시지를 업로드하여 정규화된 메시지로 처리되고 FHIR 관찰로 변환된 후 어떻게 표시되는지 확인할 수도 있습니다.

참고 항목

이 예제 및 정규화된 메시지는 MedTech 서비스 디바이스 매핑 개요의 연속입니다.

이 예제에서는 heartRate 데이터를 캡처하는 정규화된 메시지를 사용하고 있습니다.

[
  {
    "type": "heartrate",
    "occurrenceTimeUtc": "2023-03-13T22:46:01.875Z",
    "deviceId": "device01",
    "properties": [
      {
        "name": "hr",
        "value": "78"
      }
    ]
  }
]

변환 단계에 이 FHIR 대상 매핑을 사용합니다.

{
  "templateType": "CollectionFhir",
  "template": [
    {
      "templateType": "CodeValueFhir",
      "template": {
        "codes": [
          {
            "code": "8867-4",
            "system": "http://loinc.org",
            "display": "Heart rate"
          }
        ],
        "typeName": "heartrate",
        "value": {
          "system": "http://unitsofmeasure.org",
          "code": "count/min",
          "unit": "count/min",
          "valueName": "hr",
          "valueType": "Quantity"
        }
      }
    }
  ]
}

결과 FHIR 관찰은 변환 단계 후에 다음과 같이 표시됩니다.

[
  {
    "code": {
      "coding": [
        {
          "system": {
            "value": "http://loinc.org"
          },
          "code": {
            "value": "8867-4"
          },
          "display": {
            "value": "Heart rate"
          }
        }
      ],
      "text": {
        "value": "heartrate"
      }
    },
    "effective": {
      "start": {
        "value": "2023-03-13T22:46:01.8750000Z"
      },
      "end": {
        "value": "2023-03-13T22:46:01.8750000Z"
      }
    },
    "issued": {
      "value": "2023-04-05T21:02:59.1650841+00:00"
    },
    "value": {
      "value": {
        "value": 78
      },
      "unit": {
        "value": "count/min"
      },
      "system": {
        "value": "http://unitsofmeasure.org"
      },
      "code": {
        "value": "count/min"
      }
    }
  }
]

일반적인 MedTech 서비스 배포 오류를 해결하는 데 도움이 필요하면 MedTech 서비스 배포 오류 문제 해결을 참조하세요.

MedTech 서비스 오류 해결에 대한 지원은 MedTech 서비스 로그를 사용하여 오류 문제 해결을 참조하세요.

다음 단계

MedTech 서비스 디바이스 매핑 개요

MedTech 서비스 디바이스 매핑과 함께 CalculatedContent 템플릿을 사용하는 방법

MedTech 서비스 디바이스 매핑과 함께 IotJsonPathContent 템플릿을 사용하는 방법

MedTech 서비스 디바이스 매핑과 함께 사용자 지정 함수를 사용하는 방법

MedTech 서비스 시나리오 기반 매핑 샘플 개요

참고 항목

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