Files
HealthCarePregnant/pcm-platform
selfrelease 8d1a535a63 feat(workbench): 全面优化个案工作台页面体验
性能与加载:
- 分阶段加载:档案头、个案数据、档案数据各自独立加载,骨架屏替代 spinner
- PatientHeadSkeleton / WorkbenchSkeleton / ArchiveSkeleton 三套骨架
- 档案库懒加载(切换 Tab 时才请求)

交互增强:
- Alert 卡片增加「标记已读」和「关闭」按钮,调用 acknowledgeAlert / resolveAlert API
- 态势感知 Detail 区支持同时展开多个类型(状态独立)
- StatCard 点击可折叠/展开,带 chevron 指示
- 待办列表增加分页(每页 8 条)

AI 建议:
- 从单一方案扩展为 3 套方案(保守 A / 常规 B / 积极 C)
- 支持切换标签,卡片内动画过渡
- 每套方案可一键生成对应处置单
- 预置空腹血糖、血压、体重等多套模板

指标卡片:
- Sparkline 增加阈值参考虚线(min/max)
- 超限高亮点 + 「超限」角标
- 档案库扩展为 8 个指标卡(新增舒张压、OGTT 1h/2h、餐后血糖)
- 阈值常量统一管理(THRESHOLDS Map)

分页:
- 档案库观测历史分页(每页 8 条)
- 待办列表分页

样式完善:
- badge-emerald / badge-rose / badge-indigo / badge-calm
- btn-xs / btn-success / btn-rose
- grid-4 / align-center / border-l-*
- 脉冲危急点动画、Tab 未读计数角标
- Alert 支持 updatedAt,severity 别名兼容后端字段

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-18 10:13:57 +08:00
..

PCM 孕产个案管理平台

Monorepo。文档见上级目录:0-req-PCM.md(需求)、1-prd-PCM.mdPRD)、2-task-PCM.md(任务)、3-ui-style-PCM.mdUI 风格)、4-arch-PCM.md(架构)。

结构

  • backend/ — NestJS API(核心后端,全局鉴权/授权守卫)
  • patient-app/ — 孕妇端(Vite+React 移动 WebAI 对话优先)
  • admin-web/ — 医护/运营端(React PC 工作台 + 知识库/审计)
  • family-app/ — 家属端(轻量移动 Web,只读状态+提醒+问答)

移动端按 4-arch-PCM.md 最终可经 Taro 移植为微信小程序;当前以可运行可验证的 Web 实现。

本地开发

后端:

cd backend
npm install
cp .env.example .env   # 按需填写 AUTH_SECRET 等
npm run start:dev      # 开发模式
npm test               # 单元测试

前端(任一应用,开发服务器自带 /api → 后端代理):

cd patient-app   # 或 admin-web / family-app
npm install
npm run dev

健康检查:GET http://localhost:3000/api/health

示例数据(seed,需 PostgreSQL):

cd backend
DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/pcm \
FIELD_ENCRYPTION_KEY=<32字节hex> npm run seed

清空领域数据并写入真实示例:账号(caseManager/physician/operator/admin/mama01/family01,密码 pcm12345)、知识库、12 名孕妇(含编号 PCM-000001…、不同风险分层,部分含预警/个案/照护计划/提醒)。

容器化部署(dev/staging

前置:Docker + Docker Compose。

一键部署:

cp .env.example .env            # 设置 AUTH_SECRET 与端口
make up                         # 构建并启动全部服务(= docker compose up -d --build
# 或:make deploy-staging        # 构建 + 启动 + 等待后端健康 + 探活前端

默认访问地址:

  • 后端 APIhttp://localhost:3000/api/health
  • 孕妇端:http://localhost:8081/
  • 医护/运营端:http://localhost:8082/
  • 家属端:http://localhost:8083/

常用命令:make ps(状态)、make logs(日志)、make down(停止)。

镜像构成:

  • 后端:多阶段构建(编译 → 仅生产依赖,非 root 运行,含健康检查)。
  • 三前端:Vite 构建产物由 nginx 托管,SPA 路由回退,/api 反向代理到 backend 服务。

环境分层:

  • dev:各应用 npm run devVite 代理 /api 到本地后端。
  • stagingmake deploy-staging(本编排)。
  • prod:同编排为基线,需追加 TLS 终止、密钥管理、PostgreSQL 持久化与监控。

持久化:编排含 PostgreSQL db 服务,后端经 DATABASE_URL 连接并持久化(auth/audit 已落库,启动幂等建表)。不设置 DATABASE_URL 时后端回退内存仓储(dev/测试)。字段级加密密钥经 FIELD_ENCRYPTION_KEY 注入(用于敏感健康字段,随 patient/observation 迁移启用)。

安全约定

  • 密钥仅放本地 .env,不提交仓库;生产 AUTH_SECRET 必须为强随机值。
  • 全局守卫:JwtAuthGuard(令牌校验)+ CapabilitiesGuardRBAC 能力授权,越权 403 并审计)。
  • 孕产+胎儿数据按最敏感个人信息处理(加密、最小化、分级访问、审计)。