业务架构全景图
一架构总览
▼系统以两条核心数据链路串联轻流、数据中台、质控平台和小程序家属端四个层级。身份证号(id_number)作为全局关联主键贯穿全链路。
⬇ 主线一:下行数据流(轻流 → 数据中台 → 质控平台 → 小程序家属端)
轻流
7个应用表单
全部业务数据源头
全部业务数据源头
数据源
→
数据中台
6个Cron同步脚本
API拉取+分析加工
API拉取+分析加工
ETL层
→
MySQL
12张业务表
Docker容器部署
Docker容器部署
存储层
→
质控平台
11个功能模块
Flask API · 9090端口
Flask API · 9090端口
应用层
→
小程序家属端
8个功能入口
微信小程序
微信小程序
展示层
⬆ 主线二:上行数据流(质控平台 → 轻流)
质控平台
自备药扫码登记
追溯码识别+暂存审核
追溯码识别+暂存审核
数据入口
→
轻流
自备药登记表
eqi4u0ls1401
eqi4u0ls1401
数据落库
扫码 → 暂存区审核 → 修改/删除 → 确认 → 批量推送至轻流(追溯码去重)
二主线一:下行数据流 详解
▼下行数据流是系统的主动脉,每日凌晨通过Cron定时任务将轻流数据拉取到MySQL,经分析加工后供质控平台和小程序查询。
2.1 轻流 → 数据中台(定时同步)
| 步骤 | 环节 | 说明 |
|---|---|---|
| 1 | API拉取 | 通过轻流 OpenAPI,使用永久Token + appKey,分页拉取表单数据(pageSize上限200) |
| 2 | 同步锁 | 基于PID+超时的同步锁机制(_get_task_status() / _set_task_status()),防止Cron重复执行 |
| 3 | 增量识别 | 对比现有数据,识别新增/更新记录,写入 biz_sync_log |
| 4 | 写入MySQL | 批量UPSERT到对应业务表,以id_number关联底座 |
2.2 数据中台 → MySQL(分析加工)
| 分析模块 | 脚本 | 功能 |
|---|---|---|
| 护理漏测 | analyze_db.py | 按护理等级阈值+三周窗口,标记每周是否漏测,写入 biz_leak_check_result |
| 评估分析 | analyze_assessment.py | 按自然年检查12项必查评估完成情况,离院老人自动隐藏,写入 biz_assessment_analysis |
| 关联底座 | 各同步脚本 | 以 id_number 为主键关联 base_resident_info,补齐机构/休养区/护理等级 |
2.3 MySQL → 质控平台(API查询)
| 步骤 | 环节 | 说明 |
|---|---|---|
| 1 | Flask API | pymysql 直连MySQL(charset='utf8mb4'),执行参数化查询,返回JSON |
| 2 | 前端渲染 | HTML页面通过fetch调用API,ECharts图表渲染,支持筛选/分页/CSV导出 |
| 3 | 规则引擎 | 漏测判定/漏评检查/照护覆盖率等业务规则在前端实现 |
2.4 质控平台 → 小程序家属端(API透传)
| 步骤 | 环节 | 说明 |
|---|---|---|
| 1 | Mini Blueprint | 独立Flask Blueprint(routes/mini.py),不影响质控功能 |
| 2 | 数据查询 | 查询 biz_nursing_records / 体征 / 体重 / 照护计划等表 |
| 3 | 小程序展示 | 微信小程序通过 wx.request 调用API,展示长者健康数据 |
三主线二:上行数据流 详解
▼上行数据流实现质控平台数据回写至轻流,目前覆盖自备药扫码登记场景。
3.1 自备药扫码登记 → 轻流同步
| 步骤 | 环节 | 说明 |
|---|---|---|
| 1 | 数据采集 | 扫码枪读取追溯码 → 调用码上放心API → 解析药品信息 → 在质控平台填写数量/长者 |
| 2 | 暂存审核 | 登记数据写入MySQL(sync_status=pending),支持在暂存区修改数量和删除 |
| 3 | 批量推送 | 确认后通过轻流API逐条推送,支持追溯码去重检查 |
| 4 | 状态回写 | 推送成功 → sync_status=synced;失败 → failed,支持重试 |
入口:
/self-medication 页面 → 暂存区审核 → 一键推送至轻流表单 eqi4u0ls1401
注意:轻流推送判断用
errCode==0(非 applyId,私有部署版始终为null)。禁止在headers传 userId(会导致49307错误)。
四轻流 — 数据源(7个表单)
▼所有业务数据的唯一源头,托管于 care.yckycn.com,使用永久Token 187f968c-48a4-4874-95bc-edb084a4083d。
| 表单名称 | appKey | 数据量 | 数据类型 | 备注 |
|---|---|---|---|---|
| 入住协议(离院状态) | 8a7fonqg0o02 | 4372 | openApi | 身份证 queId: 208533040、离院日期 queId: 208533059 |
| 护理记录(生命体征) | 8h0q8e5s1401 | 19044 | VIEW sync | 体温/脉搏/呼吸/血压等 |
| 评估记录 | 8hjq5k381401 | 52052 | VIEW sync | 12项必查评估 |
| 机构休养区 | 8fcbagt01402 | 91 | openApi | 机构 queId: 208612747、休养区 queId: 208612748 |
| 不良事件 | dtonmhf02801 | 159 | openApi | Header accessToken认证 |
| 花名册 | ahf2mv5g0g01 | 2864 | VIEW sync | 员工基本信息 |
| 自备药登记 | eqi4u0ls1401 | ~6 | 上行写入 | 质控扫码推送至轻流 |
五数据中台 — ETL同步(6个Cron任务)
▼每日凌晨通过Cron自动执行,所有脚本位于 /opt/leakcheck/,共享同步锁机制。
| 执行时间 | 脚本 | 功能 | 数据流向 |
|---|---|---|---|
| 1:30 | sync_resident_info.py | 入住协议全量同步 | 轻流 → base_resident_info |
| 1:30 | sync_db.py + analyze_db.py | 护理记录同步 + 漏测分析 | 轻流 → biz_nursing_records → biz_leak_check_result |
| 2:40 | sync_assessment.py + analyze_assessment.py | 评估记录同步 + 分析 | 轻流 → biz_assessment_records → biz_assessment_analysis |
| 3:10 | sync_adverse_events.py | 不良事件同步 | 轻流 → biz_adverse_events |
| 3:20 | sync_staff_roster.py | 花名册同步 | 轻流 → biz_staff_roster |
| 3:40 | sync_care_plans.py | 照护计划同步 | 轻流 → biz_care_plans |
Cron配置:
30 1 * * * sync_resident_info.py >> sync_resident.log 30 1 * * * sync_db.py && analyze_db.py >> cron.log 40 2 * * * sync_assessment.py --full && analyze_assessment.py >> sync_assessment.log 10 3 * * * sync_adverse_events.py >> sync_adverse_events.log 20 3 * * * sync_staff_roster.py >> sync_staff.log 40 3 * * * sync_care_plans.py >> sync_care_plans.log
六MySQL — 存储层(12张表)
▼Docker容器 mysql-nursing,数据库 nursing,用户 workbuddy,全局关联键 id_number(身份证号)。
| 前缀 | 表名 | 数据量 | 说明 |
|---|---|---|---|
| base | resident_info | 4372 | 长者底座,含机构/休养区/护理等级 |
| base | org_area | 91 | 机构-休养区对应关系 |
| biz | nursing_records | 19044 | 生命体征护理记录 |
| biz | leak_check_result | 2720 | 漏测分析结果 |
| biz | assessment_records | 52052 | 评估原始记录 |
| biz | assessment_analysis | 4161 | 评估分析结果 |
| biz | adverse_events | 159 | 不良事件记录 |
| biz | staff_roster | 2864 | 工作人员花名册 |
| biz | staff_transfers | 903 | 人员调动记录 |
| biz | care_plans | 2851 | 照护计划 |
| biz | sync_log | 45 | 同步任务日志 |
| biz | self_medication_records | ~6 | 自备药扫码登记(含 sync_status: pending/synced/failed) |
七质控平台 — 应用层(11个模块)
▼Flask服务运行于 110.42.221.197:9090,前端双路径 /opt/leakcheck/ + /opt/site/。
| 模块 | 路由 | API | 说明 |
|---|---|---|---|
| 运营看板 | /hq-dashboard | /api/hq/dashboard | 跨机构运营总览:护理/评估/不良/照护覆盖率 |
| 护理漏测 | /leak-check | /api/leak-check/data | 按护理等级检查每周漏测,支持CSV导出 |
| 评估检查 | /assessment-check | /api/assessment/data | 12项必查评估年度检查,离院自动隐藏 |
| 照护计划 | /care-plan-check | /api/care-plan/data | 在住全覆盖+新入住7天双模式检查 |
| 不良事件 | /adverse-events | /api/adverse/data | 多维度统计分析,跌倒/管路专项 |
| 综合HR | /hr-report | /api/hr-report/data | 职级性别学历司龄入离职统计 |
| 机构HR | /institution-hr-report | /api/hr/institution-report | 按机构筛选,含老带新分析 |
| 培训考核 | /training-assessment | — | 方案已定,待开发 |
| 自备药扫码 | /self-medication | /api/self-medication/... | 扫码登记+暂存审核+推送轻流 ⬆上行 |
| 同步工具 | /sync-tools | — | 手动触发5项数据同步 |
| Cron管理 | /cron-manager | — | 定时任务时间配置与日志查看 |
八小程序家属端(8个功能入口)
▼微信小程序 AppID: wx48fcc61c5b60e2d5,后端独立 Blueprint routes/mini.py。
| 功能 | 路由 | API | 状态 |
|---|---|---|---|
| 长者详情(首页) | pages/index/index | GET /api/mini/resident/<id> | 已上线 |
| 生命体征 | pages/vitals/vitals | GET /api/mini/vitals/<id> | 已上线 |
| 体重监测 | pages/weight/weight | GET /api/mini/weight/<id> | 已上线 |
| 照护计划 | pages/care-plan/care-plan | GET /api/mini/care-plan/<id> | 已上线 |
| 照护记录 | pages/detail/detail | GET /api/mini/records | 已上线 |
| 服药记录 | pages/medication/medication | — | 占位 |
| 用药记录 | pages/medication/medication | — | 占位 |
| 请销假 / 合同 | pages/medication/medication | — | 占位 |
九关联关系总表
▼以轻流表单 → 同步脚本 → MySQL表 → 质控模块 → 小程序页面五大维度串联全局。
| 轻流表单 | 同步脚本 | MySQL表 | 质控模块 | 小程序 |
|---|---|---|---|---|
入住协议 8a7fonqg0o02 |
sync_resident_info.py |
base_resident_info |
全部模块(底座) | 首页 |
机构休养区 8fcbagt01402 |
(随入住协议同步) | base_org_area |
筛选器联动 | — |
护理记录 8h0q8e5s1401 |
sync_db.py |
biz_nursing_recordsbiz_leak_check_result |
运营看板 / 护理漏测 | 生命体征 |
评估记录 8hjq5k381401 |
sync_assessment.py |
biz_assessment_recordsbiz_assessment_analysis |
运营看板 / 评估检查 | — |
不良事件 dtonmhf02801 |
sync_adverse_events.py |
biz_adverse_events |
运营看板 / 不良事件 | — |
花名册 ahf2mv5g0g01 |
sync_staff_roster.py |
biz_staff_roster |
综合HR / 机构HR | — |
| ⬆ 上行:质控 → 轻流 | ||||
自备药登记 eqi4u0ls1401 |
(质控推送) | biz_self_medication_records |
自备药扫码 | — |