# 大屏 — 疫病风险统计 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 大屏疫病风险统计 | | 使用场景 | 领导参观、指挥调度、对外展示等**大屏端**只读看板 | | 目标 | 按**统计年份**集中展示实验室检测、疫情上报、检疫态势与风险因子权重等疫病相关指标,支撑疾病监测与风险研判 | | 数据来源 | **实验室检测**、**疫情上报**、**检疫站管理**、**风险因子设置**(权重只读展示);气象展示由**前端**调用公开气象接口,**不在**本大屏业务后台数据范围内 | | 修订依据 | 同目录 `大屏疫病风险功能需求-草稿.md`、`Snipaste_2026-05-25_19-26-51.jpg`、`Snipaste_2026-05-25_19-27-07.jpg`;指标口径与《实验室检测功能需求》《疫情上报功能需求》《检疫站管理功能需求》《风险因子设置功能需求》对齐 | | 关联维护 | 台账补录、疫情解除、检疫站状态变更、权重调整须在对应业务后台完成;大屏刷新后展示最新结果 | 本文档仅描述**功能需求、业务规则与展示逻辑**,不涉及数据库结构、接口路径、请求体字段及技术实现选型。 --- ## 2. 术语与口径 ### 2.1 统计年份 - 大屏顶部(或全局筛选区)提供**统计年份**选择,格式为自然年 **YYYY**(如 `2026`)。 - 进入大屏时默认选中**当前自然年**。 - 变更统计年份后,本页**全部统计区块**须**同步**按新年份重新计算与展示,不得出现区块之间年份不一致。 ### 2.2 统计月份(按月图表) 大屏存在两类按月图表,横轴规则**不同**: | 类型 | 适用区块 | 横轴规则 | | --- | --- | --- | | **统计年 Y 内 1~12 月** | (本期无;样本来源等为年度汇总非按月趋势) | — | | **滚动最近 12 个月** | **实验室检测 · 按月趋势** | 以服务器当前年月为锚点,取**含当月在内向前连续 12 个自然月**;**不**随页面「统计年份 **Y**」切换 | **滚动最近 12 个月(实验室检测趋势)** - 接口每条记录含 **`statYear`(自然年)**、**`month`(1~12)**;按时间升序固定返回 **12** 条。 - 缺月:`testQuantity`、`positiveCount` 为 **0**;**不**省略刻度。 - **前端横轴**仅展示月份(如 `8月`);**鼠标悬停**展示完整年月(如 `2025年8月`)及检测量、阳性数。 - 切换统计年份 **Y** 时,该趋势图**仍展示同一滚动窗口**(与 **Y** 无关);**样本来源检测**等仍按 **Y** 汇总(**§2.3**)。 ### 2.2.1 缺月规则(滚动 12 月窗口内) - 某自然月窗口槽位内无任何纳入 **§2.3** 检测日期的记录时,该月检测量、阳性检出数按 **0** 参与展示;**不**断线留空、**不**插值。 ### 2.3 实验室检测纳入统计的规则 **样本来源检测(年度汇总)** — 选定统计年份 **Y** 后,纳入记录须满足 **检测日期**落在 **Y** 年内(`Y-01-01`~`Y-12-31`)。 **实验室检测 · 按月趋势及趋势区年度三指标(检测量/阳性数/检出率)** — 纳入 **距当前时间最近 12 个自然月**窗口内、`test_date` 落在窗口内的全部检测记录;**不**随 **Y** 切换。 ### 2.4 疫情上报纳入统计年份的规则 选定统计年份 **Y** 后,不同区块对疫情上报记录的纳入范围如下(须全文统一): | 统计用途 | 纳入条件 | | --- | --- | | 按**上报日期**统计(风险等级、疫病类型、传播途径、疫情列表等) | **上报日期**落在 **Y** 年内 | | **防控中地区**计数 | **上报日期**落在 **Y** 年内,且处置状态为**未解除** | | **已解除地区**计数、**解除时效** | 处置状态为**已解除**,且**解除日期**落在 **Y** 年内(上报日期可早于 **Y**) | 已逻辑删除或不可见的疫情上报记录**不参与**任何统计。 ### 2.5 涉疫地区(统计口径) 草稿中的「防控中地区」「已解除地区」按**涉疫点位/轨迹**字段去重计数: | 项 | 说明 | | --- | --- | | 地区认定 | 以一条疫情上报记录中的**涉疫点位/轨迹**全文作为地区标识;**完全相同**的文案计为 **1** 个地区 | | 防控中地区数 | 满足 **§2.4**「防控中」条件的记录,对其涉疫点位/轨迹**去重**后的个数 | | 已解除地区数 | 满足 **§2.4**「已解除且解除日在 Y」的记录,对其涉疫点位/轨迹**去重**后的个数 | > 若产品后续增加结构化「行政区划」字段,须修订本节及 **§5.6**。 ### 2.6 枚举与后台一致(展示用中文标签) **样本来源**(实验室检测,单选枚举): | 取值 | 展示名称 | | --- | --- | | 场地抽检 | 场地抽检 | | 疫情上报送检 | 疫情上报送检 | | 调运检疫 | 调运检疫 | | 日常检测 | 日常检测 | **风险等级**(疫情上报): | 取值 | 展示名称 | | --- | --- | | 高危 | 高危 | | 中危 | 中危 | | 低危 | 低危 | **疫病类型**(疫情上报): | 取值 | 展示名称 | | --- | --- | | 病毒性疫病 | 病毒性疫病 | | 细菌性疫病 | 细菌性疫病 | | 寄生虫疫病 | 寄生虫疫病 | | 其他类疫病 | 其他类疫病 | **传播途径**(疫情上报): | 取值 | 展示名称 | | --- | --- | | 调运传入 | 调运传入 | | 本地扩散 | 本地扩散 | | 环境感染 | 环境感染 | | 其他未知 | 其他未知 | **检疫站运营状态**(检疫站管理): | 取值 | 展示名称 | 大屏统计用途 | | --- | --- | --- | | 正常 | 正常 | 计入**可用检疫点** | | 停业 | 停业 | 计入**停用检疫点** | | 注销 | 注销 | 计入**停用检疫点**(与停业合并展示,或分开展示以产品定稿为准) | > 草稿写「可用/停用」;**注销**站点不宜视为可用,默认归入**停用检疫点**统计;若原型仅两档卡片,则停业+注销合计为停用数。 **风险因子(权重展示,固定五项)**: 养殖密度、交通流动性、检疫强度、气象适宜度、既往发病水平——名称与《风险因子设置功能需求》**§2.1** 一致;大屏**只读展示**当前已保存权重,**不可**在大屏修改。 ### 2.7 比率与汇总口径 | 指标 | 计算口径 | | --- | --- | | 阳性检出率(年度) | 当年纳入记录的 **阳性检出数合计 ÷ 检测量合计**;检测量合计为 0 时展示 **0%** 或 **—**(产品择一,全文统一) | | 阳性检出率(单月) | 当月阳性检出数 ÷ 当月检测量;当月检测量为 0 时为 0 | | 样本来源占比 | 某来源检测量 ÷ 当年检测量合计;合计为 0 时各来源占比为 0,走 **§7.2** 空态 | | 风险等级占比 | 某等级上报条数 ÷ 当年按上报日纳入的上报总条数;总数为 0 时走空态 | | 疫病类型占比 | 某类型上报条数 ÷ 当年按上报日纳入的上报总条数 | | 传播途径占比 | 某途径上报条数 ÷ 当年按上报日纳入的上报总条数 | | 单条解除时效(天) | **解除日期 − 上报日期**(自然日差,与后台「解除」规则一致:解除日不得早于上报日) | | 某疫病类型解除时效(平均) | 对该类型、满足 **§2.4** 已解除条件的记录,先算每条单条解除时效,再求**算术平均值**;该类型下记录数为 0 时不参与展示或按 **§7.1** 空态 | --- ## 3. 功能范围与边界 ### 3.1 范围内 - 统计年份筛选与整页刷新; - **气象数据**展示区(由前端调用公开免费气象接口,见 **§5.1**); - **样本来源检测**、**实验室检测**(含按月趋势); - **疫病风险**(风险等级占比饼图); - **疫病态势**(检疫点与地区计数卡片); - **疫情上报情况**分页列表; - **疫病类型分布**、**疫病解除时效**、**传播途径**统计图; - **风险因子指数**(五项权重只读展示); - 无数据、加载中、加载失败等状态展示。 ### 3.2 范围外 - 实验室检测、疫情上报、检疫站、风险因子权重的**增删改**; - 气象接口选型、密钥、调用频率等技术实现(属前端/部署); - 基于权重自动跑分、地图轨迹绘制、消息推送; - 导出、打印;下钻后台维护菜单(若后续增加外链须单独评审); - 大屏端权限与网关策略(由部署约定,本文档不展开)。 --- ## 4. 业务流程概览 ```mermaid flowchart TD A[打开大屏疫病风险页] --> B[默认当前统计年份] B --> C[加载实验室检测与疫情上报等数据] C --> D[渲染各统计区块与列表] E[前端加载气象展示] --> D J[用户切换统计年份] --> C K[后台维护数据后] --> L[刷新或重新进入大屏] L --> C ``` **典型使用顺序:** 1. 用户进入大屏,系统按**当前年**加载并展示各区块;气象区由前端并行获取外部数据。 2. 用户切换统计年份 → 全页统一 Loading → 各区块按 **Y** 重算。 3. 运营人员在后台补录检测、上报疫情、解除疫情或调整检疫站状态后,大屏通过**重新进入、手动刷新或约定自动轮播周期**更新(**不要求**秒级实时同步)。 --- ## 5. 页面结构与区块需求 布局以原型 `Snipaste_2026-05-25_19-26-51.jpg`、`Snipaste_2026-05-25_19-27-07.jpg` 为准,逻辑分区如下。 ### 5.1 全局:统计年份与气象数据 | 项 | 规则 | | --- | --- | | 统计年份 | 见 **§2.1**;变更后触发**整页**业务数据重载 | | 气象数据 | **不由**疫病风险后台模块提供;由**前端**调用网上免费气象接口展示(温湿度、降水等,以原型为准);接口失败时气象区单独失败提示,**不影响**其余区块是否展示(若产品要求「气象失败则整页失败」须单独定稿) | --- ### 5.2 区块一:样本来源检测 | 项 | 规则 | | --- | --- | | 统计对象 | **§2.3** 统计年 **Y** 内全部实验室检测记录 | | 统计维度 | 按 **§2.6** 样本来源分类,汇总各来源 **检测量(份)** | | 展示内容 | 各来源检测量及占当年检测量合计的**占比**;可用饼图、环形图或条形图(以原型为准) | | 展示形式 | 须能区分四类来源;图例与标签一致 | | 无数据 | 当年检测量合计为 0 时 **§7.2** | --- ### 5.3 区块二:实验室检测(年度 + 按月趋势) #### 5.3.1 趋势区汇总(滚动 12 月) | 项 | 规则 | | --- | --- | | 检测量 | 最近 12 月窗口内 **检测量** 合计(份) | | 阳性检出数 | 同上 **阳性检出数** 合计 | | 阳性检出率 | **§2.7**;建议以 **%** 展示 | #### 5.3.2 按月趋势 | 项 | 规则 | | --- | --- | | 图表类型 | **折线图**(或面积图,以产品定稿为准) | | 数据系列 | ① 检测量(份);② 阳性检出数(份) | | 数据范围 | **§2.2** 滚动最近 **12** 个自然月 | | 横轴 | 12 个刻度,**仅显示月份**;悬停显 **YYYY年M月** | | 图例 | 两系列须有明确图例与颜色区分 | | 缺月 | 按 **§2.2.1** 为 0 | --- ### 5.4 区块三:疫病风险(风险等级占比) | 项 | 规则 | | --- | --- | | 图表类型 | **饼图**(原型为饼状/3D 饼图时以视觉为准) | | 统计对象 | **§2.4** 按上报日期纳入的疫情上报记录 | | 统计维度 | 按 **§2.6** 风险等级(高危 / 中危 / 低危)计数 | | 展示内容 | 各等级**条数**及占当年上报总条数的**占比** | | 无数据 | 当年上报总条数为 0 时 **§7.2**;**不**展示 100% 单级假象 | --- ### 5.5 区块四:疫病态势(指标卡片) | 项 | 规则 | | --- | --- | | 可用检疫点 | **检疫站管理**中运营状态为**正常**的站点**个数**(与统计年份无关,为**当前主数据快照**;变更年份不改变该数,除非产品要求按年快照——默认**实时**) | | 停用检疫点 | 运营状态为**停业**或**注销**的站点个数(规则同左) | | 防控中地区 | **§2.5** 防控中地区数(个),与统计年份 **Y** 相关 | | 已解除地区 | **§2.5** 已解除地区数(个),与统计年份 **Y** 相关 | > **说明:** 检疫点数为**站点台账**统计;地区数为**疫情上报**衍生统计,二者含义不同,界面文案须区分「检疫点」与「地区」。 --- ### 5.6 区块五:疫情上报情况(列表) | 项 | 规则 | | --- | --- | | 范围 | **§2.4** 按上报日期纳入 **Y** 年的全部疫情上报记录 | | 展示形式 | **分页列表**;**不设**单独详情页或跳转后台详情(列表行内展示查阅所需字段即可) | | 排序 | 默认按**上报日期**倒序,其次创建时间倒序 | | 分页 | 支持翻页;每页条数以大屏交互为准(建议 **5~10** 条) | | 行内至少展示 | 上报日期、传播途径、疫病类型、疫病名称、风险等级、涉疫点位/轨迹(可截断)、处置状态(未解除/已解除)、解除日期(已解除时) | **不提供**大屏上的新增、修改、解除、删除操作。 --- ### 5.7 区块六:疫病类型分布 | 项 | 规则 | | --- | --- | | 图表类型 | 饼图或占比条形图(以原型为准) | | 统计对象 | **§2.4** 按上报日期纳入的记录 | | 统计维度 | **§2.6** 疫病类型四类 | | 展示内容 | 各类型条数及占比 | --- ### 5.8 区块七:疫病解除时效 | 项 | 规则 | | --- | --- | | 统计对象 | **§2.4** 已解除且解除日期在 **Y** 年内的记录 | | 统计维度 | 按**疫病类型**分组 | | 指标 | 各类型 **解除时效平均天数(天)** = 组内每条单条解除时效的**算术平均**,见 **§2.7**;建议保留 **1** 位小数或整数(与项目全局一致) | | 展示形式 | 柱状图或条形图(以原型为准);横轴为疫病类型,纵轴为「平均天数」 | | 无数据 | 该年无任何已解除记录时本区块空态 | --- ### 5.9 区块八:传播途径 | 项 | 规则 | | --- | --- | | 统计对象 | **§2.4** 按上报日期纳入的记录 | | 统计维度 | **§2.6** 传播途径四类 | | 展示内容 | 各途径**数量**及占上报总数的**占比** | | 展示形式 | 饼图、条形图等(以原型为准) | --- ### 5.10 区块九:风险因子指数 | 项 | 规则 | | --- | --- | | 数据来源 | 《风险因子设置》当前**已保存**的全局权重 | | 展示因子 | **§2.6** 五项:养殖密度、交通流动性、检疫强度、气象适宜度、既往发病水平 | | 展示内容 | 各因子名称及其**权重**(建议小数或百分比,与后台录入口径一致) | | 交互 | **只读**;不提供保存、修改 | | 未配置 | 后台从未保存过权重时,展示空态或引导「请在风险因子设置中完成配置」 | > **气象适宜度**:权重来自后台配置;若原型另有「实时气象」数值,属 **§5.1** 前端气象接口展示,**不**与权重混为同一指标 unless 产品明确。 --- ## 6. 图表与列表通用规则 | 项 | 规则 | | --- | --- | | 标题 | 各区块有明确中文标题(可与原型一致) | | 单位 | 检测量、阳性数为「份」;时效为「天」;占比以 **%** 展示(建议保留 2 位小数) | | 跨年 | 仅使用 **§2** 约定的当年纳入规则,**不得**混入其他年份数据 | | 列表与图表一致 | 列表中的条数与饼图分母须同一纳入口径(**§2.4**) | | 只读 | 大屏无维护类按钮 | --- ## 7. 异常、空态与刷新 ### 7.1 业务数据空态 | 场景 | 展示要求 | | --- | --- | | 当年无实验室检测记录 | 样本来源、实验室检测(年度/趋势)展示统一空态;**不**用全 0 冒充有检测业务 | | 当年无疫情上报(按上报日) | 疫病风险、类型分布、传播途径、上报列表等展示空态 | | 当年无已解除记录 | 解除时效区块空态;**不影响**防控中/未解除相关区块 | | 当年有检测但检测量合计为 0 | 按 **§2.7** 展示检出率为 0% 或 —;样本来源占比均为 0 | ### 7.2 加载与失败 | 场景 | 展示要求 | | --- | --- | | 切换年份加载中 | 整页或分区块 Loading,避免显示上一年残留数据 | | 业务数据加载失败 | 明确失败提示,支持**重试** | | 气象接口失败 | 气象区单独提示;其余区块若已成功加载则照常展示(默认策略) | ### 7.3 数据刷新 - 大屏为**只读**;后台维护后,须通过**重新进入、手动刷新或轮播周期自动刷新**更新(周期建议 **1~5 分钟**,由实施配置)。 - **不要求**与后台变更秒级同步。 --- ## 8. 与后台模块的关系 | 后台模块 | 大屏如何使用 | | --- | --- | | 实验室检测 | 按检测日期汇总检测量、阳性数、检出率、样本来源、按月趋势 | | 疫情上报 | 风险等级、类型、途径、列表、解除时效、地区计数(涉疫点位去重) | | 检疫站管理 | 可用/停用检疫点个数(运营状态) | | 风险因子设置 | 只读展示五项权重 | | 气象 | **不经过**上述后台;前端自备 | --- ## 9. 验收要点(功能) | 编号 | 场景 | 通过标准 | | --- | --- | --- | | DYFX-01 | 默认年份 | 进入大屏默认当前年,各区块年份口径一致 | | DYFX-02 | 切换年份 | 切换后检测/疫情类区块同步更新,无旧年残留 | | DYFX-03 | 缺月 | 滚动 12 月窗口内仅部分月份有检测时,趋势图仍为 12 槽位,缺月为 0;横轴仅月、悬停显年月 | | DYFX-04 | 样本来源 | 四类来源占比之和为 100%(有检测时) | | DYFX-05 | 年度检出率 | 与手工按当年合计计算一致 | | DYFX-06 | 风险等级饼图 | 仅统计当年上报日记录;占比之和为 100%(有数据时) | | DYFX-07 | 检疫点 | 可用数=正常站;停用数含停业/注销(与 §2.6 一致) | | DYFX-08 | 防控/解除地区 | 去重规则与 §2.5 一致;切换年份数字变化正确 | | DYFX-09 | 上报列表 | 分页正常;仅当年上报日记录;大屏无维护按钮 | | DYFX-10 | 解除时效 | 仅已解除且解除日在当年;按类型**平均天数**与手工核算一致 | | DYFX-11 | 风险因子 | 展示与后台已保存权重一致;大屏不可改 | | DYFX-12 | 后台补录后刷新 | 补录检测或上报后,大屏刷新可见 | | DYFX-13 | 气象 | 气象由前端展示;失败时不导致业务区块误显示旧气象为「官方数据」 | --- ## 10. 修订记录 | 版本 | 日期 | 说明 | | --- | --- | --- | | 1.0 | 2026-05-25 | 由草稿优化:补全流程、口径、十区块需求;对齐疾病检测与上报体系;不涉及库表与接口 | | 1.1 | 2026-05-25 | 解除时效由加总改为按疫病类型的**平均天数**(§2.7、§5.8、DYFX-10) | | 1.2 | 2026-07-04 | 实验室检测按月趋势改为**滚动最近 12 月**;接口增 `statYear`+`month`;样本来源仍按 **Y** | --- ## 11. 相对草稿的优化说明 | 草稿问题 | 处理方式 | | --- | --- | | 条目罗列、无流程与边界 | 增加 **§3、§4、§7、§9** | | 气象由前端实现 | 明确 **§5.1** 后台不关注,与业务区块加载解耦 | | 「地区」未定义 | **§2.5** 按涉疫点位/轨迹去重;与检疫点区分 | | 疫情统计未区分上报日/解除日 | **§2.4** 分场景约定 | | 解除时效「总时效」 | **§2.7** 明确为同类型**解除时效平均天数**(非加总) | | 注销检疫站是否停用 | **§2.6** 默认归入停用检疫点 | | 样本来源/风险/类型/途径 | 与后台枚举表对齐 **§2.6** | | 未写空态、刷新、只读 | **§3.2、§7** | | 参考疾病检测与上报 | **§8** 列明四模块数据来源 |