04. 워크플로 — 역할과 E2E 시나리오
상태: 통합본 v1 (2026-09-30) · 작성: S4 통합 목적: 닥터팔레트를 쓰는 병원이 누가, 어떤 화면에서, 무엇을 하는지를 우리 앱 요구사항·E2E 테스트로 옮길 수 있게 정리한다. 관련: 상태·엔티티는 05-domain-model-as-is.md, 규칙 ID(BR-…)는 06-business-rules.md. 확신도: 확인(화면·원문) / 추정(정황) / 미확인. 단계 표의
추정표시는 그 행의 시스템 반응·데이터 변화가 화면에 직접 보이지 않았다는 뜻이다.
1. 역할(페르소나)
1-1 역할 정의
주 타깃인 미용 피부과·성형외과는 상담 → 진료 → 시술 → 관리 → 수납마다 담당 직군이 다르다 [A4 ②-3]. 권한 역할(소유자·진료·원무·원무관리자·멤버관리자·기본권한)은 이 직군과 1:1이 아니다 [A4 권한].
| 코드 | 역할 | 주 업무 | 주 화면 | 기기 | 대표 페인포인트(이전 시스템) | 근거 |
|---|---|---|---|---|---|---|
| P1 | 대표원장·의사 | 진찰·진단·처방·진단서, 시술, 경영 확인 | 차트(진료실 모드), 모바일 차트, 통계·인사이트·월간 리포트 | 진료실 PC · 폰 · 태블릿 | 병원 밖 접근 불가, 장애로 진료 중단, 차트 작성에 진료 시간 소모 | A4 P1 |
| P2 | 상담실장 | 예약 확정, 상담·회차권 판매, 동선 파악, 신규 교육 | 플래너, 차트 상담 칸, 환자기록, 메디톡 | PC · 모바일 | 설치 PC에서만 접속, 변경사항 수동 전파, 예약-문자 불일치 | A4 P2 |
| P3 | 총괄실장 | 상담·마케팅·운영 총괄, 원격 모니터링 | 모바일 대기 현황, 메시지 템플릿·그룹 발송 | 모바일 중심 | 부서마다 다른 담당, 공유 누락 | A4 P3 |
| P4 | 코디네이터 | 접수·예약·동선·서류 요청 | 환자리스트, 태블릿 접수 확인, 환자기록, 네모닉 | 데스크 PC | 대기시간, 전달 누락 | A4 P4 |
| P5 | 간호사 | 바이탈, 시술 준비, 간호기록, 할 일 수행 | 차트 헤더·간호기록, 환자기록, 모바일 할 일 | PC · 모바일 | (근거 약함) | A4 P5, A3 할 일 |
| P6 | 피부관리사 | 관리(LED·모델링), 특이사항 확인 | 차트 관리 칸 | PC | — | A4 P6 |
| P7 | 원무(원무실장·원무팀) | 접수, 수납, 쿠폰·포인트·티켓, 문서 발급, 마감 | 접수 모달, 차트(원무 모드), 통계 수납·미수 | 데스크 PC | 금액 오입력, 서류 누락 | A4 P7, V3 |
| P8 | 청구 담당(원무·원장 겸) | 월 청구, 처방 점검 | 청구, 통계 진료 | PC | 청구 검토 시간 | V8 |
| P9 | 환자 | 예약, 문진, 셀프 접수, 알림 수신, 서류 발급 | 네이버·구글, 모바일 문진, 태블릿, 알림톡, 환자앱 | 폰 · 원내 태블릿 | 대기시간, 반복 문진 | A4 ②-1, V9 |
변형 페르소나(A4 P8): 정신과(긴 서술, 심리검사지 사진 업로드), 산부인과(예약 즉시 문진 자동 발송 + 목적별 추가 설문, 산모 그룹 발송), 성형외과 상담-수술 분리형(부서별 차트구성), 헬스케어 코치(비의료인, 캔버스·포인트 멤버십), 다층 항노화 클리닉(층별 동선 분산).
1-2 역할별 하루 (미용 피부과 표준형)
| 시간대 | 원장 | 상담실장·코디 | 간호·관리 | 원무 | 근거 |
|---|---|---|---|---|---|
| 출근 전 | 모바일로 당일 예약·진료 현황 확인 | — | — | — | A4 P1 |
| 오픈 | 홈 공지·월초 경영 리포트 | 네이버 요청·전화 예약 확정, 예약 메모·담당 지정 | 홈 병원업무 확인 |
홈 병원업무, 수납 준비 |
A4 ②-4, P2 |
| 오전~오후 | 다음 환자 부르기 → 차트 → 진료기록·처방·서류 → 보내기 |
태블릿 접수 확인, 룸 배정, 상담 칸 작성·회차권 판매, 다음 회차 예약 | 바이탈, 시술 준비 → 스레드 "준비 완료", 관리 칸 작성, 할 일 수행 | 수납(분할·쿠폰·포인트·티켓 차감), 서류 발급, 귀가 처리 | A4 ②-1 |
| 수시 | 스레드 멘션 응답, 모바일 촬영 | 스레드로 부서 간 요청, 모바일 대기 현황 | 스레드·네모닉 메모 | 핀 공지 확인(예: 이중 카드 결제 환자) | A4 ②-2 |
| 마감 | 당일 처방 재검토(청구 대비) | 다음 날 예약 점검 | — | "퇴근 전 수납 확인", 수납 매출 정리, 미수 확인 | A4 ②-4, V4 흐름 A·B |
| 주간·월간 | 인사이트·월간 리포트, 권한·보안 | 쿠폰(첫 방문·월별·게릴라), 템플릿 시즌 폴더, 그룹 발송 | — | 월 청구(급여 병원) | A4 ②-4, V8 |
1-3 한 번의 내원 — 단계와 담당 (지도)
flowchart LR A[예약 유입<br/>네이버·전화·현장] --> B[확정 알림<br/>+문진 링크] B --> C[사전 문진] C --> D[리마인드<br/>전날·당일] D --> E[도착·접수<br/>태블릿/데스크] E --> F[대기·동선<br/>룸별 보드] F --> G[상담<br/>회차권 제안] G --> H[촬영] H --> I[진료<br/>기록·처방·서류] I --> J[시술·관리] J --> K[수납<br/>분할·쿠폰·포인트·티켓] K --> L[다음 회차 예약] L --> M[사후관리 메시지] M --> N[마감·경영]
[A4 ②-1 — 확인(인터뷰·목업 재구성)]
2. E2E 시나리오
표 열: 행위자 · 화면 · 조작 · 시스템 반응 · 데이터 변화. 데이터 변화는 05 문서의 엔티티 이름을 쓴다. 시나리오 목록
| # | 시나리오 | 주 역할 | 우리 우선순위 |
|---|---|---|---|
| S01 | 신환 워크인(등록 + 접수 + 진료 + 수납 + 귀가) | 원무·원장 | P1 |
| S02 | 예약 신환(전화 예약 → 내원 시 등록·접수 전환) | 코디·원무 | P1 |
| S03 | 재진 회차 시술(보유 티켓 차감) | 코디·원장·간호·원무 | P1 |
| S04 | 상담 후 회차권 판매(선판매, 다음 방문부터 시술) | 상담실장·원무 | P1 |
| S05 | 노쇼 처리 | 코디 | P1 |
| S06 | 예약 변경·취소(자동 알림 포함) | 코디 | P1 |
| S07 | 부분 수납 → 미수 → 나중 회수 | 원무 | P1 |
| S08 | 환불(수납 환불 · 티켓 중도 환불) | 원무·원장 | P1 |
| S09 | 문서 발급(진단서 오더 → 원무 발급·출력) | 원장·원무 | P1 |
| S10 | 자동 알림 설정과 발송·비용 확인 | 원장·실장 | P1 |
| S11 | 네이버 예약 요청 확정 | 코디·실장 | P3(샌드박스 P1) |
| S12 | 태블릿 셀프 접수 | 환자·원무 | P2 |
| S13 | 가족 등록 + 보호자 대리 예약 | 원무·코디 | P1 |
| S14 | 원내 협업(환자기록 멘션·공지·할 일) | 전 직원 | P1(할 일 P2) |
| S15 | 쿠폰·포인트 적용 수납 | 원무 | P1 |
| S16 | 모바일 촬영 → PC 반영 | 원장·간호 | P2 |
| S17 | 사전 문진 → 차트 확인 | 환자·원장 | P2 |
| S18 | 월 청구(급여 병원) | 청구 담당 | P3 |
| S19 | 일 마감·미수 대사 | 원무·원장 | P1 |
S01. 신환 워크인
전제: 예약 없이 방문한 초진 환자. 근거 [V1 F2·F4, V3 F4~F7, A1 원무 흐름].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 상단바 | 신규환자 클릭 |
신규환자등록 모달 | — |
| 2 | 원무 | 신규환자등록 모달 | 이름·주민번호 입력 | 13자리 입력 즉시 자격조회 자동 실행 "HH:MM 자격조회 완료"(급여 병원) | EligibilityCheck 생성(P3) |
| 3 | 원무 | 〃 | 연락처·주소·환자유형 태그·(가족) 입력, 약관 전체 동의 |
필수 동의 없으면 등록 불가(BR-PT-08) | — |
| 4 | 원무 | 〃 | 등록 후 접수 |
토스트 "no.N (이름) 신규환자 등록되었습니다", 접수 모달 연속 오픈 | Patient(chartNo 채번), ConsentRecord×2 |
| 5 | 원무 | 외래 접수 모달 | 청구유형(기본 공단청구 — 우리안 비청구), 방문목적·세부목적, 담당의*, 바이탈, 대기열*(진료실02)+상태(대기) → 접수 |
환자리스트 해당 룸에 행 추가(하이라이트·빨간 점), 대기·방문 탭 +1, 다음 환자 부르기 카드 갱신, 접수 안내 알림톡(설정 ON 시) |
Visit, QueueEntry(대기), VitalSign, MessageDispatch(접수 안내) |
| 6 | 원장 | 차트 첫 화면 | 다음 환자 부르기(진료실02) → 진행하기 |
상태 진행중, 차트 열림(행 ✓) |
QueueEntry.status=진행중(추정) |
| 7 | 원장 | 차트 | 진료기록 입력(문구 칩), 오더 검색으로 상병·약·서류 추가 | 자동 진찰료 행(급여), 첫 상병 = 주상병, 원외 약 → 처방전 2부 자동 생성, 수납내역 받을 금액 즉시 재계산 | ChartSection, Diagnosis, OrderLine, IssuedDocument(미발급), Charge |
| 8 | 원장 | 차트 하단 바 | 위치 수납실 + 상태 대기 → ▶ 보내기 |
차트 닫힘, 토스트 + 되돌리기, 수납실 그룹 맨 뒤 |
QueueEntry(진료실 종료 → 수납실 대기), VisitTransition |
| 9 | 원무 | 환자리스트 → 차트(원무 모드) | 수납실 환자 클릭, 차트구성에서 수납·문서발급만 표시 | 수납내역: 받을 금액 = 환자부담 총액 | — |
| 10 | 원무 | 수납 추가 모달 | 카드·금액·할부 일시불 → 추가 |
수납 행 MM.DD 카드 N원, 남은 금액 0 → + 수납 추가 숨김 |
Payment |
| 11 | 원무 | 문서발급 카드 | 전체 발급 → 전체 출력 |
발급완료 배지, 브라우저 인쇄 |
IssuedDocument(발급완료, 연번호) |
| 12 | 원무 | 하단 바 | 위치 병원에서 내보내기 → 보내기 |
대기 목록에서 제거, 첫 화면 복귀 | Visit 종료, QueueEntry 완료 |
예외: 주민번호가 없는 외국인 → 주민등록번호가 없습니다. 체크(BR-PT-01). 동일 주민번호 존재 → 우리안: 중복 경고 후 기존 환자로 유도(mvp-scope F1).
S02. 예약 신환 (전화 예약 → 내원 접수)
근거 [V6 흐름 1·F7, V5 F6, A4 ②-1, A3 통합뷰].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 코디 | 예약(플래너) | 날짜 선택 → 스케줄 컬럼 슬롯 hover + 새 예약 |
환자 검색 모달 | — |
| 2 | 코디 | 환자 검색 모달 | 검색 결과 없음 → 신환예약 |
신환예약 폼(스케줄·날짜·시간 미리 채움) | — |
| 3 | 코디 | 신환예약 폼 | 환자명·연락처(·생년월일·성별), 환자와 동일 유지, 방문목적·세부목적·메모 → 예약등록 |
필수 누락 시 버튼 비활성, 정원 초과 시 경고(BR-RS-07). 토스트, 슬롯 카드 1 이름● 목적, 목록 예약 +1, 미니달력 카운트 +1 |
Plan(게스트, 확정), PlanLog(등록) |
| 4 | 시스템 | — | — | 예약 완료 알림톡(ON 시, 문진 링크·신분증 지참·오시는 길) | MessageDispatch(예약 완료) |
| 5 | 시스템 | — | — | 전날 12시·당일 설정 시각 리마인드 | MessageDispatch(사전/당일 안내) |
| 6 | 원무 | 예약 목록/통합 검색 예약현황 |
내원한 예약 건 → 접수(신규 등록 연계) | 게스트 정보로 신규환자등록 채움(추정) → 등록 후 접수 모달 | Patient 생성, Visit(reservationId), Plan.status=접수 |
| 7 | 시스템 | 플래너 | — | 카드 상태 접수, 색 자동 규칙(대기 상태 색 반영) |
Plan 상태·색 |
| 8 | — | — | 이후 S01 6~12단계 | 내원 종료 시 카드 완료(추정) |
Plan.status=완료 |
미확인: 예약 → 접수 전환 조작의 정확한 위치(v2.4 영상 범위 밖) [V5 F7]. 2025 통합뷰에서 예약 열 → 접수 열 드래그가 곧 접수인지 불명확 [A3].
S03. 재진 회차 시술 (보유 티켓 차감)
근거 [A4 ②-1·②-2, A3 티켓·할 일, V1 F3].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 환자/코디 | 태블릿 또는 데스크 | 접수(S12 또는 우클릭 접수하기) |
구환 접수 모달: 직전 담당의·대기열 기본값, 최근방문기록·주요기록, 선납금·포인트 잔액 툴팁 | Visit, QueueEntry(대기) |
| 2 | 코디 | 접수 모달 | 역할 담당(상담/관리/간호) 지정, 접수메모 | 통합뷰 카드에 역할 태그 | Visit.staffAssignments |
| 3 | 간호 | 차트 | 바이탈 입력, 시술 준비 → 환자기록에 "포텐자 준비 완료" | 스레드에 시각·작성자 | VitalSign, PatientNote |
| 4 | 원장 | 차트 | 진행하기 → 진료기록(시술명·패스 수·다음 간격 1개월·홈케어) | 즉시 저장 | ChartSection(clinical) |
| 5 | 원장/코디 | 차트 진단 및 처방 티켓 줄 |
보유 티켓 칩(포텐자 3회권 1/3) 클릭 |
(선택형이면 "사용할 시술을 선택해주세요." → 선택 전 확인 비활성) 칩 2/3, 토스트 "티켓을 사용했어요.", 금액 없는 사용 오더 줄 |
TicketUsage, OrderLine(티켓 사용), PatientTicket.usedCount+1, 매출 인식(사용 시점) |
| 6 | 시스템 | 대기리스트 | — | (할 일 자동 등록 ON) 오더가 할 일로 → 카드에 대기/진행중/완료 |
Task(auto_order) |
| 7 | 관리사 | 차트 관리 칸 | "LED + 모델링 + 마무리 완료" | 특이사항(알러지) 확인 후 대체 제품 | ChartSection(care) |
| 8 | 원장 | 하단 바 | 수납실·대기 → 보내기 | — | QueueEntry |
| 9 | 원무 | 차트(원무 모드) | 남은 비급여(재료 등)만 수납, 티켓분은 0원 | 받을 금액에 티켓 커버 반영 | Payment |
| 10 | 코디 | 플래너 | 이번 예약 카드 복사 → 한 달 뒤 붙여넣기 | 다음 회차 예약 + 예약 완료 알림 | Plan(새), MessageDispatch |
예외: 만료된 티켓 → 기간 연장 후 사용(만료일 있는 티켓만) [A3]. 소진(3/3) → 완료 탭 이동.
S04. 상담 후 회차권 판매 (선판매)
근거 [A4 ②-2, A3 티켓 구매·쿠폰].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 상담실장 | 차트 상담 칸 | 고민(양 볼 흉터) → 추천(포텐자+쥬베룩 3회권) → "오늘 결제만" 기록, 사진·이력 확인 | — | ChartSection(consult) |
| 2 | 상담실장 | 진단 및 처방 오더 검색 → 티켓 그룹 |
상품 선택 | 오더 줄 TK1581 3회권 구매 … 비급여(과세) 금액 |
OrderLine(티켓 구매) |
| 3 | 상담실장/원무 | 쿠폰 섹션 | + 쿠폰 적용 → 쿠폰(예 첫 방문 이벤트) 또는 직접입력 10% + 대상 처방 |
합산 → 할인 후 미리보기, 쿠폰 카드 | CouponApplication(targetOrderLineIds) |
| 4 | 상담실장 | 환자기록 | "남은 시술 3회권" 공유 메모 | — | PatientNote |
| 5 | 원무 | 수납 | 카드 분할(이중 카드) 수납 | 완납 시 티켓 활성 | Payment×2, PatientTicket(사용중, netPrice = 가격 − 쿠폰), 선수금(매출 미인식) |
| 6 | 코디 | 플래너 | 첫 시술 예약(확정) |
예약 완료 알림 | Plan |
규칙: 쿠폰·포인트는 비급여에만(BR-PY-12), 티켓 매출은 사용 시점(BR-TK-08). 미확인: 티켓 활성화가 수납 완료에 종속되는지(우리안: 구매 오더 수납 완료 시 활성).
S05. 노쇼 처리
근거 [A2 플래너 취소:노쇼, A4 CRM 리마인드, V6 S5].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 시스템 | — | 전날 12시·당일 아침 리마인드 발송 | 알림톡 실패 → SMS 대체 | MessageDispatch |
| 2 | 코디 | 플래너 | 예약 시각 경과 확인(색 자동 규칙 지각) |
카드 색 변경(추정) | — |
| 3 | 코디 | 예약정보 모달 | 환자 연락 불가 → 예약취소 + 사유 노쇼 |
"예약을 취소하시겠습니까?" → 토스트, 카드 이름 취소선 + 취소:노쇼 칩, 목록 예약 −1 / 예약취소 +1 |
Plan.status=취소, cancelReason=노쇼, PlanLog(취소) |
| 4 | 시스템 | — | (예약 취소 알림 ON이면) 취소 안내 발송 | 우리안: 노쇼 처리 시 취소 알림 발송하지 않음 옵션 | MessageDispatch |
| 5 | 코디 | 환자기록 | "노쇼 1회" 메모(선택) | — | PatientNote |
우리안 차이: noShow를 독립 상태로(BR-RS-14) — 노쇼율 통계·재예약 정책의 근거.
S06. 예약 변경·취소
근거 [V6 흐름 3·4, A2 플래너 드래그, A4 최근 플랜].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 코디 | 플래너/통합 검색 예약현황 |
예약 클릭 | 예약정보 모달(구환은 좌측 최근방문·주요기록) | — |
| 2a | 코디 | 예약정보 모달 | 시간 변경 → 예약수정(변경 시에만 활성) |
정원 초과 시 경고, 토스트 | Plan 수정, PlanLog(수정) |
| 2b | 코디 | 플래너 그리드 | 카드 드래그로 다른 시간·컬럼 이동 | 즉시 반영 | 〃 |
| 3 | 시스템 | — | 예약 변경 알림(ON, CRM 메시지 보내지 않기 미체크) |
즉시 발송 | MessageDispatch(예약 변경) |
| 4 | 코디 | 예약정보 모달 | 예약취소 + 사유(환자 개인 사유) |
목록 이동, 취소 알림 | Plan.status=취소 |
| 5 | 코디 | 취소 건 재오픈 | 사유 수정 | "취소 사유를 수정하시겠습니까?" | Plan.cancelReason |
| 6 | 실장 | 최근 플랜 패널 |
변경 이력 확인(인수인계) | 액션 배지·채널·상대시각 | — |
S07. 부분 수납 → 미수 → 나중 회수
근거 [V9 F5, V4 흐름 B, A2 수납 패널].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 차트 수납내역 | 받을 금액 45,000 중 카드 5,000 수납 | 남은 금액 40,000(파랑 강조) | Payment |
| 2 | 원무 | 하단 바 | 병원에서 내보내기 |
(우리안) "40,000원이 미수로 남습니다" 확인 | Visit 종료, 잔액 유지 |
| 3 | 원무 | 통계 › 수납 › 미수/환불 내역 |
기간 선택 | 미수 환자수·건수·금액 + 목록(환자번호·연락처·진료일·접수번호·미수금액) | — |
| 4 | 원무 | 목록 행 hover 차트보기 → 차트열기 |
해당 내원 차트 | — | — |
| 5 | 원무 | 수납 추가 | 전액 입력 → 현금(현금영수증) → 추가 |
토스트 "수납이 추가되었습니다.", 남은 금액 0, 미수 목록에서 제외 | Payment(수납일 = 오늘 — 수납 통계는 오늘, 매출은 진료일) |
S08. 환불
근거 [A2 ▸ 환불, V4 Refund, A3 티켓 환불]. 수납 환불 입력 UI는 미확인.
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 수납내역 ▸ 환불 |
원 결제 선택 → 환불 금액·수단 | 남은 금액 재계산(환불 반영, 추정) | Payment(kind=환불, originalPaymentId) |
| 2 | 원무 | (결제 단말) | 카드 승인 취소 | (VAN 연동 시) 단말 취소 | terminalTxId(P3) |
| 3 | 원무 | 차트 티켓 칩 우클릭 티켓 환불 |
모달: 티켓 금액 · 쿠폰 할인 · 패키지 가격 · 사용/남은 회차 → 환불 금액 직접 입력 → 확인 | 티켓 완료(환불) 탭 이동 |
TicketRefund, PatientTicket.status=환불, 환불 Payment |
| 4 | 원장 | 통계 미수/환불 내역 |
환불 환자수·건수·금액 확인 | — | — |
우리안: 티켓 환불액 기본값 = netPrice × 남은/총 제안 + 수정(BR-TK-07), 환불은 권한 billing.refund, 포인트·쿠폰 사용분 되돌림 규칙은 결정 필요(08 문서).
S09. 문서 발급
근거 [V3 F3·F6, V9 F5, A1 문서 발급].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 코디 | 환자기록 | "원장님, 진단서 부탁드립니다" + @원장 | 원장에게 멘션 알림 | PatientNote, Notification |
| 2 | 원장 | 차트 오더 검색 | 진단서 입력 → 처방아이템 진단서 선택 |
토스트 "문서를 추가했습니다.", 서류 그룹에 추가 | OrderLine(문서), IssuedDocument(미발급) |
| 3 | 원무 | 문서발급 카드 | 전체 미리보기 → 서식 확인(상병·진단일·면허·직인 자동) |
미리보기 모달 | — |
| 4 | 원무 | + 영수증 추가 → 진료비세부내역서 |
신청인·환자와의 관계·비고 → 발급 |
토스트 "발급이 완료되었습니다.", 목록 정렬 삽입 | IssuedDocument(발급완료, 연번호) |
| 5 | 원무 | 전체 발급 → 전체 출력 |
인쇄 또는 PDF 저장(메일·팩스) | 출력 이력 | printLog |
| 6 | 환자(P3) | 환자 앱 | 새 증명서 발급 |
"약 5분 소요" 비동기 | PatientAppDocRequest |
S10. 자동 알림 설정과 발송·비용 확인
근거 [V6 흐름 6~8, V5 S3, A4 자동발송].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원장 | CRM › 알림 메시지 |
접수 안내(☑ 대기 순번), 예약 완료·변경·취소, 예약 안내(☑ 당일 오전 9시, ☑ 1일 전) 토글 | 카드 헤더 변경사항 저장 출현 |
— |
| 2 | 원장 | 저장 확인 다이얼로그 | "요금이 부과되는 설정" → 확인 |
현 시각 이후 이벤트부터 적용 | NotificationSetting |
| 3 | 원장 | 항목 ⓘ | 템플릿 미리보기(변수 {환자명}·예약일시·스케줄·방문목적·병원명·전화) |
읽기 전용 | — |
| 4 | 관리자 | 스케줄 설정 | 스케줄별 CRM 알림메시지 전송 ON |
해당 스케줄 예약만 발송 대상 | SchedulePeriod.crmNotify |
| 5 | 시스템 | — | 트리거 발생 | 알림톡 → 실패 시 SMS/LMS 대체 | MessageDispatch(+fallbackOf) |
| 6 | 원장·데스크 | CRM › 발송내역 |
월 카드(총요금 VAT 포함·발송/성공/실패) → 상세(채널별 금액·건수) → 일/월 × 유형 → 수신자별 상태 | 과금은 성공 건만 | MessagingBillingMonth |
S11. 네이버 예약 요청 확정
근거 [A4 네이버, A2 네이버·플래너, A3 파트너사]. 우리 앱은 P3(P1은 샌드박스 어댑터로 요청 데이터를 흉내).
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 0 | 실장 | 설정 › 연동 / 플래너 › 파트너사 | 네이버 계정 연동, 예약상품마다 카테고리 매핑 + 자동확정 ON/OFF | 카테고리 없으면 "플래너와 연동하려면 카테고리를 선택하세요." | PartnerIntegration, NaverProduct |
| 1 | 환자 | 네이버 스마트플레이스 | 상품·시간 예약 | — | — |
| 2 | 시스템 | 플래너 | — | 초록 점선 요청 카드 + N 아이콘, 네이버예약 탭 건수, 최근 플랜 요청 |
ExternalBooking(요청), Plan(요청) |
| 2' | 시스템 | — | 상품 자동확정 ON이면 즉시 확정 |
— | Plan.status=확정 |
| 3 | 코디 | 네이버예약 탭 목록 | 행 hover 확정/거절 또는 선택 확정·모두 거절 |
상세 모달(환자번호·이름·연락처·날짜·시간·상품) | Plan.status=확정/거절, PlanLog |
| 4 | 코디 | 상세 모달 | 이름 옆 환자 연결 아이콘으로 기존 환자 매칭(연락처 기준 추정) | — | ExternalBooking.patientId |
| 5 | 시스템 | — | 예약 완료 알림(병원 알림톡), 네이버 쪽 상태 동기화(추정) | — | MessageDispatch |
| 6 | — | — | 내원 시 S02 6단계 이후와 같음 | 카드 N 유지 |
— |
미확인: 네이버 쪽 취소의 역동기화, 과금(유료 부가서비스로 추정).
S12. 태블릿 셀프 접수
근거 [A1 태블릿, A6 S29, V9 F2, A3 동의].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 환자 | 대기실 태블릿 | 휴대전화번호 입력(010 단축키) → 다음 (또는 주민등록번호 접수, 2022는 QR) |
예약 매칭 | — |
| 2 | 환자 | 예약정보 확인 | "해당 예약정보가 맞으신가요?"(예약자명·시간·연락처, 이름 가운데 마스킹) → 확인 / 예약정보가 다릅니다. |
거부 시 이전 단계 | — |
| 3 | 환자 | 접수정보 확인(2026) | 이름·생년월일·성별·내원목적 확인, 필수 동의 + 선택 동의(마케팅·AI 녹취 — 미리 체크 안 됨) → 접수를 진행합니다. |
필수 미동의 시 비활성 | ConsentRecord(비동의 포함) |
| 4 | 시스템 | PC 환자리스트 | — | 태블릿접수 그룹에 접수신청(빨강) 실시간 추가, 플래너 카드 접수 |
ReceptionRequest / QueueEntry(접수신청) |
| 5 | 원무 | 환자리스트 | 접수신청 행 확인 → 접수 모달(담당의·룸·바이탈) → 진료실 대기 |
접수 안내 알림(대기 순번) | Visit 확정, QueueEntry(대기) |
미확인: 예약 없는 신환의 태블릿 등록 단계, 본인확인(2024) 연계 [A4].
S13. 가족 등록 + 보호자 대리 예약
근거 [V1 F2-5, V2 F7, V6 규칙, A1 가족].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 신규환자등록 또는 차트 헤더 가족 구역 | 가족관계 + → 가족추가 다이얼로그 |
기존 환자 검색만 가능 | — |
| 2 | 원무 | 〃 | 환자 선택 + 관계 선택(아빠) → 확인 |
토스트, 목록 "이름, 성별 나이" | FamilyLink(양방향 추정) |
| 3 | 전 직원 | 차트 헤더 | — | 가족 1~2명 + +n(영유아 n세m개월) |
— |
| 4 | 코디 | 신환예약 폼 | 자녀 이름 + 환자와 동일 해제 → 예약자명(부모)·연락처 |
알림은 예약자 연락처로(추정) | Plan(booker ≠ patient) |
| 5 | 원무 | CID(P3) | 가족이 같은 번호 → 목록 창 하나에 카드로 나열 | 상담할 환자 선택 후 예약 | — |
미확인: 가족 간 수납 합산·포인트 공유 여부 [A4].
S14. 원내 협업 (환자기록·공지·할 일)
근거 [V2 F9~F11, V9 F6, A3 할 일, A4 ②-2].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 환자기록 | 방문경로·가족력·흡연 기록 → ⋮ 공지 등록 |
상단 고정 카드 교체, 공지 목록 누적, 접수 모달 주요기록 노출 |
PatientNote(isNotice) |
| 2 | 간호 | 환자기록 | "@원장 진단서 추가 부탁" | 웹 알림 카드 + 모바일 푸시 | Notification |
| 3 | 원장 | 알림 카드 | 차트열기 / ✓확인 |
메시지 ✓1 |
NoteAck |
| 4 | 개인 | 메시지 🔖 | 북마크 | 본인만 보임 | NoteBookmark |
| 5 | 원장 | 차트 할 일 |
메모 + 오더 선택 + 수행자(간호·관리) → 등록 |
대기리스트 카드·모바일에 표시 | Task(대기) |
| 6 | 간호 | 모바일 할 일 시트 | 진행중 → 완료 |
경과시간 → 소요시간·완료시각 | Task 상태 |
| 7 | 실장 | 홈 병원업무 |
"퇴근 전 수납 확인" 등록 → 완료 체크 | 취소선, 작성·수정자 | HospitalTask |
S15. 쿠폰·포인트 적용 수납
근거 [A3 쿠폰·포인트, A5 R-29].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 차트 쿠폰 섹션 | + 쿠폰 적용 → 쿠폰 선택 또는 직접입력(할인율 + 처방 선택) |
합산 → 할인 후 미리보기 | CouponApplication |
| 2 | 원무 | 포인트 섹션 포인트 관리 → 사용 |
한도 = 남은 과세 수납 총액, 최대 사용 |
수납 요약: 환자부담금 / 포인트 −nP / 쿠폰 −n원 | PointLedger(use) |
| 3 | 원무 | 수납 추가 | 나머지 카드 결제 | 남은 금액 0 | Payment |
| 4 | (충전) 원무 | 포인트 충전 |
결제 100,000원 → 충전 110,000P | 섹션 기록 | PointLedger(charge, paidAmount, bonus), Payment |
| 5 | 경영진 | 환자 ⋮ 쿠폰/포인트 내역 |
사용일시·수행자·할인 방법·금액·쿠폰명 | — | — |
차단: 급여 본인부담에 쿠폰·포인트 적용(BR-PY-12).
S16. 모바일 촬영 → PC 반영
근거 [V1 F5, V9 F4, A4 이미지].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원장/간호 | 모바일 앱 | 환자 → 진료일자 선택 → 📷 0/30 |
카메라 | — |
| 2 | 〃 | 〃 | 촬영 | 즉시 업로드, 1/30 + 썸네일 |
VisitImage(source=mobile) |
| 3 | 시스템 | PC 차트 이미지 패널 | — | 실시간 표시(한도 PC·모바일 공유) | — |
| 4 | 원장 | 전체 이미지 |
내원별 과거 이미지와 비교, 선택 다운로드 | — | — |
S17. 사전 문진 → 차트 확인
근거 [A1 문진, A4 문진, A2 CRM 문진 발송].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 코디 | 예약 폼 / 접수 모달 | 문진 선택 |
예약 완료 알림에 문진 링크 | QuestionnaireRequest |
| 2 | 환자 | 모바일 웹 | 필수 문항(임신 여부·내원 경위)·척도 → 작성완료 |
— | QuestionnaireResponse |
| 3 | 시스템 | 차트 문진 패널 | — | 헤더 빨간 점, 본 진료건 카드, 미응답 (무응답) |
— |
| 4 | 원장 | 〃 | 문진 답변 편집하기, 목적별 추가 설문 발송 |
— | 응답 편집 이력 |
S18. 월 청구 (급여 병원, 우리 P3)
근거 [V8 흐름 A·B].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원장 | 차트 심사점검 |
모드 ON → 상병점검 1 → 인정상병점검 모달(기준 원문·심사번호·추천상병) → 상병 입력 |
상병 보강 | Diagnosis, ChartReviewFinding |
| 2 | 청구 담당 | 청구 | 원청구서 생성(월청구·2023·2월·건강보험) |
생성중 → 10건 |
ClaimBatch, ClaimStatement |
| 3 | 〃 | 상세 | 보험자격 오류 확인(경고), 명세서 오류 2건 → 차트열기 → 주상병 추가 |
— | 원천 수정 |
| 4 | 〃 | 〃 | 행 제외하기 → 확인 |
즉시 9건 | ClaimStatement.excluded |
| 5 | 〃 | 〃 | ↻ | 오류 해소·금액 재계산·재정렬 | 재생성 |
| 6 | 〃 | 〃 | 발급하기 |
청구번호, .ghp 다운로드, 잠금 |
ClaimBatch 발급완료 |
| 7 | 〃 | (앱 밖) | 심평원 제출 | — | — |
S19. 일 마감·미수 대사
근거 [V4 흐름 A·B·D, A4 ②-4, A2 정산 리포트].
| # | 행위자 | 화면 | 조작 | 시스템 반응 | 데이터 변화 |
|---|---|---|---|---|---|
| 1 | 원무 | 통계 › 매출(일별) | 오늘 매출 확인(진료일 기준) | 총 매출 분해(급여·비급여·자보·할인금·선납금) | — |
| 2 | 원무 | 통계 › 수납 | 결제수단별 합계(수납일 기준) | 카드·현금(창구+계좌)·선납금 | — |
| 3 | 원무 | 미수/환불 탭 | 당일 미수 확인 → S07 회수 | — | — |
| 4 | 원무 | 내보내기 |
CSV(접수별 진료비·수단·미수·환불) | — | — |
| 5 | 원장 | 알림톡 | 전일 카드 승인·취소 리포트(VAN) | — | — |
| 6 | 원무 | 홈 병원업무 | "수납 매출 정리" 완료 체크 | — | HospitalTask |
| 7 | 우리안 | 일마감 | 마감 확정(닥터팔레트엔 명시 마감 기능 미관찰) | 합계 스냅샷 | DailyClosing |
3. 흐름 간 공통 패턴 (구현 시사점)
| 패턴 | 설명 | 적용 시나리오 | 근거 |
|---|---|---|---|
| 모달 연쇄 | 등록 후 접수처럼 한 작업 끝에 다음 모달이 이어서 열림 |
S01·S02 | V1 F2 |
| 한 화면 멀티 역할 | 같은 차트를 진료실 모드·원무 모드(차트구성)로 | S01·S03 | V2 F8, V9 |
| 위치×상태 보내기 + 되돌리기 | 모든 동선 전환의 단일 동작 | S01·S03·S12 | V3 S5 |
| 이벤트 → 자동 메시지 | 접수·예약 버튼 이벤트가 트리거, 옵트인·현시점 이후 적용 | S02·S05·S06·S10 | V6 |
| 스레드 = 작업 신호 | 스레드 멘션으로 처방전·진단서·준비 완료를 요청/통보 | S03·S09·S14 | A4 ②-2 |
| 오더 = 판매·사용 | 티켓 구매·사용·서류도 오더 줄로 입력 | S03·S04·S09 | A3, V3 |
| 원천 수정 원칙 | 파생물(명세서·서류)은 직접 고치지 않고 차트를 고친 뒤 재생성 | S09·S18 | V8 R8 |
| 복사·붙여넣기 재예약 | 회차 간격 예약을 복사로 | S03 | A4 ②-3 |
4. E2E 테스트 후보 (우리 P1)
mvp-scope 통합 E2E("예약 → 접수 → 상담·회차권 판매 → 시술·회차 차감 → 수납 → 영수증 → 다음 예약")는 위 S02 → S04 → S03 → S09 → S03-10을 이어 붙인 경로다. 추가 P1 E2E 권고:
- S01 신환 워크인 전 과정(등록 → 내보내기) — 대기열 상태 전이와 되돌리기 포함.
- S07 부분 수납 → 미수 → 다른 날 회수(매출 진료일 / 수납 수납일 기준 검증).
- S05·S06 예약 취소·노쇼·변경 시 알림 발송 여부(
CRM 메시지 보내지 않기포함)와 샌드박스 비용 집계(성공 건만). - S15 쿠폰·포인트가 급여 줄에 적용되지 않음(서버 차단).
- S08 티켓 환불 후 잔여 회차·매출 인식 정합.
출처 파일
A4_customer_stories.md(① 병원 프로필, ② 역할별 워크플로 ②-1~②-4, 모듈별 관찰) ·A1_news_2022_2023.md(외래접수·원무 흐름·태블릿·문진·CRM) ·A2_news_2023_2024.md(접수 모달·수납 패널·네이버·플래너·차트 초안·CID) ·A3_news_2025_2026.md(티켓·쿠폰·포인트·파트너사·통합뷰·할 일·동의) ·A6_feature_pages_ui.md(S12·S16·S20·S23·S29)V1_reception_treatment.md(F1F6) ·F13) ·V2_chart.md(F1V3_dxrx_documents.md(F1F7) ·E) ·V4_stats_insight.md(흐름 AV5_reservation_crm_part1.md(F1F7) ·8) ·V6_reservation_crm_part2.md(흐름 1V7_library.md(F1F9) ·F8)V8_claims.md(흐름 A·B) ·V9_intro.md(F1- 기준:
docs/product/mvp-scope.md