기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
드리프트 보고서 이해
드리프트 감지가 활성화되면 대량 작업은 라는 집계 보고서를 jobLevelDriftResult.json 출력 위치에 기록합니다. 이 보고서는 프로파일이 실제로 캡처한 소스 데이터의 양과 누락된 내용을 알려주므로 매핑을 개선할 위치를 알 수 있습니다.
보고서의 구조는 소스 형식에 따라 다릅니다. C-CDA 보고서는 문서 섹션 및 항목(OIDs로 식별됨)을 중심으로 구성되고 CSV 보고서는 테이블, 열 및 행을 중심으로 구성됩니다. 둘 다 동일한 적용 범위 비율 개념을 공유합니다(0.0에서 1.0까지의 분율. 여기서 높을수록 더 많은 소스가 캡처되었음을 의미함).
C-CDA 드리프트 보고서
{ "jobId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "profileId": "0f1e2d3c4b5a69788796a5b4c3d2e1f0", "profileVersion": 3, "timestamp": "2026-07-14T18:30:00Z", "filesProcessed": 500, "totalFilesFailed": 2, "avgSectionCoverageRate": 0.92, "avgEntryCoverageRate": 0.85, "avgOverallCoverageRate": 0.88, "avgResourceAccuracy": 0.97, "totalUnknownSections": 14, "totalUnknownEntries": 63, "documentOids": { "2.16.840.1.113883.10.20.22.1.2": 480 }, "unknownSectionOidCount": 2, "unknownSections": { "2.16.840.1.113883.10.20.22.2.14": 12 }, "unknownEntryOidCount": 5, "unknownEntries": { "2.16.840.1.113883.10.20.22.4.13": 40 }, "missingResources": { "2.16.840.1.113883.10.20.22.2.6.1": { "AllergyIntolerance": 8 } }, "perFileDrift": { "patient-001.xml": 0.95, "patient-002.xml": 0.61 } }
판독 방법
적용률부터 시작합니다. 이는 처리된 모든 파일의 평균으로, 0.0~1.0의 분수로 표시됩니다(백분율에 100을 곱함). 높을수록 좋습니다. 속도가 높을수록 소스 데이터가 FHIR 출력으로 더 많이 만들어집니다.
| Field | 의미 |
|---|---|
avgOverallCoverageRate |
헤드라인 번호입니다. 프로필이 FHIR에 매핑된 소스 콘텐츠(섹션 + 항목)의 평균 비율입니다. 0.88은 소스 데이터의 ~88%가 캡처되었음을 의미합니다. |
avgSectionCoverageRate |
매핑된 C-CDA 섹션(예: 문제, 약물, 알러지)의 평균 비율입니다. |
avgEntryCoverageRate |
매핑된 섹션 내 개별 항목(예: 단일 문제 또는 약물)의 평균 비율입니다. |
avgResourceAccuracy |
예상한 FHIR 리소스 중에서 실제로 생성된 평균 비율입니다. |
그런 다음 누락된 내용을 찾습니다. 이러한 필드는 추가할 특정 매핑을 가리킵니다.
| Field | 의미 | 수행할 작업 |
|---|---|---|
unknownSections |
프로파일이 인식하지 못한 소스 섹션 OIDs의 맵과 각 섹션이 나타난 횟수입니다. | 높은 수의 섹션 OIDs에 대한 매핑을 추가합니다. |
unknownEntries |
프로파일이 인식하지 못한 소스 항목 OIDs의 맵과 빈도입니다. | 높은 수의 항목 OIDs에 대한 매핑을 추가합니다. |
missingResources |
소스 OID 맵 → 예상되었지만 생성되지 않은 FHIR 리소스 유형, 개수 포함. | 이러한 리소스를 생성해야 하는 매핑을 수정합니다. |
totalUnknownSections /
totalUnknownEntries |
작업 전체에서 매핑되지 않은 섹션 및 항목의 총 수입니다. | 를 빠른 "남은 양" 신호로 사용합니다. |
documentOids |
작업에 표시되는 C-CDA 문서 유형 OIDs의 수입니다. | 데이터에 포함된 문서 유형을 확인합니다. |
빈도에 따라 우선 순위를 지정합니다. unknownSections, unknownEntries및의 개수는 가장 많은 레코드에 영향을 미치는 격차를 missingResources 알려줍니다. 40회 나타나는 OID는 두 번 나타나는 것보다 매핑에 더 큰 성공입니다.
특정 파일을 드릴링합니다.는 각 소스 파일을 전체 적용률에 perFileDrift 매핑합니다. 가장 낮은 값을 기준으로 정렬하여 프로파일이 최악의 상태로 처리한 파일을 찾습니다. 예를 들어 0.61patient-002.xml에서는 검사할 가치가 있습니다. 파일별 전체 분석(각 파일이 놓친 특정 OIDs)은 driftDetectionPerFileResults/ 폴더 아래의 개별 보고서를 참조하세요.
적용 범위 개선
-
unknownSections,unknownEntries및에서 가장 높은 빈도의 항목을 식별합니다missingResources. -
데이터 변환 AI 에이전트(
UpdateProfileWithAgent)를 사용하여 해당 OIDs 및 리소스에 대한 매핑을 추가합니다. OID를 붙여넣고 에이전트에게 매핑을 요청할 수 있습니다. -
새 프로필 버전을 게시하고 작업을 다시 실행합니다.
-
새
avgOverallCoverageRate를 비교하여 갭이 닫혔는지 확인합니다.
CSV 드리프트 보고서
CSV 작업의 경우 보고서는 섹션 및 OIDs가 아닌 테이블(각 CSV 파일은 테이블), 열 및 행을 중심으로 구성됩니다.
{ "jobId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "profileId": "0f1e2d3c4b5a69788796a5b4c3d2e1f0", "profileVersion": 3, "summary": { "totalTablesInProfile": 4, "totalTablesInInput": 5, "tablesProcessed": 4, "tablesUnmapped": 1, "totalColumnsInInput": 42, "columnsMapped": 35, "columnsUnmapped": 7, "totalRowsScanned": 120000, "rowsConvertedSuccessfully": 119850, "rowsFailedCustomerError": 140, "rowsFailedServerError": 10, "totalResourcesGenerated": 245000, "tablesCoverageRate": 0.80, "columnsCoverageRate": 0.83, "overallCoverageRate": 0.83 }, "unmappedTables": [ { "tableName": "billing", "fileName": "billing.csv", "reason": "No matching table declared in the mapping profile", "columns": ["invoice_id", "amount", "payer"] } ], "unmappedColumns": [ { "tableName": "patients", "columns": ["preferred_language", "ethnicity_detail"], "reason": "Present in CSV but not referenced by any field mapping" } ] }
판독 방법
요약부터 시작합니다. 적용률은 0.0~1.0의 분수입니다(높을수록 좋음).
| Field | 의미 |
|---|---|
overallCoverageRate |
헤드라인 번호: 프로파일이 실제로 사용하는 모든 입력 테이블에서 모든 열의 비율입니다. 0.83은 소스 열의 ~83%가 매핑되었음을 의미합니다. |
tablesCoverageRate |
프로필이 매핑하는 입력 CSV 파일(테이블)의 비율(tablesProcessed/totalTablesInInput). |
columnsCoverageRate |
필드 매핑에서 참조하는 매핑된 테이블의 열 비율입니다. |
그런 다음 개수를 확인하여 변환 결과를 이해합니다.
| Field | 의미 |
|---|---|
totalTablesInInput 대 tablesProcessed 비교 |
실제로 사용된 CSV 파일과 찾은 CSV 파일의 수. |
totalColumnsInInput /
columnsMapped /
columnsUnmapped |
존재하는 소스 열, 사용된 열 및 무시된 열의 수입니다. |
totalRowsScanned /
rowsConvertedSuccessfully |
성공적으로 변환된 행과 읽은 행의 수. |
rowsFailedCustomerError /
rowsFailedServerError |
데이터 품질 문제와 내부 오류로 인해 실패한 행. |
totalResourcesGenerated |
생성된 총 FHIR 리소스입니다. |
그런 다음 누락된 내용을 찾습니다.
| Field | 의미 | 수행할 작업 |
|---|---|---|
unmappedTables |
프로파일이 선언하지 않는 입력의 CSV 파일(이유 및 해당 파일의 열 포함). | 해당 파일을 변환해야 하는 경우 테이블 매핑을 추가합니다. |
unmappedColumns |
테이블별로 CSV에 존재하지만 필드 매핑에 사용되지 않는 열입니다. | FHIR 출력에서 원하는 열에 대한 필드 매핑을 추가합니다. |
적용 범위 개선(두 형식 모두)
-
가장 큰 영향 격차 식별: C-CDA의 경우
unknownSections//의 가장 높은 빈도의 항목, CSV의unknownEntriesmissingResources경우 ,unmappedTablesunmappedColumns및 경고의 항목. -
데이터 변환 AI 에이전트(
UpdateProfileWithAgent)를 사용하여 누락된 매핑을 추가합니다. 매핑되지 않은 OID(C-CDA) 또는 열 이름(CSV)을 붙여넣고 에이전트에게 매핑하도록 요청할 수 있습니다. -
새 프로필 버전을 게시하고 작업을 다시 실행합니다.
-
새
overallCoverageRate를 비교하여 갭이 닫혔는지 확인합니다.
참고
드리프트 감지는 프로필이 매핑되지 않은 내용을 보고합니다. 이는 변환 오류를 나타내지 않습니다. 소스 데이터는 사용 사례와 관련이 없는 경우 의도적으로 매핑되지 않은 상태로 둘 수 있습니다. 보고서를 사용하여 매핑할 가치가 있는 항목을 결정합니다.