Skip to content

HBAD230_병동 관리

(Hereby) 관리자 패널 > 인사 관리 > 병동 관리

메타앱: 관리자 패널 (포트 4001)대상 사용자: 조건1 [최고 관리자] / 조건2 [인사 관리자] (권한 "부서 관리" 추정)프로토타입: TBU관련 정책: [[POL_권한(RBAC)]] · [[POL_병동 관리]]Status: reviewOwner: 카나

개요

병동 관리는 병동 마스터(wards)를 관리하는 신규 모듈이다. 병동 목록 + 병동 추가/수정 모달로 구성된다. 병동은 **간호 스케줄러(HBNS)의 원천(SoT)**이며, 병동관리에서 등록된 병동 정보를 기반으로 스케줄러에 병동이 생성된다. 간호사 배치 비율(1:5 / 1:7 / 1:10 등, 추정)·병동별 환자수 관리의 기준이 된다. 병동은 팀(teams)과 별개로 관리한다([[POL_병동 관리]]). 현재 실데이터는 "간호부" 계열 소수 — Nurse Scheduler / 병동 KPI 연결 전 보강 필요.

문서 히스토리

  • 2026-07-06 최초 작성 - 카나/콸
  • 2026-07-13 버튼 행동 명세 보강 - 카나/콸
  • 2026-07-21 GC700 깊이 재작성 (7/16 병동 추가 모달 필드 반영) - 카나/콸
  • 2026-07-30 병동 종류(일반/재활, 배치 기준 키) 컬럼·필드 추가 — [[POL_간호인력·준수율]] 반영 - Claude/dev
  • 2026-07-21 가독성 패스 (GUIDE §7) - 카나/PM
  • 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM
  • 2026-07-31 코드 변경 반영(2c08e21·a6a6ff5) - 카나/PM

Data I/O

Server → Client

변수

메타${ward_list}
메타${ward_status}

Client → Server

액션전달 값tRPC procedure권한 토큰
병동 추가/수정병동명 / 설명 / 상태sdk.ward.upsert() (추정)department:write (라벨 "부서 관리", 추정)
병동 삭제wardIdsdk.ward.delete() (추정)department:write (추정)
상태 토글wardId · isActive(인라인 토글)department:write (추정)

외부 통합 (cross-app)

외부 시스템데이터방향비고
간호 스케줄러 (HBNS)병동 원천 소비 — 병동별 근무표·환자수·간호사 배치 비율Admin(원천) → HBNS(소비)병동관리 등록 시 스케줄러에 병동 생성

메인 화면 사양표 (병동 관리)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-조건1 [부서 관리/조회 권한(추정)] 보유 시 사이드바 인사 관리 > "병동 관리" 노출. 미보유 시 hide[[HBAD100_App Shell·사이드바]]신규 모듈 · 권한 매핑 추정
01초기 상태Output• "병동 목록" 표시 (필터 "전체")
10병동 목록Grid• 병동을 나열하는 그리드. 컬럼: 병동명 / 설명 / 종류 / 상태 / 관리 + 활성 배지. 행 순서: 추가 병동은 최상단 정렬wards종류 컬럼 추가(2c08e21)
ㄴ10a종류 컬럼Output• 병동 종류(케어 타입) 표시 열. 값: "일반병동" / "재활병동" / 미지정 시 "-"
• 인력 배치 기준 표(일반/재활) 선택 키 ([[POL_간호인력·준수율]])
wards.schedulingConfig.wardCareType신규(2c08e21)
10-E목록 EmptyState${ward_list} 0건 시 Empty. 원문 "등록된 병동이 없습니다. 상단에서 '병동 추가'를 클릭하세요."
• 검색·필터 결과 0건 시: "검색 결과가 없어요."
wards 부재Empty 원문 확인(2c08e21)
ㄴ11상태 배지/토글Toggle• 병동 활성/비활성 배지
• 클릭 시: 상태 인라인 토글
 - CASE01 [활성→비활성]: 회색 처리, 관리 화면 외 비노출(정책)
 - CASE02 [비활성→활성]: 정상 노출
wards.isActive7/10 확인
ㄴ12편집Button• 관리 열의 병동 수정 진입 버튼. 원문 "편집"
• 클릭 시: "병동 수정" 모달 노출 (기존값 프리필)
wards
ㄴ13삭제Button• 관리 열의 병동 삭제 버튼. 원문 "삭제"
• 클릭 시: 컨펌 ""{병동명}" 병동을 삭제하시겠습니까?" → 실행
wards삭제 컨펌 7/10 확인
20검색Search• 병동명·설명으로 목록을 거르는 검색. placeholder "병동명 / 설명"
• 입력 시: 목록 재조회. CASE01 [결과 없음]: "검색 결과가 없어요."
목록 재조회결과 없음 원문 확인(2c08e21)
30병동 추가Button• 새 병동을 생성하는 진입 버튼. 원문 "병동 추가"
• 클릭 시: "병동 추가" 모달(병동 폼) 노출
35병동 설정Button• 스케줄러의 "병동 관리 및 설정" 팝업을 이 화면에서 여는 버튼. 원문 "병동 설정"(title "병동 관리 및 설정")
• 클릭 시: 병동 설정 팝업 노출(스케줄러 모달 재사용). 팝업에서 병동 추가/수정/활성 전환 가능, 닫히면 목록 새로고침
[[HBNS000_간호 스케줄러 (앱 개요)]]신규(a6a6ff5) · 스케줄러 모달 브리지
40HBNS 원천 관계-• 병동은 간호 스케줄러 원천 — 근무표·환자수 관리·간호사 배치 비율 기준. 병동관리 등록 시 스케줄러 병동 생성[[HBNS000_간호 스케줄러 (앱 개요)]]cross-app

병동 추가·수정 모달 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-• "병동 추가"(신규) 또는 관리 열 "편집"(수정) 클릭 시 노출. 제목: "병동 추가" / "병동 수정"추가/편집 공용
10병동명 *Input• 병동 이름을 지정하는 필수 항목. 원문 "병동명 *", placeholder "병동명"
• 입력 시: 미입력이면 확정 버튼 비활성
wards.name필수
20설명Input• 병동 설명을 기록하는 선택 항목. 원문 "설명", placeholder "설명"
• 입력 시: 설명 기록
wards.description (추정)
25병동 종류Dropdown• 인력 배치 기준 표(일반/재활)를 고르는 선택 항목. 라벨 "병동 종류". 옵션: "미지정"(value 없음, 기본) / "일반병동" / "재활병동"
필수 아님 — 미지정 = 배치 기준 미적용(중환자실 등). 미지정으로 되돌리기 가능
• 드롭다운 아래 notice(--info, 아이콘 off) 고정: "인력 배치 기준(일반/재활병동)을 고르는 기준입니다. 해당 없는 병동(중환자실 등)은 미지정으로 두세요 — 배치 기준을 적용하지 않습니다."
wards.schedulingConfig.wardCareType · [[POL_간호인력·준수율]]신규(2c08e21) · HBNS240 ①병동 관리와 동일 데이터
30상태Dropdown• 병동 활성/비활성 상태를 지정하는 드롭다운
• 선택 시: 상태 확정. 미선택 시 기본 "활성"
wards.isActive
40취소Button• 변경 없이 모달을 닫는 버튼. 원문 "취소"
• 클릭 시: 모달 닫힘(미저장)
ds-btn (스타일 마이그레이션 7/16)
50생성/저장Button• 입력값으로 병동을 확정하는 버튼. 라이브 확정 버튼명 "생성"(추가) / "저장"(수정). 활성화 조건: 병동명 입력(수정은 수정 내역 존재)
• 클릭 시: 즉시 실행(wards 생성/갱신)
 - CASE01 [추가 성공]: 목록 최상단 반영
 - CASE02 [수정 모달]: 버튼명 "저장"으로 갱신 실행
wards버튼명 "생성" 7/10 확인 · TBU: 저장 실패 · ds-btn

병동 ↔ 간호 스케줄러 관계

항목Admin(원천)HBNS(소비)
병동 마스터병동명/설명/상태 정의 (SoT)근무표·환자수 관리 대상 병동 참조
병동 종류케어 타입(일반/재활) 정의 — 배치 기준 표 선택 키 (SoT)인력 배치 기준·간호등급 산정 분기
간호사 배치 비율병동 속성 (1:5/1:7/1:10 추정)AI 자동생성 근무표 제약
환자수 일괄 입력(스케줄러 병동 설정/환자수 팝업에서 입력)"일괄 입력" 팝업 — 병동별 환자수 대량 입력, 출처(BULK) 기록 (HBNS 소관)

비고: 간호관리료/입원료 차등제 등급표(A·1~6등급, 요양병원 별도 표)는 정본 상수로 내장돼 resolveNursingGrade가 산정하며(자료에 없는 종별은 일반병동 표 폴백), 등급 배지가 등급표를 소비한다 — 본 화면(병동 관리)에는 등급 표시 위치 없음. 환자수 일괄 입력 팝업·배치 기준 3필드(간호조무사·병동지원·재활지원) 상세는 스케줄러(HBNS) 소관.

권한·상태 분기 요약

시나리오트리거결과 화면비고
CASE01 [병동 조회]화면 진입병동 목록 표시권한 "부서 조회" (추정)
CASE02 [병동 추가]병동명* 입력 → "생성"wards 생성 (활성), 목록 최상단권한 "부서 관리" (추정)
CASE03 [병동 수정]"편집" → 수정 → "저장"wards 갱신
CASE04 [상태 토글]상태 배지 클릭활성/비활성 인라인 전환비활성 시 타 화면 비노출(정책)
CASE05 [병동 삭제]"삭제"컨펌 ""{병동명}" 병동을 삭제하시겠습니까?" → 삭제7/10 확인

Open Question

구분미확인 항목
스케줄러 연동병동 ↔ 간호 스케줄러 배치 비율(1:5/1:7/1:10) 룰 연결
병동↔팀병동 ↔ 팀(teams, 간호부 하위) 관계 정의 — 정책상 "팀과 별개 관리"이나 실제 매핑
권한병동 권한 토큰 (부서 리소스 매핑 추정)
목록 Empty병동 목록 Empty 원문 문구
검색검색 결과 없음 원문 문구
모달 저장병동 추가/수정 저장 실패 에러 동작 (라이브 프로브 없음)
KPI병동 KPI/환자수 원천 흐름 상세