Skip to content

HBNS240_병동 관리·설정 ​

(Hereby) 팀 관리(team-manager) > 간호 스케줄러 > 병동 관리·설정

앱간호 스케줄러 (team-manager 내장, 포트 4004)
대상 사용자조건1 [간호 관리자] · 조건2 [수간호사]
프로토타입TBU
관련 정책[[POL_간호스케줄 Lifecycle]] · [[POL_간호인력·준수율]]
Statusdraft
Owner카나

개요 ​

  • 헤더 ⚙ = "병동 관리 및 설정" 모달 진입 화면을 정의한다.
  • [2026-09-15 병동 관리 탭 제거·admin 단일화(63cba75)] 팝업의 「병동 관리」 탭과 쓰지 않던 병동 관리 모달을 제거했다. 병동 목록·편집(병동 CRUD)은 관리자 앱(admin)의 병동 관리 페이지([[HBAD230]]) 전용으로 단일화되고, 이 팝업은 인력 설정 탭으로 열린다. 팝업 안내 문구도 관리자 앱 병동 관리 페이지를 가리키도록 바뀌었다.
  • 모달은 4탭 구성 — ①인력 설정 ②교대 매핑 ③교육 정책 ④주기 설정 (병동 관리 탭은 admin으로 이관되어 팝업에서 빠짐).
  • 병동 CRUD는 이제 admin [[HBAD230]] 병동 관리 페이지에서만 한다. NS 자체 병동이라는 별도 개념은 admin 병동 관리로 흡수되었고, 스케줄러는 admin 병동을 참조·소비한다.
  • ①인력 설정: 병원 전체 정책. 간호사/조무사/간병인 비율 + 배치 기준 3필드(간호조무사·병동지원인력·재활지원인력, 1인당 환자 수) — 간호등급·준수율 계산의 원천.
  • ②교대 매핑: 배정(D/E/N) → 실제 근무시간(Shift) 대응. [[HBAD260]] 근무 유형을 소비하고 HBHR 급여와 연동하는 고리.
  • ③교육 정책: "교육 근무 인정 (work_counted)" vs "교육 휴무 (off)" 2모드.
  • ④주기 설정: 근무표 주기 "매월 1일 ~ 말일 (월력 기준)", 병원 전체 정책.
  • ERD: wards(code / name / schedulingConfig jsonb / displayOrder)가 병동 마스터. 병동 CRUD는 admin [[HBAD230]] 병동 관리 페이지 전용(이 팝업의 병동 관리 탭은 2026-09-15 제거). 근무 그룹·유형(shifts / shift_groups)은 [[HBAD260]] 근무 설정이 원천이다.

문서 히스토리 ​

날짜작성자팀변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-07-21카나PMTC 크로스체크 확정분 반영 (🟡 — nurseScheduler.ward.create·wardSettings.update 확정 등)
2026-07-30Claudedev병동 종류(배치 기준 키) 컬럼·선택 추가, ②인력 설정에 배치 기준 3필드 추가 — [[POL_간호인력·준수율]] 반영
2026-08-18카나라이브 재검증 정정okbest dev 라이브 실측: ①병동 테이블에 "종류" 컬럼 미노출(라이브 6컬럼 = 코드/병동명/병상수/순서/상태/작업), 병동 종류 선택 UI 부재. ②인력 설정에 "배치 기준 (1인당 환자 수)" 3필드 미노출(라이브는 간호사비율 D/E/N + 조무사(간호사대비) + 간병인(환자대비)만). 2026-07-30 추가분이 이 dev 환경에 미배포 상태 — 스펙은 의도 유지하되 라이브 미반영 명시
2026-09-15카나콸병동 관리 탭 제거·admin 단일화(63cba75): 팝업 「병동 관리」 탭·병동 관리 모달 제거, 병동 CRUD는 admin [[HBAD230]] 전용. 모달 5탭→4탭(인력 설정/교대 매핑/교육 정책/주기 설정). 팝업은 인력 설정 탭으로 열림
2026-09-15카나콸병동 코드 검증 규칙 반영(1e70fde): 코드 없이 병동 생성 시 WARD_ 코드 자동 부여·중복 상시 검사 (병동 CRUD 자체는 admin [[HBAD230]]로 이관)

Data I/O ​

Server → Client ​

변수DB 엔티티.컬럼값 없을 때비고
${jwt_session}(인증 세션 — 간호 관리자/수간호사)/nurse-scheduler/signin 리다이렉트미인증 시 모달 진입 불가
${wards}wards[] (code / name / displayOrder)빈 테이블(-E)"1 (WARD_...)" / "간호부 (IMPORT-간호부-...)"
${scheduling_config}wards.schedulingConfig (jsonb)기본값 적용 (구조 TBU)비율 규칙·교대 매핑·교육·주기 저장 구조 = TBU
${shift_groups}shift_groups / shifts빈 select 옵션[[HBAD260]] 원천
${staffing_ratio}wards.schedulingConfig 내 비율 (D/E/N·조무사·간병인) — 추정미설정 시 준수율 계산 불가 (TBU)간호등급·준수율 원천

Client → Server ​

액션전달 값tRPC/SDK권한 토큰
병동 추가/수정/삭제(병동 마스터)admin [[HBAD230]] 병동 관리 페이지로 이관(2026-09-15 63cba75) — 이 팝업에서는 병동 CRUD를 하지 않음. 코드 없이 생성 시 WARD_ 자동 부여·중복 상시 검사(1e70fde)(admin 병동 관리 권한)
인력 설정 저장{ wardId, settings:{ bedCount, staffingRatios:{ day, evening, night } } }nurseScheduler.wardSettings.update() (TC 확정: 04:4.2/4.6)ward:write.org (TBU)
교대 매핑 저장{ slotType → shiftId }[](procedure TBU)(TBU)
교육 정책 저장{ mode: work_counted | off }(procedure TBU)(TBU)
주기 설정 저장{ cycleType: monthly }(procedure TBU)(TBU)

외부 통합 (cross-app) ​

외부 시스템데이터동기/비동기비고
Admin 병동 관리 [[HBAD230]]Ward 마스터 (IMPORT- / WARD_ 접두)동기병동 CRUD 전용 → 병동 탭 반영 (63cba75)
Admin 근무 설정 [[HBAD260]]근무 그룹·유형 (shifts / shift_groups)동기②교대 매핑 select 옵션 원천
HBHR 급여교대 매핑(Shift) + 교육 정책(work_counted)비동기급여·출퇴근 시간 산정 소비처

화면 플로우 (상태 머신) ​

⚙ = "병동 관리 및 설정" 4탭 모달(2026-09-15 병동 관리 탭 제거 후). 병동 CRUD는 admin [[HBAD230]] 병동 관리 페이지 전용, 인력 설정이 준수율 원천, 교대 매핑이 [[HBAD260]]→HBHR 급여 고리다.

병동 관리 및 설정 모달 (진입) ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-• 조건1 [간호 관리자] · 조건2 [수간호사] 인증 시 헤더 ⚙ 노출
 - CASE01 [${jwt_session} 없음]: /nurse-scheduler/signin 리다이렉트
인증 세션TBU: 조건3 [간호사] 진입 여부
10⚙ 병동 관리 및 설정Button (Icon)• 클릭 → "병동 관리 및 설정" 4탭 모달 오픈, 인력 설정 탭으로 열림(2026-09-15 63cba75)[[HBNS100]] 헤더병동 관리 탭은 admin [[HBAD230]]으로 이관·제거·TBU: 로드 실패 동작
ㄴ114탭 헤더Tab• ①인력 설정 ②교대 매핑 ③교육 정책 ④주기 설정 4탭 헤더(병동 관리 탭 제거 후)
• 탭 전환 → 해당 탭 표시, 활성 탭 강조
5탭→4탭(63cba75)·TBU: 탭 전환 시 미저장 편집 유지 여부
20모달 닫기Button• 클릭 → 모달 종료, 그리드 복귀TBU: 미저장 변경 존재 시 경고 여부

병동 관리 탭 (2026-09-15 제거 — admin 이관) ​

[2026-09-15 63cba75] 이 팝업의 「병동 관리」 탭과 병동 관리 모달은 제거되었다. 병동 목록·추가·수정·삭제(병동 CRUD)는 이제 관리자 앱(admin)의 병동 관리 페이지([[HBAD230]]) 전용이다. 팝업은 인력 설정 탭으로 열리고, 안내 문구는 admin 병동 관리 페이지를 가리킨다. 병동 마스터(코드/병동명/병상수/순서/상태/종류)의 화면 사양은 [[HBAD230]]을 참조한다. 병동 코드 검증(코드 없이 생성 시 WARD_ 자동 부여·중복 상시 검사, 1e70fde)도 서버 규칙으로 admin 병동 생성에 적용된다.

① 인력 설정 탭 ​

안내: "병원 전체 정책 — 모든 병동에 동일하게 적용됩니다." (간호등급·준수율 계산 원천)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
10안내 문구Text"병원 전체 정책 — 모든 병동에 동일하게 적용됩니다." 고정 표시원문 카피
20간호사 1인당 환자 비율Input• 주간 D / 저녁 E / 야간 N 3개 값을 입력하는 비율 필드 (간호등급·준수율 계산 원천). 안내 "예: 주간 5 = 환자 5명당 간호사 1명 필요"
• 입력 → 준수율 계산 기준값 반영
준수율 계산 기준값원문 카피·TBU: 미설정 시 산출 불가 처리·0/음수/비숫자 검증
30조무사 비율Input• 간호사 대비 비율을 입력하는 필드. 안내 "예: 0.5"
• 입력 → 비율 반영
원문 카피·TBU: 미설정 처리
40간병인 비율Input• 환자 대비 비율을 입력하는 필드. 안내 "예: 0.3"
• 입력 → 비율 반영
원문 카피·TBU: 미설정 처리
45배치 기준 (1인당 환자 수)Input⚠ 2026-08-18 라이브 미노출 — 이 dev 환경 ②인력 설정에는 간호사비율(D/E/N)·조무사(간호사대비)·간병인(환자대비)만 존재. (스펙 의도: 간호조무사/병동지원인력/재활지원인력 3필드 — 라이브 미반영)
• 0/빈 값 = 미설정(null-unset). 50 「인력 설정 저장」에 포함 저장
[[POL_간호인력·준수율]]2026-07-30 추가분이 라이브 미배포
50인력 설정 저장Button• 간호사/조무사/간병인 비율을 저장하는 버튼 (조건1 [간호 관리자] 실행)
• 클릭 → 비율 저장(즉시 실행), 성공 시 준수율·간호등급 재계산 반영([[HBNS100]] 지표 바)
[[POL_간호인력·준수율]] · [[HBNS100]]병원 전체 정책·TBU: 저장 실패(토스트/롤백)·수간호사 권한

② 교대 매핑 탭 ​

안내: "각 근무형태의 배정(D/E/N)에 대응하는 실제 근무시간(Shift)을 설정합니다. 급여 계산 및 출퇴근 시간 산정에 사용됩니다."

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
10안내 문구Text"각 근무형태의 배정(D/E/N)에 대응하는 실제 근무시간(Shift)을 설정합니다. 급여 계산 및 출퇴근 시간 산정에 사용됩니다." 고정 표시HBHR 급여원문 카피
20근무형태별 슬롯 매핑Select• 슬롯(주간 / 주말 주간 / 초번(E) 등)에 Admin 근무 유형으로 실제 Shift를 대응시키는 매핑
• select → 슬롯별 Shift 대응 지정
 - CASE01 [${shift_groups} 비어있음]: 옵션 없음 → [[HBAD260]] 선등록 필요 (아래 20-E)
[[HBAD260]] / HBHR 급여Admin 근무 유형 소비(일반근무/3교대 D·E·N/스포츠/스케줄 등)·TBU: 미매핑 슬롯 처리·저장 실패
ㄴ20-E근무 유형 없음 (Empty)-• [[HBAD260]] 근무 유형 미등록 → select 옵션 0건[[HBAD260]]Empty·TBU: 안내 문구
30교대 매핑 저장Button• 슬롯→Shift 매핑을 저장하는 버튼 (조건1 [간호 관리자] 실행)
• 클릭 → 매핑 저장
HBHR 급여NS→HR 급여 연동 고리·TBU: 즉시 실행 여부·저장 실패·수간호사 권한

③ 교육 정책 탭 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
10교육 근무 인정 (work_counted)Radio/Toggle• 교육 근무를 급여에 포함하는 모드 선택
• 선택 → 급여 포함(예: 주간 교육 → D교육 → 주간 정규 Shift 급여 산정)
HBHR 급여원문 카피 "교육 근무 인정 (work_counted)"
20교육 휴무 (off)Radio/Toggle• 교육 근무시간을 0 처리하는 모드 선택
• 선택 → 근무시간 0, 교육수당 별도
HBHR 급여원문 카피 "교육 휴무 (off)"
30교육 정책 저장Button• 선택 모드(work_counted/off)를 저장하는 버튼 (조건1 [간호 관리자] 실행)
• 클릭 → 정책 저장(즉시 실행)
HBHR 급여2모드 택1·TBU: 모드 미선택 저장·저장 실패·수간호사 권한

④ 주기 설정 탭 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
10근무표 주기Select/Text• 근무표 주기를 고르는 컨트롤 "매월 1일 ~ 말일 (월력 기준)"
• select → 주기 선택
[[POL_간호스케줄 Lifecycle]]병원 전체 정책·원문 카피·TBU: 다른 주기 옵션 존재 여부
20적용 안내Text"변경 시 새로 생성되는 근무표에만 적용되며, 기존 근무표는 영향받지 않습니다." 고정 표시원문 카피
30주기 설정 저장Button• 근무표 주기를 저장하는 버튼 (조건1 [간호 관리자] 실행)
• 클릭 → 주기 저장. 변경 시 신규 생성 근무표에만 적용, 기존 근무표 불변
[[POL_간호스케줄 Lifecycle]]TBU: 즉시 실행 여부·저장 실패·수간호사 권한

원천 참조 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
10병동 마스터 원천-병동 CRUD는 admin [[HBAD230]] 병동 관리 페이지 전용(이 팝업의 병동 관리 탭은 2026-09-15 제거·admin 단일화). 코드 없이 생성 시 WARD_ 자동 부여·중복 상시 검사(1e70fde)[[HBAD230]]병동 관리 탭 제거(63cba75)
20근무 유형 원천-근무 그룹·유형(shifts / shift_groups)은 Admin 근무 설정이 원천 — ②교대 매핑에서 소비[[HBAD260]]

권한·상태 분기 요약 ​

시나리오트리거결과권한비고
CASE01 [설정 진입]헤더 ⚙"병동 관리 및 설정" 4탭 모달 진입(인력 설정 탭으로 열림)조건1 [간호 관리자] / 조건2 [수간호사]병동 관리 탭 제거·admin 이관
CASE02 [병동 CRUD]admin 병동 관리 페이지병동 생성/편집/삭제 (코드/병동명/병상수/순서/상태)(admin 권한)admin [[HBAD230]] 전용
CASE03 [인력 설정 저장]① "인력 설정 저장"간호사/조무사/간병인 비율 저장 → 준수율·간호등급 계산 기준값조건1 [간호 관리자]병원 전체 정책
CASE04 [교대 매핑]② 근무형태 슬롯 select배정 D/E/N → 실제 Shift 대응 저장조건1 [간호 관리자][[HBAD260]] 소비 / HBHR 급여
CASE05 [교육 정책]③ "교육 정책 저장"work_counted / off 2모드 저장조건1 [간호 관리자]HBHR 급여
CASE06 [주기 설정]④ "주기 설정 저장"매월 1일~말일 주기 저장(신규 근무표부터 적용)조건1 [간호 관리자]기존 근무표 불변

Open Question ​

  • 인력 설정 비율(간호사 D/E/N · 조무사 · 간병인)의 준수율·간호등급 산출식 = TBU
  • wards.schedulingConfig jsonb 스키마 상세(교대 매핑·교육 정책·주기 저장 구조) = TBU
  • 병동 관리 탭 제거(63cba75) 후 스케줄러 팝업과 admin [[HBAD230]] 병동 관리 페이지 간 편집 권한 경계·병동 종류/배치 기준 필드의 admin 화면 반영 여부 = TBU (라이브 미실사)
  • 저장 procedure: 인력 설정 nurseScheduler.wardSettings.update 확정 (TC 04:4.2/4.6); 교대 매핑·교육·주기 저장 procedure 및 각 즉시 실행 여부·에러 처리(토스트/롤백) = TBU
  • 모달 활성 기본 탭(현재 인력 설정으로 열림)·탭 전환 시 미저장 편집 유지·경고 여부 = TBU
  • 조건2 [수간호사]의 설정 저장 권한 범위 = TBU