Daon ERP 구축 제안서
복수 병원 통합 관리 및 EMR 데이터 분석을 위한 SaaS 플랫폼
1. Executive Summary
Daon ERP는 병원 컨설팅 업체와 병·의원이 복수 병원의 운영 데이터를 통합 관리할 수 있도록 제공하는 병원 데이터 통계 SaaS ERP 플랫폼이다. 본 제안은 병원별 데이터를 격리 저장하고, EMR 엑셀 파일 처리, 통계 자동 산출, 예약 상태 이력 관리, CRM 운영, 병원 운영·회계 관리를 하나의 업무 흐름으로 연결하는 구축 방향을 제시한다.
현재 병원 컨설팅 현장에서는 여러 병원의 데이터를 수집·정리·분석하는 업무가 반복적으로 발생한다. 특히 처리 대상인 2가지 EMR 엑셀 양식의 구조 차이를 정확히 식별해야 하고, 예약 변경과 취소를 구분하기 어려우며, 병원별 통계 리포트를 수작업으로 작성해야 하는 문제가 있다. Daon ERP는 이 문제를 병원별 데이터 격리, EMR 파일 유형 자동 판별·검증, 예약 상태 이력, 통계 대시보드, Super 관리자 콘솔로 해결한다.
2. 프로젝트 이해
2.1 고객 문제 재정의
Daon ERP의 핵심 문제는 여러 병원의 운영 데이터를 수작업으로 취합·분석하는 비효율이다. 병원 컨설팅 현장에서는 2가지 EMR 엑셀 양식의 구조 차이를 정확히 식별해야 하고, 예약 시간 변경과 실제 취소를 구분하기 어려우며, 병원별 통계 리포트를 수작업으로 작성하는 부담이 반복된다.
이 문제는 단순 화면 개발보다 데이터 구조와 업무 기준의 표준화가 먼저
필요한 과제다. 병원별 데이터가 섞이지 않도록 tenant_id
기반으로 격리하고, EMR 엑셀 파일 처리 결과를 통계와 운영 화면으로
연결해야 한다.
2.2 구축 방향
| 문제 | 구축 방향 | 관련 기능 |
|---|---|---|
| 여러 병원 데이터 수작업 취합 | 병원별 데이터 격리와 Super 관리자 통합 현황 제공 | TENANT-001, TENANT-002, SA-001 |
| EMR 엑셀 파일 처리 | EMR 엑셀 파일 처리 제공 | EMR-001, EMR-002, EMR-003 |
| 예약 변경·취소 구분 어려움 | 예약 상태 이력으로 생성·변경·취소·노쇼·완료·재예약 구분 | RSV-001, RSV-002, RSV-003, STAT-002 |
| 통계 리포트 수작업 작성 | 환자 분류, 재진율, 취소율, 시간대·연령대, 보험·처방·치료 형태별 통계 자동 산출 | STAT-001~009 |
| 병원 운영·회계 데이터 분산 | 마감일지, 재고, 수납, 매입, 고정·추가지출, 순이익을 연결 | DAILY-001~003, STOCK-001~003, FIN-001~003 |
2.3 서비스 대상 및 핵심 시나리오
| 대상 | 주요 니즈 | 제안 반영 |
|---|---|---|
| 병원 컨설팅 업체 | 여러 병원의 데이터를 통합 관리하고 분석 리포트를 자동화 | Super 관리자 대시보드, 전체 병원 관리, 전체 통계, 이용 로그, 운영 모니터링 |
| 병원 원장 | 병원 매출, 환자, 예약, 재진율, 치료사 성과 확인 | 병원 대시보드, 통계 대시보드, 매출/매입 회계, 치료사 성과 |
| 병원 관리자 | 예약, 상담, 마감, 직원, 수입/지출 관리 | 예약 캘린더, CRM 스케줄러, 마감일지, 인사관리, 회계 |
| 치료사 | 본인 치료 일정, 치료 환자, 개인 실적 확인 | 본인 스케줄, 본인 치료 내역, 본인 실적 |
| Super 관리자 | 전체 병원과 운영 상태, 이용 현황 관리 | 병원 생성·수정·비활성화, 병원 ON/OFF, 전체 로그 |
핵심 사용 흐름은 Super 관리자가 신규 병원과 병원 관리자 계정을 생성하고, EMR 엑셀 처리 기준과 운영 상태를 관리하는 구조다. 병원 관리자는 직원 계정과 예약·CRM 일정을 운영하며, EMR 엑셀 파일은 시스템이 내부에서 파일 유형을 자동 판별해 검증·반영한다. 병원 직원은 예약 생성·변경·취소·노쇼, 상담 내역, 리마인더, 일일 마감일지와 필요한 통계 조회를 수행한다.
2.4 서비스 설계 중점
| 중점 | 내용 |
|---|---|
| SaaS 멀티 병원 구조 | 여러 병원을 하나의 시스템에서 병원별로 격리 운영한다. |
| EMR 엑셀 파일 처리 | EMR 엑셀 파일 처리를 기준으로 통계·운영 데이터를 생성한다. |
| 프라이버시 우선 처리 | EMR 원본 파일을 서버에 보관하지 않고, 주민번호 앞자리는 암호화, 뒷자리는 복원 불가능한 단방향 해시로 처리한다. 화면에는 주민번호 관련 컬럼 자체를 노출하지 않는다. |
| 예약 상태 이력 | 생성, 변경, 취소, 재예약, 노쇼를 이력 기반으로 관리한다. |
| 통계 자동화 | 수동 엑셀 작업을 대시보드와 리포트로 전환한다. |
| Super 관리자 | 전체 병원, 운영 상태, 로그, 통계를 통합 관리한다. |
| 운영 모니터링 | 서버 헬스 체크, 서버·DB·클라우드 이중화 상태, 웹 페이지 정상 여부, HTTPS 인증서 정상 여부, 오류/실패 이벤트, 알림 발송 상태를 통합 확인한다. |
3. 제안 범위(Scope)
3.1 구축 모듈
| 구분 | 구축 범위 | 주요 내용 |
|---|---|---|
| 멀티 병원 SaaS·격리 | 병원 생성·수정·비활성화, 병원별 데이터 격리 | 모든 병원 데이터에 tenant_id를 저장하고, 요청 사용자의
병원 ID와 데이터 병원 ID를 비교한다. |
| 인증·권한 관리 | 로그인/로그아웃, 권한 기반 접근 제어, 계정 생성·수정·비활성화 | 권한별 메뉴·버튼·데이터 접근 범위를 제어한다. |
| EMR 엑셀 파일 처리 | EMR 엑셀 파일 처리, 처리 결과 확인, 처리 이력 | 상세 처리 방식은 6.3 EMR 엑셀 파싱·검증 처리에서 정의한다. |
| 환자 관리 및 EMR 차트번호 연계 | 환자 등록, 환자 확인, EMR 차트번호 연계 | 이름·생년월일 기준으로 환자를 확인하고 동일인 후보가 있을 때만 추가 본인확인 절차를 수행한다. 차트번호는 ERP가 생성하지 않고 EMR 엑셀 반영 시 환자에 연계한다. |
| 통계 대시보드 | 환자 분류, 예약·취소율, 시간대·연령대, 재진율, 평균 대기·체류시간, 보험·주사코드·치료형태별 통계, 월간 운영 통계 | EMR 데이터와 예약 상태 이력, 정산 데이터를 기반으로 대시보드와 다운로드 기능을 제공한다. |
| 진료 예약 | 의사·치료사 스케줄 관리, 예약 생성, 변경, 취소, 노쇼, 완료, 재예약, 예약 상태 이력 | 의사와 치료사의 근무시간·휴진/휴무·비가용 시간을 관리하고, 해당 스케줄을 함께 확인해 예약 가능 여부를 판단한다. |
| CRM | CRM 일정 관리, 예약 리마인더, 재방문 유도, 카카오톡 채널 연동, 발송 이력 | CRM 대상자, 예정일, 채널, 메시지 유형, 발송 상태를 관리한다. |
| 병원 운영 관리 | 마감일지, 도수치료, 충격파, 물리치료, 상담일지, 월별 치료사 현황 | EMR 자동 집계 데이터와 수기 입력 데이터를 병합해 운영 현황을 제공한다. |
| 재고관리 | 소모품·의약품 입고 관리, EMR 처방 출고 연동, 재고 잔고·거래처별 정산 | 입고 처리로 실재고를 가산하고, 처방 코드별 BOM 설정으로 재고를 자동 차감한다. |
| 매출/매입 회계 | 수납 수단별 매출, 고정지출·추가지출, 거래처 매입, 실시간 순이익 | 카드·현금·계좌이체 수납액과 지출을 집계해 병원 순이익을 계산한다. |
| 인사관리 | 직원 정보, 입사·퇴사, 급여, 계약조건, 계약서 파일 | 병원 직원과 치료사 인사 정보를 관리한다. |
| 커뮤니티 | 의사 자유 게시판, Daon 공지사항 | 의사 권한 사용자는 자유 게시판을 이용하고, Super 관리자는 전체 병원 대상 공지사항을 등록한다. |
| 운영 관리 콘솔 | Super 관리자 대시보드, 전체 병원 관리, 전체 계정 관리, 이용 로그, 운영 모니터링, 서비스 권한 제어 | 전체 병원 현황, 운영 상태, 시스템 상태, 오류/실패 상태, 로그를 통합 관리한다. |
3.2 구현 우선순위
아래 순서는 기능 묶음을 임의로 나눈 것이 아니라 기술적 선후관계에 따른 구현 우선순위다. 권한·멀티테넌트 구조와 EMR 엑셀 파일 처리 파이프라인이 모든 통계·예약·회계 기능의 전제가 되며, 그 위에 통계, 예약, 운영·회계, 부가·협업, 운영 관리 콘솔이 쌓인다.
| 단계 | 묶음 | 포함 기능 | 의존 논리 |
|---|---|---|---|
| 1 | 기반 구조 | 인증·로그인, 권한 기반 접근제어, 멀티테넌트, 병원 생성·격리, 계정 관리, 병원 활성/비활성 | 모든 기능이 누가 어느 병원 컨텍스트에서 사용하는지 확인한 뒤 동작한다. |
| 2 | 데이터 파이프라인 | EMR 엑셀 파일 처리, 환자 관리, EMR 차트번호 연계 | 통계·예약·회계의 데이터 원천이 된다. |
| 3 | 핵심 통계 | 환자 분류, 예약·취소율, 시간대·연령대, 재진율, 평균 대기·체류시간, 보험·주사코드·치료형태별 통계, 통계 대시보드, 데이터 다운로드 | 2단계 데이터 적재 후 산출 가능하다. |
| 4 | 진료 예약 | 의사·치료사 스케줄 관리·확인, 예약 생성·변경·취소·노쇼·재예약, 예약 상태 이력 관리 | 환자·계정·스케줄 기반이며 취소율 통계의 입력원이 된다. |
| 5 | 운영·회계 | 마감일지, 도수·충격파·물리치료, 재고관리, 매출/매입 회계, 실시간 순이익 | EMR 정산 데이터, 재고 매입 데이터, 수납 데이터에 의존한다. |
| 6 | 부가·협업 | CRM 스케줄러, 카카오톡 채널 연동, 인사관리, 치료사 성과 분석, 의사 자유 게시판, Daon 공지사항 | 핵심 운영 기능 위에 쌓이는 협업·확장 기능이다. |
| 7 | 운영 관리 콘솔 | 관리자 시스템, 병원 ON/OFF, 이용 로그 관리, 운영 모니터링, Super 관리자 전체 통합 통계 | 하위 데이터와 로그, 시스템 상태가 축적된 뒤 통합 관점에서 운영한다. |
3.3 상세 기능 범위
| 영역 | 세부 기능 | 반영 내용 |
|---|---|---|
| 인증·계정 | 로그인/로그아웃, 권한 기반 접근 제어, 계정 생성·수정·비활성화 | 계정 상태와 소속 병원 활성 상태를 확인하고, 권한별 메뉴와 데이터를 노출한다. |
| 병원 관리 | 병원 생성·수정·비활성화, 병원별 데이터 공간 생성 | Super 관리자가 병원 고유 ID를 발급하고 병원 관리자 계정을 연결한다. |
| EMR 처리 | EMR 엑셀 파일 처리, 처리 결과 확인, 처리 이력, 처리 데이터 수정·삭제·재처리 | 상세 처리 방식은 6.3 EMR 엑셀 파싱·검증 처리에서 정의한다. |
| 환자 관리 | 환자 등록, EMR 차트번호 연계 | 환자명과 생년월일을 기준으로 기등록 여부를 확인하고, 동일인 후보가 있을 때만 추가 본인확인 절차를 수행한다. 주민번호 앞자리는 암호화 저장하고 뒷자리는 복원 불가능한 단방향 해시로 저장하되 화면에는 관련 컬럼을 노출하지 않는다. 차트번호는 ERP가 생성하지 않고 EMR 엑셀 반영 시 환자에 연계한다. |
| 통계 | 환자 분류, 예약·취소율, 시간대·연령대, 재진율, 평균 대기·체류시간, 보험·주사·치료형태 통계, 월간 운영 통계 | 기간·병원·치료사·유입경로 조건을 기준으로 표와 그래프, 엑셀 다운로드를 제공한다. |
| 스케줄 관리 | 의사·치료사 근무시간, 휴진/휴무, 비가용 시간 관리 | 병원 관리자 또는 권한 있는 사용자가 스케줄을 등록·수정하고 예약 가능 시간 판단 기준으로 사용한다. |
| 예약 | 예약 생성, 변경, 취소, 노쇼, 완료, 재예약, 상태 이력 | 환자를 이름·생년월일로 확인하고, 의사·치료사 스케줄 중복 여부를 확인한 뒤 상태 이력 테이블에 이벤트를 기록한다. |
| CRM | CRM 일정 관리, 카카오톡 채널 연동, 발송 이력 | 예약 리마인더와 재방문 유도 일정을 예정·발송완료·실패 상태로 관리한다. |
| 운영 | 일일 마감일지 조회·작성·인쇄, 도수·충격파·물리치료 관리, 상담일지 | EMR 자동 집계 항목과 수기 입력 항목을 병합해 일자별 운영 현황을 구성한다. |
| 재고 | 주문서 작성, 입고 상황창, 처방 출고 연동, 재고 잔고·거래처별 정산 | 입고 완료 수량은 재고에 가산하고, 처방 코드별 소요량은 EMR 처방 발생 건수 기준으로 차감한다. |
| 회계 | 수납 수단별 매출, 고정지출, 추가지출, 회계장부, 순이익 | 카드·현금·계좌이체 수납액과 고정지출·재고 매입·추가지출을 합산해 손익을 산출한다. |
| 인사 | 직원 정보, 입사·퇴사, 급여, 계약조건, 계약서 파일 | 병원 직원과 치료사 정보를 재직·퇴사 상태로 관리한다. |
| 커뮤니티 | 의사 자유 게시판, Daon 공지사항 | 의사 자유 게시판은 DOCTOR 권한만 접근하고, Daon 공지사항은 전체 병원 사용자가 조회한다. |
| 로그·공통 | 이용 로그, 엑셀 다운로드, 인쇄 | 로그인, EMR 처리·반영, 데이터 다운로드, 데이터 수정·삭제, 권한 변경을 기록한다. |
| 운영 모니터링 | 서버 헬스 체크, 서버·DB·클라우드 이중화 상태, 웹 페이지 정상 여부, HTTPS 인증서 정상 여부, 오류/실패 이벤트, 알림 발송 상태 | Super 관리자가 시스템 상태를 확인하고 장애 가능성이 있는 이벤트에 대한 알림 발송 상태를 조회한다. |
3.4 핵심 지표 목록
본 절은 제안 범위에 포함되는 주요 지표와 제공 형태를 정의한다. 지표별 판정 기준, 계산식, 예외 처리 규칙은 6.6 핵심 업무 규칙 및 계산 로직에서 정의한다.
| 영역 | 핵심 지표 | 제공/표시 기준 |
|---|---|---|
| 환자·내원 | 신규환자 수, 재진환자 수, 90일 초진환자 수, 재진율 | 기간, 병원, 유입경로, 치료사 등 조회 조건에 따라 집계하고 표·그래프로 표시한다. |
| 유입·연령 | 환자 유입경로, 시간대별 환자 수, 평균 연령대 | 유입경로별 환자 수·매출, 시간대별 내원 분포, 연령대 분포를 표시한다. |
| 예약 | 예약 취소율, 예약 변경률, 노쇼율 | 예약 상태 이력을 기준으로 취소, 변경, 노쇼 현황과 비율을 표시한다. |
| 진료·EMR | 평균 진료 대기 시간, 평균 병원 체류 시간, 보험 유형별 통계, 주사 코드별 통계, 치료 형태별 처방 통계 | EMR 처리 데이터와 정산 데이터를 기준으로 진료 흐름, 보험 유형, 처방 코드, 치료 형태별 현황을 표시한다. |
| 매출·회계 | 수납 수단별 매출, 치료사별 매출, 병원 순이익, 건당진료비, 일평균 매출, 전월 대비 증감 | 카드·현금·계좌이체 수납, 치료사별 실적, 지출 데이터를 연결해 병원 손익과 증감 추이를 표시한다. |
| 운영·상담·재고 | 상담 예약률, 치료사별 실적, 현재 재고량, 거래처별 주문·결제·잔고 | 상담일지, 비급여·물리치료 운영 데이터, 재고 입출고 데이터를 기준으로 운영 현황을 표시한다. |
4. 화면 구성안(와이어프레임)
본 와이어프레임은 최종 디자인이 아닌 구성 협의용 저충실도 와이어프레임이다.
4.1 Super 관리자 대시보드
Super 관리자가 전체 병원 수, 활성/비활성 병원 수, 최근 EMR 처리 현황, 병원별 KPI를 한 화면에서 확인한다. 특정 병원 상세 또는 이용 로그 화면으로 이동할 수 있다.
그림 4.1 Super 관리자 대시보드
4.2 EMR 파일 처리 + 검증 결과
병원 관리자가 EMR 엑셀 파일 처리 결과를 확인한다. 시스템은 파일 유형을 내부에서 자동 판별하고 총 행 수·정상 행 수·오류 행 수·중복 행 수와 오류 상세, 원본 항목별 데이터를 제공한다. 주민번호는 앞자리 암호화·뒷자리 단방향 해시 저장 기준으로 처리하되 화면에는 주민번호 앞자리·뒷자리 컬럼을 표시하지 않는다. 검증 후 정상 데이터 반영, 오류 다운로드, 파일 재선택, 처리 데이터 수정·삭제·재처리를 수행한다.
그림 4.2 EMR 파일 처리 + 검증 결과
4.3 병원 통계 대시보드
병원 운영자가 신규·재진·90일초진, 유입경로, 시간대 분석, 평균 연령, 치료사별 성과, 월간 운영 통계, 월별 추이 그래프를 조회한다. 현재 조건 기준의 데이터 다운로드를 제공한다.
그림 4.3 병원 통계 대시보드
4.4 예약/취소율 분석
관리자가 전체 예약 수, 예약 변경 수, 예약 취소 수, 노쇼 수, 재예약 수, 전체 취소율, 치료사별·시간대별 취소율을 확인한다. 단순 시간 변경과 실제 취소를 구분해 취소율을 산출한다.
그림 4.4 예약/취소율 분석
4.5 진료 예약 캘린더
관리자, 직원, 치료사가 일간·주간·월간·의사별·치료사별 보기로 예약 현황을 확인한다. 예약 시 환자는 이름·생년월일로 우선 확인하고, 동일인 후보가 있을 때만 추가 본인확인 절차를 수행한다. 예약 시간, 환자명, 의사, 치료사, 예약 상태, 메모를 기준으로 예약을 생성·변경·취소한다.
그림 4.5 진료 예약 캘린더
4.6 매출/매입 회계(순이익)
관리자와 원무 담당자가 카드·현금·계좌이체 수납액, 고정·추가 지출, 세부 지출 카테고리, 증빙, 월별 수입·지출·순이익 추이를 관리한다. 순이익은 총매출에서 총지출을 차감해 산출한다.
그림 4.6 매출/매입 회계(순이익)
4.7 운영 모니터링
Super 관리자가 서버 헬스 체크, 서버·DB·클라우드 이중화 상태, 웹 페이지 정상 여부, HTTPS 인증서 정상 여부, 오류/실패 이벤트, 알림 발송 상태를 확인한다. 장애 가능성이 있는 이벤트는 상태와 알림 결과를 함께 추적한다.
그림 4.7 운영 모니터링
4.8 화면 흐름도 — 병원 온보딩·데이터 흐름
이 흐름도는 병원 온보딩, EMR 엑셀 데이터 반영, 예약 운영을 분리해서 표시한다. 구현 우선순위와 병원 실제 운영 순서는 동일하지 않다.
- 병원 온보딩: Super 관리자가 신규 병원을 생성하고 병원 관리자 계정을 발급한 뒤 사용자·권한, 의사·치료사 스케줄, EMR 엑셀 처리 기준 등 초기 운영 기준을 확인한다.
- EMR 엑셀 데이터 반영: 병원 관리자가 파일을 선택하면 시스템이 파일 유형을 내부에서 자동 판별한 뒤 웹페이지 로컬 파싱, 검증 결과 확인, 정정, 사용자 승인, 데이터 반영 순서로 처리한다.
- 예약 운영: 예약 시 환자는 이름·생년월일로 확인하고 동일인 후보가 있을 때만 추가 본인확인 절차를 수행한다. 예약은 의사·치료사 스케줄을 확인해 생성·변경·취소하며, 차트번호는 EMR 엑셀 반영 시점에 환자에 연계한다.
그림 4.8 화면 흐름도 — 병원 온보딩·데이터 흐름
4.9 주요 화면 구성 요약
| 화면 그룹 | 화면 | 주요 사용자 | 핵심 구성 |
|---|---|---|---|
| 공통 | 로그인 | 전체 | 이메일/ID, 비밀번호, 로그인, 비밀번호 찾기 |
| Super Admin | Super 관리자 대시보드 | Super 관리자 | 전체 병원 수, 활성/비활성 병원 수, 최근 EMR 처리, 병원별 KPI |
| Super Admin | 전체 병원 관리 | Super 관리자 | 병원명·상태 검색, 대표자, 연락처, 최근 EMR 처리, 생성일, 관리 액션 |
| Super Admin | 전체 계정 관리 | Super 관리자 | 전체 병원 사용자 계정 조회·관리 |
| Super Admin | 전체 통계 대시보드 | Super 관리자 | 전체 병원 통합 통계 조회 |
| 병원 Admin | 병원 대시보드 | 병원 관리자 | 총 환자 수, 신규·재진·90일초진, 예약 수, 취소율, 노쇼율, 재진율, 매출, 유입경로 |
| 병원 Admin | 병원 계정 관리 | 병원 관리자 | 병원 사용자 계정과 권한 관리 |
| EMR | EMR 엑셀 파일 처리 | 병원 관리자 | 병원, 자동 판별 파일 유형, 기준월, 메모, 처리 결과, 검증 결과 |
| EMR | EMR 검증 결과 | 병원 관리자 | 총 행 수, 정상 행 수, 오류 행 수, 중복 행 수, 원본 항목, 주민번호 컬럼 미노출, 오류 상세, 데이터 반영, 수정·삭제·재처리 |
| 통계 | 통계 대시보드 | 관리자 | 환자 분류, 유입경로, 시간대, 평균 연령, 치료사 성과, 월간 운영 통계, 다운로드 |
| 통계 | 예약/취소율 분석 | 관리자 | 예약 수, 변경 수, 취소 수, 노쇼 수, 재예약 수, 치료사별·시간대별 취소율 |
| 통계 | 재진율 분석 | 관리자 | 당월·전월 재진율, 방문 횟수, 연령·성별, 처방 내역별 재진율 |
| 예약 | 예약 캘린더 | 관리자/직원/치료사 | 일간·주간·월간·의사별·치료사별 보기, 예약 상태, 메모 |
| 예약 | 의사·치료사 스케줄 관리 | 관리자/직원 | 근무시간, 휴진/휴무, 비가용 시간, 기존 예약 충돌 확인 |
| 예약 | 예약 등록/수정 | 관리자/직원 | 환자 확인, 예약일시, 의사, 치료사, 진료/치료 유형, 예약 상태 |
| 예약 | 예약 상태 이력 | 관리자/직원 | 생성, 변경, 취소, 노쇼, 완료, 재예약 이력 |
| CRM | CRM 스케줄러 | 관리자/직원 | CRM 대상자, 발송 예정일, 채널, 메시지 유형, 상태 |
| CRM | CRM 발송 이력 | 관리자/직원 | 발송 완료·실패 결과 조회 |
| 운영 | 마감일지 조회 | 관리자/직원 | 환자 현황, 수납 내역, 지출, 추가 수입, 유형별 내원, 특이사항, 인쇄 |
| 운영 | 마감일지 입력 | 관리자/직원 | 수납 보정, 진료실별 주사, 예약 현황, 내원 경로, 특이사항 |
| 운영 | 도수치료 관리 | 관리자/직원/치료사 | 신환·재진, 재진율, 수익, 치료사별 매출, 환자 리스트 |
| 운영 | 충격파 관리 | 관리자/직원/치료사 | 치료부위, 금액, 치료타입, 예약, 방문일 |
| 운영 | 물리치료 관리 | 관리자/직원/치료사 | 신/재, 금액, 예약, 방문일, 총치료횟수 |
| 운영 | 월별 치료사 현황 | 관리자 | 치료사별 매출, 전월 대비, 재진 전환 비율, 유형별 총매출 |
| 운영 | 상담일지 | 관리자/직원/치료사 | 상담건수, 예약률, 최종 매치율, 사유별 상담, 치료사별 현황 |
| 회계 | 매출/매입 회계 | 관리자/원무 | 카드·현금·계좌이체 수납, 고정·추가 지출, 증빙, 순이익, 손익 그래프 |
| 인사 | 직원 목록·등록·계약서 관리 | 관리자 | 직원명, 직무, 입사일, 퇴사일, 급여, 계약조건, 계약서 파일 |
| 로그 | 이용 로그 | Super 관리자 | 일시, 사용자, 병원, 기능, 액션, IP, 결과 |
| 모니터링 | 운영 모니터링 | Super 관리자 | 서버 헬스 체크, 서버·DB·클라우드 이중화 상태, 웹 페이지 정상 여부, HTTPS 인증서, 오류/실패 이벤트, 알림 발송 상태 |
5. 권한 및 데이터 정책
5.1 권한 유형
| 권한 | 설명 |
|---|---|
| SUPER_ADMIN | Daon ERP 전체 병원과 시스템을 관리하는 최상위 관리자 |
| DOCTOR | 특정 병원의 모든 권한을 가진 마스터 사용자 |
| MANAGER | 치료실 데이터만 접근 및 관리 가능한 권한 |
| ADMIN_STAFF | 일일 마감 데이터 및 수입/지출만 접근 및 관리 가능한 권한 |
| THERAPIST | 본인의 예약 일정, 치료 환자, 본인 실적 데이터만 접근 가능한 권한 |
5.2 권한별 접근 범위 요약
| 기능 영역 | SUPER_ADMIN | DOCTOR | MANAGER | ADMIN_STAFF | THERAPIST |
|---|---|---|---|---|---|
| 전체 병원 관리·전체 통계 | O | X | X | X | X |
| 병원별 통계 | O | O | △ 치료실만 | △ 매출/수납만 | X |
| 병원 계정 관리 | O | O | X | X | X |
| 환자 관리 및 EMR 차트번호 연계 | O | O | O | O | X |
| EMR 처리 | O | O | X | O | X |
| 진료 예약 관리 | O | O | O | O | △ 본인 스케줄만 |
| 의사·치료사 스케줄 관리 | O | O | △ 치료실만 | △ 예약 가능 시간만 | △ 본인 조회 |
| 예약 상태 이력 조회 | O | O | O | O | △ 본인 환자만 |
| CRM 스케줄러 | O | O | O | O | X |
| 카카오톡 연동 설정 | O | O | X | X | X |
| 마감일지 작성 | O | O | X | O | X |
| 도수·충격파·물리치료 관리 | O | O | O | X | △ 본인 내역만 |
| 상담일지 관리 | O | O | O | △ 예약 전환만 | △ 본인 상담만 |
| 치료사 성과·월별 치료사 현황 | O | O | O | X | △ 본인 실적만 |
| 인사관리 | O | O | X | X | X |
| 매출/매입 회계 | O | O | X | O | X |
| 재고관리 | O | O | O | O | X |
| 병원 ON/OFF | O | X | X | X | X |
| 이용 로그 조회 | O | △ | X | X | X |
| 운영 모니터링 | O | X | X | X | X |
| 의사 자유 게시판 | X | O | X | X | X |
| Daon 공지사항 | O 등록 | O 조회 | O 조회 | O 조회 | O 조회 |
O: 가능 / △: 제한 가능 / X: 불가
5.3 병원별 데이터 격리
Daon ERP는 여러 병원이 동일한 SaaS를 사용하더라도 각 병원 데이터가
섞이지 않도록 모든 병원 데이터에 tenant_id를 저장한다. API
요청 시 로그인 사용자의 병원 ID와 조회·수정 대상 데이터의 병원 ID를
비교하고, Super 관리자만 전체 병원 접근 예외를 가진다. 병원 계정의
데이터 다운로드는 자사 병원 데이터로 제한한다.
5.4 의료정보 보안·개인정보 보호
의료 데이터는 환자 개인정보, 진료·치료 정보, 수납 정보, 직원 정보를 포함하므로 권한별 접근 범위와 접근 이력 관리가 핵심이다. 주요 기록 대상은 로그인 성공·실패, EMR 파일 처리 및 데이터 반영, 데이터 다운로드, 데이터 수정·삭제, 권한 변경이다.
환자 개인정보와 의료정보는 전송구간 암호화, 저장 데이터 암호화, 역할별 접근 제한, 업무 첨부 파일 접근 통제, 정기 DB 백업 정책을 적용하는 것을 권장한다. EMR 원본 파일은 서버에 업로드하지 않는다. 주민번호는 원본 문자열로 저장하지 않고, 앞자리는 암호화 저장하며 뒷자리는 복원 불가능한 단방향 해시로 저장한다. 화면에는 대체 표시 없이 주민번호 앞자리·뒷자리 컬럼 자체를 노출하지 않는다. 운영 환경에서는 개인정보 접근 로그 보관 기간, DB 백업 주기, 복구 목표를 고객 보안 정책에 맞춰 확정해야 한다.
5.5 병원 활성/비활성 정책
병원 ON/OFF는 Super 관리자가 운영상 판단으로 전환하는 활성/비활성 상태다. 활성 병원은 전체 기능을 사용할 수 있고, 비활성 병원은 로그인 후 주요 기능 사용을 제한하며 관리자 문의 안내를 제공한다.
5.6 병원 계정 구조 및 역할별 운영 정책
병원당 평균 9개의 사용자 계정 운영을 전제로 한다. 계정 예시는 의사 1~2명, 실장 1명, 원무 2~3명, 치료사 4~5명 구성이다.
| 역할 | 운영 정책 |
|---|---|
| Super 관리자 | 모든 병원 데이터 조회가 가능하며, 운영 이슈 대응 시 병원별 데이터 수정이 가능하다. 병원 활성/비활성, 서비스 접근 권한, 이용 로그를 관리한다. |
| 의사 | 자사 병원 데이터와 메뉴에 대한 마스터 권한을 가지며, 사용자 계정 생성, 권한 부여, EMR 처리, 예약, CRM, 인사, 마감, 수입/지출을 관리한다. |
| 실장 | 치료실 관련 데이터와 치료실 통계 중심으로 접근하며, 인사관리, 수입/지출, 일일 마감일지 등 원무·경영·재무 정보에는 접근하지 않는다. |
| 원무 | 일일 마감일지 작성, 수입/지출, EMR 처리, 진료 예약 관리를 수행하며, 치료실 상세 치료 정보와 개인·인사 정보 접근은 제한한다. |
| 치료사 | 본인 예약 일정, 본인 치료 내역, 본인 실적 중심으로 접근하며, 전체 병원 통계, 수입/지출, 인사정보, 마감 정보에는 접근하지 않는다. |
6. 기술 아키텍처
6.1 시스템 구성도
아래 시스템 구성도는 원문 기능을 구현하기 위한 제안사 권장 논리 구조다.
[사용자]
├─ SUPER_ADMIN
├─ DOCTOR / MANAGER / ADMIN_STAFF / THERAPIST
│
▼
[웹 애플리케이션]
├─ EMR 엑셀 파일 처리 UI
└─ 검증 결과 표시
│
▼
[API 서버]
├─ 인증·세션/토큰
├─ 권한 검증
├─ tenant_id 검증
├─ 업무 API
│
├─ [EMR 데이터 파이프라인]
│ ├─ 주민번호 분리 저장(앞자리 암호화·뒷자리 해시, 화면 미노출) 적용 검증 완료 데이터 수신
│ ├─ 데이터 반영
│ ├─ 처리 이력 기록
│ └─ 병원별 데이터 저장
│
├─ [통계 엔진]
│ ├─ 환자 분류
│ ├─ 예약·취소율
│ ├─ 재진율
│ ├─ 평균 대기·체류시간
│ └─ 보험·주사코드·치료형태별 통계
│
├─ [운영·회계]
│ ├─ 예약
│ ├─ CRM
│ ├─ 마감일지
│ ├─ 재고
│ └─ 매출/매입 회계
│
├─ [로그·감사]
│ ├─ 로그인
│ ├─ EMR 처리
│ ├─ 다운로드
│ ├─ 데이터 변경
│ └─ 권한 변경
│
└─ [운영 모니터링]
├─ 서버 헬스 체크
├─ 서버 이중화 상태
├─ DB 이중화 상태
├─ 클라우드 이중화 상태
├─ 웹 페이지 정상 여부
├─ HTTPS 인증서 상태
├─ 오류/실패 이벤트
└─ 알림 발송 상태
6.2 멀티테넌트 구조
모든 병원 소속 데이터는 tenant_id를 필수로 보유한다.
병원 사용자는 자사 병원 데이터만 조회·수정·다운로드할 수 있고, Super
관리자는 전체 병원 관리와 전체 병원 통계 조회 권한을 가진다. 병원별
데이터 격리와 권한 검증은 화면 단위와 API 단위에서 함께 적용한다.
6.3 EMR 엑셀 파싱·검증 처리
사용자는 브라우저에서 파일을 선택하지만 원본 파일 자체를 서버에 업로드하지 않는다. 웹페이지가 파일을 읽어 시트 구조와 필수 컬럼으로 파일 유형을 내부에서 자동 판별하고, 사용자가 검증 결과를 확인해 데이터 반영을 승인하면 원본 항목 데이터와 처리 이력을 서버 API로 전송한다. 주민번호는 원본 문자열을 저장하지 않고, 앞자리는 암호화 저장하며 뒷자리는 복원 불가능한 단방향 해시로 저장하되 화면에는 표시하지 않는다.
| 처리 단계 | 설명 |
|---|---|
| 파일 선택 | 병원 ID, 엑셀 파일, 기준월, 처리 메모를 입력받고 브라우저에서 파일 확장자와 일반 업무 파일 기준의 용량을 검증한다. |
| 로컬 파싱 | 웹페이지의 엑셀 파싱 엔진으로 시트 구조와 데이터를 읽는다. |
| 파일 유형 자동 판별 | 시트 구조와 필수 컬럼을 기준으로 지원 대상 파일 유형을 내부에서 자동 판별한다. |
| 파싱 규칙 적용 | 자동 판별된 파일 유형에 맞는 고정 파싱 규칙을 브라우저에서 적용한다. |
| 민감정보 처리 | 주민번호 컬럼은 앞자리를 암호화 저장하고 뒷자리를 복원 불가능한 단방향 해시로 저장한다. 원본 주민번호 문자열은 저장하지 않으며, 화면에는 주민번호 앞자리·뒷자리 컬럼을 표시하지 않는다. |
| 원본 항목 보존 | 원본의 모든 항목을 DB에 저장하되 검증 화면에는 주민번호
앞자리·뒷자리 컬럼을 포함하지 않는다. 챠트번호와
차트번호는 내부 기준 컬럼인 차트번호로
정규화한다.
|
| 검증 | 필수값 누락, 날짜 형식, 금액 형식, 상태값,
차트번호 + 수진자명 + 내원일 기준 중복 데이터를
웹페이지에서 검증한다.
|
| 결과 확인 | 총 행 수, 정상 행 수, 오류 행 수, 중복 행 수, 주민번호 컬럼을 제외한 원본 항목별 데이터, 오류 상세를 표시한다. |
| 반영 | 정상 데이터만 병원별 데이터 영역에 저장하고, 통계·예약·회계 모듈의 입력 데이터로 사용한다. |
| 정정 | 잘못된 EMR 엑셀 파일 처리에 대비해 처리 배치 삭제, 항목 수정, 재처리, 파일 재선택을 제공한다. 정정 행위는 감사 로그에 기록한다. |
| 서버 미업로드 | 원본 엑셀 파일은 서버에 업로드하지 않고 장기 보관하지 않는다. |
| 자동 판별 파일 유형 | 저장 대상 항목 | 저장 제외 항목 | 중복 기준 |
|---|---|---|---|
| 외래진료실 | No, 차트번호, 수진자명, 주민번호 분리 저장값(앞자리 암호화·뒷자리 단방향 해시, 화면 표시 제외), 보험유형, 진료과, S/A, 초/재, 주야공휴, 담당의, 내원일, 검사, 촬영, PT, 주사, 원외, 처치, US, 마취, 중증, 수납액, 작업일 | 원본 주민번호 문자열 | 차트번호 + 수진자명 + 내원일 |
| 일일정산 | 수납일자, 보험유형, 차트번호, 수진자명, 수납구분, 총진료비, 요양급여총액, 환자본인부담총액, 조합청구액, 급여본인부담액, 약제상한차액, 비급여, 수납액, 할인액, 미수발생, 현금금액, 카드금액, 건강생활, 입/외, 계산일시 | 해당 없음 | 외래진료실 방문 데이터와 결합 후 차트번호 + 수진자명 + 내원일 기준 확인 |
6.4 구현 기술 스택
| 영역 | 적용 기술 |
|---|---|
| 프론트엔드 | Next.js, TypeScript, Tailwind, shadcn/ui |
| 표 | TanStack Table |
| 폼 | React Hook Form + Zod |
| 차트 | Recharts |
| 캘린더 | FullCalendar |
| 파일 저장 | EMR 원본 파일은 서버 저장 대상에서 제외한다. 계약서·증빙 등 업무 첨부 파일은 확정 범위에 한해 S3 호환 오브젝트 스토리지 사용을 권장한다. |
| 엑셀 처리 | EMR 엑셀 파일 처리를 지원한다. 상세 처리 방식은 7.3에서 정의한다. |
| 인증 | 세션 또는 토큰 기반 인증을 적용하고, 운영 환경에서는 토큰 만료·재로그인 정책을 둔다. |
| 로그·감사 | 주요 사용자 행위 로그를 별도 감사 테이블로 보관하는 구성을 권장한다. |
6.5 인프라·보안
일반 업무용 EMR 엑셀 파일 처리, SaaS 안정 운영, 서버·DB·클라우드 이중화, DB 백업 및 복구 정책, 환자 개인정보 보호 및 접근 이력 관리를 비기능 요구사항으로 반영한다.
이중화·백업·DR은 권장 표준 정책이며, 구축·운영 주체(개발사 vs 고객 클라우드 계정)와 비용은 견적/계약에서 확정한다.
기획서의 향후 고려사항은 아래 정책과 구현 방안으로 구체화한다.
| 고려사항 | 적용 방안 | 운영 확인 지점 |
|---|---|---|
| 개인정보보호 및 의료정보 보안 정책 수립 | 환자 개인정보, 진료·치료 정보, 수납 정보, 직원 정보를 민감 데이터로
분류하고 권한별 조회·수정·다운로드 범위를 제한한다. 화면에서는 역할별
메뉴 노출과 데이터 접근 범위를 분리하고, API에서는 사용자 권한과
tenant_id를 매 요청마다 검증한다.
|
개인정보 접근 로그, 다운로드 이력, 권한 변경 이력을 운영자가 추적할 수 있어야 한다. |
| 병원별 데이터 격리 방식 명확화 | 모든 병원 소속 데이터에 tenant_id를 필수 저장하고, 병원
사용자는 자사 병원 데이터만 조회·수정·다운로드하도록 제한한다. Super
관리자는 전체 병원 조회 예외 권한을 가지되, 병원별 데이터 수정은 운영
이슈 대응 목적 중심으로 제한한다. |
병원 계정으로 타 병원 데이터 조회·다운로드가 차단되는지 검수 시나리오에 포함한다. |
| EMR 원본 파일 미업로드 및 처리 이력 정책 수립 | EMR 엑셀 파일 처리 시 처리 사용자, 처리 메모, 자동 판별된 파일 유형, 검증 결과, 데이터 반영 결과를 이력으로 기록한다. 원본 엑셀 파일은 서버에 업로드하지 않고 장기 보관하지 않으며, 주민번호는 앞자리를 암호화 저장하고 뒷자리를 복원 불가능한 단방향 해시로 저장하되 화면에는 노출하지 않는다. | 재검증이 필요한 경우 EMR 엑셀 파일 처리를 다시 수행하는 운영 절차를 둔다. |
| 데이터 수정 이력 및 감사 로그 관리 | 주요 데이터 생성·수정·삭제, EMR 처리 및 반영, 엑셀 다운로드, 권한 변경, 로그인 성공·실패를 로그 대상으로 정의한다. 로그에는 일시, 사용자, 병원, 기능, 액션, IP, 결과를 기록한다. | Super 관리자가 이용 로그 화면에서 병원·사용자·기능·기간 기준으로 이력을 조회하고, 운영 모니터링에서 오류/실패 이벤트를 확인할 수 있어야 한다. |
| 서버·DB·클라우드 이중화 정책 구체화 | API 서버와 작업 처리 서버는 다중 인스턴스로 구성하고, 운영 DB는 주 DB/대기 DB 구조로 구성한다. 클라우드는 가용영역 분산을 기본으로 하고, 리전 장애 대비 절차를 문서화한다. | 운영 모니터링에서 서버 활성 상태, DB 복제 지연, 가용영역 또는 리전별 상태, 장애 전환 준비 상태를 확인할 수 있어야 한다. |
| DB 백업 및 복구 정책 구체화 | 운영 DB는 자동 백업, 변경 전 수동 스냅샷, 보관 기간, 복구 점검, 실패 알림 기준을 둔다. 백업 데이터도 의료정보와 동일한 접근 통제 대상으로 관리한다. | 백업 성공·실패 이력, 복구 리허설 결과, 백업 저장소 용량 경고를 운영 모니터링 대상에 포함한다. |
| 카카오톡 알림 발송 동의 관리 | CRM 스케줄러에서 예약 리마인더와 재방문 유도 발송 전 환자별 연락 가능 여부와 채널 동의 상태를 확인하도록 설계한다. 발송 예정, 발송 완료, 실패 결과를 CRM 발송 이력에 남긴다. | 동의 상태가 없는 대상자에게 자동 발송되지 않도록 발송 전 검증 조건을 둔다. |
| 병원 온보딩 프로세스 표준화 | Super 관리자가 병원을 생성하고 병원 관리자 계정을 발급한 뒤, EMR 엑셀 파일 처리 기준, 계정 구조, 권한, 초기 환자 관리와 EMR 차트번호 연계 방식을 확인하는 순서로 온보딩을 진행한다. | 온보딩 체크리스트에 병원 정보, 관리자 계정, EMR 엑셀 파일 처리 기준, 권한 점검, 첫 EMR 엑셀 파일 처리 결과를 포함한다. |
| 병원 활성/비활성 운영 | 병원 ON/OFF는 서비스 이용 상태가 아니라 Super 관리자의 운영상 활성/비활성 제어로 관리한다. 비활성 병원은 로그인 후 주요 기능 사용을 제한하고 관리자 문의 안내를 제공한다. | 비활성 전환 시 기존 데이터 보존, 사용자 접근 제한, 로그 기록 여부를 확인한다. |
운영 인프라는 개발·검수·운영 환경을 분리하고, 서버 이중화, DB 이중화, 클라우드 이중화, 데이터베이스 백업과 장애 복구 절차를 문서화하는 구성을 권장한다.
| 운영 인프라 항목 | 기본 정책 |
|---|---|
| 서버 이중화 | API 서버와 작업 처리 서버를 최소 2대 이상 실행하고 로드밸런서 헬스 체크로 비정상 서버를 자동 제외한다. |
| 무상태 서버 구성 | 로그인 세션, 파일, 작업 상태를 특정 서버 로컬 디스크에 의존하지 않도록 구성해 서버 장애 시 다른 서버가 요청을 처리할 수 있게 한다. |
| 배포 중단 최소화 | 서버를 순차 교체하는 방식으로 배포하고, 배포 중 비정상 인스턴스는 로드밸런서에서 제외한다. |
| DB 이중화 | 운영 DB는 주 DB와 대기 DB 구조로 구성하고, 주 DB 장애 시 대기 DB로 장애 전환할 수 있게 한다. |
| DB 복제 지연 관리 | DB 복제 지연 시간을 모니터링하고 기준 초과 시 Super 관리자에게 알림을 발송한다. |
| 클라우드 가용영역 이중화 | 서버와 DB를 서로 다른 가용영역에 분산해 단일 가용영역 장애 영향을 줄인다. |
| 리전 장애 대비 | 별도 리전에 백업 또는 복제 구성을 두고, DNS 또는 로드밸런서 전환 절차를 문서화한다. |
| 장애 전환 리허설 | 서버 장애, DB 장애, 가용영역 장애 상황을 가정한 장애 전환 리허설을 정기적으로 수행하고 결과를 기록한다. |
| 설정 복구성 | 인프라 구성, 환경 변수, 접근 권한, 백업 저장 위치를 문서화해 장애 복구 시 동일 구성을 재현할 수 있게 한다. |
| DB 백업 항목 | 기본 정책 |
|---|---|
| 자동 백업 | 운영 DB를 매일 1회 자동 백업한다. |
| 변경 전 스냅샷 | 배포, DB 마이그레이션, 주요 데이터 반영 전 수동 스냅샷을 생성한다. |
| 보관 기간 | 일별 백업은 30일, 월말 백업은 12개월 보관을 기본 정책으로 한다. |
| 복구 점검 | 월 1회 샘플 복구를 수행하고 복구 가능 여부와 소요 시간을 기록한다. |
| 실패 알림 | 백업 실패, 복구 실패, 백업 저장소 용량 임계치 초과 시 Super 관리자에게 알림을 발송한다. |
| 접근 통제 | 백업 데이터 접근 권한을 운영 관리자와 승인된 담당자로 제한하고 접근 이력을 남긴다. |
관리자 화면에는 권한별 메뉴 노출, API 권한 검증, 다운로드 이력 기록, 업무 첨부 파일 접근 통제, 개인정보 접근 로그를 적용하는 것을 권장한다.
6.6 핵심 업무 규칙 및 계산 로직
3.4에서 정의한 핵심 지표는 아래 업무 규칙과 계산 로직을 기준으로 산출한다. 조회 화면의 필터, 엑셀 다운로드, 인쇄 제공 범위는 각 기능 화면 정의와 상세 기능 목록에서 다룬다.
6.6.1 환자·예약 판정 규칙
| 구분 | 규칙 |
|---|---|
| 신규환자 | 환자별 방문 이력을 기준으로 해당 병원에서 최초 방문한 환자로 분류한다. |
| 재진환자 | 동일 환자의 기존 방문 이력이 있고, 90일 초진 기준에 해당하지 않는 재방문으로 분류한다. |
| 90일 초진환자 | 마지막 방문일로부터 90일 이상 경과 후 방문한 환자로 분류한다. |
| 재진율 | 재진 환자 수 / 전체 대상 환자 수 × 100으로 계산한다. |
| 예약 상태 이력 | CREATED, RESCHEDULED, CANCELLED, NO_SHOW, COMPLETED, REBOOKED 이벤트를 기록한다. |
| 예약 취소율 | CANCELLED 예약 수 / 전체 예약 수 × 100으로 계산한다. 단순 시간 변경은 취소로 계산하지 않는다. |
| 예약 변경률 | RESCHEDULED 예약 수 / 전체 예약 수 × 100으로 계산한다. |
| 노쇼율 | NO_SHOW 예약 수 / 전체 예약 수 × 100으로 계산한다. |
| 예약 가능 시간 | 예약 생성·변경 시 담당 의사와 치료사의 근무/예약 스케줄을 함께 확인하고, 중복 예약 또는 비가용 시간은 차단한다. |
6.6.2 환자 식별 및 EMR 처리 규칙
| 구분 | 규칙 |
|---|---|
| 환자 확인 | 병원 예약 시 환자명과 생년월일로 환자를 확인한다. 동일 이름·동일 생년월일 후보가 2명 이상일 때만 추가 본인확인 절차를 수행한다. |
| 차트번호 관리 | 차트번호는 ERP가 생성하지 않는다. 예약·등록 시점에는 차트번호가 없으며, EMR에서 진료 중 생성된 차트번호를 EMR 엑셀 반영 시점에 이름·생년월일로 매칭한 환자에 연계한다. 전체 프로세스의 환자 식별은 차트번호가 아닌 이름·생년월일을 기준으로 한다. |
| EMR 처리 데이터 저장 | 원본 엑셀 파일은 저장하지 않지만 원본 항목은 DB에 저장한다. 주민번호는 앞자리를 암호화 저장하고 뒷자리를 복원 불가능한 단방향 해시로 저장하며, 검증 화면에는 주민번호 앞자리·뒷자리 컬럼을 표시하지 않는다. |
| EMR 중복 체크 | EMR 엑셀 원본 행과 진료 데이터의 중복 여부는
차트번호 + 수진자명 + 내원일을 기준으로 확인한다. 엑셀의
챠트번호 표기는 내부 기준 차트번호로
정규화하며, 이 기준은 예약 전 환자 식별 기준이 아니다.
|
| EMR 정정 처리 | 잘못된 EMR 엑셀 파일 처리에 대비해 처리 배치 삭제, 항목 수정, 재처리, 파일 재선택을 제공하고 모든 변경 이력을 기록한다. |
| 진료·정산 데이터 결합 | EMR 엑셀 반영 이후 진료·정산 데이터 간 결합은 차트번호를 보조 식별자로 사용해 교차 검증한다. 예약 전 환자 식별 기준은 이름·생년월일이다. |
6.6.3 진료·통계 산출 로직
| 구분 | 계산/산출 기준 |
|---|---|
| 평균 진료 대기 시간 | 외래진료실.xlsx의 작업일 - 내원일을 분 단위로
계산한다. |
| 평균 병원 체류 시간 | 일일정산.xlsx의 계산일시 -
외래진료실.xlsx의 내원일을 분 단위로 계산한다.
|
| 환자 유입경로 | 환자 또는 상담·예약 데이터에 기록된 유입경로를 기준으로 환자 수와 매출을 집계한다. |
| 시간대별 환자 수 | 내원일시 또는 예약일시를 기준으로 시간대별 환자 수를 집계한다. |
| 평균 연령대 | 환자 생년월일 기준 연령을 계산하고 연령대별 분포와 평균 연령을 표시한다. |
| 보험 유형별 통계 | EMR 처리 데이터의 보험 유형을 기준으로 환자 비율과 매출을 집계한다. |
| 주사 코드별 통계 | LA358, LA357, LA354, LA359 등 주요 주사 코드별 처방 건수와 비율을 집계한다. |
| 치료 형태별 처방 통계 | 도수치료, 충격파치료, 물리치료의 일/월/연별 처방 건수와 추이를 집계한다. |
| 치료사별 매출 | 치료사와 연결된 도수·충격파·물리치료 처방 및 수납 데이터를 기준으로 매출을 집계한다. |
6.6.4 수납·회계 계산 로직
| 구분 | 계산/산출 기준 |
|---|---|
| 수납 수단별 매출 | 카드, 현금, 계좌이체 수납액과 비중을 집계한다. |
| 계좌이체 자동판정 | 일일정산.xlsx에서 현금금액과 카드금액이 모두 0원 또는
공란이고 수납액이 양수이면 계좌이체 수납으로 분류한다. |
| 순이익 | 총 매출액(카드 + 현금 + 계좌이체) - 총 지출액(고정지출 + 재고 매입액 + 상황별 추가 지출)로 계산한다. |
| 건당진료비 | 총매출 / 총 내원 환자 수로 계산한다. |
| 일평균 매출 | 월 총매출 / 진료일 수로 계산한다. |
| 전월 대비 | 당월 값 - 전월 값으로 증감을 계산하고, 증감률은 (당월 값 - 전월 값) / 전월 값 × 100으로 계산한다. |
6.6.5 운영·상담·재고 계산 로직
| 구분 | 계산/산출 기준 |
|---|---|
| 상담 예약률 | 예약 수 / 상담 건수 × 100으로 계산한다. |
| 비급여·물리치료 실적 | 도수치료·충격파·물리치료별 환자 현황, 치료사별 실적, 매출, 재진 전환율을 집계한다. 인센티브와 차트작성 여부 등 EMR에 없는 운영 항목은 보완 입력값을 사용한다. |
| 재고 차감(BOM) | 처방 출고량 = 매핑된 EMR 처방 발생 건수 합계 × 품목별 처방당 소요량으로 계산한다. 상세 규칙은 기능명세서 STOCK-002를 따르며, 적용 범위·미등록 코드·재고 부족·재처리 원복 정책은 10.2 논의 사항에서 확정한다. |
| 현재 재고량 | 기초 재고량 + 입고 수량 - 처방 출고량 - 기타 조정 출고량으로 계산한다. |
| 거래처 정산 | 소모품·의약품의 주문금액, 결제금액, 잔고를 연도별·거래처별로 집계한다. |
7. 개발 방법론 및 진행단계
7.1 추진 원칙
EMR 파이프라인을 첫 마일스톤으로 두고, 이후 통계·예약·운영·회계를 연결한다. 이는 데이터 파이프라인이 안정화되어야 통계 대시보드, 예약 취소율, 평균 대기·체류시간, 수납·순이익 계산의 신뢰도를 확보할 수 있기 때문이다.
7.2 진행단계 및 산출문서
| 단계 | 이름 | 진행 내용 | 산출 문서(관련 문서) | 비고 | 예상 기간 |
|---|---|---|---|---|---|
| 1 | 요구사항 정리 | 고객 니즈를 문서화 | 고객의 제공 자료 | 1개월 | |
| 2 | 개발 제안서 작성 | 고객에게 만들 시스템의 큰 그림 제시 | 개발 제안서, Wireframe 화면 | 제안서 제출 | 〃 |
| 3 | 범위 확정 미팅 | 개발 제안서로 포함/제외 기능 확정. 상세 일정 수립 | 요구사항 정의서 v1 | 요구사항 최종 승인 | 1개월 |
| 4 | 견적/일정 확정 | 개발 진행 여부 결정. 금액·기간·범위 고정 | 견적서, 일정표 | 개발계약 체결 | 〃 |
| 5 | 상세 설계 | 개발 가능한 수준으로 쪼개기 | 화면정의서, 기능명세서 | 설계 승인 | 1개월 |
| 6 | 단계별 개발 | 실제 구현. 단계별 완료 보고 | 단계별 개발 산출물 | 중간검수 | 4개월 |
| 7 | 검수/교육 | 계약 범위 충족 확인, 실제 사용 준비 | 테스트 시나리오, 검수확인서, 관리자 매뉴얼, 사용자 교육자료 | 최종검수 | 1개월 |
| 8 | 운영 구축 | 서버·DB·클라우드 이중화 구성, 자동 백업·스냅샷·복구 점검 기준 적용 | 인프라 구성서, 백업·복구 설정 내역 | 운영 전 점검 | 1개월 |
| 9 | 유지보수 | 운영 안정화 | 유지보수 계약서 | - |
8. 부록
8.1 상세 기능 목록 요약
| 구현 단계 | 기능 ID | 기능명 | 모듈 |
|---|---|---|---|
| 1 | AUTH-001 | 로그인/로그아웃 | 인증 |
| 1 | AUTH-002 | 권한 기반 접근 제어 | 인증/권한 |
| 1 | TENANT-001 | 병원 생성/수정/비활성화 | SaaS 관리 |
| 1 | TENANT-002 | 병원별 데이터 격리 | SaaS 관리 |
| 1 | USER-001 | 계정 생성/수정/비활성화 | 계정 관리 |
| 2 | USER-002 | 환자 등록 및 EMR 차트번호 연계 | 환자 관리 |
| 2 | EMR-001 | EMR 엑셀 파일 처리 | EMR 데이터 처리 |
| 2 | EMR-002 | EMR 파일 유형 자동 판별 | EMR 데이터 처리 |
| 2 | EMR-003 | EMR 데이터 검증 | EMR 데이터 처리 |
| 3 | STAT-001 | 환자 분류 통계 | 통계 |
| 3 | STAT-002 | 예약/취소율 통계 | 통계 |
| 3 | STAT-003 | 시간대/연령대 분석 | 통계 |
| 3 | STAT-004 | 재진율 분석 | 통계 |
| 3 | STAT-005 | 평균 대기/체류시간 분석 | 통계 |
| 3 | STAT-006 | 보험 유형별 통계 | 통계 |
| 3 | STAT-007 | 주사 코드별 처방 통계 | 통계 |
| 3 | STAT-008 | 치료 형태별 처방 통계 | 통계 |
| 3 | STAT-009 | 월간 운영 통계 | 통계 |
| 3 | EXPORT-001 | 엑셀 다운로드 | 공통 |
| 4 | RSV-001 | 예약 생성 | 진료 예약 |
| 4 | RSV-002 | 예약 변경/취소/노쇼 | 진료 예약 |
| 4 | RSV-003 | 예약 상태 이력 관리 | 진료 예약 |
| 4 | RSV-004 | 의사·치료사 스케줄 관리 | 진료 예약 |
| 5 | STOCK-001 | 소모품/의약품 입고 관리 | 재고관리 |
| 5 | STOCK-002 | EMR 처방 출고 연동 | 재고관리 |
| 5 | STOCK-003 | 재고 잔고/거래처별 정산 | 재고관리 |
| 5 | FIN-001 | 매출/매입 회계 관리 | 회계 |
| 5 | FIN-002 | 고정지출 및 추가지출 등록 | 회계 |
| 5 | FIN-003 | 회계장부 및 실시간 순이익 계산 | 회계 |
| 5 | DAILY-001 | 일일 마감일지 조회 | 병원 운영 관리 |
| 5 | DAILY-002 | 일일 마감일지 작성 | 병원 운영 관리 |
| 5 | DAILY-003 | 일일 마감일지 인쇄 | 병원 운영 관리 |
| 5 | PHY-001 | 비급여/물리치료 현황 조회 | 병원 운영 관리 |
| 5 | PHY-002 | 비급여/물리치료 정보 등록/수정/삭제 | 병원 운영 관리 |
| 5 | COUNSEL-001 | 상담일지 조회 | 병원 운영 관리 |
| 5 | COUNSEL-002 | 상담 등록/수정/삭제 | 병원 운영 관리 |
| 5 | PRINT-001 | 인쇄 | 공통 |
| 6 | CRM-001 | CRM 일정 관리 | CRM |
| 6 | CRM-002 | 카카오톡 채널 연동 | CRM |
| 6 | HR-001 | 직원 정보 관리 | 인사관리 |
| 6 | THER-001 | 월별 치료사 성과 현황 | 병원 운영 관리 |
| 6 | COMM-001 | 의사 자유 게시판 | 커뮤니티 |
| 6 | COMM-002 | Daon 공지사항 | 커뮤니티 |
| 7 | ADMIN-001 | 관리자 시스템 | 관리자 |
| 7 | LOG-001 | 이용 로그 관리 | 로그 |
| 7 | MON-001 | 운영 모니터링 | 관리자 |
8.2 용어 정의
| 용어 | 정의 |
|---|---|
| 90일초진 | 마지막 방문일로부터 90일 이상 경과 후 방문한 경우 90일 기준 초진으로 분류하는 환자 구분 |
| 산정X | 마감일지와 월간 운영 통계에서 초진·재진·90일초진과 함께 집계되는 산정안함 환자 구분 |
| 계좌이체 자동판정 | 일일정산.xlsx에서 현금금액과 카드금액이 모두 0원이거나
공란이고 수납액이 양수인 경우 해당 수납액을 계좌이체로 자동 분류하는
규칙 |
| EMR 처리 배치 | 사용자가 특정 병원·기준월·처리 대상 파일 유형 기준으로 처리한 EMR 엑셀 데이터 묶음. 원본 파일은 저장하지 않고, 원본 항목과 처리 이력을 보관하되 주민번호는 분리 저장(앞자리 암호화·뒷자리 해시) |
| EMR 중복 키 | EMR 엑셀 원본 행과 진료 데이터의 중복 여부를 판단하는
차트번호 + 수진자명 + 내원일 조합. ERP 예약 전 환자 식별
기준은 아님
|
| 주민번호 분리 저장 | 주민번호 앞자리는 암호화하고 뒷자리는 복원 불가능한 단방향 해시로 분리 저장하는 개인정보 저장 방식 |
| 환자 확인 | 예약 시 이름과 생년월일로 환자를 우선 확인하고, 동일인 후보가 있을 때만 추가 본인확인 절차를 수행하는 절차 |
| BOM | 특정 처방·행위 코드가 발생했을 때 차감할 소모품·의약품 품목과 수량을 정의한 기준 정보 |
| BOM 차감 | 처방·행위 코드별 소모품·의약품 소요량을 설정하고, EMR 처리 데이터 반영 시 처방 횟수와 단위 소요량을 곱해 실재고를 자동 차감하는 방식 |
| 운영 모니터링 | 서버 헬스 체크, 서버·DB·클라우드 이중화 상태, 웹 페이지 정상 여부, HTTPS 인증서 정상 여부, 오류/실패 이벤트, 알림 발송 상태를 통합 확인하는 기능 |
| 예약 상태 이력 | CREATED, RESCHEDULED, CANCELLED, NO_SHOW, COMPLETED, REBOOKED 등 예약 상태 변경 이벤트를 기록하는 이력 |
| CREATED | 신규 예약이 생성된 상태 |
| RESCHEDULED | 기존 예약의 일시 또는 담당자가 변경된 상태. 단순 일정 변경으로 취소로 계산하지 않음 |
| CANCELLED | 예약이 취소된 상태 |
| NO_SHOW | 예약자가 예약 시간에 방문하지 않은 상태 |
| COMPLETED | 예약 진료 또는 치료가 완료된 상태 |
| REBOOKED | 취소 또는 노쇼 이후 다시 예약된 상태 |
| 평균 진료 대기 시간 | 외래진료실.xlsx의 내원일과 작업일 간 시간 차이를 분
단위로 산출한 지표 |
| 평균 병원 체류 시간 | 외래진료실.xlsx의 내원일부터
일일정산.xlsx의 계산일시까지의 시간 차이를 분 단위로 산출한
지표
|
| 병원 순이익 | 총 수납액에서 고정지출, 재고 매입 지출액, 상황별 추가 지출 합계를 차감한 값 |
| tenant_id | 병원별 데이터를 격리하기 위해 모든 병원 데이터에 저장하는 병원 식별자 |
| 병원 ON/OFF | Super 관리자가 운영상 판단으로 전환하는 병원 활성/비활성 상태 |
9. 제외 범위 및 논의 사항
9.1 제외 범위
| 제외 항목 | 제외 사유 |
|---|---|
| 공단 수령 현황 | 초기 Daon ERP 핵심 범위와 직접 관련성이 낮다. |
| 진료비 청구 내역 | EMR/청구 프로그램과 중복 가능성이 높아 제외한다. |
| 자료 업로드 및 통합 검색 | 검색 솔루션 도입시 큰 비용 발생. 비용 대비 효용성 낮음. |
9.2 논의 사항
| 논의 항목 | 현재 상태 | 논의 필요 사항 |
|---|---|---|
| BOM 적용 범위 | 정책 확정 필요 | 모든 처방·행위 코드에 BOM을 적용할지, 재고 차감 대상 코드만 선별 적용할지 확정한다. |
| BOM 미등록 코드 처리 | 정책 확정 필요 | EMR 처리 데이터에 BOM이 없는 처방 코드가 포함될 때 차감 제외, 경고 표시, 관리자 확인 대상 중 어떤 방식으로 처리할지 정한다. |
| 재고 부족 시 BOM 차감 | 정책 확정 필요 | 재고 부족 시 차감 차단, 관리자 승인 후 차감, 마이너스 재고 허용 여부를 확정한다. |
| EMR 재처리 시 재고 원복 | 정책 확정 필요 | EMR 처리 데이터 재반영 또는 취소 시 기존 BOM 차감분을 자동 원복할지, 관리자 확인 후 원복할지 정한다. |
| BOM 변경 이력 | 정책 확정 필요 | 처방 코드별 품목·소요량 변경 시 적용 시작일, 변경 사유, 변경 전후 이력 보관 기준을 정한다. |