환자 검색¶
이 페이지에서 찾을 수 있는 것
환자 검색 / 환자 찾기 / 이름 검색 / 차트번호 검색 / 휴대폰 검색 / 환자 목록 / 일괄 SMS / 엑셀 다운로드 / 빈 환자 / 동명이인 / 환자 정렬
전체 환자 목록에서 특정 환자를 찾고, 환자 정보를 조회하거나 일괄 작업(SMS 발송, 중복 환자 정리 등)을 진행하는 화면입니다. 환자 등록 후 가장 자주 쓰는 환자관리 메인 화면입니다.
화면 구성¶
| 영역 | 위치 | 내용 |
|---|---|---|
| 검색 바 | 상단 | 날짜 범위, 검색 종류, 키워드 입력 |
| 결과 표 | 가운데 | 환자 목록 (정렬·체크박스·페이징) |
| 하단 액션 영역 | 표 아래 | 선택삭제, SMS/카카오 발송, 엑셀 다운로드 |
| 페이징 | 표 하단 | 검색 결과 페이지 이동 |
검색 바 — 입력 필드¶
날짜 범위¶
| 필드 | 의미 |
|---|---|
| 시작일 | 검색 시작일 (YYYY-MM-DD) |
| 종료일 | 검색 종료일 |
| 날짜 종류 (dateType) | 등록일 / 최초 내원일 / 최근 내원일 / 생일 등 |
→ 날짜 범위는 빈 칸으로 두면 전체 기간 검색.
키워드 검색¶
| 필드 | 의미 |
|---|---|
| 검색 종류 (searchType) | 이름 / 휴대폰 번호 / 차트번호 / 보호자 / 메모 등 |
| 키워드 | 검색할 텍스트 입력 |
검색 팁
- 이름: 부분 일치 가능 ("김"만 입력해도 김씨 환자 모두)
- 휴대폰 번호: 뒷자리 4자리만 입력해도 검색됨 (예:
1234) - 차트번호: 26 + 6자리 형식 (예:
260319002)
결과 표 — 컬럼 정렬 가능¶
각 컬럼 헤더 클릭으로 오름차순/내림차순 정렬됩니다.
| 컬럼 | 정렬 | 의미 |
|---|---|---|
| 차트번호 (chart_no) | ✓ | 26XXXXXX 형식 |
| 이름 | ✓ | 환자 성명 (한글) |
| 휴대폰 | - | 마스킹 표시 |
| 등록일 | ✓ | 시스템 등록일 |
| 최초 내원일 | ✓ | 첫 내원 진료 일자 |
| 최근 내원일 | ✓ | 가장 마지막 내원 일자 |
| 나이/성별 | - | |
| 체크박스 | - | 일괄 선택용 |
→ 행 클릭 시 환자 상세 정보 또는 차트 페이지로 이동.
자주 쓰는 동작¶
시나리오 1 — 일반 환자 검색¶
이름으로 환자 찾기
- 메뉴 > 환자관리 > 환자 검색
- 검색 종류 = "이름" 선택
- 키워드 입력: 예 "김보미"
- 결과 표에서 환자 클릭 → 차트 또는 상세 정보로 이동
휴대폰 번호로 빠른 검색
- 검색 종류 = "휴대폰" + 키워드 = 뒷자리 4자리 (예:
1234) - 매칭되는 환자 모두 표시 (동명이인이라도)
시나리오 2 — 일괄 SMS 발송¶
특정 조건 환자에게 안내 SMS 보내기
- 검색 조건으로 환자 추출 (예: 최근 내원일이 90일 이상 지난 환자)
- 결과 표에서 발송할 환자 체크박스 선택 (또는 전체 선택)
- 하단 "SMS 발송" 버튼
- SMS 발송 모달 열림 → 메시지 작성 → 발송
- 발송 이력은 메시지 > SMS 발송 이력에서 확인
시나리오 3 — 엑셀 다운로드¶
검색 결과를 엑셀로 받기
- 검색 조건 입력
- 결과 표 확인
- 하단 "엑셀 다운로드" 버튼 → 현재 검색 조건 기준 .xlsx 파일 다운로드
시나리오 4 — 중복 환자 정리 (정합성 봇 7번 대응)¶
정합성 봇 알림 — 환자 중복
매일 06:00 봇이 보내는 메시지 예:
중복 환자 정리 단계
- 봇 메시지의 이름/번호로 환자 검색
- 동명이인 목록 확인
- 각 환자를 클릭하여 차트/예약/결제 활동 여부 확인
- 활동 데이터가 있는 환자: 1명만 남김
- 활동 데이터가 없는 빈 환자: 정리 대상
- 빈 환자 체크박스 선택
- 하단 "선택환자 삭제" 버튼 클릭
- 확인 모달 → 삭제 처리 (
patient.status='deleted'soft delete) - 다음날 06:00 정합성 봇에서 자동 사라짐
활동 있는 환자는 삭제 금지
차트/예약/결제가 묶인 환자를 잘못 삭제하면 데이터가 사라집니다. 확인 후 신중히 진행하세요. 선택삭제는 Level 1~2 관리자 권한이 필요합니다.
둘 다 활동 있는 경우
같은 환자가 두 번 등록되어 양쪽 모두 차트/결제가 있다면 자체 처리 어렵습니다. #dev 슬랙 채널에 환자 정보 전달하시면 개발팀이 데이터 병합 처리해 드립니다.
시나리오 5 — 환자 상세 검색 (PatientDetailSearchPage)¶
더 정교한 조건(생일, 보험 유형, 진료 분야, 진료 의사 등)으로 검색하려면 환자관리 > 환자 상세 검색 페이지를 이용하세요. 다양한 조건 조합 + DM 다운로드 + 일괄 SMS/카카오 발송이 가능합니다.
권한별 차이¶
| 기능 | 권한 |
|---|---|
| 환자 검색 / 조회 | 🟢 모든 직원 |
| 환자 상세 정보 보기 | 🟢 모든 직원 |
| 차트 진입 | 🟢 모든 직원 |
| 일괄 SMS/카카오 발송 | 🟢 모든 직원 |
| 엑셀 다운로드 (개인정보 포함) | 🟡 level 4 (부서 제한 적용) |
| 선택환자 삭제 (bulkDelete) | 🔴 Level 1~2 (실장/부원장) |
| 환자 정보 수정 | 🟢 모든 직원 |
자동 검증 (정합성)¶
환자 검색에서 처리 가능한 정합성 봇 알림:
| 검사 번호 | 내용 | 처리 |
|---|---|---|
| 7 | 환자 중복 (같은 이름+번호 2명 이상) | 시나리오 4 참조 — 빈 환자 식별 후 선택삭제 |
→ 정합성 봇이 매일 06:00에 환자 중복 자동 점검. 2026-05-01 fix(work-item 23)로 deleted 환자는 검사에서 제외되어, 한 번 정리한 환자는 다시 알림 안 옴.
자주 발생하는 문제 / FAQ¶
Q1. 같은 이름 환자가 여러 명 검색돼요. A. 동명이인입니다. 휴대폰 뒷자리 4자리 또는 차트번호로 더 정확히 검색하세요. 또는 결과 표에서 등록일/최근 내원일 등을 보고 구분하세요.
Q2. 환자가 분명 등록되어 있는데 검색이 안 돼요. A. 다음 항목을 확인하세요. 1. 검색 종류(searchType)가 맞는지 (이름인데 휴대폰으로 검색하고 있는지) 2. 날짜 범위가 너무 좁은지 (전체 기간이면 비워두세요) 3. 환자가 status='deleted'로 처리됐는지 (이 경우 검색 결과 미표시) 4. 부서별 권한 제한 (CS팀/상담사는 본인 담당 환자만 보임 — level 4 부서 제한)
Q3. 휴대폰 번호 뒷자리로 검색했는데 너무 많이 나와요. A. 4자리만으로는 부족할 수 있습니다. 5-6자리로 늘리거나 이름과 함께 검색하세요. 또는 환자 등록 시점(날짜)을 한정해서 검색하세요.
Q4. 선택삭제 버튼이 비활성화되어 있어요. A. Level 1~2 관리자 권한이 필요합니다. 일반 직원은 빈 환자 식별까지만 가능하고, 삭제는 실장/부원장에게 요청하세요.
Q5. 동명이인 환자 4명 중 누가 빈 환자인지 어떻게 알아요? A. 각 환자를 클릭하여 차트 페이지를 보세요. - 빈 환자: 차트 이력 0건, 예약 0건, 결제 0건 - 활동 있는 환자: 차트 또는 결제 이력이 있음
→ 활동 있는 환자 1명만 남기고 나머지를 삭제 대상으로 선택하세요.
Q6. 일괄 SMS 발송했는데 일부 환자에게 안 갔어요. A. 환자 휴대폰 번호가 비어있거나 형식이 잘못되어 있을 수 있습니다. 발송 이력에서 실패 사유를 확인하세요.
Q7. 검색 결과를 한 번에 100명 넘게 보고 싶어요. A. 페이징 설정에서 한 페이지 표시 건수를 늘리거나, 엑셀 다운로드로 전체 결과를 받으시는 게 효율적입니다.
Q8. 환자 검색 페이지가 너무 느려요. A. 검색 조건을 좁혀주세요 (날짜 범위, 키워드). 전체 환자(수만 명) 검색은 시스템 부하가 큽니다.
Q9. 카드 결제 이력이 있는 환자만 보고 싶어요. A. 환자 상세 검색(PatientDetailSearchPage)에서 결제 조건으로 필터링 가능합니다. 또는 매출/결산 메뉴에서 결제일 기준 검색을 이용하세요.
Q10. 환자 정보를 수정하고 싶어요. A. 환자 클릭 → 차트 또는 환자 정보 페이지 → "정보 수정" 버튼. 또는 현황판/예약노트에서 환자 우클릭 → "정보/수정" 메뉴로도 가능합니다.