Skip to content

HBNS200_근무표 그리드

(Hereby) 팀 관리(team-manager) > 간호 스케줄러 > 근무표 그리드

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

개요

  • "📋 근무표" 뷰의 메인 근무표 그리드. 행=간호사(성명+사번)·근무형태, 열=일자(요일) 의 월 단위 매트릭스에 3교대 셀 코드(D/E/N/OFF/연차/교육)를 배정한다.
  • 상단 지표 바(간호등급/준수율/간호사 수/환자 수)와 하단 일별 합계 행(D/E/N 카운트)이 그리드를 감싼다. 준수율은 라이브 실측 25%(빨강)에서 100% 범위로 표시된다.
  • 셀 편집은 키보드 단축 입력 방식이다 — 셀 클릭 시 파란 선택 테두리가 노출되고, d/e/n 등 키 입력으로 즉시 배정이 바뀐다(별도 팝업·드롭다운 없음, 검증 완료). 편집 시 상태 배지가 CASE03 [수정 중] 으로 전이한다.
  • 배정은 nurse_schedule_entries(assignmentType/shiftId/isAiGenerated/isManualOverride)에 기록된다.
  • 그리드 상단 액션바의 AI 자동생성([[HBNS201]]) 이 전체 셀을 편성하고, 확인([[HBNS202]]) 이 확정으로 전이한다. 업로드·인쇄·출근현황 3유틸은 [[HBNS203]].
  • 셀 색 코딩: D 노랑 / E 초록 / N 보라 / OFF 회색. 요일 색은 토 파랑 / 일 빨강으로 정합화한다.

문서 히스토리

날짜작성자변경 내용
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.* 네임스페이스, 엔트리 검증 흐름 신규 추가 등)
2026-07-24카나PM코드 변경 반영(71f134e)

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
${grade}간호등급 (간호관리료 등급 추정)"-" 표시 (실측)원천 산식 TBU
${compliance}준수율 (인력 비율 충족도 계산)빈 근무표 시 "25%"(빨강)25%에서 100% 범위, 25% 빨강
${nurse_count}nurse_profiles count0명"간호사 143명"
${patient_count}월별 환자수 (HBNS230 원천)0명"환자 60명"
${roster}nurse_schedule_entries[] (assignmentType/shiftId/isAiGenerated/isManualOverride)빈 그리드(전 셀 미배정)셀별 D/E/N/OFF/연차/교육
${nurses}nurse_profiles (성명·사번·workType)Empty 행(-E)데이전담/3교대 근무형태
${shift_totals}일별 집계 (D/E/N 카운트)"D:0 E:0 N:0"하단 합계 행
${status_badge}nurse_schedules.status신규 근무표 CASE01 [초안]초안/AI 생성/수정 중/확정/공유됨

Client → Server

액션전달 값tRPC/SDK권한 토큰
셀 배정 편집entryId, assignmentType, shiftIdnurseScheduler.entry.update() (TC 확정: 04:4.6)schedule:write (추정)
간호사 추가간호사 열 "+" → 프로필 등록 동선HBNS210 (nurseScheduler.profile.create, TC 확정: 04:4.1)nurse:write (추정)
AI 자동생성scheduleIdnurseScheduler.schedule.generate({scheduleId}) (TC 확정: 04:4.3, [[HBNS201]])schedule:write (추정)
엔트리 검증scheduleIdnurseScheduler.entry.validate({scheduleId}) — 생성 후·확정 전 엔트리 검증 (TC 확정: 04:4.3)schedule:write (추정)
확인(확정)scheduleIdnurseScheduler.schedule.confirm({scheduleId}) (TC 확정: 04:4.4, [[HBNS202]]) — destructiveschedule:confirm (추정)

외부 통합 (cross-app)

외부 시스템데이터동기/비동기비고
HBNS230 월별 환자수 관리${patient_count} 원천동기 (지표 바 반영)병동·월별 환자수
HBTM 팀결재확정 시 연차 자동생성 → 팀결재 인박스비동기 (확정 부작용)[[HBNS202]] 참조

화면 플로우 (상태 머신 필수)

그리드는 근무표의 정본 편집면. 셀은 draft 편집이며, 확정·게시([[HBNS202]])는 항상 사람이 실행 — destructive. 상태 전이 최종: 초안 → AI 생성 → 수정 중 → 확정 → 공유됨.

근무표 그리드 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-조건1 [간호 관리자] · 조건2 [수간호사] 인증 시 "📋 근무표" 뷰로 노출. 진입 시 로드된 근무표 상태 배지(CASE01 [초안]~CASE05 [공유됨]) 표시인증 세션조건3 [간호사] 접근·편집 권한 TBU (뷰 전용 추정)
01초기 상태-당월·최근 병동 근무표 로드nurse_schedulesTBU: 로드 실패 처리
ㄴ01-E근무표 미생성 월-빈 그리드 로드, 배지 CASE01 [초안]nurse_schedulesAI 자동생성 대기
10지표 바Output"간호등급 -" / "준수율" / "간호사 143명" / "환자 60명" 4지표. 준수율 색 분기: 낮음 빨강 → 충족 초록 (25%에서 100%)준수율 = 비율 충족도 · HBNS23025% 빨강 · TBU: 지표 계산 실패 표시
ㄴ10-E환자수 미입력 월Output"환자 0명" 표시 (HBNS230 원천 부재)HBNS230
20근무표 그리드Grid행=간호사, 열=일자(요일 표시, 토 파랑/일 빨강)의 월 매트릭스nurse_schedule_entries
ㄴ20-E간호사 0명Grid빈 그리드(행 없음) → HBNS210 등록 유도HBNS210TBU: 유도 표기
ㄴ20a미배정 셀Grid공란/OFF 표시TBU: 기본값(공란/OFF)
ㄴ21간호사 열Cell• 행별 간호사 성명 + 사번을 표시하고, "+"로 프로필 등록 동선을 여는 열
• "+" 클릭 → 간호사 프로필 등록 동선 (HBNS210)
HBNS210nurse_profiles · TBU: 등록 권한 역할별 차이
ㄴ22근무형태 열Cell"데이전담" / "3교대" 표시. 근무형태별 AI 편성 패턴 분기([[HBNS201]])nurse_profiles.workType패턴 분기
ㄴ23일자 열Cell일자(요일) 헤더. 토 파랑 / 일 빨강 색상 구분
ㄴ24배정 셀Cell셀 코드 6종: "D"(주간 07-15, 노랑) / "E"(저녁 15-23, 초록) / "N"(야간 23-07, 보라) / "OFF"(회색) / "연차" / "교육"assignmentType / shiftIdD/E/N 시간 추정 · TBU: 연차/교육 색
ㄴ24-E미배정 셀Cell공란 표시TBU: 기본값
ㄴ24a매핑 밖 키 입력Cell매핑 밖 키 무시(추정)
ㄴ25셀 편집 (키보드 단축 입력)Keyboard• 배정 셀을 키보드 단축 입력으로 즉시 편집하는 기능(별도 팝업 없음, 검증됨)
• 셀 클릭 → 파란 선택 테두리 노출
 - 키 입력(d/e/n 등) → 즉시 코드 변경, 배지 CASE03 [수정 중] 전이 + 하단 합계 재계산
nurseScheduler.entry.update() (TC 확정: 04:4.6)isManualOverride 기록 추정
ㄴ25a확정·공유 상태 잠금KeyboardCASE04 [확정]·CASE05 [공유됨] 상태 = 키 입력 무시(셀 편집 잠금, 검증됨)[[HBNS202]]TBU: 저장 실패 피드백
30일별 합계 행Output그리드 하단 일자별 "D:0 E:0 N:0" 카운트(교대 분포). 셀 편집·AI 생성 시 재계산배정 0 = "D:0 E:0 N:0"
ㄴ30a월 간호사:환자 비율Output• 합계행에 이번 달(주기) 간호사:환자 월 집계 비율을 추가 표기 (monthlyNursePatient()) — 환자수 입력된 날 합산 기준, "간호사 {n} : 환자 {n}"
 - CASE01 [환자수 입력일 0]: 미표기(days > 0일 때만 노출)
HBNS230 월별 환자수 · nurse_profiles신규 (코드 반영: 71f134e) · 배경: 7/21 베스트 요구(간호인력 비율 노출) 일부 반영
40액션 바Button"AI 자동생성"(보라) / "확인"(초록) / 클립보드 / "인쇄" / "?"(disabled) 노출. 하위 41~45 참조[[HBNS201]] / [[HBNS202]] / [[HBNS203]]
ㄴ41AI 자동생성Button• 전체 근무표를 3교대로 자동 편성하는 기능. 준수율 최적화, 연차·교육 보존
• 클릭 → 즉시 실행(설정 모달·컨펌 없음)
 - STEP1 실행 중 배지 CASE02 [AI 생성]("AI 생성 중") + "취소" 노출
 - STEP2 완료 시 배지 "AI 생성" · 준수율 갱신
[[HBNS201]]isAiGenerated
ㄴ41a취소·폴백Button취소는 abort 완료 전 미적용(P1 안전갭). AI 실패 시 제약 솔버 폴백(constraint-fallback)[[HBNS201]]상세 [[HBNS201]]
ㄴ41b엔트리 검증-• 생성 후·확정 전 근무표 엔트리를 검증하는 단계(nurseScheduler.entry.validate({scheduleId}))
• AI 생성/수정 결과를 확인(확정) 전 무결성 검증에 사용 (TC 확정: 04:4.3)
[[HBNS202]] 확정 직전 QA신규 흐름 (TC 확정) · UI 노출 위치 TBU
ㄴ42확인Button• 근무표를 확정 상태로 넘기는 기능 — destructive
• 클릭 → 컨펌 "근무표 확정 — 이 근무표를 확정하시겠습니까? 확정 후에는 수정이 제한됩니다." → 확정(배지 "확정" + 셀 편집 잠금)
 - STEP1 확정 후 버튼 "확인"→"제출" 2단계 전환
[[HBNS202]]검증됨 · CASE04 [확정] 전이
ㄴ43클립보드Button• 근무표를 복사하는 유틸(추정)
• 클릭 → 근무표 복사(추정)
[[HBNS203]]TBU: 동작 상세
ㄴ44인쇄Button• 근무표를 출력하는 유틸(추정)
• 클릭 → 근무표 출력(추정)
[[HBNS203]]TBU: 출력 포맷
ㄴ45"?" 도움말Button• 도움말 유틸(비활성 disabled, 미구현, 검증됨)
• 클릭 → 무반응·무피드백
[[HBNS203]]disabled
50병동 관리 탭(좌측)Tab• 좌측 "병동 관리"(비활성·흐림) 탭. 병동 관리 기능은 ⚙ "병동 관리 및 설정" 모달로 통합된 것으로 관찰
• 클릭 → 무반응(비활성)
⚙ 모달(HBNS240)비활성

권한·상태 분기 요약

시나리오트리거결과비고
CASE01 [초안]근무표 미생성 월 로드빈 그리드, 배지 "초안"AI 자동생성 대기
CASE02 [AI 생성]"AI 자동생성"(보라) 즉시 실행전체 셀 3교대 편성, 준수율 25%→100%, 배지 "AI 생성"[[HBNS201]]
CASE03 [수정 중]배정 셀 클릭 → d/e/n 키 입력파란 테두리 → 즉시 변경(팝업 없음), 배지 "수정 중", 하단 합계 재계산isManualOverride 기록 추정
CASE04 [확정]"확인"(초록) → 컨펌 → 확인배지 "확정" + 셀 편집 잠금(키 입력 무시), 버튼 "확인"→"제출"destructive, [[HBNS202]]
CASE05 [공유됨]확정 후 "제출"(사람)배지 "공유됨", 확인/제출 버튼 소멸(AI 자동생성만 잔존)2단계 워크플로
간호사 추가간호사 열 "+"간호사 프로필 등록 동선 (HBNS210)

Open Question

  • 연차·교육 셀 색상 팔레트 = TBU (D 노랑/E 초록/N 보라/OFF 회색은 확정)
  • isManualOverride vs isAiGenerated 셀 표시 구분 여부 = TBU
  • 준수율 25%에서 100% 계산식(비율 규칙 원천) = TBU
  • 간호사 열 "+" → HBNS210 등록 상세 동선 = TBU
  • 조건3 [간호사] 그리드 접근 시 편집 권한 범위 = TBU
  • 셀 저장 실패·로드 실패 에러 피드백 = TBU
  • 7/21 베스트 요구(간호인력 비율 노출) 중 환자수 팝업 경고는 별도 잔여 = TBU (합계행 월 비율 ㄴ30a는 71f134e로 반영)