Skip to content

HBNS201_AI 자동생성

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

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

개요

  • AI 자동생성은 "AI 자동생성"(보라) 버튼 1회로 전체 간호사 근무표를 3교대 규칙에 맞춰 자동 편성하는 근무표 편성 엔진이다.
  • Hereby ERP에서 AI가 제품 코어로 이미 라이브 동작하는 유일 구현이며, nurse_schedule_entries.isAiGenerated 의 네이티브 본거지다.
  • 클릭 시 별도 설정 모달 없이 즉시 생성이 시작되고(소요 수 초), 진행 배지 "AI 생성 중"과 "취소" 버튼이 노출된다.
  • 라이브 실측상 취소가 abort 완료 전 미적용되어 편성이 working version에 적용됐다 — P1 안전갭이다.
  • AI 생성 실패 시 제약 솔버 폴백(constraint-fallback) 으로 편성을 마무리한다(코드 확인 사실).
  • 상태 배지 전이가 확정됐다: CASE01 [초안] → (AI 생성 완료) CASE02 [AI 생성] → (수동 셀 편집) CASE03 [수정 중].
  • 결과는 3교대 "D D E E N N OFF" 반복 패턴으로 편성되며 연차·교육 등 기존 배정은 보존되고, 준수율(인력 비율 충족도)을 25%에서 100%로 최적화한다. 데이전담은 "D D D D D OFF OFF" 주5일 패턴이다.
  • 이 엔진만 라이브 구현 완료 — 그 위 설명층/편집 코파일럿/확정 QA/자연어 질의/부분 재생성/생성 전 confirm 가드는 전부 greenfield(신규 설계 후보)로, Donue 차별화 표면 대비 이 화면이 기존 강점(생성 엔진) 을 부각한다.

문서 히스토리

날짜작성자변경 내용
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.schedule.generate/generationStatus 확정 등)

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
${schedule}nurse_schedules (scheduleId + status)신규 근무표 CASE01 [초안]AI 생성 대상
${roster}nurse_schedule_entries[] (연차·교육 등 보존 대상 식별)빈 그리드(전 셀 미배정)연차/교육 보존
${compliance}준수율 (비율 충족도)생성 전 "준수율 25%"(빨강)생성 후 100% 목표
${gen_state}생성 진행 상태미실행 시 상태 없음"AI 생성 중" / 완료 "AI 생성" / 수동 편집 "수정 중"

Client → Server

액션전달 값tRPC/SDK권한 토큰
AI 자동생성scheduleIdnurseScheduler.schedule.generate({scheduleId}) (TC 확정: 04:4.3) — 즉시 실행, destructive(기존 working version 덮어씀)schedule:write (추정)
진행상태 폴링scheduleIdnurseScheduler.schedule.generationStatus(scheduleId) (TC 확정: 04:4.3) — generating 단계 근거schedule:write (추정)
취소scheduleIdabort (추정) — 실측상 완료 전 미적용, 실제 abort 보장 TBUschedule:write (추정)

외부 통합 (cross-app) / ERD 근거

외부 시스템데이터동기/비동기비고
nurse_schedule_entries.isAiGenerated셀별 AI 편성 여부동기 (본거지)AI 라이브 구현 유일 앵커
nurse_schedule_entries.isManualOverride / assignmentType / shiftId셀 배정 원천동기수동 편집 시 override 기록
제약 솔버(constraint-fallback)AI 실패 시 대체 편성동기 (폴백)코드 확인 사실

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

생성 엔진은 라이브 강점. 취소=실제 abort 보장과 생성 전 confirm 게이트는 P1 안전 가드(greenfield) — publish는 항상 사람([[HBNS202]]). AI 실패 시 제약 솔버 폴백이 편성을 완료.

AI 자동생성 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00트리거Button• 전체 간호사 근무표를 1회 클릭으로 자동 편성하는 엔진 트리거("AI 자동생성", 보라)
• 클릭 → 즉시 생성 시작(별도 설정 모달·컨펌 없이)
 - CASE01 [초안]·CASE02 [AI 생성]·CASE03 [수정 중] 어느 상태에서도 재실행 가능(기존 working version 덮어씀)
[[HBNS200]] 근무표 그리드라이브 구현 · 조건1/2 실행, TBU: 간호사 실행 권한
10진행 배지Badge상태 배지 "AI 생성 중" + "취소" 버튼 노출, 생성 소요 수 초실패 시 폴백 완료(30 참조)
ㄴ11취소 (안전갭)Button• 진행 중 생성을 중단 시도하는 기능. P1 안전갭
• "취소" 클릭 → abort(생성 중단) 시도
 - 실측상 abort 완료 전 미적용 — 편성이 working version에 적용됨
[[POL_AI안전경계]]TBU: 실제 abort 보장
ㄴ12생성 전 confirm 가드 (제안)Modal• P1 제안: 생성 전 confirm 모달(영향 병동·기존 편성 덮어쓰기 경고) + 취소=실제 abort + 입력검증 게이트 결합
• 클릭 → TBU (greenfield 미구현)
[[POL_AI안전경계]]greenfield — 미구현, 설계 후보
20생성 결과 (3교대)Output전체 간호사에 D/E/N/OFF 자동 편성. 3교대 패턴 = "D D E E N N OFF" 반복(간호사별 로테이션 오프셋으로 D/E/N 분산)[[HBNS200]] 배정 셀isAiGenerated 본거지
ㄴ20-E간호사 0명Output편성 대상 없음(결과 empty)TBU: empty 표기
ㄴ21데이전담 패턴Output데이전담 간호사 = "D D D D D OFF OFF" 패턴(주5일, 야간 제외)nurse_profiles.workType
ㄴ22기존 배정 보존-연차·교육은 그대로 유지하고 그 외만 편성. 보존 대상 셀 없으면 전 셀 신규 편성
30제약 솔버 폴백-AI 생성 실패 시 제약 솔버(constraint-fallback)로 편성 완료 — 코드 확인 사실비고 표기(코드 확인) · TBU: 사용자 실패 노출 여부
40준수율 최적화Output생성 후 준수율 25% → 100%(인력 비율 충족 최대화). AI 목적함수. 준수율 색: 낮음 빨강 → 충족 초록[[POL_간호인력·준수율]]2026-08 빈 근무표에서 25%→100% 검증
50완료 배지BadgeCASE01 [초안] → (생성 완료) CASE02 [AI 생성] → (수동 셀 편집) CASE03 [수정 중] 전이 확정. 자동 확정/게시 아님[[POL_간호스케줄 Lifecycle]]확정 시 전이는 [[HBNS202]]
60정본 경계-AI는 생성·편성까지만. 이후 사람 검수·수정 → 확인(확정)·게시는 항상 사람. 자동 publish 금지(전 역할 공통)[[HBNS202]] / [[POL_AI안전경계]]자동 publish 금지

권한·상태 분기 요약

시나리오트리거결과비고
CASE02 [AI 생성]"AI 자동생성"(보라)즉시 생성(수 초) → "AI 생성 중" → "AI 생성" working 상태(준수율↑)수동 편집 시 CASE03 [수정 중]
생성 취소"취소"버튼 노출되나 실제 abort/직전 상태 복귀 보장 안 됨(완료 전 미적용)P1 안전갭, undo/rollback TBU
AI 실패생성 중 엔진 오류제약 솔버 폴백(constraint-fallback)으로 편성 완료코드 확인 사실

Open Question

  • 취소=실제 abort 보장 + 생성 전 confirm 가드(P1) 구현 여부 = TBU
  • AI 자동생성 undo/rollback(취소 완료 전 미적용) = TBU
  • 제약 솔버 폴백 발동 시 사용자 실패/폴백 노출 여부 = TBU
  • 내 희망 일정(nurse_preferences) ↔ AI 제약 반영 흐름 = TBU
  • 조건3 [간호사] AI 자동생성 실행 권한 = TBU