Skip to content

HBNS210_간호사 프로필 관리 ​

(Hereby) 팀 관리(team-manager) > 간호 스케줄러 > 간호사 프로필 관리

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

개요 ​

  • 2026-09-28 #833(v0.14.0) 용어·구조 개편: "간호사" 뷰 → 「인력」 탭(admin 스케줄러 탭 「근무표」/「인력」). 용어 통일 — 간호사→인력, 간호사 등록→직원 배정, 삭제→배정 해제, 근무 형태→교대 형태. 근무표 그리드([[HBNS200]])의 행이 되는 인력 마스터를 관리한다.
  • 인력 탭(실측 2026-09-29): 검색(placeholder 원문 "간호사 찾기") + 「자동등록」 / 「직원 배정」 버튼 + 6컬럼 테이블(사번 / 이름 / 교대 형태 / 소속 병동 / 스케줄러 / 관리). 행 관리 액션 = 「편집」 / 「배정 해제」. 툴바는 축소됨(#833).
  • 「직원 배정」은 병동 관리([[HBAD230]])의 직원 배정 팝업과 동일 계열(검색·다중·교대 형태 지정) — 팝업 상세는 [[HBAD230]] 참조.
  • 프로필은 nurse_profiles(employeeId / workType enum / wardId / isHeadNurse)에 저장된다. 소속 병동은 **Admin 병동 관리([[HBAD230]])**가 원천. 수간호사는 「책임자」 표기로 통일(#833).

문서 히스토리 ​

날짜작성자팀변경 내용
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.profile.create/list, NurseWorkType enum(two_shift 없음) 등)
2026-08-18카나라이브 재검증 정정등록 모달 근무 형태 select 라이브 4종 = "3교대 / 야간전담 / 데이전담 / 이브닝전담" (evening_dedicated 추가 관찰). 기존 스펙 2~3종(데이전담/3교대/야간전담)에 이브닝전담 신규. two_shift 없음은 유지
2026-09-15카나콸간호 프로필 검증·예약 이동 충돌 안전 반영(1e70fde): 프로필 생성·수정은 같은 조직 병동·직원만 허용, 이미 배정된 병동으로는 예약 이동 불가, 적용 시 겹치면 원래 프로필을 합침, 예약마다 따로 처리해 간호사 목록이 멈추지 않게 함
2026-09-29카나PM#833/#912(v0.14.0) 용어·구조 개편 반영 — 「인력」 탭 전환(탭 「근무표」/「인력」), 간호사 등록→직원 배정·삭제→배정 해제·근무 형태→교대 형태, 6컬럼 갱신(수간호사→스케줄러 열, 작업→관리 「편집」/「배정 해제」), 검색 "간호사 찾기"·툴바 축소, 수간호사→책임자 표기 — 라이브 실사(admin 스케줄러) 기준

Data I/O ​

Server → Client ​

변수DB 엔티티.컬럼값 없을 때비고
${profiles}nurse_profiles[] (employeeId / workType / wardId / isHeadNurse)빈 테이블 → Empty 행(-E) 노출사번 / 이름 / 근무 형태 / 소속 병동 / 수간호사 표시 원천
${wards}wards[] ([[HBAD230]] 원천)select 옵션 없음 → TBU(선택 불가/안내 문구 미확인)소속 병동 선택지
${worktype_enum}NurseWorkType enum (2026-08-18 라이브 4종) = three_shift / night_dedicated / day_dedicated / evening_dedicated (two_shift 없음)고정 enum → 항상 존재라벨 "3교대" / "야간전담" / "데이전담" / "이브닝전담"

Client → Server ​

액션전달 값tRPC/SDK권한 토큰
간호사 등록employeeId, workType, wardId, isHeadNursenurseScheduler.profile.create() (TC 확정: 04:4.1)TBU
프로필 목록 조회wardIdnurseScheduler.profile.list({wardId}) (TC 확정: 04:4.1)TBU
자동등록일괄 프로필 생성 (대상 범위·동선 상세 TBU)TBUTBU
삭제profileIdnurseScheduler.profile.delete() (추정 — TC 미검증), destructiveTBU

외부 통합 (cross-app) ​

외부 시스템데이터동기/비동기비고
Admin 병동 관리 ([[HBAD230]])소속 병동(wardId) 마스터동기(select 로드)병동 원천
인사 마스터 (employees)직원 검색 → employeeId 매핑동기(등록 모달 검색)직원 선택 원천

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

프로필은 그리드([[HBNS200]]) 행의 원천. 소속 병동은 [[HBAD230]]에서 생성된 병동을 참조한다.

간호사 프로필 관리 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-• 조건1 [간호 관리자]/조건2 [수간호사] 인증 시 "👩‍⚕️ 간호사" 뷰로 노출인증 세션TBU: 조건3 [간호사] 노출 여부
10정체성-• 그리드 행의 원천이 되는 간호사 마스터 CRUD 화면[[HBNS200]]nurse_profiles
20자동등록Button• 간호사 프로필을 일괄 생성하는 기능
• 클릭 → 일괄 프로필 생성 (CASE02 [자동등록])
TBU: 대상 범위·동선·실패 동작
25검색Search• 인력 검색 필드. placeholder 원문 "간호사 찾기"
• 입력 → 목록 필터링
nurse_profiles[]신설(#833) · 실측 2026-09-29
30직원 배정Button• 인력을 배정하는 팝업을 여는 버튼. 원문 "직원 배정"(구 "+ 간호사 등록")
• 클릭 → 직원 배정 팝업 오픈 — 상세는 [[HBAD230]] 직원 배정 팝업 사양표(공용 계열)
[[HBAD230]]용어 개편(#833) · nurseScheduler.profile.create (TC 확정: 04:4.1) · TBU: 스케줄러측 팝업과 HBAD230 팝업의 차이 재검증
40인력 테이블Table• 등록 인력을 6컬럼(사번 / 이름 / 교대 형태 / 소속 병동 / 스케줄러 / 관리)으로 렌더(실측 2026-09-29). Empty = 아래 40-E 행nurse_profiles[]컬럼 개편(#833): 수간호사→스케줄러, 작업→관리
ㄴ41사번Cell• 인력 사번 표시employeeId식별자(mono 금지)·TBU: 미매핑 표시
ㄴ42이름Cell• 인력 성명 표시TBU: 값 없음 표시
ㄴ43교대 형태Cell• "데이전담" / "3교대" 등 표시(구 라벨 "근무 형태")nurse_profiles_worktype_enum용어 개편(#833) · TBU: enum 외 값 표시
ㄴ44소속 병동Cell• 배속 병동 표시. [[HBAD230]] 생성 병동 참조[[HBAD230]] / wardId원천·TBU: 미배정/삭제 병동 표시
ㄴ45스케줄러Cell• 스케줄러 등록 상태 표시(구 수간호사 열 대체 — 책임자 여부 표시 위치는 재검증)nurse_profiles신설(#833) · TBU: 셀 값 형식·책임자(구 수간호사) 표시 위치
ㄴ46관리Button• 행 관리 액션 2종(실측): 「편집」 / 「배정 해제」(구 "삭제")
• 「편집」 클릭 → 프로필 편집 (동선 상세 TBU)
• 「배정 해제」 클릭 → 배정 해제 (CASE03 [배정 해제])
[[HBNS200]]용어 개편(#833) · TBU: 컨펌 유무·확정 근무표 배정 인력 해제 차단 규칙·권한
ㄴ40-E프로필 없음(Empty)-E• 프로필 0건일 때 테이블 Empty 상태Empty·TBU: 안내 문구·CTA

간호사 등록 모달 사양표 (구 — #833에서 「직원 배정」 팝업으로 대체) ​

⚠ 2026-09-28 #833로 진입 버튼이 「직원 배정」으로 바뀌고 팝업이 병동 관리([[HBAD230]]) 직원 배정 팝업 계열로 교체됨. 아래 구 모달 사양은 참고용 존치 — 스케줄러측 팝업의 필드 셋(교대 형태·책임자 체크 등) 재실사 후 재작성 예정(TBU). 검증 규칙(1e70fde 조직 스코프·예약 이동 충돌 안전)은 유효.

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-• "+ 간호사 등록" 클릭 시 "간호사 등록" 모달 오픈프로필 관리 표 30
10직원 선택Search• 인사 마스터에서 직원을 검색해 employeeId로 매핑하는 검색 필드
• 입력 → "사번 또는 이름으로 검색..." placeholder로 검색, 일치 직원 매핑
 - CASE01 [검색 결과 없음]: Empty(-E, 아래 10-E)
employees원문 카피·TBU: 미선택 등록 시 검증
ㄴ10-E검색 결과 없음(Empty)-E• 사번/이름 검색 결과 0건일 때 표시Empty·TBU: 문구
20근무 형태Select• 근무 형태를 선택하는 드롭다운 (기본값 "3교대")
• 옵션 4종(2026-08-18 라이브): "3교대" / "야간전담" / "데이전담" / "이브닝전담"
nurse_profiles_worktype_enum2026-08-18: 전체 enum 값 확정(이브닝전담 포함)
30소속 병동Select• 배속 병동을 선택하는 드롭다운. [[HBAD230]] 생성 병동 참조
• 선택 → 배속 병동 지정
[[HBAD230]] / wardId원천·TBU: 병동 0건 옵션·기본값
40수간호사Checkbox• 수간호사 여부를 지정하는 체크박스
• 클릭 → 체크 시 isHeadNurse = true
isHeadNurse미체크 기본값 false(추정)
50취소Button• 등록을 취소하고 모달을 닫는 버튼
• 클릭 → 모달 닫기(변경 폐기, 저장 없음)
51등록Button• 입력 값으로 간호사 프로필을 생성하는 버튼
• 클릭 → 프로필 생성 후 모달 닫힘 + 테이블/그리드 반영 (CASE01 [간호사 등록])
 - 검증(1e70fde): 프로필 생성·수정은 같은 조직의 병동·직원만 받는다(타 조직 병동/직원 거부). 이미 배정된 병동으로는 예약 이동을 걸 수 없고, 예약 이동 적용 시 대상이 겹치면 원래 프로필을 합치며 예약마다 따로 처리해 간호사 목록이 멈추지 않는다
[[HBNS200]] · nurse-scheduler.routernurseScheduler.profile.create (TC 확정: 04:4.1) · 조직 스코프·예약 이동 충돌 안전(1e70fde, 9/15) · TBU: 필수 미입력(직원 미선택)·생성 실패(중복 employeeId) 동작

권한·상태 분기 요약 ​

시나리오트리거결과권한비고
CASE01 [간호사 등록]"+ 간호사 등록" → 모달 "등록"nurse_profiles 생성 → 그리드 행 반영조건1/조건2[[HBNS200]]
CASE02 [자동등록]"자동등록"일괄 프로필 생성TBU동선 상세 TBU
CASE03 [배정 해제]행 관리 「배정 해제」배정 해제 (구 "삭제")TBU컨펌 유무 TBU

Open Question ​

  • "자동등록" 동선 상세(원천·대상 범위·중복 처리·실패 동작) = TBU
  • 근무 형태 enum = NurseWorkType three_shift / night_dedicated / day_dedicated (two_shift 없음) 확정 (TC 04:4.5); 야간전담(night_dedicated) 라벨·AI 편성 패턴 = TBU
  • 수간호사(isHeadNurse) 사후 수정 UI(기등록 프로필 편집) = TBU — 등록 모달 "수간호사" 체크로 최초 설정만 확인
  • 프로필 테이블 Empty 안내 문구·CTA = TBU
  • 삭제 destructive 컨펌 다이얼로그 유무 및 문구 = TBU(미실행)
  • 확정 근무표에 배정된 인력 「배정 해제」 시 처리(차단/경고) = TBU
  • #833 「직원 배정」 팝업(스케줄러측) 필드 셋 — HBAD230 팝업과의 차이·책임자(구 수간호사) 설정 위치 = TBU
  • 「편집」 액션 동선(인라인/모달) = TBU
  • 「스케줄러」 열 셀 값 형식 = TBU