제6장: EHR 통합과 데이터 표준

"상호운용성 없이는 진정한 CDSS도 없다. 표준 기반 데이터 교환이 의료 시스템 사이의 매끄러운 정보 흐름을 가능하게 한다."


6.1 HL7 FHIR 표준

FHIR (Fast Healthcare Interoperability Resources)는 현대적 의료 데이터 교환을 위한 HL7 표준이다. WIA-MED-015는 HL7 FHIR R4 이상을 요구한다.

🎯 FHIR 핵심 개념

개념설명
리소스 (Resources)Patient, Observation, Medication 등 데이터 단위
RESTful APIHTTP 기반 표준 API (GET, POST, PUT, DELETE)
JSON/XML웹 친화적 데이터 형식
확장 (Extensions)표준 확장 메커니즘

📋 주요 FHIR 리소스

// Patient 리소스 예시 (JSON)
{
  "resourceType": "Patient",
  "id": "example",
  "name": [{
    "family": "Kim",
    "given": ["Min-su"]
  }],
  "gender": "male",
  "birthDate": "1985-03-15",
  "address": [{
    "city": "Seoul",
    "postalCode": "06234"
  }]
}

// Observation 리소스 (혈압)
{
  "resourceType": "Observation",
  "status": "final",
  "category": [{
    "coding": [{
      "system": "http://terminology.hl7.org/CodeSystem/observation-category",
      "code": "vital-signs"
    }]
  }],
  "code": {
    "coding": [{
      "system": "http://loinc.org",
      "code": "85354-9",
      "display": "Blood pressure panel"
    }]
  },
  "subject": {"reference": "Patient/example"},
  "effectiveDateTime": "2025-01-15T09:30:00Z",
  "component": [
    {
      "code": {"coding": [{"system": "http://loinc.org", "code": "8480-6", "display": "Systolic blood pressure"}]},
      "valueQuantity": {"value": 140, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
    },
    {
      "code": {"coding": [{"system": "http://loinc.org", "code": "8462-4", "display": "Diastolic blood pressure"}]},
      "valueQuantity": {"value": 90, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
    }
  ]
}

🔗 FHIR API 연산

# 환자 조회
GET /Patient/12345

# 환자의 최근 혈압 관찰값
GET /Observation?patient=12345&code=85354-9&_sort=-date&_count=10

# 환자의 현재 복용 약물
GET /MedicationStatement?patient=12345&status=active

# 새 처방 생성
POST /MedicationRequest
{
  "resourceType": "MedicationRequest",
  "status": "active",
  "intent": "order",
  "subject": {"reference": "Patient/12345"},
  "medicationCodeableConcept": {
    "coding": [{
      "system": "http://www.nlm.nih.gov/research/umls/rxnorm",
      "code": "314076",
      "display": "lisinopril 10 MG Oral Tablet"
    }]
  },
  "dosageInstruction": [{
    "text": "1일 1회 10 mg 복용"
  }]
}

6.2 의학 용어 표준

의료 데이터를 일관되게 교환하려면 표준화된 용어 체계가 필수다.

📚 주요 용어 체계

표준용도예시
SNOMED CT진단, 소견, 시술44054006 = 제2형 당뇨병
LOINC검사와 관찰2345-7 = Glucose [Mass/volume] in Serum or Plasma
RxNorm약물314076 = lisinopril 10 MG Oral Tablet
ICD-10진단 코드(청구)E11.9 = 합병증을 동반하지 않은 제2형 당뇨병
CPT시술 코드(청구, 미국)99213 = 재진 환자 외래 진료
UCUM측정 단위mg/dL, mm[Hg]

🌐 한국 표준


6.3 CDS Hooks 표준

CDS Hooks는 CDSS를 EHR 워크플로우에 통합하기 위한 HL7 표준이다. WIA-MED-015는 CDS Hooks 2.0 이상을 요구한다.

⚡ CDS Hooks 흐름

1. EHR에서 이벤트 발생
   ↓
2. 훅 발동 (예: "order-sign")
   ↓
3. EHR → CDS 서비스 요청
   {
     "hook": "order-sign",
     "hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
     "context": {
       "userId": "Practitioner/example",
       "patientId": "12345",
       "draftOrders": { ... }
     }
   }
   ↓
4. CDS 서비스가 분석 수행
   - DDI 검사
   - 알레르기 검사
   - 용량 검증
   ↓
5. CDS 서비스 → EHR 응답 (Cards)
   {
     "cards": [
       {
         "summary": "⚠️ Warfarin-Aspirin 상호작용",
         "indicator": "warning",
         "detail": "출혈 위험 증가...",
         "source": {"label": "WIA-MED-015 DDI 서비스"},
         "suggestions": [
           {"label": "항혈소판제 필요성 재검토"}
         ]
       }
     ]
   }
   ↓
6. EHR이 UI에 카드 표시
   ↓
7. 의사가 결정 (수용 / 대안 선택 / 무시)

🔧 주요 훅 유형

훅발동 시점
patient-view환자 차트를 열 때
medication-prescribe약물을 처방할 때 (이전 훅으로 order-select / order-sign으로 대체됨, WIA-MED-015 명세 예시에서는 여전히 사용)
order-select검사·시술·약물 오더를 선택할 때
order-sign오더에 서명(확정)할 때
encounter-discharge환자가 퇴원할 때 (투약 조정)
encounter-start진료가 시작될 때 (관련 알림, 병력 리마인더)

6.4 데이터 품질 관리

✅ 데이터 품질의 차원

차원설명검증 방법
완전성필수 데이터 누락 없음필수 필드 검사
정확성데이터가 실제를 반영범위 검사, 논리 검사
일관성모순 없음교차 검증
적시성데이터가 최신타임스탬프 검사
유효성형식·표준 준수스키마 검증

🔍 데이터 검증 예시

// 혈압 데이터 검증
{
  "systolic": 140,
  "diastolic": 90
}

검증 규칙:
✅ 완전성: systolic AND diastolic 존재
✅ 범위: 50 < systolic < 300
✅ 범위: 30 < diastolic < 200
✅ 논리: systolic > diastolic
⚠️ 경고: systolic >= 130 (목표 < 130/80 초과)

// 약물 데이터 검증
{
  "medication": "Lisinopril",
  "dose": "10",
  "unit": "mg",
  "route": "PO"
}

검증:
✅ RxNorm 코드 일치
✅ 용량 범위 (2.5-80 mg/일)
✅ 유효한 투여 경로
✅ 투여 빈도 형식

6.5 개인정보 보호와 보안

🔒 규제 준수

규제지역핵심 요구사항
HIPAA미국PHI 보호, 보호 조치, 감사 통제
GDPREU적법 근거/동의, 열람권, 삭제권
PIPL중국개인정보 보호, 데이터 현지화
개인정보 보호법 (PIPA)한국수집 동의, 안전성 확보 조치, 유출 통지

🛡️ 보안 기술


장 요약

핵심 포인트요약
HL7 FHIRRESTful API, JSON/XML, 리소스
용어 표준SNOMED CT, LOINC, RxNorm, ICD-10
CDS Hooks워크플로우 통합 표준
데이터 품질완전성, 정확성, 일관성, 적시성, 유효성
보안HIPAA·GDPR 준수, 암호화, 접근 제어

弘益人間 · 널리 인간을 이롭게 하라

© 2025 WIA - World Certification Industry Association