케어 차트 — feature/care_chart/console
콘솔의 케어 차트(메뉴 「케어 차트」 — 탭 산모 C-08a · 신생아 C-08b) 번들이다. 패키지 이름은 console_care_chart.
세계(postpartum_world)를 서비스 로케이터로 받아 읽고 쓰며, 바인딩(postpartum_binding)은 의존하지 않는다
(BRIEF-contract §9).
| 화면 | 주소 | 뷰(값 · 동작을 받는다) | 페이지(라우트가 연다) |
|---|---|---|---|
| 재실자 고르기 | /care_chart |
CareResidentListView |
CareChartPage |
| C-08a 산모 차트 | /care_chart/mother/:customerId |
MotherChartView |
MotherChartPage |
| C-08b 신생아 차트 | /care_chart/newborn/:newbornId |
NewbornChartView |
NewbornChartPage |
재실자를 고르면 역할의 첫 탭이 열린다 — 신생아실은 신생아 차트, 나머지(원장 · 간호사 · 모유실장)는 산모 차트.
머리 카드의 ◀ ▶ 로 같은 지점 재실자(산모는 VIP → 디럭스 호실 순, 신생아는 그 순서의 아기들)를 넘긴다. 넘길 때 끊기지 않게
신생아 격자는 보이는 시 행만 만든다(NFR-11 — SliverList.builder).
화면 · FR ↔ 구현 ↔ 시험
| FR | 내용 | 구현 | 시험 |
|---|---|---|---|
| FR-50 산모 차트 | 날짜 열(4일 창) × 오전/오후 — 체온 · 혈압 · 출혈 · 유방 통증 · 부종 · 정서 · 작성/확인. 칸을 눌러 적고, 원장이 「대기」 칸에 확인 서명. 혈압 · 체온 추이 | MotherChart · MotherVitalTable · VitalCellDialog · MotherQuickInputCard · VitalTrendCard · 저장소 saveMotherVital · confirmMotherVital |
care_chart_repository_test(「간호사가 오후 회차를 적으면 작성자로 남고, 원장이 확인 서명한다」 · 「값을 고치면 확인 서명을 다시 받는다」 · 「모유실장은 유방 통증만」) · mother_chart_view_test(Figma C-08a 값 · 칸 편집 · 원장 확인 서명 · 모유실장) · seed_care_test(고은비 값) |
| FR-51 신생아 격자 | 24시간 시 행 × 정시/반시 줄 — 직모유(분) · 병모유(ml) · 분유(준비/먹은) · 소변 · 대변 · 체온 · 구토. 줄을 눌러 빠른 입력, 일 합계 · 체중 · 전일 대비 | NewbornGridLayout(지연 생성용 시 행) · NewbornGridSliver(SliverList.builder — NFR-11) · NewbornQuickInputCard · NewbornDayTotals · WeightTrend · WeightTrendCard(coui TrendChart) · saveNewbornSlot · saveWeight |
care_chart_domain_test(격자 · 합계 · 체중 차이) · newborn_chart_view_test(Figma C-08b 격자 · 14시 줄 저장) · care_chart_pages_test「빠른 입력으로 저장하면 세계에 남고 화면이 다시 그려진다(투어 7)」 · BDD care_chart_tour.feature |
| FR-52 근무조 점검 · 인계 | D/E/N — 황달 두 부위 · 관찰(호흡 · 눈 · 배꼽/피부 · 그 밖) · 메모 · 작성 → 확인 서명(「확인 대기」 → 「확인 완료」). 인계 표 출력 미리보기 | NewbornShiftCheck · ShiftCheckCard · ShiftCheckDialog · saveShiftCheck · confirmShiftCheck · HandoverSheetDialog(신생아 · 산모 표) |
저장소 「시작하지 않은 근무조(09:00 의 E)는 점검을 적지 못한다」 · 「점검 값을 고치면 확인 서명이 지워지고 관찰 항목이 남는다」 · 투어 7(저장소 · BDD) |
| FR-53 아가 · 산모 일지 | 날짜 · 대상 · 내용(시드 예문은 키 · 직원 입력은 문장 그대로 C) | CareNote · CareNotesCard · CareNoteDialog · addNote(일련번호 note_<n>) |
저장소 「일지는 일련번호 id 로 남고(C 문장 그대로) …」 · 뷰(일지 문구) |
| 「기록 확인 필요」(C-01 홈) | 비어 있는 기록 · 확인 대기의 개수 | 세계 CareChartFacts(WP-CARE 소유 — BRIEF-contract §10) · CareRecordSummary · 재실자 고르기 KPI |
postpartum_world/test/src/care_chart_facts_test.dart(식) · seed_care_test(숫자) · 목록 뷰 KPI |
| ia.md §5 역할 · FR-02 지점 | 칸 노출 · 쓰기 · 확인 서명, 다른 지점 기록 주소는 S-04 | CareChartAccess · 저장소 쓰기 검사(트랜잭션 안) · CareChartUnavailable.forbidden |
care_chart_domain_test(CareChartAccess) · 저장소 권한 시험(다른 지점 · 퇴실 · 에스테틱) · 페이지 「다른 지점 재실자의 주소는 S-04 로 막는다」 |
| 상태 화면 | S-01(재실 없음) · S-02 · S-03(미리보기) · S-05(세계 없음) · 찾을 수 없음 | CareChartStateGate · CareChartUnavailable |
페이지 시험(S-05 · 오류 → 다시 시도 · 없는 재실자) |
| R-1 · R-2 · R-3 · R-4 | 스케일 불변 · 가용 폭 · 와이드 정보량 · 터치 하한 | LayoutBuilder 분기(960 · 600 · 840) · MinTouchTarget · CareCellButton(칸 하한 48 × 배율) |
testScaleInvariant — 산모 · 신생아 · 목록 × (1194×834 · 390×844) × 4조합 · 아랍어 RTL |
권한(ia.md §5 를 화면 안에서 읽은 것)
| 역할 | 산모 차트 | 신생아 차트 |
|---|---|---|
| 원장 | 읽기 + 확인 서명(Figma C-08a 「작성 · 확인 … / 문하린(원장)」) | 읽기 + 근무조 확인 서명 |
| 간호사 | 모든 칸 쓰기 · 일지 | 쓰기 · 근무조 점검 · 확인 서명 · 체중 · 일지 |
| 신생아실 | 읽기 | 쓰기 · 근무조 점검 · 확인 서명(투어 7) · 체중 · 일지 |
| 모유실장 | 유방 통증 칸만 쓰기(⁴) · 산모 일지 | 읽기 |
| 대표 · 상담실장 · 에스테틱 | 메뉴 없음 — 주소로 오면 셸이 S-04 | 같음 |
- 근무조 점검의 확인 서명은 작성자 본인도 남길 수 있다(투어 7 — 정다온이 적은 D 점검에 정다온이 서명). 실서비스에서는 다른 사람만 확인하도록 바꿀 수 있는 규칙이다.
- 재실 중이 아닌(입실 전 · 퇴실 뒤) 기록은 읽기만 한다. 값을 고치면 확인 서명이 지워져 다시 받는다.
- 날짜: 바이탈은 오늘까지, 신생아 칸은 오늘 차트 하루(07:00–다음 날 07:00) 안의 칸까지 적을 수 있다 — 데모 시계가 09:00 에 멈춰 있어서 투어의 14시 칸을 적을 수 있게 했다. 근무조 점검은 시작한 근무조만.
화면 숫자(시드 · 물결점 09:00)
| 숫자 | 값 | 식(CareChartFacts) |
|---|---|---|
| 재실 산모 · 신생아 | 34 · 35 | inHouseStays · inHouseNewborns |
| 바이탈 미기록 산모(간호사 홈) | 4 | mothersMissingVitals — 오늘 지금 회차(13시 전 오전) 행이 없는 재실 산모 |
| 바이탈 확인 대기 | 3 | vitalsAwaitingConfirmation — 오늘(지금 회차까지) 확인 서명이 없는 회차 |
| 지난 근무조 점검 없음(원장 홈 「미기록 근무조」) | 2 | shiftChecksMissing — 1/14 N 점검이 없는 재실 아기 |
| 근무조 확인 대기 | 2 | shiftChecksAwaitingConfirmation — 1/14 N · 1/15 D 중 확인 서명 없음(꼬물이 · 하윤서 아기의 D) |
| 근무조 점검 미완료(신생아실 홈) | 4 | 기록 없음 + 확인 대기(Figma 사이드바 「케어 차트 4」와 같은 수) |
| 기록 확인 필요(원장 홈) | 6 | 바이탈 미기록 4 + 근무조 기록 없음 2(CareRecordSummary.recordsToReview) |
| 체중 미기록 | 1 | newbornsMissingWeight — 15:00(목욕) 전이면 어제 기준 |
| 오늘 수유 기록 | 33/35 | newbornsFedToday — 07:00 이후 수유 칸이 있는 아기 |
모의 경계
- 실동작(세계 트랜잭션): 바이탈 · 칸 · 점검 · 체중 · 일지 저장, 확인 서명, 권한 · 지점 · 재실 검사, 숫자(식), 인계 표.
- 모의: 없음(이 번들에는 발송 · 결제 · 지급이 없다). 「인계 표 출력」은 미리보기만 — 인쇄는 브라우저 인쇄다.
- 판정 없음: 정상/이상 · 권고 문구 · 기준선 · 색 띠가 없다. 「특이 소견 없음」은 관찰해 적은 것이 없다는 기록이고, 「기록 확인 필요」는 비어 있는 기록의 수다.
Figma 와 다르게 둔 점
| Figma | 구현 | 이유 |
|---|---|---|
| C-08a 1/12 오전 기록(36.8 · 118/76 …) | 「입실 전」 | 고은비는 1/12 14:00 입실 — 첫 기록은 1/12 오후(입실 체크 ④). 나머지 회차 값은 Figma 그대로 |
| C-08b 1/15 10:30 · 12:00 기록 | 1/14 같은 시각으로 | 09:00 뒤라 「일어난 일」이 아니다(docs/demo-world.md §8). 그래서 1/15 합계는 07:30 · 09:00 두 칸(분유 60 · 소변 2) |
| 「이상 소견 없음」 | 「특이 소견 없음」 | 판정 단어 「이상」을 쓰지 않는다 |
| 투어 7 「체중 추이가 갱신」 | 오늘 체중(목욕 때)을 기록하면 갱신 | 수유 기록은 체중을 바꾸지 않는다 — 시험은 14시 칸 → 오늘 체중 3,410 g → D 확인 서명 순으로 단언 |
| (하루 경계 표기 없음) | 차트 하루 07:00 ~ 다음 날 07:00, 근무조 D 07–15 · E 15–23 · N 23–07 | 격자가 07:00 에서 시작한다(CareChartDay · CareShift — 홈 숫자와 같은 정의) |
| 「작성 · 확인」(누가 서명하는지 표기 없음) | 산모 바이탈 확인 = 원장, 근무조 점검 확인 = 원장 · 간호사 · 신생아실(작성자 본인 포함) | Figma C-08a 「… / 문하린(원장)」 · 투어 7(정다온 → 정다온) |
| 근무 전 근무조의 담당 이름(임채윤 · 서민아) | 운영 근무표(shiftAssignments)에서 읽고, 없으면 「—」 |
담당은 운영 WP 시드가 정한다 |
| 머리 카드 오른쪽의 칩 · 버튼 | 카드 본문 아래로 | 공용 SectionHeader 의 끝 동작이 줄어들지 않아 아랍어 · 큰 글꼴에서 넘친다(postpartum_ui 에 요청) |
| 빠른 입력의 칸 고르기 | 격자의 줄을 누른다(기본은 지금 시의 정시 — 기록이 있으면 다음 빈 정시) | Figma 는 14:00 칸이 골라진 상태 — 투어에서 그 줄을 누른다 |
| 혈압 그래프 | 가벼운 그리기(2계열), 체중은 coui TrendChart |
coui TrendChart 는 계열이 하나다 |
세계 · 시드
- 컬렉션 필드:
docs/demo-world.md§4.6. 시드package/postpartum_world/lib/src/seed/seed_care.dart(단계seedCare— 시드 판schema는 올리지 않았다: 통합에서 한 번에 올린다). - 행 id 는
CareChartIds(postpartum_world) — 한 칸 · 회차 · 근무조 · 하루에 행 하나라 저장은 같은 id 를 덮어쓴다. 체크인 ④(WP-STAY)도mv_<체류 꼬리>_<YYYYMMDD>_<am|pm>을 쓴다. - 화면 갱신:
world.changes+session.changes(mergeSignals) — 다른 탭의 쓰기도 다시 그린다.
시험 · 전시
flutter test # 저장소 · 도메인 · 뷰 · 페이지 · BDD(생성물) · 배율 4조합
(cd ../../../package/postpartum_world && dart test) # 식 · 시드 숫자
tool/bdd/generate.sh --check feature/care_chart/console
tool/golden/capture.sh # 골든(CO_GOLDEN_MODE — 기준 이미지는 CI 가 만든다)
위젯북: [Console]/care_chart — 재실자 고르기(계정 knob) · C-08a(계정 knob) · C-08b(어제 knob).