다음을 통해 공유


FHIR 서비스의 $convert-data

참고 항목

2024년 5월에는 FHIR 서비스에서 분리된 독립 실행형 FHIR® 변환기 API를 릴리스하고 미리 보기를 위한 컨테이너(Docker) 이미지가 패키징되었습니다. FHIR 변환기는 레코드 원본의 데이터를 FHIR R4 번들로 변환하는 것 외에도 다음과 같은 다양한 새로운 기능을 제공합니다.

  • 레코드 원본에서 FHIR R4 번들로 또는 그 반대로 양방향 데이터 변환. 예를 들어, FHIR 변환기는 FHIR R4 형식의 데이터를 다시 HL7v2 형식으로 변환할 수 있습니다.
  • 기본 Liquid 템플릿 사용자 지정 환경이 개선되었습니다.
  • ADF(Azure Data Factory)를 사용하여 ETL(추출, 변환, 로드) 파이프라인을 만드는 방법을 보여 주는 샘플.

FHIR 변환기 컨테이너 이미지를 구현하려면 FHIR 변환기 GitHub 프로젝트를 참조하세요.

FHIR® 서비스의 $convert-data 작업을 사용하면 다양한 형식의 상태 데이터를 FHIR R4 데이터로 변환할 수 있습니다. $convert-data 작업은 FHIR 데이터 변환을 위해 FHIR 변환기 프로젝트의 Liquid 템플릿을 사용합니다. 필요에 따라 이러한 변환 템플릿을 사용자 지정할 수 있습니다.

$convert-data 작업은 네 가지 형식의 데이터 변환을 지원합니다.

  • HL7v2에서 FHIR R4로
  • C-CDA에서 FHIR R4로
  • JSON에서 FHIR R4로(사용자 지정 변환 매핑용)
  • FHIR STU3에서 FHIR R4로

$convert-data 엔드포인트 사용

$convert-data 엔드포인트를 ETL(추출, 전환 및 로드) 파이프라인 내 구성 요소로 사용하여 다양한 형식(예: HL7v2, CCDA, JSON 및 FHIR STU3)의 의료 데이터를 FHIR 형식으로 변환합니다. 의료 데이터를 변환할 때 전체 워크플로의 ETL 파이프라인을 만듭니다. Azure Logic Apps 또는 Azure Data Factory 기반의 ETL 엔진을 사용하는 것이 좋습니다. 예를 들어, 워크플로에는 데이터 수집, $convert-data 작업 수행, 유효성 검사, 데이터 사전 및 사후 처리, 데이터 보강, 데이터 중복 제거, FHIR 서비스에서 지속성을 위한 데이터 로드가 포함될 수 있습니다.

$convert-data 작업은 REST API 작업으로 FHIR 서비스에 통합됩니다. 다음과 같이 $convert-data 엔드포인트를 호출할 수 있습니다.

POST {{fhirurl}}/$convert-data

변환을 위한 상태 데이터는 $convert-data 요청 본문의 FHIR 서비스로 전달됩니다. 요청이 성공하면 FHIR 서비스는 FHIR R4로 변환된 데이터와 함께 FHIR 번들 응답을 반환합니다.

매개 변수

$convert-data 작업 호출은 요청 본문의 JSON 형식 매개 변수 내에서 변환을 위해 상태 데이터를 패키징합니다. 다음 표에는 매개 변수가 나와 있습니다.

매개 변수 이름 설명 허용되는 값
inputData FHIR로 변환할 데이터 페이로드. Hl7v2의 경우: 문자열
Ccda의 경우: XML
Json의 경우: JSON
FHIR STU3의 경우: JSON
inputDataType 데이터 입력 유형. Hl7v2, Ccda, Json, Fhir
templateCollectionReference Azure Container RegistryOCI 이미지 템플릿 컬렉션에 대한 참조입니다. 참조는 변환에 사용할 Liquid 템플릿을 포함하는 이미지에 대한 것입니다. 기본 템플릿 또는 FHIR 서비스 내에 등록된 사용자 지정 템플릿 이미지를 참조할 수 있습니다. 다음 섹션에서는 템플릿의 사용자 지정, Azure Container Registry에서 호스팅 및 FHIR 서비스에 등록에 대해 다룹니다. 기본/샘플 템플릿의 경우:
HL7v2 템플릿:
microsofthealth/fhirconverter:default
microsofthealth/hl7v2templates:default
C-CDA 템플릿:
microsofthealth/ccdatemplates:default
JSON 템플릿:
microsofthealth/jsontemplates:default
FHIR STU3 템플릿:
microsofthealth/stu3tor4templates:default

사용자 지정 템플릿의 경우:
<RegistryServer>/<imageName>@<imageDigest>, <RegistryServer>/<imageName>:<imageTag>
rootTemplate 데이터를 변환하는 동안 사용할 루트 템플릿입니다. HL7v2의 경우:
ADT_A01, ADT_A02, ADT_A03, ADT_A04, ADT_A05, ADT_A08, ADT_A11, ADT_A13, ADT_A14, ADT_A15, ADT_A16, ADT_A25, ADT_A26, ADT_A27, ADT_A28, ADT_A29, ADT_A31, ADT_A47, ADT_A60, OML_O21, ORU_R01, ORM_O01, VXU_V04, SIU_S12, SIU_S13, SIU_S14, SIU_S15, SIU_S16, SIU_S17, SIU_S26, MDM_T01, MDM_T02

C-CDA의 경우:
CCD, ConsultationNote, DischargeSummary, HistoryandPhysical, OperativeNote, ProcedureNote, ProgressNote, ReferralNote, TransferSummary

JSON의 경우:
ExamplePatient, Stu3ChargeItem

FHIR STU3의 경우:
FHIR STU3 리소스 이름(예: Patient, Observation, Organization)

고려 사항

  • FHIR STU3-FHIR R4로의 템플릿은 FHIR STU3 리소스와 FHIR R4 사양의 해당 리소스 간에만 필드 차이의 매핑을 제공하는 Liquid 템플릿입니다. 일부 FHIR STU3 리소스는 FHIR R4에서 이름이 변경되거나 제거되었습니다. FHIR STU3-FHIR R4 변환에 대한 리소스 차이 및 제약 조건에 대한 자세한 내용은 FHIR STU3-FHIR R4 변환에 대한 리소스 차이점 및 제약 조건을 참조하세요.

  • JSON 템플릿은 사용자의 변환 매핑을 빌드하는 데 사용할 샘플 템플릿입니다. 이는 미리 정의된 상태 데이터 메시지 유형을 준수하는 기본 템플릿이 아닙니다. JSON 자체는 HL7v2 또는 C-CDA와 달리 상태 데이터 서식으로 지정되지 않습니다. 이로 인해 기본 JSON 템플릿을 제공하지 않고 사용자 지정 매핑의 시작점으로 몇 가지 샘플 JSON 템플릿을 제공합니다.

Warning

기본 템플릿은 MIT 라이선스에 따라 릴리스되며 Microsoft에서는 지원되지 않습니다.

데이터 변환 워크플로를 시작하는 데 도움이 되는 기본 템플릿만 제공됩니다. 이러한 기본 템플릿은 프로덕션용이 아니며 Microsoft에서 FHIR 서비스에 대한 업데이트를 릴리스할 때 변경될 수 있습니다. 여러 버전의 FHIR 서비스에서 일관된 데이터 변환 동작을 수행하려면 다음을 수행해야 합니다.

  1. Azure Container Registry 인스턴스에서 사용자의 템플릿 복사본을 호스트합니다.
  2. 템플릿을 FHIR 서비스에 등록합니다.
  3. API 호출에서 등록된 템플릿을 사용합니다.
  4. 변환 동작이 요구 사항을 충족하는지 확인합니다.

사용자 고유의 템플릿을 호스팅하는 방법에 대한 자세한 내용은 사용자 고유의 템플릿 호스트를 참조하세요.

샘플 요청

{
    "resourceType": "Parameters",
    "parameter": [
        {
            "name": "inputData",
            "valueString": "MSH|^~\\&|SIMHOSP|SFAC|RAPP|RFAC|20200508131015||ADT^A01|517|T|2.3|||AL||44|ASCII\nEVN|A01|20200508131015|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|\nPID|1|3735064194^^^SIMULATOR MRN^MRN|3735064194^^^SIMULATOR MRN^MRN~2021051528^^^NHSNBR^NHSNMBR||Kinmonth^Joanna^Chelsea^^Ms^^D||19870624000000|F|||89 Transaction House^Handmaiden Street^Wembley^^FV75 4GJ^GBR^HOME||020 3614 5541^PRN|||||||||C^White - Other^^^||||||||\nPD1|||FAMILY PRACTICE^^12345|\nPV1|1|I|OtherWard^MainRoom^Bed 183^Simulated Hospital^^BED^Main Building^4|28b|||C005^Whittingham^Sylvia^^^Dr^^^DRNBR^D^^^ORGDR|||CAR|||||||||16094728916771313876^^^^visitid||||||||||||||||||||||ARRIVED|||20200508131015||"
        },
        {
            "name": "inputDataType",
            "valueString": "Hl7v2"
        },
        {
            "name": "templateCollectionReference",
            "valueString": "microsofthealth/fhirconverter:default"
        },
        {
            "name": "rootTemplate",
            "valueString": "ADT_A01"
        }
    ]
}

샘플 응답

{
    "resourceType": "Bundle",
    "type": "batch",
    "entry": [
        {
            "fullUrl": "urn:uuid:9d697ec3-48c3-3e17-db6a-29a1765e22c6",
            "resource": {
                "resourceType": "Patient",
                "id": "9d697ec3-48c3-3e17-db6a-29a1765e22c6",
          ...
          ...
            },
            "request": {
                "method": "PUT",
                "url": "Location/50becdb5-ff56-56c6-40a1-6d554dca80f0"
            }
        }
    ]
}

FHIR 변환 결과는 일괄 처리와 같은 FHIR 번들입니다.

  • FHIR 번들은 FHIR R4 사양(번들 - FHIR v4.0.1)에 부합해야 합니다.
  • 특정 프로필에 대해 유효성을 검사하려는 경우 FHIR $validate 작업을 활용하여 일부 사후 처리를 수행해야 합니다.

다음 단계

Azure Portal을 사용하여 $convert-data에 대한 설정 구성

$convert-data 문제 해결

$convert-data FAQ

참고 항목

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