표준

CDS Hooks 설명: 진료 시점에 EHR에 의사결정 지원을 연결하는 방법

CDS Hooks는 EHR 워크플로우 내에서 의사결정 지원 서비스에 연결하기 위한 HL7 표준입니다. 차트가 열리거나, 처방이 선택되거나 서명될 때 작동합니다. 디스커버리, 훅, 프리페치 및 카드가 작동하는 방식, 서비스가 반환할 수 있는 것과 없는 것, SMART on FHIR과의 관계, 그리고 버전 2.0의 추가 사항에 대해 설명합니다.

작성자 게시일 2분 소요

간단 요약: CDS Hooks는 HL7 표준으로, 전자 건강 기록(EHR)이 의사의 워크플로우에서 정의된 시점(훅)에 외부 임상 의사 결정 지원 서비스를 호출할 수 있도록 합니다. 환자 차트 열기(patient-view), 처방 선택(order-select), 처방 서명(order-sign), 진료 시작 또는 종료 시 등이 해당됩니다. EHR은 컨텍스트와 선택적으로 사전 로드된 FHIR 데이터를 전송하며, 서비스는 몇 초 내에 카드 형태로 응답합니다. 이 카드는 짧은 정보, 경고 또는 제안, 그리고 SMART on FHIR 앱을 실행할 수 있는 링크를 포함합니다. 의사는 EHR 내에 머무르며, 지능은 EHR 외부에 있습니다.

세 단계

CDS Hooks는 세 단계로 작동합니다. 첫째, 검색: EHR은 GET /cds-services를 가져와 각 서비스가 어떤 훅에 응답하는지, 그리고 어떤 FHIR 데이터를 미리 가져오고 싶은지 학습합니다. 둘째, 훅 호출: 주문 서명과 같은 워크플로우 이벤트에서 EHR은 컨텍스트와 미리 가져온 리소스를 서비스로 POST합니다. 셋째, 응답: 서비스는 EHR이 표시할 카드들을 반환합니다.

1. 검색. EHR은 GET https://cds.example.org/cds-services를 가져와 서비스 목록을 받습니다. 각 서비스는 응답하는 훅과 사전 로드를 원하는 FHIR 쿼리를 포함합니다.

{
  "services": [{
    "id": "renal-dosing",
    "hook": "order-sign",
    "title": "Renal dosing check",
    "description": "Flags drug orders whose dose needs review against the latest eGFR.",
    "prefetch": {
      "patient": "Patient/{{context.patientId}}",
      "egfr": "Observation?patient={{context.patientId}}&code=http://loinc.org|98979-8&_sort=-date&_count=1"
    }
  }]
}

2. 훅 호출. 의사가 처방에 서명할 때, EHR은 /cds-services/renal-dosing으로 POST 요청을 보냅니다.

{
  "hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
  "hook": "order-sign",
  "fhirServer": "https://ehr.example.org/fhir",
  "fhirAuthorization": {"access_token": "…", "token_type": "Bearer", "expires_in": 300, "scope": "patient/*.read", "subject": "renal-dosing"},
  "context": {
    "userId": "Practitioner/42",
    "patientId": "123",
    "draftOrders": {"resourceType": "Bundle", "entry": [{"resource": {"resourceType": "MedicationRequest", "id": "draft-1", "status": "draft"}}]}
  },
  "prefetch": {
    "patient": {"resourceType": "Patient", "id": "123"},
    "egfr": {"resourceType": "Bundle", "type": "searchset", "entry": [{"resource": {"resourceType": "Observation", "id": "obs-9", "status": "final", "code": {"coding": [{"system": "http://loinc.org", "code": "98979-8"}]}, "valueQuantity": {"value": 38, "unit": "mL/min/1.73m2"}}}]}
  }
}

사전 로드되지 않은 서비스에 필요한 정보가 있다면, fhirAuthorization에 포함된 단기 토큰을 사용하여 EHR의 FHIR 서버에 직접 쿼리할 수 있습니다.

3. 응답. 카드, 그리고 버전 2.0에서는 시스템 작업도 포함됩니다.

{
  "cards": [{
    "uuid": "9a1d2f3e-…",
    "summary": "eGFR 38: dose review suggested",
    "indicator": "warning",
    "detail": "The most recent eGFR (38 mL/min/1.73m², 2026-03-10) is below the threshold in the local renal dosing guidance for this drug.",
    "source": {"label": "Hospital renal dosing guidance", "url": "https://intranet.example.org/renal"},
    "suggestions": [{"label": "Open renal dosing table", "uuid": "…", "actions": []}],
    "links": [{"label": "Dosing calculator", "url": "https://apps.example.org/renal/launch", "type": "smart"}]
  }]
}

summary는 140자 이내로 제한되며, indicator는 info, warning 또는 critical입니다. source는 의사가 누가 말하는지 알 수 있도록 필수입니다. suggestions은 의사가 한 번의 클릭으로 수락할 수 있는 구체적인 변경(초안 리소스 생성, 업데이트 또는 삭제)을 제안할 수 있습니다. smart 유형의 links는 컨텍스트 내에서 SMART 앱을 엽니다. EHR은 자체 스타일로 카드를 렌더링하며, 서비스는 EHR 내부에 자체 UI를 그리지 않습니다.

버전 2.0 추가 사항

2022년에 발행된 CDS Hooks 버전 2.0은 EHR이 카드가 수락되었는지, 이유와 함께 재정의되었는지 또는 무시되었는지 보고하는 피드백 엔드포인트, 낮은 위험의 하우스키핑을 위해 EHR이 요청 없이 적용하는 변경 사항인 systemActions, fhirAuthorization.subject 필드, 그리고 제안에 대한 더 명확한 selectionBehavior 규칙(at-most-one 또는 any)을 추가했습니다.

2022년에 게시되었습니다. EHR이 카드가 수락되었는지, 무시되었는지(이유 포함) 또는 거부되었는지 보고하는 피드백 엔드포인트(POST /cds-services/{id}/feedback), 낮은 위험의 정리 작업(예: 코딩된 이유 추가)을 위한 시스템 작업으로 EHR이 자동으로 적용하는 변경 사항, fhirAuthorization.subject, 그리고 제안에 대한 selectionBehavior(at-most-one 또는 any)에 대한 명확한 규칙이 추가되었습니다.

서비스의 정의와 비정의

CDS Hooks 서비스는 워크플로우 컨텍스트를 읽고 카드 형태로 정보를 반환하는 소프트웨어이며, 자동으로 의료기기가 되는 것은 아닙니다. EU와 미국에서 의료기기 규칙이 적용되는지는 콘텐츠에 따라 달라집니다. 검사 결과 값이 있음을 임상의에게 상기시키는 것은 정보이지만, 환자별 복용량 추천은 규제된 의사 결정 지원입니다.

CDS 서비스는 컨텍스트를 읽고 정보를 반환하는 소프트웨어입니다. 의료 기기인지 여부는 카드의 내용에 따라 달라집니다. 검사 결과가 있다는 알림은 정보이지만, 특정 환자에 대한 복용량 추천은 EU 및 미국에서 의료 기기 규정에 해당하는 의사 결정 지원입니다. 건강 앱이 의료 기기인가요?를 참조하세요. 표준은 중립적이며, 내용은 그렇지 않습니다.

현재 정의된 훅: patient-view, order-select, order-sign, order-dispatch, encounter-start, encounter-discharge, appointment-book이 있으며, 새로운 훅을 제안할 수 있는 공개 카탈로그가 있습니다.

SMART on FHIR과의 관계

CDS Hooks와 SMART on FHIR은 상호 보완적입니다. SMART on FHIR은 화면의 일부를 차지하고 사용자 승인을 받아 FHIR 서버를 쿼리하는 앱을 실행합니다. CDS Hooks는 백그라운드에서 실행되어 EHR 자체 인터페이스에 카드를 반환합니다. 카드에는 카드 이상이 필요할 때 SMART 실행 링크가 포함될 수 있습니다.

SMART on FHIR은 화면의 일부를 차지하고 사용자의 권한으로 FHIR 서버와 통신하는 앱을 실행합니다. CDS Hooks는 백그라운드에서 실행되며 카드를 반환합니다. 카드는 카드 이상이 필요할 때 SMART 실행 링크를 포함할 수 있습니다. 대부분의 의사 결정 지원 제품은 둘 다 사용합니다. 훅은 알림을 위해, SMART 앱은 세부 정보를 위해 사용됩니다.

Anpheros의 역할

Anpheros는 CDS Hooks 서비스를 제공하지 않으며 임상 권고를 생성하지 않습니다. 환자의 동의 하에 Anpheros의 FHIR 기록은 병원의 자체 의사 결정 지원 서비스가 읽을 수 있는 데이터(약물, 알레르기, 최근 결과)가 될 수 있으며, 이는 훅 서비스가 사용할 FHIR API와 동일한 API를 통해 제공됩니다. 환자 동의 플랫폼을 참조하세요.

관련 페이지

출처

자주 묻는 질문

CDS Hooks는 FHIR의 일부인가요?

FHIR 데이터를 사용하는 별도의 HL7 사양입니다. 사전 로드 및 컨텍스트는 FHIR 리소스를 전달하며, 권한 부여는 SMART on FHIR 토큰을 재사용합니다. HL7에서 FHIR 사양 내부가 아닌 FHIR과 함께 게시합니다.

CDS 서비스는 얼마나 빨리 응답해야 하나요?

사양에 명시된 시간은 없지만, EHR은 몇 초의 타임아웃을 적용하고 늦은 응답은 폐기합니다. 의사가 기다리고 있기 때문입니다. 사전 로드는 서비스가 쿼리하는 데 시간을 소비하지 않도록 하기 위해 존재합니다.

CDS 서비스가 처방을 변경할 수 있나요?

의사가 수락하는 제안을 제안하거나, 2.0에서는 EHR이 해당 서비스에 대해 자동으로 적용하기로 동의한 시스템 작업을 통해서만 가능합니다. 서비스는 훅 중에 자체적으로 EHR의 FHIR 서버에 쓰지 않습니다.

환자 앱이 CDS Hooks를 사용하나요?

아니요. CDS Hooks는 의사 중심의 EHR 워크플로우를 위해 설계되었습니다. 환자 앱은 FHIR API에 직접 액세스하고 SMART on FHIR을 사용하여 로그인합니다.

Anpheros Platform

샌드박스에서 무료로 사용해 보세요

5분 만에 첫 FHIR 호출. 환자의 동의가 내장된 HL7 FHIR R4 API: 샌드박스에서 먼저 사용해보고, 자체 앱 또는 병원 시스템을 연결하세요.

무료 · 합성 환자 30명 · 카드 불필요

이 가이드는 정보 제공 목적으로 의료 조언을 대체하지 않습니다. 건강 관련 결정은 의사와 상담하십시오. 응급 상황에서는 현지 응급 번호(유럽은 112)로 전화하세요.
작성자
Anpheros 팀

Anpheros는 환자가 직접 관리하고 어떤 병원과도 공유할 수 있는 의료 기록을 EU 기반의 HL7 FHIR R4 플랫폼에서 구축합니다. 이 가이드들은 건강 정보를 이해하고 정리하는 데 도움을 드리며, 의사의 진료를 대체하지 않습니다.

Anpheros 소개 →