환자 여정 데이터 템플릿
환자 여정 데이터 템플릿
- 임상 상황 파악에 권장되는 속성
- 추적해야 할 주요 프로세스 단계
- Epic EHR 데이터 추출 안내
환자 여정 속성
| 이름 | 설명 | ||
|---|---|---|---|
| 이벤트 타임스탬프 EventTimestamp | 활동이 발생한 정확한 날짜와 시간입니다. | ||
| 설명 Epic 시스템에 이벤트가 기록된 시점을 정확히 저장합니다. 활동 순서를 정하고 재원 기간, 처리 시간 등 시간 기반 지표를 계산하는 데 사용됩니다. 병목을 파악하려면 이 필드의 정확성이 중요합니다. 시작점과 종료점의 시간 정보를 제공해 분류 처리량 및 확정 진단까지 걸린 시간 대시보드를 지원합니다. 중요한 이유 처리 시간, 리드 타임, 프로세스 순서를 계산할 수 있습니다. 확보 방법 원본 테이블에 따라 EFFECTIVE_TIME, ORDER_TIME 등 여러 타임스탬프 열을 사용합니다. 예시 2023-10-15T08:30:00Z2023-10-15T09:15:22Z2023-10-16T14:20:00Z | |||
| 환자 진료 에피소드 PatientEpisodeId | 특정 환자 진료 또는 진료 에피소드를 식별하는 고유 ID입니다. | ||
| 설명 환자 진료 에피소드는 process mining에서 기본 사례 식별자로 사용됩니다. 입원이나 응급실 방문처럼 하나의 연속된 진료 기간에 발생한 임상, 행정, 물류 이벤트를 하나로 묶습니다. Epic Clarity에서는 일반적으로 Contact Serial Number(CSN) 또는 Encounter ID에 해당합니다. 이 속성을 분석하면 환자의 전체 진료 여정을 재구성할 수 있습니다. 분류, 진단, 치료, 퇴원 활동을 하나의 일관된 프로세스 인스턴스로 연결할 수 있습니다. 중요한 이유 서로 다른 이벤트를 하나의 프로세스 사례로 연결하는 기본 키입니다. 확보 방법 Epic Clarity 테이블: PAT_ENC, 열: PAT_ENC_CSN_ID 예시 200459112200459113200459114200459115 | |||
| 활동명 ActivityName | 수행된 구체적인 임상 또는 행정 작업입니다. | ||
| 설명 환자 진료 여정에서 발생한 이벤트의 이름을 기록합니다. 예를 들어 '환자 등록', '약물 투여', '퇴원 오더 서명' 등이 있습니다. 프로세스 흐름을 정의하는 중심 요소입니다. 분석에서는 이 필드가 프로세스 맵의 노드를 구성합니다. EHR의 여러 거래 코드와 오더 상태에서 값을 가져와 사람이 읽을 수 있는 이벤트 로그를 만듭니다. 중요한 이유 프로세스 단계를 정의하고 워크플로를 시각화할 수 있게 합니다. 확보 방법 CLARITY_ADT, ORDER_PROC, ORDER_MED 테이블에서 가져옵니다. 예시 분류 완료진단 검사 처방환자 퇴원투약 완료 | |||
| 원천 시스템 SourceSystem | 데이터의 기준 시스템으로, 일반적으로 Epic EHR입니다. | ||
| 설명 데이터가 어디에서 왔는지 식별합니다. 이 화면에서는 주로 'Epic EHR'이지만, 별도의 LIS(검사실 정보 시스템)나 청구 시스템 등 다른 시스템의 데이터와 결합할 때도 유용합니다. 분석 시 데이터 계보를 확인하고, 원본과 비교해 특정 이벤트가 누락되거나 형식이 잘못된 경우 문제를 해결하는 데 도움이 됩니다. 중요한 이유 데이터 출처를 추적하고 맥락을 파악할 수 있습니다. 확보 방법 연결 문자열 설정에 하드코딩하거나 해당 설정에서 가져옵니다. 예시 Epic EHREpic ClarityEpic Caboodle | |||
| 최근 데이터 업데이트 LastDataUpdate | 데이터를 추출했거나 마지막으로 새로 고친 시점입니다. | ||
| 설명 ETL 파이프라인에서 레코드를 마지막으로 처리한 시점을 나타냅니다. 이벤트 타임스탬프와는 별개이며 데이터 최신성을 확인하는 데 도움이 됩니다. 분석가는 이 값을 통해 대시보드가 실제 상황을 반영하는지, 또는 데이터 지연으로 분류 대기 시간과 같은 KPI의 정확성이 영향을 받는지 확인할 수 있습니다. 중요한 이유 process mining 데이터의 최신성과 신뢰도를 평가하는 데 도움이 됩니다. 확보 방법 ETL 시스템 타임스탬프입니다. 예시 2023-10-27T23:59:59Z2023-10-28T06:00:00Z | |||
| 부서명 DepartmentName | 활동이 이루어진 병원 병동 또는 부서입니다. | ||
| 설명 '응급실', '영상의학과', '일반외과 병동' 등 이벤트가 발생한 기능상 위치를 나타냅니다. 병동 내 전동 분석에 중요합니다. 부서별로 프로세스 맵을 나누어 보면 관리자가 해당 부서의 병목과 병원 전반의 문제를 구분할 수 있습니다. 중요한 이유 조직 단위별로 데이터를 필터링하고 인계 과정을 분석할 수 있습니다. 확보 방법 Epic Clarity 테이블: CLARITY_DEP, 열: DEPARTMENT_NAME 예시 응급실영상의학과ICU소아과 | |||
| 분류 중증도 TriageAcuityLevel | 분류 과정에서 환자에게 부여한 중증도 점수입니다. | ||
| 설명 일반적으로 ESI 1~5단계와 같은 척도로 환자 상태의 긴급도를 나타냅니다. '분류 완료' 활동 중에 기록됩니다. 중증도별 리소스 투입 대시보드에서 환자를 구분하는 데 사용합니다. 중증도가 높은 환자와 낮은 환자는 서로 다른 프로세스를 거치므로, 이 필드로 각 경로를 구분할 수 있습니다. 중요한 이유 긴급도와 예상 리소스 사용량에 따라 프로세스를 구분합니다. 확보 방법 응급실 로그의 중증도 필드는 Epic EHR 문서를 참조하세요. 예시 1 - 소생술2 - 응급3 - 긴급 | |||
| 의료진 ID ProviderId | 활동을 수행한 사용자 또는 의료진의 식별자입니다. | ||
| 설명 약물을 투여한 간호사나 퇴원 오더에 서명한 의사 등 이벤트를 담당한 직원의 고유 ID를 기록합니다. 리소스별 업무량과 편차를 분석하기 위해 일반 속성인 '사용자'에 매핑합니다. 자동화된 활동의 경우 시스템 사용자 ID일 수 있습니다. 중요한 이유 직원별 업무량과 수행 편차를 분석할 수 있습니다. 확보 방법 Epic Clarity 테이블: CLARITY_EMP, 열: USER_ID 예시 EMP10023DOC5592시스템 | |||
| 이벤트 종료 시각 EventEndTime | 활동이 완료된 시점입니다. | ||
| 설명 '진단 검사 시행'이나 '협진 완료'처럼 일부 활동은 즉시 끝나지 않고 일정 시간이 걸립니다. 이 속성은 활동이 완료된 시각을 기록합니다. 실제 처리 시간과 대기 시간을 구분해 계산할 수 있습니다. 진단 서비스 처리 시간 대시보드에서 특히 유용합니다. 중요한 이유 활동 소요 시간과 리소스 활용도를 계산할 수 있습니다. 확보 방법 ORDER_PROC의 종료 시각 열은 Epic EHR 문서를 참조하세요. 예시 2023-10-15T09:45:00Z2023-10-16T15:00:00Z | |||
| 재입원 여부 ReadmissionFlag | 환자가 30일 이내에 예기치 않게 다시 입원했는지 나타냅니다. | ||
| 설명 해당 진료 에피소드 이후 30일 이내에 같은 환자가 계획에 없던 입원을 했는지 나타내는 불리언 속성입니다. 30일 이내 비계획 재입원율 KPI의 기준이 됩니다. 분석에서는 주요 결과 변수로 사용합니다. 값이 'True'인 사례의 프로세스 경로를 분석해 퇴원 계획 단계의 근본 원인을 찾습니다. 중요한 이유 퇴원 과정의 문제와 진료 품질 이슈를 파악합니다. 확보 방법 같은 MRN의 이후 진료 기록을 조회하는 SQL로 계산합니다. 예시 truefalse | |||
| 주진단 코드 PrimaryDiagnosisCode | 주진단을 나타내는 ICD-10 코드 또는 내부 코드입니다. | ||
| 설명 확정된 환자 질환을 기록하며, 일반적으로 '진단 확정' 활동 중에 입력됩니다. 임상 프로토콜 규정 준수 화면에서 질환별로 사례를 분류하는 데 사용합니다. '제품'에 매핑하면 질환에 따라 진료 제공 과정이 어떻게 달라지는지 분석할 수 있습니다. 중요한 이유 임상적 유사성에 따라 사례를 묶어 프로토콜을 분석합니다. 확보 방법 Epic Clarity 테이블: PAT_ENC_DX, 열: DX_ID 예시 J18.9I21.9E11.9 | |||
| 진료 유형 EncounterType | 환자 방문의 분류입니다. 예: 입원, 응급. | ||
| 설명 환자 진료 에피소드의 유형을 분류합니다. 일반적인 값으로 '응급', '입원', '외래', '비대면' 등이 있습니다. '사례 유형'에 매핑되며 분석을 필터링하는 데 사용됩니다. 예를 들어 퇴원 계획 대시보드는 주로 입원 진료에 해당하고, 분류는 응급 진료에 해당합니다. 중요한 이유 프로세스 인스턴스의 전반적인 맥락을 제공합니다. 확보 방법 Epic Clarity 테이블: PAT_ENC, 열: ENC_TYPE_C 예시 응급병원 외래입원 | |||
| 퇴원 후 이동 장소 DischargeDisposition | 퇴원 후 환자가 이동한 곳입니다. 예: 자택, 전문요양시설, 사망. | ||
| 설명 '환자 퇴원' 활동에서 퇴원 후 환자가 이동한 곳을 기록합니다. 재입원 위험 대시보드에서 중요하게 활용됩니다. 전문요양시설(SNF)로 퇴원한 환자와 자택으로 퇴원한 환자는 재입원 양상이 다를 수 있습니다. 중요한 이유 진료 과정의 결과를 맥락에 맞게 해석할 수 있습니다. 확보 방법 Epic Clarity 테이블: PAT_ENC, 열: DISCH_DISP_C 예시 자택전문요양시설가정 간호 | |||
| 환자 MRN PatientMrn | 환자를 식별하는 의무기록번호입니다. | ||
| 설명 MRN은 의료 시스템 전반에서 환자를 식별하는 고유 번호이며, 진료 에피소드 ID와는 다릅니다. 여러 차례 방문한 환자의 이력을 추적할 수 있습니다. 재입원을 파악하고 별도의 진료 에피소드를 연결해 재입원 위험 대시보드에 활용합니다. 일반 모델에서는 '고객'에 매핑됩니다. 중요한 이유 재방문을 식별하고 환자 이력을 분석하는 데 필요합니다. 확보 방법 Epic Clarity 테이블: PATIENT, 열: PAT_ID 또는 PAT_MRN_ID 예시 MRN-882910MRN-112003MRN-554211 | |||
| 예약 방식 SchedulingMethod | 후속 진료 예약을 어떤 방식으로 진행했는지 나타냅니다. | ||
| 설명 'MyChart', 'Cadence 자동 예약', '접수 창구' 등 예약에 사용한 경로를 기록합니다. 외래 후속 진료 예약 자동화 현황 대시보드에 중요합니다. 시스템 또는 환자가 직접 이용하는 디지털 경로라면 'IsAutomated' 플래그를 true로 설정할 수 있습니다. 디지털 전환 활동의 성과를 확인하는 데 도움이 됩니다. 중요한 이유 자동화 또는 셀프서비스 도구의 이용 현황을 추적합니다. 확보 방법 예약 생성 출처는 Epic EHR 문서를 참조하세요. 예시 MyChartCadence전화방문 | |||
| 예약 자동화 여부 IsAutomatedScheduling | 직원의 개입 없이 예약이 진행되었는지 나타내는 플래그입니다. | ||
| 설명 예약 방식에서 도출하는 불리언 속성입니다. MyChart 또는 자동화된 Cadence 워크플로로 예약한 경우 True입니다. 후속 진료 예약 자동화율 KPI를 직접 지원합니다. 운영 책임자는 기술을 통해 행정 업무 부담을 얼마나 줄였는지 파악할 수 있습니다. 중요한 이유 프로세스 자동화 성과를 측정합니다. 확보 방법 SchedulingMethod에서 도출합니다. 예시 truefalse | |||
| 오더 요청 의료진의 전문 분야 OrderingProviderSpecialty | 협진이나 검사를 요청한 의사의 전문 분야입니다. | ||
| 설명 '심장내과', '종양내과' 등 오더를 요청한 의료진의 부서 또는 전문 분야를 기록합니다. 전문의 협진 대기 시간 대시보드에서 사용합니다. 전문 분야별로 내부 서비스 대기 시간이 다른지 분석해 특정 진료 분야의 편향이나 리소스 부족 가능성을 파악할 수 있습니다. 중요한 이유 진단 및 협진 서비스 수요를 전문 분야별로 구분합니다. 확보 방법 의료진 기준 정보는 Epic EHR 문서를 참조하세요. 예시 심장내과내과정형외과 | |||
| 전동 대기 시간 TransferWaitDuration | 전동 오더부터 실제 전동까지 걸린 시간입니다. | ||
| 설명 '전동 오더'와 '환자 전동' 사이의 시간을 측정합니다. 병동 내 전동 분석의 주요 데이터입니다. 값이 크면 환자가 병상을 기다리는 병상 대기 상태를 의미하며, 응급실에서 이어지는 환자 흐름을 막을 수 있습니다. 중요한 이유 환자 흐름에서 물류 및 수용 능력의 병목을 드러냅니다. 확보 방법 오더와 전동 이벤트의 타임스탬프 차이로 계산합니다. 예시 2시간 30분45분12시간 | |||
| 지역명 RegionName | 지리적 지역 또는 병원 캠퍼스입니다. | ||
| 설명 여러 캠퍼스를 운영하는 의료 시스템에서 시설 위치를 식별합니다. 병원별 성과를 비교할 수 있습니다. '지역'에 매핑하면 여러 시설의 성과를 비교해 어느 병원이 분류 처리량을 더 잘 관리하는지 확인할 수 있습니다. 중요한 이유 의료 네트워크 내 여러 시설의 성과를 비교할 수 있습니다. 확보 방법 부서 또는 시설 기준 정보에서 가져옵니다. 예시 북부 캠퍼스시티 센터서관 | |||
| 진단 오더 비용 DiagnosticOrderCost | 진단 검사 또는 시술에 드는 내부 비용입니다. | ||
| 설명 '진단 검사 시행' 활동에 비용을 연결해 프로세스 맵에서 재무 정보를 함께 볼 수 있습니다. 주요 임상 지표는 아니지만, 관리 부서에서 프로세스 유형별 비용 부담을 파악하는 데 도움이 됩니다. 특히 리소스 투입이 많은 중증도 사례를 분석할 때 유용합니다. 중요한 이유 프로세스 효율 분석에 재무 관점을 더합니다. 확보 방법 해당 시술과 연결된 청구 또는 원가 회계 테이블입니다. 예시 150.001200.0045.00 | |||
| 프로토콜 준수 상태 ProtocolAdherenceStatus | 표준 임상 경로를 따랐는지 나타내는 상태입니다. | ||
| 설명 사례에서 수행된 활동 순서를 정의된 참조 모델(표준 운영 절차)과 비교합니다. 임상 프로토콜 규정 준수 화면에 활용됩니다. 값은 '준수', '단계 누락', '순서 불일치' 등이 될 수 있습니다. 임상 책임자는 프로세스 맵을 하나씩 확인하지 않고도 규정을 준수하지 않은 사례를 빠르게 필터링할 수 있습니다. 중요한 이유 근거 기반 진료 기준에서 벗어난 사례를 빠르게 찾습니다. 확보 방법 process mining 도구에서 계산하거나 SQL로 사전 처리합니다. 예시 준수기준 이탈미완료 | |||
환자 여정 활동
| 활동 | 설명 | ||
|---|---|---|---|
| 분류 완료 | 초기 간호 평가 또는 분류 평가가 완료된 시점입니다. 일반적으로 분류 흐름표를 제출하거나 분류 상태가 'Complete'로 변경될 때 기록됩니다. | ||
| 중요한 이유 '분류 처리량 및 대기 시간' 대시보드에서 초기 단계의 효율을 측정하는 데 필요합니다. 이 단계의 지연은 전체 진료 경로에 영향을 줍니다. 확보 방법 PAT_ENC_HSP.TRIAGE_END_TIME 또는 특정 Flowsheet 행 제출 시각(FLO_MEASUREMENT). 기록 분류 기록에 서명하거나 상태 필드가 업데이트될 때 기록됩니다. 이벤트 유형 explicit | |||
| 진단 확정 | 확정 진단을 환자의 문제 목록이나 진료 기록의 진단 필드에 입력하는 단계입니다. 진단을 위한 조사 단계가 끝났음을 나타냅니다. | ||
| 중요한 이유 '확정 진단까지 걸리는 시간' KPI에 필요합니다. 평가 단계에서 표적 치료 단계로 넘어가는 시점을 나타냅니다. 확보 방법 진료 기록에 연결된 PAT_ENC_DX 테이블 또는 PROBLEM_LIST 업데이트. 기록 임상의가 Encounter Diagnosis 활동에 항목을 추가할 때 기록됩니다. 이벤트 유형 explicit | |||
| 환자 접수 완료 | 시스템에 환자 진료 기록을 처음 생성하는 단계로, 진료 과정의 시작을 나타냅니다. 환자가 접수 데스크나 응급실에 도착해 Epic에 등록되면 이 이벤트가 명시적으로 기록됩니다. | ||
| 중요한 이유 전체 Patient Journey의 기준 시점을 설정해 총 재원 기간을 계산할 수 있게 합니다. '분류 처리량 및 대기 시간' 대시보드에 필요합니다. 확보 방법 ADT 피드(이벤트 A04 또는 A01) 또는 Clarity 테이블 PAT_ENC(HSP_ACCOUNT_ID 생성). 기록 'Check In' 또는 'Admit' 트랜잭션이 실행될 때 기록됩니다. 이벤트 유형 explicit | |||
| 환자 퇴원 | 입원 진료 기록을 공식적으로 종료하는 단계입니다. 환자가 Census에서 퇴원 처리될 때 기록됩니다. | ||
| 중요한 이유 '재원 기간' 계산에서 진료 과정의 공식 종료 시점입니다. '환자 흐름 경로 탐색'에 필요합니다. 확보 방법 ADT 피드(이벤트 A03) 또는 PAT_ENC_HSP.DISCH_TIME. 기록 행정 직원이 퇴원 워크플로를 완료할 때 기록됩니다. 이벤트 유형 explicit | |||
| 이송 처방 | 환자를 다른 병동이나 진료 수준으로 이동해 달라는 요청입니다. 시스템에서 'Bed Request' 또는 'Transfer Order'로 기록됩니다. | ||
| 중요한 이유 '병동 간 평균 이송 시간'의 시작 시점입니다. 환자를 옮기기로 한 임상적 결정과 병상 확보에 걸리는 물류 시간을 구분합니다. 확보 방법 ADT_TRANSFER_ORDER 또는 ORDER_PROC(Bed Request). 기록 의사가 이송 처방을 입력할 때 기록됩니다. 이벤트 유형 explicit | |||
| 진단 검사 시행 | 진단 검사를 실제로 시행하거나 결과를 제출하는 단계입니다. 검사실에서는 검체를 처리할 때, 영상의학과에서는 촬영을 마칠 때 기록됩니다. | ||
| 중요한 이유 '평균 진단 검사 처리 시간' KPI의 종료 시점입니다. 임상 의사결정 지원 서비스의 지연을 파악하는 데 중요합니다. 확보 방법 ORDER_PROC.PROC_END_TIME 또는 상태가 'Completed'나 'Resulted'로 변경될 때의 ORDER_STAT_HISTORY. 기록 기술자가 작업을 완료하거나 결과 인터페이스가 데이터를 수신할 때 기록됩니다. 이벤트 유형 explicit | |||
| 진단 검사 처방 | 영상의학 검사 또는 검사실 서비스 처방을 입력하는 단계입니다. 의사가 CPOE 시스템에서 처방을 입력하고 서명할 때 기록됩니다. | ||
| 중요한 이유 '진단 서비스 처리 시간' 대시보드의 시작 시점입니다. 검사 결과가 뒤따르지 않는 처방이 많으면 병목을 나타낼 수 있습니다. 확보 방법 ORDER_TYPE이 Lab 또는 Imaging/Radiology인 ORDER_PROC 테이블. 기록 처방 상태가 'Signed' 또는 'Active'로 변경될 때 기록됩니다. 이벤트 유형 explicit | |||
| 진료 계획 시작 | 환자에게 특정 임상 경로나 프로토콜을 지정하는 단계입니다. 표준 Order Set 또는 Care Plan을 해당 진료 기록에 적용할 때 기록됩니다. | ||
| 중요한 이유 '임상 프로토콜 준수 현황'을 확인할 때 표준 진료를 따르려는 의도를 표시합니다. 이 시점부터 이후 계획된 단계의 이탈 여부를 측정할 수 있습니다. 확보 방법 프로토콜이 진료 기록에 연결되었음을 나타내는 ORDER_SET_BKG 또는 care plan 테이블. 기록 임상의가 Order Set을 선택하고 서명할 때 기록됩니다. 이벤트 유형 explicit | |||
| 퇴원 계획 시작 | 환자의 퇴원을 준비하는 활동이 시작되는 시점입니다. Case Management 기록이나 특정 'Discharge' 처방 유형으로 확인합니다. | ||
| 중요한 이유 '퇴원 계획 및 실행' 대시보드에 필요한 이벤트입니다. 퇴원 계획을 일찍 시작할수록 재원 기간이 줄어드는 경향이 있습니다. 확보 방법 HSP_DISCH_PLAN 생성 또는 Case Manager/Social Worker의 첫 기록. 기록 Discharge Navigator와의 첫 상호작용 또는 Case Mgmt 기록을 바탕으로 추정합니다. 이벤트 유형 inferred | |||
| 퇴원 처방 서명 | 환자의 퇴원을 승인하는 의사의 공식 절차입니다. Epic에 특정 처방으로 입력됩니다. | ||
| 중요한 이유 '퇴원 계획 및 실행'의 주요 단계입니다. 이 시점부터 실제 퇴원까지 걸리는 시간은 행정 지연을 나타냅니다. 확보 방법 유형이 'Discharge Patient'인 ORDER_PROC. 기록 의사가 퇴원 처방에 서명할 때 기록됩니다. 이벤트 유형 explicit | |||
| 투약 완료 | 간호사나 의료진이 환자에게 약물을 투여하는 단계입니다. Medication Administration Record(MAR)에 기록됩니다. | ||
| 중요한 이유 '투약 성과' 대시보드의 주요 이벤트입니다. '치료 계획 수립'에 따른 투약 여부를 추적합니다. 확보 방법 MAR_ADMIN_INFO 테이블에서 action이 'Given' 또는 'New Bag'인 이벤트. 기록 간호사가 환자 손목 밴드와 약물을 스캔할 때 기록됩니다(BCMA). 이벤트 유형 explicit | |||
| 협진 완료 | 전문의 평가가 완료된 시점입니다. 일반적으로 Consult Note에 서명하거나 협진 처방을 종료할 때 표시됩니다. | ||
| 중요한 이유 '전문의 협진 대기 시간'의 종료 시점입니다. 전문의 의견이 제공되어 진료 계획을 진행할 수 있음을 나타냅니다. 확보 방법 HNO_NOTE_TEXT(유형이 Consult인 기록 제출) 또는 ORDER_PROC 상태 변경으로 확인합니다. 기록 Consult Note 생성 시각 또는 처방 상태 업데이트를 바탕으로 추정합니다. 이벤트 유형 inferred | |||
| 협진 요청 | 전문의에게 환자 평가를 요청하는 처방입니다. Epic에서 특정 시술 처방 유형인 'Consult'로 기록됩니다. | ||
| 중요한 이유 '전문의 협진 대기 시간' KPI의 시작 시점입니다. 특정 진료과의 인력 부족을 파악하는 데 도움이 됩니다. 확보 방법 ORDER_CLASS가 'Consult'인 ORDER_PROC 또는 특정 의뢰 처방. 기록 협진 처방에 서명할 때 기록됩니다. 이벤트 유형 explicit | |||
| 환자 이송 완료 | 환자가 새 부서나 병동으로 실제 이동하는 단계입니다. ADT 이송 이벤트로 기록됩니다. | ||
| 중요한 이유 '병동 간 평균 이송 시간'의 종료 시점입니다. '병동 내 환자 이송 분석'을 통해 병원 물류의 병목을 찾는 데 활용됩니다. 확보 방법 ADT 피드(이벤트 A02) 또는 PAT_ENC_HSP_TRANSACTION(전원 입원). 기록 병동 담당자가 Census에서 환자 위치를 업데이트할 때 기록됩니다. 이벤트 유형 explicit | |||
| 후속 진료 예약 | 환자의 향후 외래 방문 예약입니다. 환자 기록에 연결된 Cadence 예약 모듈에 기록됩니다. | ||
| 중요한 이유 '후속 진료 예약 자동화율' KPI를 지원합니다. 진료의 연속성을 유지하고 재입원을 예방하는 데 도움이 됩니다. 확보 방법 환자 ID에 연결된 PAT_ENC_APPT로, 퇴원 시점에 가까운 때 생성됩니다. 기록 Cadence에서 예약 시간이 확정되면 기록됩니다. 이벤트 유형 explicit | |||
데이터 추출 가이드
단계
- Epic Hyperspace에 로그인한 다음 Analytics 또는 My Reports 활동에서 Reporting Workbench(RWB)를 실행합니다.
- 새 보고서 만들기: Library 탭을 선택하고 "Encounter Search" 또는 "Patient Encounters" 템플릿을 검색합니다. 이 템플릿을 사용하면 CSN(Contact Serial Number)으로 식별되는 접촉 단위 세부 정보를 가져올 수 있습니다.
- 조건 설정(Settings 탭):
- 완료된 진료 건을 가져오도록 날짜 범위를 설정합니다(예: 퇴원일 기준 최근 90일).
- 관련 없는 외래 방문을 제외하도록 진료 유형을 필터링합니다(예: 'Hospital Encounter', 'Emergency').
- 필요한 경우 부서 또는 의료기관을 기준으로 필터링합니다.
- 표시 열 설정(Display 탭):
- 이 단계에서 데이터를 추출합니다. 필요한 활동의 타임스탬프에 해당하는 열을 검색해 추가해야 합니다.
- 환자 식별자 추가:
CSN(환자 진료 건),MRN(환자 ID). - 인구통계 및 속성 추가:
Department,Discharge Disposition,Primary Diagnosis Code,Provider. - 타임스탬프 열 추가:
Admission Time,Triage End Time,Discharge Time,Discharge Order Time,First Med Admin Time등의 열을 검색합니다. 정확한 매핑은 Query/Configuration 섹션을 참고하세요.
- 보고서를 실행하고 미리보기 창에서 결과를 확인합니다.
- 데이터 내보내기:
- Toolbar > Export를 클릭합니다.
- CSV 또는 Text (Tab Delimited) 형식을 선택합니다.
- 'Include Column Headers'가 선택되어 있는지 확인합니다.
- 파일을
Raw_Epic_Extract.csv로 저장합니다.
- 데이터 변환(필수):
- RWB 내보내기 결과는 환자 진료 건마다 한 행에 여러 타임스탬프 열이 있는 "와이드" 형식의 데이터입니다.
- 각 타임스탬프 열이 이벤트 로그의 별도 행이 되도록 데이터를 언피벗(재구성)해야 합니다.
PatientEpisodeId,ActivityName,EventTimestamp및 매핑된 속성 열을 포함하는 최종 파일을 만듭니다.
- 날짜 형식 지정:
EventTimestamp가 ProcessMind와 호환되는 ISO 형식(YYYY-MM-DD HH:MM:SS)인지 확인합니다. - 최종 검증: 파일에
PatientEpisodeId,ActivityName,EventTimestamp헤더가 있는지 확인한 후 ProcessMind에 업로드합니다.
구성
- 템플릿: Epic 버전에 따라 "Encounter Search"(LBF) 또는 "Find Patients"를 사용합니다.
- 날짜 범위: 시간 초과를 방지하려면 처음에는 3~6개월로 제한합니다. RWB는 대량 데이터 추출에 최적화되어 있지 않습니다.
- 행 제한: Epic RWB에는 보통 행 제한이 있습니다(예: 25,000행 또는 50,000행). 날짜 범위가 제한을 넘지 않도록 하거나 여러 번 나누어 실행합니다.
- 권한: Reporting Workbench의 'Create' 및 'Export' 보안 권한이 필요합니다.
- 성능: 과거 데이터를 넓은 범위로 검색할 때는 사용량이 적은 시간대에 실행합니다.
- 세분성: 이 방법은 진료 건 단위의 요약 타임스탬프(예: 'First Med Admin')를 제공합니다. 특정 "Audit" 템플릿을 사용하지 않는 한, 투약 건별 기록처럼 모든 반복 이벤트를 추출하지는 않습니다. 이 용도의 Audit 템플릿은 흔하지 않습니다.
샘플 쿼리 sql
[REPORT CONFIGURATION SPECIFICATION]
# GENERAL SETTINGS
Application: Epic Reporting Workbench
Template_ID: Encounter_Search_LBF
Time_Horizon: Discharge Date between [Start Date] and [End Date]
Filters: Encounter Type IN ('Hospital Encounter', 'Emergency')
# COLUMN SELECTION MAPPING
# Map the following Epic RWB Columns (Display Names) to the Output Activities.
# Note: Column names may vary slightly by Epic customized build.
[MANDATORY ATTRIBUTES]
Column: Contact Serial Number (CSN) -> Target: PatientEpisodeId
Column: Patient MRN -> Target: PatientMrn
Column: Department at Discharge -> Target: DepartmentName
Column: Discharge Disposition -> Target: DischargeDisposition
Column: Primary Diagnosis ICD-10 -> Target: PrimaryDiagnosisCode
Column: Attending Provider -> Target: ProviderId
Column: Current Date -> Target: LastDataUpdate
Column: System Name (Fixed 'Epic') -> Target: SourceSystem
[ACTIVITY TIMESTAMP MAPPING]
# These columns represent the 'EventTimestamp' for the specific 'ActivityName'
1. Activity: Patient Registered
Epic_Column: Hospital Admission Time OR Check-In Time
2. Activity: Triage Completed
Epic_Column: Triage End Time OR Triage Acuity Time
3. Activity: Care Plan Initiated
Epic_Column: Care Plan Start Date
4. Activity: Diagnostic Test Ordered
Epic_Column: First Lab Order Time OR First Imaging Order Time
(Note: Select 'Earliest' if multiple columns exist)
5. Activity: Diagnostic Test Performed
Epic_Column: First Lab Result Time OR First Imaging End Time
6. Activity: Diagnosis Confirmed
Epic_Column: Principal Diagnosis Problem List Date
7. Activity: Consultation Requested
Epic_Column: Consult Order Create Time
8. Activity: Consultation Completed
Epic_Column: Consult Complete Time
9. Activity: Medication Administered
Epic_Column: First Medication Administration Time
10. Activity: Transfer Ordered
Epic_Column: Transfer Order Time
11. Activity: Patient Transferred
Epic_Column: Last Transfer In Time OR ADT Event Time
12. Activity: Discharge Planning Initiated
Epic_Column: Case Management Start Date
13. Activity: Discharge Order Signed
Epic_Column: Discharge Order Time
14. Activity: Patient Discharged
Epic_Column: Hospital Discharge Time
15. Activity: Follow-up Appointment Scheduled
Epic_Column: Discharge Follow-Up Appointment Made Date
# TRANSFORMATION LOGIC (PSEUDO-CODE)
# The export will be 'Wide'. Apply this logic to create the Event Log:
FOR EACH Row IN Exported_CSV:
EpisodeID = Row['Contact Serial Number']
FUNCTION CreateEvent(ActivityName, TimestampColumn):
IF Row[TimestampColumn] IS NOT NULL:
OUTPUT_ROW = {
'PatientEpisodeId': EpisodeID,
'ActivityName': ActivityName,
'EventTimestamp': Row[TimestampColumn],
'PatientMrn': Row['Patient MRN'],
'DepartmentName': Row['Department at Discharge'],
... [All Attributes]
}
APPEND OUTPUT_ROW TO Event_Log
# Execute for all 15 mappings defined above
CreateEvent('Patient Registered', 'Hospital Admission Time')
CreateEvent('Triage Completed', 'Triage End Time')
... [Repeat for all mapped columns]
END LOOP 단계
데이터베이스 접근 요청: Epic Clarity Console 또는 Clarity 운영 데이터베이스나 보고 데이터베이스에 연결된 SQL 클라이언트에 읽기 권한이 있는지 확인합니다.
PAT_ENC,ORDER_PROC,CLARITY_ADT,MAR_ADMIN_INFO및 관련 참조 테이블에 접근할 권한이 필요합니다.범위 및 필터 ID 확인: 전체 스크립트를 실행하기 전에 간단한 탐색 쿼리를 실행해 해당 Epic 인스턴스에서 검사실, 영상의학, 상담, 이동에 해당하는
ORDER_TYPE_C값을 확인합니다. 이 사용자 지정 목록(범주 목록)은 병원마다 다릅니다.기간 설정: 제공된 SQL 스크립트에서
CONTACT_DATE또는HOSP_ADMSN_TIME을 기준으로 필터링하는WHERE절을 찾습니다. 원하는 추출 기간(예: 최근 6개월)에 맞게 조정합니다.사용자 지정 Flowsheet 매핑(선택 사항): 기본 진료 테이블에 없는 분류 또는 퇴원 계획의 정확한 타임스탬프가 필요하면 해당 필드의
FLO_MEAS_ID(Flowsheet Measure ID)를 확인하고 스크립트의 자리표시자 부분을 수정합니다.쿼리 실행: SQL 클라이언트(예: SQL Server Management Studio, Oracle SQL Developer)에서 전체 SQL 스크립트를 실행합니다. 스크립트는
UNION ALL을 사용해 여러 임상 이벤트를 하나의 표준 이벤트 로그 구조로 결합합니다.후처리: 쿼리는 평면 목록을 반환합니다.
EventTimestamp가 NULL이 아닌지 확인합니다. 미들웨어에서 요구하는 경우 데이터베이스별 날짜 및 시간 형식을 ISO 8601(YYYY-MM-DDTHH:MM:SS)로 변환합니다.데이터 내보내기: 결과 집합을 CSV 파일로 저장합니다. 머리글이 정의된 속성(PatientEpisodeId, ActivityName 등)과 일치하는지 확인합니다.
ProcessMind에 업로드: CSV 파일을 ProcessMind로 가져옵니다.
PatientEpisodeId는 Case ID,ActivityName은 Activity,EventTimestamp는 Timestamp에 매핑합니다.
구성
- 데이터베이스 연결: Epic Clarity(일반적으로 MSSQL 또는 Oracle 백엔드).
- 날짜 필터링:
PAT_ENC.HOSP_ADMSN_TIME또는PAT_ENC.CONTACT_DATE를 기준으로 필터링합니다. 쿼리 성능을 고려해 초기 분석에는 3~6개월 범위를 권장합니다. - 진료 유형: 스크립트는 입원 및 응급 진료를 필터링합니다(
ENC_TYPE_C값은 보통 3과 50이지만ZC_ENC_TYPE에서 확인하세요). - 주문 유형: 현지
ZC_ORDER_TYPE설정에 따라 검사실, 영상 검사, 협진에 해당하는ORDER_TYPE_C값을 사용자 지정해야 합니다. - 성능: 스크립트는 대용량 테이블(
ORDER_PROC,CLARITY_ADT)을 검색합니다. 적절한 인덱스를 사용하거나 사용량이 적은 시간대에 실행하세요.
샘플 쿼리 sql
WITH Cohort AS (
SELECT
pe.PAT_ENC_CSN_ID,
pe.PAT_ID,
pe.HOSP_ADMSN_TIME,
pe.HOSP_DISCH_TIME,
pe.DEPARTMENT_ID,
dep.DEPARTMENT_NAME,
emp.NAME AS ProviderName,
pat.PAT_MRN_ID,
pe.ACUITY_LEVEL_C,
disch.NAME AS DischargeDisposition,
pe.ENC_TYPE_C
FROM PAT_ENC pe
LEFT JOIN CLARITY_DEP dep ON pe.DEPARTMENT_ID = dep.DEPARTMENT_ID
LEFT JOIN CLARITY_EMP emp ON pe.VISIT_PROV_ID = emp.PROV_ID
LEFT JOIN PATIENT pat ON pe.PAT_ID = pat.PAT_ID
LEFT JOIN ZC_DISCH_DISP disch ON pe.DISCH_DISP_C = disch.DISCH_DISP_C
WHERE pe.HOSP_ADMSN_TIME >= DATEADD(month, -6, GETDATE())
AND pe.ENC_TYPE_C IN (3, 50) -- 3=Inpatient, 50=Emergency (Verify local codes)
)
-- 1. Patient Registered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)) AS PatientEpisodeId,
'Patient Registered' AS ActivityName,
c.HOSP_ADMSN_TIME AS EventTimestamp,
c.DepartmentName,
c.ProviderName AS ProviderId,
c.PAT_MRN_ID AS PatientMrn,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)) AS TriageAcuityLevel,
CAST(c.ENC_TYPE_C AS VARCHAR(50)) AS EncounterType,
NULL AS PrimaryDiagnosisCode,
NULL AS ReadmissionFlag,
c.DischargeDisposition,
'Epic EHR' AS SourceSystem,
GETDATE() AS LastDataUpdate
FROM Cohort c
WHERE c.HOSP_ADMSN_TIME IS NOT NULL
UNION ALL
-- 2. Triage Completed (Using Flowsheet or Triage Time)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Triage Completed',
ISNULL(pe.TRIAGE_END_INSTANT, c.HOSP_ADMSN_TIME), -- Fallback if specific column unused
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC pe ON c.PAT_ENC_CSN_ID = pe.PAT_ENC_CSN_ID
WHERE pe.TRIAGE_END_INSTANT IS NOT NULL
UNION ALL
-- 3. Care Plan Initiated (Based on Order Type)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Care Plan Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 100 -- Placeholder: Replace with ID for Care Plan/Protocol
UNION ALL
-- 4. Diagnostic Test Ordered (Lab/Radiology)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2) -- Placeholder: 1=Lab, 2=Radiology (Verify local codes)
UNION ALL
-- 5. Diagnostic Test Performed (Result Time or Procedure Start)
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnostic Test Performed',
COALESCE(ord2.PROC_START_TIME, ord2.PROC_ENDING_TIME, ord.ORDER_INST),
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
JOIN ORDER_PROC_2 ord2 ON ord.ORDER_PROC_ID = ord2.ORDER_PROC_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C IN (1, 2)
AND ord2.PROC_START_TIME IS NOT NULL
UNION ALL
-- 6. Diagnosis Confirmed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Diagnosis Confirmed',
dx.NOTED_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
edg.DX_NAME,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC_DX dx ON c.PAT_ENC_CSN_ID = dx.PAT_ENC_CSN_ID
JOIN CLARITY_EDG edg ON dx.DX_ID = edg.DX_ID
WHERE dx.NOTED_DATE IS NOT NULL
UNION ALL
-- 7. Consultation Requested
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Requested',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
UNION ALL
-- 8. Consultation Completed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Consultation Completed',
ord.ORDER_END_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 35 -- Placeholder: Replace with ID for Consult
AND ord.ORDER_STATUS_C = 5 -- Placeholder: 5=Completed
AND ord.ORDER_END_TIME IS NOT NULL
UNION ALL
-- 9. Medication Administered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Medication Administered',
mar.TAKEN_TIME,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_MED med ON c.PAT_ENC_CSN_ID = med.PAT_ENC_CSN_ID
JOIN MAR_ADMIN_INFO mar ON med.ORDER_MED_ID = mar.ORDER_MED_ID
LEFT JOIN CLARITY_EMP emp ON mar.TAKEN_USER_ID = emp.USER_ID
WHERE mar.TAKEN_TIME IS NOT NULL
AND mar.MAR_ACTION_C = 1 -- Placeholder: 1=Given
UNION ALL
-- 10. Transfer Ordered
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Transfer Ordered',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 60 -- Placeholder: Replace with ID for Transfer/Bed Request
UNION ALL
-- 11. Patient Transferred
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Transferred',
adt.EFFECTIVE_TIME,
dep.DEPARTMENT_NAME,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN CLARITY_ADT adt ON c.PAT_ENC_CSN_ID = adt.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_DEP dep ON adt.DEPARTMENT_ID = dep.DEPARTMENT_ID
WHERE adt.EVENT_TYPE_C = 3 -- 3=Transfer In
UNION ALL
-- 12. Discharge Planning Initiated
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Planning Initiated',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.ORDER_TYPE_C = 70 -- Placeholder: Case Management/Discharge Order Type
UNION ALL
-- 13. Discharge Order Signed
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Discharge Order Signed',
ord.ORDER_INST,
c.DepartmentName,
emp.NAME,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN ORDER_PROC ord ON c.PAT_ENC_CSN_ID = ord.PAT_ENC_CSN_ID
LEFT JOIN CLARITY_EMP emp ON ord.ORDERING_PROV_ID = emp.PROV_ID
WHERE ord.PROC_CODE = 'DISCHARGE' -- Placeholder: Filter by specific discharge procedure code
UNION ALL
-- 14. Patient Discharged
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Patient Discharged',
c.HOSP_DISCH_TIME,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
WHERE c.HOSP_DISCH_TIME IS NOT NULL
UNION ALL
-- 15. Follow-up Appointment Scheduled
SELECT
CAST(c.PAT_ENC_CSN_ID AS VARCHAR(50)),
'Follow-up Appointment Scheduled',
next_pe.APPT_MADE_DATE,
c.DepartmentName,
c.ProviderName,
c.PAT_MRN_ID,
CAST(c.ACUITY_LEVEL_C AS VARCHAR(50)),
CAST(c.ENC_TYPE_C AS VARCHAR(50)),
NULL,
NULL,
c.DischargeDisposition,
'Epic EHR',
GETDATE()
FROM Cohort c
JOIN PAT_ENC next_pe ON c.PAT_ID = next_pe.PAT_ID
WHERE next_pe.APPT_MADE_DATE BETWEEN c.HOSP_ADMSN_TIME AND ISNULL(c.HOSP_DISCH_TIME, GETDATE())
AND next_pe.CONTACT_DATE > c.HOSP_ADMSN_TIME -- The appointment is for a future date relative to admission 시작할 준비가 되셨나요?
이 템플릿을 Epic 데이터에 적용해 임상 운영 개선을 시작하세요. 데이터 추출 과정을 진행하실 수 있도록 저희 팀이 지원합니다.
환자 여정을 최적화하고 처리 시간을 단축하세요
임상 병목을 찾아 처리 시간을 30% 단축하세요.
신용카드가 필요하지 않습니다. 설정은 몇 분이면 완료됩니다.