HBNS250_병동 탭·다중 병동
(Hereby) 팀 관리(team-manager) > 간호 스케줄러 > 병동 탭·다중 병동
| 앱 | 간호 스케줄러 (team-manager 내장, 포트 4004) |
| 대상 사용자 | 조건1 [간호 관리자] · 조건2 [수간호사] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_간호인력·준수율]] · [[POL_간호스케줄 Lifecycle]] |
| Status | draft |
| Owner | 카나 |
개요
- 병동 전환 UX를 정의한다. 병동 탭 = "간호부 (IMPORT-간호부-mnfstwmd)" / "1 (WARD_1783324323706)".
- 병동 탭은 두 원천으로 구성된다:
- Admin 병동 IMPORT — [[HBAD230]]에서 생성된 병동,
IMPORT-접두. - NS 자체 병동 — ⚙ "병동 관리 및 설정" 모달([[HBNS240]])에서 병상수·순서를 관리하는 CRUD 대상,
WARD_접두.
- Admin 병동 IMPORT — [[HBAD230]]에서 생성된 병동,
- NS 자체 병동은 "부서와 별개"의 개념(물리적 입원 단위)으로 관리된다 — [[HBNS240]] ①병동 관리 탭에서 코드/병동명/병상수/순서/상태를 CRUD한다.
- 스케줄은 병동별로 분리된다(
nurse_schedules.wardId단위). 병동 전환 시 근무표·환자수·준수율이 선택 병동 컨텍스트로 전환된다. - 탭 구조상 [[HBNS100]] 헤더 · [[HBNS200]] 그리드가 선택 병동 컨텍스트를 소비한다.
- ERD:
wards ||--o{ nurse_schedules(병동 1 : 스케줄 N).
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
${jwt_session} | (인증 세션 — 간호 관리자/수간호사) | /nurse-scheduler/signin 리다이렉트 | 미인증 시 탭 노출 불가 |
${ward_tabs} | wards[] (displayOrder 정렬) | 빈 탭(-E) | "간호부 (IMPORT-간호부-mnfstwmd)" / "1 (WARD_1783324323706)" |
${selected_ward} | wards.id (현재 선택 병동 컨텍스트) | 기본 첫 병동(displayOrder 최상단) 추정 | 선택 상태 유지 규칙 TBU |
${schedule} | nurse_schedules (wardId 단위) + 상태 배지 | 빈 근무표(초안) | 병동별 분리 |
${today_census} | ward_daily_records.patientCount | 0 또는 미입력 표시 | 선택 병동 당일 환자수 |
${compliance} | (비율 충족도 — 준수율) | 계산 불가 시 처리 TBU | "준수율 25%에서 100%". 비율 원천 = [[HBNS240]] ②인력 설정 |
Client → Server
| 액션 | 전달 값 | tRPC/SDK | 권한 토큰 |
|---|---|---|---|
| 병동 탭 전환 | wardId | 선택 병동 근무표·환자수·준수율 재로드 (procedure TBU) | schedule:read.org (TBU) |
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 동기/비동기 | 비고 |
|---|---|---|---|
| Admin 병동 관리 [[HBAD230]] | Ward 마스터 (IMPORT- 접두) | 동기 IMPORT | 생성 병동이 탭으로 반영 |
| NS 자체 병동 [[HBNS240]] | WARD_ 접두 병동 (병상수·순서) | 동기 | ⚙ 모달 CRUD 결과가 탭으로 반영 |
화면 플로우 (상태 머신)
병동 탭 = 다중 병동 전환의 단일 진입점. 스케줄은 병동별 분리(nurse_schedules.wardId), 헤더·그리드가 선택 병동 컨텍스트를 소비한다.
병동 탭·다중 병동 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | • 조건1 [간호 관리자] · 조건2 [수간호사] 인증 시 노출- CASE01 [ ${jwt_session} 없음]: /nurse-scheduler/signin 리다이렉트 | 인증 세션 | TBU: 조건3 [간호사] 탭 노출 범위 |
| 10 | 병동 탭 | Tab | • 병동을 전환하는 탭 "간호부 (IMPORT-간호부-mnfstwmd)" / "1 (WARD_1783324323706)" • 클릭 → 선택 병동 전환(근무표·환자수·준수율 재로드), 활성 탭 강조 | [[HBNS100]] 헤더 | displayOrder 정렬, TBU: 재로드 실패 |
| ㄴ10-E | 병동 없음 (Empty) | - | • 병동 0건(Admin IMPORT·NS 자체 모두 없음) → 병동 탭 미표시 | TBU: 표시 문구·근무표 영역 처리 | |
| ㄴ11 | 탭 반영 원천 | - | 두 원천 — Admin 병동 IMPORT([[HBAD230]], IMPORT- 접두) + NS 자체 병동(⚙ 모달 CRUD, WARD_ 접두) | [[HBAD230]] / [[HBNS240]] | Admin IMPORT + NS 자체 |
| ㄴ12 | NS 자체 병동 | - | ⚙ "병동 관리 및 설정" 모달에서 병상수·순서 관리. "부서와 별개" 물리적 입원 단위 | [[HBNS240]] ①병동 관리 | NS CRUD |
| 20 | 병동별 스케줄 분리 | - | 스케줄은 병동 단위로 분리 (nurse_schedules.wardId). wards ||--o{ nurse_schedules. 근무표 미존재 시 초안(빈 근무표) 노출 | [[POL_간호인력·준수율]] | 병동 1 : 스케줄 N |
| 30 | 컨텍스트 전환 | - | 병동 전환 시 근무표·환자수·준수율이 선택 병동 컨텍스트로 전환. 상태 배지(초안/AI 생성/수정 중/확정/공유됨) 병동별 독립 유지 | [[HBNS100]] / [[HBNS200]] | TBU: 미저장 편집 상태에서 병동 전환 시 처리 |
| ㄴ31 | 헤더 소비 | - | 헤더(기간·상태 배지·환자수)가 선택 병동 컨텍스트 소비 | [[HBNS100]] 헤더 | |
| ㄴ32 | 그리드 소비 | - | 그리드(근무표·지표 바 준수율)가 선택 병동 컨텍스트 소비 | [[HBNS200]] 그리드 |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 권한 | 비고 |
|---|---|---|---|---|
CASE01 [병동 탭 전환] | 병동 탭 클릭 | 선택 병동 근무표·환자수·준수율 재로드 | 조건1 [간호 관리자] / 조건2 [수간호사] | |
CASE02 [Admin 병동 IMPORT] | Admin 병동 생성 ([[HBAD230]]) | 스케줄러 병동 탭에 IMPORT 반영 | (Admin 원천) | 원천=Admin, IMPORT- 접두 |
CASE03 [NS 자체 병동] | ⚙ 모달 "+ 병동 추가" ([[HBNS240]]) | NS 자체 병동 탭 추가 (병상수·순서) | 조건1 [간호 관리자] | 부서와 별개, WARD_ 접두 |
CASE04 [병동 없음] | 병동 0건 | 병동 탭 미표시 (Empty 처리 TBU) | - |
Open Question
- 병동 전환 시 미저장 편집 상태 유지/경고 여부 = TBU
- 병동 탭 정렬/표시 규칙(displayOrder vs code) = TBU
- "간호부"(IMPORT- Admin 원천)와 NS 자체 병동(WARD_ ⚙ 모달 CRUD)의 병합·중복 처리 규칙 = TBU
- 기본 선택 병동 결정 규칙 및 세션 내 선택 병동 유지 여부 = TBU
- 병동 0건(Empty) 시 근무표 영역·안내 문구 처리 = TBU
조건3 [간호사]의 병동 탭 노출 범위 = TBU- 병동 탭 전환 재로드 실패 시 에러 처리 = TBU