架构总览

系统以两条核心数据链路串联轻流、数据中台、质控平台和小程序家属端四个层级。身份证号(id_number)作为全局关联主键贯穿全链路。

⬇ 主线一:下行数据流(轻流 → 数据中台 → 质控平台 → 小程序家属端)
☁️
轻流
7个应用表单
全部业务数据源头
数据源
⚙️
数据中台
6个Cron同步脚本
API拉取+分析加工
ETL层
🗄️
MySQL
12张业务表
Docker容器部署
存储层
📊
质控平台
11个功能模块
Flask API · 9090端口
应用层
📱
小程序家属端
8个功能入口
微信小程序
展示层
⬆ 主线二:上行数据流(质控平台 → 轻流)
📊
质控平台
自备药扫码登记
追溯码识别+暂存审核
数据入口
☁️
轻流
自备药登记表
eqi4u0ls1401
数据落库
扫码 → 暂存区审核 → 修改/删除 → 确认 → 批量推送至轻流(追溯码去重)

主线一:下行数据流 详解

下行数据流是系统的主动脉,每日凌晨通过Cron定时任务将轻流数据拉取到MySQL,经分析加工后供质控平台和小程序查询。

2.1 轻流 → 数据中台(定时同步)

步骤环节说明
1API拉取通过轻流 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查询)

步骤环节说明
1Flask APIpymysql 直连MySQL(charset='utf8mb4'),执行参数化查询,返回JSON
2前端渲染HTML页面通过fetch调用API,ECharts图表渲染,支持筛选/分页/CSV导出
3规则引擎漏测判定/漏评检查/照护覆盖率等业务规则在前端实现

2.4 质控平台 → 小程序家属端(API透传)

步骤环节说明
1Mini 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数据量数据类型备注
入住协议(离院状态)8a7fonqg0o024372openApi身份证 queId: 208533040、离院日期 queId: 208533059
护理记录(生命体征)8h0q8e5s140119044VIEW sync体温/脉搏/呼吸/血压等
评估记录8hjq5k38140152052VIEW sync12项必查评估
机构休养区8fcbagt0140291openApi机构 queId: 208612747、休养区 queId: 208612748
不良事件dtonmhf02801159openApiHeader accessToken认证
花名册ahf2mv5g0g012864VIEW sync员工基本信息
自备药登记eqi4u0ls1401~6上行写入质控扫码推送至轻流

数据中台 — ETL同步(6个Cron任务)

每日凌晨通过Cron自动执行,所有脚本位于 /opt/leakcheck/,共享同步锁机制。

执行时间脚本功能数据流向
1:30sync_resident_info.py入住协议全量同步轻流 → base_resident_info
1:30sync_db.py + analyze_db.py护理记录同步 + 漏测分析轻流 → biz_nursing_recordsbiz_leak_check_result
2:40sync_assessment.py + analyze_assessment.py评估记录同步 + 分析轻流 → biz_assessment_recordsbiz_assessment_analysis
3:10sync_adverse_events.py不良事件同步轻流 → biz_adverse_events
3:20sync_staff_roster.py花名册同步轻流 → biz_staff_roster
3:40sync_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(身份证号)。

前缀表名数据量说明
baseresident_info4372长者底座,含机构/休养区/护理等级
baseorg_area91机构-休养区对应关系
biznursing_records19044生命体征护理记录
bizleak_check_result2720漏测分析结果
bizassessment_records52052评估原始记录
bizassessment_analysis4161评估分析结果
bizadverse_events159不良事件记录
bizstaff_roster2864工作人员花名册
bizstaff_transfers903人员调动记录
bizcare_plans2851照护计划
bizsync_log45同步任务日志
bizself_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/data12项必查评估年度检查,离院自动隐藏
照护计划/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/indexGET /api/mini/resident/<id>已上线
生命体征pages/vitals/vitalsGET /api/mini/vitals/<id>已上线
体重监测pages/weight/weightGET /api/mini/weight/<id>已上线
照护计划pages/care-plan/care-planGET /api/mini/care-plan/<id>已上线
照护记录pages/detail/detailGET /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_records
biz_leak_check_result
运营看板 / 护理漏测 生命体征
评估记录 8hjq5k381401 sync_assessment.py biz_assessment_records
biz_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 自备药扫码