APP下载

突发公共卫生事件监测与防控体系的软件设计

2020-04-16罗铁坚孙一涵罗晨希

关键词:公共卫生防控疫情

罗铁坚,孙一涵,罗晨希

“直面新型冠状病毒肺炎:重大疫情防控的跨学科研究”专刊

突发公共卫生事件监测与防控体系的软件设计

罗铁坚1,孙一涵1,罗晨希2

(1. 中国科学院大学计算机科学与技术学院,北京 101407;2. 中国科学院软件研究所智能软件研究中心,北京 100190)

突发公共卫生事件是指在某些国家或地区突然发生的,使民众生命、生活、生产受到严重威胁的大规模传染性流行疾病事件。在现代社会中,个体接受的信息多、随机移动半径大且移动速度快、进入密集人群的可能性大,当发生突发公共卫生事件时,采用传统流行病学调查等手段,不能准确地监测到个体行为轨迹和接触史,很难建立起有效阻止疾病蔓延的防控体系。观察了我国近期发生的新冠肺炎大规模流行事件和抗击疫情中的信息化应用状况;特别查阅了世界卫生组织针对流行疾病提出的防控措施,分析了公共突发事件监测与防控的主要需求和应用场景;结合国内外计算机与通信技术新成果,提出一种面向抗击大规模疫情蔓延的防控软件的技术架构及其开发方法和运营模式。此软件平台作为国家突发公共卫生事件监测与防控长效体系的有机组成部分,将助力提升我国传染病防控体系的水平。

新冠肺炎;公共卫生事件;监测与防控;软件工程;应急响应

引言

几千年来,饥荒、瘟疫和战争永远都是人类的心头大患。尽管一代又一代人类发明了无数的工具、制度和社会系统,但每年仍然有数百万人死于饥饿、瘟疫和暴力[1]。其中,瘟疫是一种典型的突发公共卫生事件。人类历史上有10多起重大突发公共卫生事件,那些大瘟疫给人类带来的后果包括人口死亡、经济下滑以及其他次生灾害带来的损失。比较典型的突发公共卫生事件列举如下。(1)“雅典鼠疫(公元前430~前427年):导致雅典近1/2人口死亡,整个雅典几乎被摧毁。”[2](2)“古罗马‘安东尼瘟疫’(公元164~180年):估计总死亡人数高达五百万。”[2](3)“查士丁尼瘟疫(公元541~542年):地中海世界爆发的第一次大规模鼠疫”[2],使君士坦丁堡40%的城市居民死亡。鼠疫对拜占庭帝国的破坏程度极深,导致其最终崩溃。(4)黑死病(公元1347~ 1351年):全世界死亡人数高达7500万,其中欧洲的死亡人数为2500万到5000万。“黑死病蹂躏整个欧洲大陆,再传播到俄罗斯,导致俄罗斯近三分之一至一半的人口死亡。”[2](5)“美洲瘟疫(16世纪):欧洲人到来之前,美洲居住着400万到500万的原住民,其中大多数都在16世纪几十年间死去,夺取印第安人生命的最直接杀手不是欧洲人的枪炮,而是他们所带来的瘟疫(包括腮腺炎、麻疹、天花、霍乱、淋病和黄热病等)。”[2](6)意大利米兰大瘟疫(公元1629~1631年):造成大约28万人死亡。(7)英国伦敦大瘟疫(公元1665~1666年):“在这场瘟疫中,有七万五千到十万人丧生,超过当时伦敦总人口的五分之一。”[2](8)法国马赛大瘟疫(公元1720~1722年):造成10万人死亡。(9)第三次鼠疫大流行(公元1885年~19世纪50年代):“这场鼠疫起源于云南,蔓延到所有有人居住的大陆。从云南传入贵州、广州、香港、福州、厦门等地后,这些地方死亡人数就达10万多人。随后的10 年间传到77个港口的60多个国家。单在印度和中国,就有超过1200万人死于这场鼠疫。”[2](10)2003年广东的SARS肆虐:短短3个月就席卷全球,未知病毒给全国人民带来了巨大的恐惧。全球因非典死亡人数919人,从死亡人数来看与历次瘟疫相比很少,但是对全民的心灵震撼却是深远的。

“各种传染病对人类健康、经济发展、社会稳定和国家安全造成巨大威胁。在全球经济一体化大背景下,世界范围的艾滋病、传染性非典型肺炎(SARS)、高致病性禽流感、甲型H1N1流感、中东呼吸综合征(MERS)、人感染H7N9禽流感、埃博拉出血热等新发传染病此起伏彼,严重影响了社会稳定和经济发展。”[3]

从2020年1月11日武汉市卫健委首次公布确诊新型冠状病毒肺炎感染病例开始算起,到笔者成文时,时间已经过去了28天。在这28天中,全国统计的确诊病例数从41例增加到了34000多例,新冠病毒的传播版图从武汉一地蔓延至全国34个省级行政区及其他24个国家,疫情的发展非常迅猛。[4]

有效抗击大规模疫情蔓延的监测与防控体系,必须具备三方面的能力。第一,及时发现并隔离4类人员(确诊患者、疑似患者、无法排除感染可能的发热患者、确诊患者的密切接触者);第二,集中收治确诊患者,隔离疑似患者,隔离观察发热患者、密切接触者;第三,提高收治确诊患者治愈率。经过几百年的医疗实践,医学和流行病学专家普遍认为,对于提升第二和第三种能力,已经总结出行之有效的流程方法(SOP)来解决。一方面,在社区发现疑似病人(如发热症状或有接触史等)如何处理、集中收治的医院如何接诊、如何隔离或处置病人等有相关处置流程可参考;另一方面,国家也在持续优化配置一线、二线和后备医疗人力和设施,并对专业人员或志愿者进行定期培训和实战演练。

若要及时彻底地控制传染源,迅速阻断传播途径,则必须大力提升第一种能力,也就是必须准确了解到个体行为轨迹和接触史,及时发现并隔离4类人员。哈佛大学公共卫生学博士、北京大学公共卫生学院宁毅教授等流行病学专家普遍认为,任何传染病,如果预防做不好,病人的数量会呈指数级增长,疫情会越来越严重。宁毅先生还认为目前最大的问题是疫情监测网络的失灵,严重贻误了控制疫情的多次机会,一定程度上造成了今天代价沉重且极为被动的局面。事实证明国内疫情防控管理和软实力建设需要加强,需要着力考虑如何让新发传染病的监测系统更敏感、更实用。疫情防控面临着各种艰巨的挑战,需要从整体效率出发,多个角度考虑防控新发传染病的策略和措施。这次疫情爆发之后,暴露了在应对突发传染病时,当前的社会体系仍然存在诸多值得改善的地方[4]。因此,及时彻底地控制传染源和迅速阻断传播途径,需要人民“战争”,即人人做好预防。但是,需要做什么和如何做,尚没有很好的答案。

针对如何从整体上持续提升我国疫情防控管理水平等问题,本文首先分析当前疫情防控中信息化应用案例,并从世界卫生组织针对流行疾病提出的防控措施、比尔盖茨的论述、国内学者诉求、部分媒体提问等4个方面梳理公共突发事件监测与防控软件的需求;其次,结合国内外计算机与通信技术新成果,提出一种新型的抗击大规模疫情蔓延的防控软件技术架构;随后,论述了一种低成本高质量的开发模式与运营方式。

1 现状分析

以下是当前疫情防控中,新闻报道中提及的以及笔者实际体验的部分计算机软件系统应用案例。

(1)“新闻报道”——某部委领导表态,下一步,将加强协同,会同卫健、网信、交通等多部门,加强数据信息共享,通过多渠道、多种类、多维度数据的整合,提升大数据技术支撑疫情防控的能力水平(图1)。

(2)“新闻报道” ——大数据应用,即对以往历史数据的描述性统计分析,相关工作用传统IT技术即可完成,没有涉及与业务相关的海量数据存储、知识挖掘和智能分析。

图1 大数据应用的可视化图

图2为四川美术学院设计学院数字媒体艺术系师生根据国家卫生健康委员会和丁香园公布的数据制作的湖北省各地级行政区疫情可视化图。

疫情发生后,全国科研力量发挥各自优势,积极开发相关软件,对公开数据进行分析和可视化,帮助公众了解疫情,是值得提倡和赞扬的。但是,这类数据分析的软件应注意以下问题:1)用户需要了解数据来源;2)数据分析方法的科学性;3)分析工具代码应该开源,以便重复验证。

(3)“新闻报道” ——用户通过搜索引擎、信息流、社交网络、社交媒体、新闻客户端得以实时获取疫情动态和防疫知识,也可以知晓和关切疫区人民的状态。由于可能存在数据来源及信息本身真实性的问题,这些平台应该高度自律,不应未经证实而随意传播相关内容。

(4)“新闻报道” ——某公司建成全网集中化大数据平台,通过2万台服务器集群的统一调度,日均汇聚数据超过1100TB,存储数据超80PB。实现了全网信令等数据的统一采集及分析处理,敏捷响应各项疫情防控分析需求。

(5)“新闻报道” ——中国移动提供“漫游地查询”服务(图3),通过短信自我查询15天和30天内行程,解决部分客户无法自证过往行程、无法返回居住地或工作地等问题。这个功能与抗疫情有相关性,但没有做深和做实,比如不能自动筛选出与他临近的已经感染的人群等。

(6)“新闻报道” ——在视频方面,姜堰区人民法院通过移动云视讯线上方式“隔空”开庭审结。“疫情期间,利用这种线上庭审方式,能减少人员聚集可能带来的感染风险,保障人民群众生命健康安全,也保证了诉讼成效”,姜堰区法院、检察院和公安各级领导对此次移动云视讯的助力给予高度评价。

(7)“新闻报道” ——在医疗方面,九江实现了省城专家与县医院病床上的患者面对面交流问诊。“远程会诊”充分发挥了网络高速率、低延时的优势,为江西省医疗救治专家组与省内106家新型冠状病毒医疗救治定点医院搭起了迅捷而又稳定的沟通桥梁。浙大二院新冠肺炎重症患者隔离病区上线了“重症监护室远程观察及指导系统”。该系统有效提升了病区管理的智能化和安全性,分担了医护人员的压力。云端智能机器人在“战疫”前线正式上岗。医院里导诊台是人流量最大、最拥挤的区域,智能服务机器人可以在医院大厅导诊、宣传防疫知识,这将在很大程度上分担导诊台人员的工作量,减少人流交叉感染机会。

图2 湖北省各地级行政区疫情可视化图

图3 中国移动提供的“漫游地查询”服务

(8)“新闻报道” ——在教育方面,北京市教委开展网络授课,使用云视讯同步课堂、“和教育”名师直播课堂、幼儿防疫解决方案三套远程教育方案,利用网络平台,实现“停课不停学”,以信息化手段助力疫情期间网络教学工作。

(9)“作者体验” ——信息报送系统(图4)。该系统基于腾讯小程序平台进行开发。笔者单位部署此软件系统后,个人用户借助手机、PC浏览器等通过微信扫码接入使用。用户每日填报“一日一报”信息。单位管理员可以查询当日上报、未上报、感染情况,并将未上报人员、病患列表快速显示,以便于联络人催办上报;可统计在疫区接触、返乡、旅游人员;亦可导出日报表。系统部署成本包括:1)公有云或私有云服务费;2)配备8核心CPU、8G内存、150G硬盘的服务器,CentOS 7.0或Windows 2012R2操作系统;3)可访问IP端口的互联网服务;4)接入校园APP等身份认证的开发费用。若全国有10万个单位使用,按1万元/每单位测算,将耗去10亿元费用。如果用集约化模式开发和运营,可以为国家节省近10亿元。

(10)“作者体验” ——疫情实时跟踪(图5)。该软件是腾讯公司主导,基于腾讯小程序平台开发的系统。系统收集了国家及各地卫健委网站数据,并进行可视化直观表现。软件系统中的战疫分析、病患轨迹和同程查询的服务质量有待考证;另外,还要评估其所暴露信息对个体心理的影响情况。

从以上的新闻报道和作者体验的若干应用案例中,经分析研究,得出了以下三点结论。

(1)新闻报道称“中国正在借助大数据的力量与新型冠状病毒肺炎展开一场无硝烟的战斗”,认为大数据可以借助5G、物联网、云计算、AI等技术的不断发展再次来到爆发窗口,并期望借助大数据对整个疫情进行防控。但由于对应用的需求分析和软件的功能定位比较模糊,实际所展现的软件系统尚没有解决提升本文前述三大能力的根本问题。

图4 中国科学院大学开发的信息报送系统

(2)按照有效抗击大规模疫情蔓延的监测与防控体系要求来看,目前笔者观察到的抗击疫情的应用大部分是数据填报或统计分析;而且,数据比较分散,以点为主,临时应急,缺乏体系,成本效益比较低,不利于可持续发展。

(3)面向全国和基于长效来考虑,需要认真分析,“抗疫”真实的应用需求到底是什么。我们认为,应该以“体系化”和“一盘棋”出发,综合利用计算机科学与通信技术,逐步有序地解决抗击疫情的关键问题,形成一个国家级的突发公共卫生事件监测和防控的基础设施。

图5 疫情数据可视化和跟踪信息

2 需求分析

我们从互联网上查阅了大量信息,经分析研判,认为下面的信息资料与拟设计的“突发公共卫生事件的监测与防控体系软件”的相关度高。这些资料包括世卫组织卫生条例和防控指南、比尔盖茨应对疫情的倡议文章、国内学者对疫情的忧思和呼吁、部分媒体对流行病学专家的提问等4个方面的内容。本文将从上述文档中梳理出主要数据信息结构和相应服务功能。

2.1 世界卫生组织的卫生条例和防控指南

《国际卫生条例(2005)》(International Health Regulations,IHR)是一部具有普遍约束力的国际卫生法,共有194个国家(包括中国)签署了该条例。条例要求各缔约国应当发展、加强和保持其快速有效应对国际关注的突发公共卫生事件的应急核心能力;并在发现、评估、报告、通报和处置突发公共卫生事件的能力上全部达标。

(1)预警和应对任务

1)入境点有常规措施、训练有素的工作人员、适当的空间和充足的设备,以便检查评估和管理在旅行前、在交通工具(如飞机和船舶)上以及抵达入境点时发现的患病旅行者;

2)建立交通工具和入境点之间以及在入境点和国家卫生部门之间通报信息的程序和途径;

3)安排有症状的旅行者被安全送至医院或定点设施进行临床评估和治疗;

4)制订有效的入境点公共卫生应急计划,以应对公共卫生事件。

(2)警报信息报送工作

1)流行病情报;

2)核实事件;

3)信息管理和传播;

4)实时预警;

5)协调的快速爆发应对;

6)爆发应对后勤工作。

(3)实施工作的新理念

1)各国监测疾病、向世卫组织通报和报告公共卫生事件和风险的具体程序;

2)世卫组织对核实各国内部发生的公共卫生事件的要求;

3)与各国一起并帮助各国开展快速合作风险评估;

4)确定某个事件是否构成国际关注的突发公共卫生事件;

5)协调国际应对措施。

(4)国际疾病爆发预警和反应的综合事件管理4大任务

1)建立综合性数据库,管理流行病情报、核实工作现状、实验室调查和业务信息等;跟踪和纪录疾病爆发史、关键性决定、世卫组织和各伙伴的重要行动以及重点文件;管理后勤支持及专用应对设备、材料和物资。

2)建立人力资源和机构能力数据库,管理应对小组国际专家的技能、经验和证书认证课程等;维护全球疫情警报和反应网络中技术机构的概况,支持国际疾病爆发反应的准备工作和能力等情况。

3)收集公开数据,发布信息产品,服务于会员国、公共卫生官员、媒体和公众。

4)搭建与全球疫情预警和应急响应的网络沟通平台,分享业务信息和协调工作。

在世界卫生组织发布的指导和协调国家及国际流感大流行准备和应对的行动指南中,我们发现他们对疫情预警和应急响应的业务关注点为:

(1)新病例的累积发生率有多快?

(2)已观察到了什么类型的疾病和并发症?

(3)哪些人群(例如年龄组或有严重疾病后果的易感人群)可发生重症并死亡?

(4)病毒是否对抗病毒药物敏感?

(5)有多少人会发病?

(6)对卫生服务部门的影响,包括医疗卫生服务利用等因素及卫生服务人力资源的影响?

2.2 比尔盖茨应对疫情的倡议文章

2015年3月18日,比尔盖茨在新英格兰医学杂志上发表文章[6]提出,世界需要建立一个疫情预警和反应系统。此系统应具备以下能力:

(1)建立一个获得足够权力和资金支持、行之有效地应对疫情的全球性协调机构;此机构在危机来临时,能够在全球范围内快速决策;

(2)扩大并保障科技的研发投入,梳理清楚对开发新工具和方法有效监管的途径;

(3)改进早期预警和监测系统,确保常规卫生系统的正常运行,以便在疫情发生期间,能及时扩展其服务能力;

(4)组建和培训一支由训练有素的人员和志愿者组成的后备队伍;

(5)加强低收入和中等收入国家的卫生系统;

(6)把疫情预警和反应系统纳入常规的备灾工作中进行经常性演练,以便及时发现系统需要改进的地方。

2.3 国内学者对疫情的忧思和呼吁

2020年1月29日,卢锡雷先生指出我国面临新社会形态、新疫情挑战,主要包括以下内容。

(1)新社会形态,表现为:高铁时代——交通人员迁移速度快、范围分布广;春运时段——人流量超大,环境密闭,接触紧密;低温天气——适合新型冠状病毒生存、传播;春节时节——接触多、距离近、频度高;信息传播——广泛、快速、多样。

(2)新防疫情形,“前期症状不典型”、“潜伏周期长而隐”、“传染已经很广泛”、“传染途径多而杂”、“预防没有好方法”、“治疗方案无捷径”、“科研尚在探索中”、“医疗资源很紧缺”;病种的叠加:感冒、流感、新冠肺炎的叠加,甑别需要成本和时间,因此存在“就诊难”、“确诊难”、“治愈难”的实际困难。

针对上述新挑战,他呼吁国家有关部门要重视和解决如下问题:

(1)科研项目需解决实际问题,需做看得懂的科学普及,预案预演对接实战实况;

(2)应急管理需科学化、民主化和实效化;

(3)应彻底打碎官僚主义、形式主义的行政作风;

(4)需要领导有力、资源保障、专业水准的基础防疫体系,尤其是健全的组织体系和应急管理体系;

(5)需要反应迅速、传达准确、透明公开的信息传播和监督机制;

(6)需要先进的科技手段、通信和医疗仪器设备保障;

(7)切不可松懈、麻痹、轻敌,需要慎重、果决、严谨,有持续作战的准备;

(8)系统性的科学知识体系,能帮助我们认清“敌情”的“凶恶与残酷”,应不仅仅是专家权威的安慰与劝导,也不仅仅是鸡汤文、口号语,更不需要不屑、冷漠、拒绝和谩骂!

2020年2月5日,中国计算机学会(CCF)大数据专业委员会“关于征集大数据赋能的防疫(以及重大灾害)治理体系与治理能力现代化建设等方面建议的通知”提出,针对当前的疫情防控形势,广泛征集以下两方面的项目建议:

(1)从监测、分析、预警、防护、检测、诊断、物资调配、谣言鉴别等角度提出应急技术或应急管理方法建议;

(2)从国家治理体系和能力现代化角度,对解决重大公共卫生健康问题(包括其他重大灾害问题)的具体技术研究或政策建议。

2.4 部分媒体对流行病学专家的提问[4]

(1)最近几天,全国新增的确诊和死亡病例仍在每天增加,你认为原因是什么?

(2)疫情现在处于什么阶段,未来会有怎样的发展趋势,你有什么防控建议?

(3)对武汉之外地区的防疫有什么建议吗?

(4)什么样的点是一个拐点,判断的依据或者说标准是什么?

(5)能否推测拐点的出现大概还要多久?

(6)现在也是感冒和流感的高发季。刚才你也提到,现在其实有很多患者可能只是患了普通的感冒和肺炎。如果现在有一个人出现了感冒症状,他应该怎么做?

(7)目前湖北省外的病死率不到0.2%,而湖北省内的病死率则在3%左右,你如何看待这中间的巨大差距?你之前认为新型冠状病毒感染者的病死率未来在3.5%左右,做出这样判断的依据是什么?

(8)有很多媒体报道了武汉床位紧缺的情况,很多病例没有办法得到及时的确诊和治疗。对于武汉床位紧张的现状,你有没有什么建议来改善这个状况?

(9)你觉得对于湖北省内和湖北省外的普通市民来说,他们的个人防护需要注意什么?

(10)有一种观点认为,新冠病毒的毒力会在传播的过程慢慢降低,未来有可能会成为像流感一样的季节性疾病,对此你怎么看?

2.5 分析结论

结合本文第1部分的现状分析和对以上4类材料的内容解读,我们对突发公共卫生事件监测与防控体系的软件需求有了一个总体印象。第一,目前没有一个可持续迭代升级的综合性软件平台来支撑世界或我国突发公共卫生事件监测与防控体系。第二,要解决突发公共卫生事件的监测与防控的长期性问题。若采取各自为政、应急开发、一次性使用、低层次重复、无继承积累等方式,可以预见,项目成本将居高不下,软件质量和研发效率低下、应用效果不佳的情况将会发生。第三,面对前述多种多样、纵横交错的应用需求,我们必须采用系统思维对业务共性和差异进行分类,找到业务问题的数据模型和有价值的功能。

下面是我们对这4类材料的业务价值的基本判断,它们将为我们构思创新性的软件应用场景提供参考。

(1)世卫组织卫生条例和防控指南

这些文档提供了20多个业务词汇,是应用架构主要术语和业务数据模型的元数据标准。它是设计国家层面的核心能力的应用业务功能依据,但对国家内部如何预警和防控措施如何执行没有直接的指导意义。

(2)比尔盖茨应对疫情的倡议文章

提醒世界各国把预警和应对疫情当作一项经常性工程来看。希望投入资金、科技、人才和建立可持续发展的体系。

(3)国内学者对疫情的忧思和呼吁

所求很多,担忧很多,希望解决的问题太多,没有注意社会分工和如何利用各类专业人士形成合力,设计有条不紊的解决方案。

(4)部分媒体对流行病学专家的提问

希望快速解决目前的问题,但这些提问对解决方案的形成仍缺乏有价值的启发性。

如前所述,有效抗击大规模疫情蔓延的监测与防控体系,必须具备三方面能力。若要所设计的支持突发公共卫生事件的监测与防控体系的软件系统具备上述三种能力,必须回答如下的问题:

(1)系统的主要用户角色是谁?他们有什么诉求?需要什么服务?如何评价这些服务质量?谁来建设和维护?

(2)主要应用场景是什么?收集什么数据信息?如何组织数据?如何定义每个功能点?

根据以上分析思路,下文将给出软件的应用场景及其系统架构。

3 应用场景及系统架构

3.1 应用场景

经初步分析,建议第1版本的软件系统分2大类,共6种角色。下面是一个示意性的框架,根据需求可以增减角色和服务功能。

第1类:部门用户

(1.1)管理部门(国家级)

1)制定防止国内和国际传播的控制措施;

2)指派专业人员对样品进行实验室分析;

3)提供需要的现场援助,以补充当地的调查;

4)批准和执行遏制与控制措施(与WHO合作);

5)与其他有关政府部门建立直接联系;

6)对医院、诊所、机场、港口、陆路口岸、实验室和其他重要的业务部门就发生事件提供处置信息和建议;

7)制定、实施和保持国家突发公共卫生事件应急预案,包括建立多学科、多部门工作组以应对可构成国际关注的突发公共卫生情况的事件。

(1.2)管理部门(省部级)

1)及时发现在所管地区发生的超过预期水平的疾病或死亡事件;

2)向上级报告所掌握的一切重要信息,包括:临床记录、实验室结果、风险的来源和类型、患病人数和死亡人数、影响疾病传播的条件和所采取的卫生措施等;

3)立即采取初步控制措施。

(2)医疗机构

1)及时获取有效和合理的治疗方案;

2)确认所报告事件的状况并支持或采取额外控制措施;

3)立即评估报告的事件,如发现情况紧急,则向上级报告所有重要信息,包括严重的公共卫生影响和(或)不寻常或意外的、具有巨大传播潜力的特性。

(3)研究机构

1)了解疫情的科研数据、新工具和方法;

2)对公众提供准确的疫情相关知识。

第2类:个人用户

(1)医疗服务人员

1)使其理解有效的防护、治疗工具和方法;

2)使其及时获取可回答病人问询的医疗保健问题参考答案。

(2)病人

1)使其了解病情和如何配合治疗的知识;

2)帮助其回忆过往的他人接触史。

(3)未发病的人员

1)使其了解科学有效的个人防控措施;

2)帮助其避开接触病人和疑似病人。

我们建议对上述2大类、6种角色的软件需求,采用“用户故事”方式进行描述。简单来说,用户故事=用户+故事=人+故+事,也就是一个人因为什么原因要做什么事,提炼出的三要素就是“who、why、what”。从需求角度来看就是一个用来确认用户和用户需求的简短描述。用户故事通常的表达格式为:作为一个<用户角色>, 我想要<完成活动>, 以便于<实现价值>。

一个完整的用户故事包含三个要素:

(1)角色(who):谁要使用这个;

(2)活动(what):要完成什么活动;

(3)价值(value):为什么要这么做,这么做能带来什么价值。

3.2 系统架构

架构设计的目的是驾驭软件的复杂性,即需求变化和技术多样。通过组织人员和技术,低成本地满足需求以及需求的变化,保障软件的稳定高效运行。架构设计要完成如下任务。

(1)将3.1节归纳的应用场景进行抽象和分解,分别映射到业务实体集合、数据存储模型和服务功能集合中。

(2)设计数据服务和应用功能API。

(3)定义应用功能和系统边界。应满足如下原则:对其他服务的依赖尽量少,功能明确,测试用例清楚。

(4)分析应用功能采集的数据未来是否需要修改和进行趋势分析?对个人信息的使用是否违反伦理道德和隐私保护条例(如PII(personally identifiable information)、HIPAA 或GDPR等)?

(5)应用服务功能的数据是否来自多个系统?是否需要清洗、合并等操作?应用服务功能是否允许停机?

(6)数据管理和代码管理的方法。

(7)采用基于微服务的应用架构(图6)。

这类架构的优势为:1)快速发布新服务功能;2)用新技术实现的功能不影响原有的正常功能;3)各个服务功能的依赖性低;4)容易扩展服务更大规模用户的能力。但这些优势也需要采用新的工程实践方法。这一工程实践方法工作内容包括:运维、监测、协作、事件&报警、事故根源分析等5个方面。

图6 系统架构图

(1)运维

规划应用系统负载容量,并根据用户使用量进行自动扩容。考虑使用开源Kubernetes系统实现应用的自动化部署、动态扩容和其他运维任务(如,按资源情况安排应用负载、自动部署或回滚应用、负载均衡、水平扩展、自修复、备份和归档等)。

(2)监测

应用系统的前端是服务于人,后端是系统软件或硬件。典型的软件监测指标包括:可用性、性能、响应时间、时间延迟或错误率等。若应用部署在云平台(IaaS和PaaS)上,云平台提供系统软件和硬件运行监测数据。为了完成监测任务,可以采用开源的Prometheus监测软件和Fluntd日志采集软件。监测任务中的重要工作是应用运行的日志管理和分析服务。事件&报警和事故根源分析等任务依赖于好的日志管理软件。可以考虑采用OpenTracing 来进行应用行为跟踪和异常事故的分析和诊断。

(3)协作

开发与运维人员协作处理异常事件。异常发生时,分析事故根源,进行诊断排查,对出错部位进行隔离,尽快恢复服务。由于基于服务的技术架构中的服务往往依赖其他服务或组件,因此,需要找到负责相应组件的开发或运维人员介入支撑排查诊断或恢复服务。应设计一个系统监测的仪表盘,来可视化应用的依赖关系、部署的位置、运行状态、应用服务和相关性能指标项等信息。

(4)事件&报警

监测事件包括正常或异常,对于异常事件,要及时通过电子邮件、短信或微信等通知相关人员处理。

(5)事故根源分析

为了避免事故的再次发生,采用5H方法来分析诊断事故的根源。5H问题根源分析诊断方法举例如下。

1)为何服务中断?回答:数据库被锁。

2)为何数据库被锁?回答:对数据库进行写操作的请求过多。

3)为何会有过载的写数据操作?回答:设计时没有预见这种情况发生,也没有进行压力测试。

4)为何对负载变化没有进行测试?回答:在开发流程中,没有规定应该测试负载变化的情况。

5)为何在开发流程中,没有规定应该测试负载变化的情况?回答:没有做大量负载测试来达到支持更高数量级的用户访问规模。

4 开发模式和运营方式

完美地设计与实现任何一个软件系统,必须充分挖掘有价值的需求,不断迭代开发和演进,最终才能真正支撑应对突发公共卫生事件的业务工作。为了提升开发人员的生产效率,实现低成本、高质量、快交付的目标,必须采用现代先进的开发模式和运营方式。经过近70年的软件工程实践,业界已经总结了大量有效的理论和方法。本文认为应该遵循如下的软件开发和运维的规范要求。

(1)减少开发者理解和学习的成本,使用开发与运维一体化平台。

(2)确保应用系统的可移植性,与应用支撑环境(如OS、DB)解耦。

(3)为节省服务器和系统管理成本,使用云平台部署应用。

为满足上述开发与运维的要求,应完成以下11项任务,即:1)一份基准代码,多份部署;2)显式声明应用中类库的依赖关系,并在运行环境中存储配置;3)灵活添加后端服务资源;4)严格分离应用的构建、发布和运行;5)以一个或多个无状态进程运行应用;6)以端口关联应用服务;7)使用并发进程模型进行扩展;8)通过快速启动和优雅终止确保服务的健壮性;9)保持开发、预发布、线上环境一致性;10)建立日志管理,确保故障诊断的准确快捷;11)按一次性进程运行模式管理后台任务。关于这些任务的详细内容可参见文献[9]。

5 总结

公共卫生安全是国际社会所面临的共同挑战,人类社会在同各种疾病进行抗争的过程中不断发展。在疫情中和疫情后,我国专家学者和广大从业人员都在积极总结经验,开发相关的软件系统。软件平台应作为国家突发公共卫生事件监测与防控长效体系的有机组成部分,并进行持续的开发和应用。

针对如何提升我国疫情防控管理水平等问题,本文分析了疫情防控信息化应用案例。从世界卫生组织针对流行疾病提出的防控措施等4个方面的材料中梳理出了公共突发事件监测与防控软件应用需求;提出了新型的抗击大规模疫情蔓延的防控体系和相应的软件架构,明确指出开发突发公共卫生事件的监测与防控软件必须围绕快速排查潜在的传染对象、及时隔离和收治、尽快让其康复等三大中心任务来展开。未来,我们还将深化理解和归纳应用需求,修改完善软件技术架构,建立开发运维一体化平台,开发出可运行版本,发布于GitHub网站,为志愿者提供验证和批改。

[1] [以色列] 尤瓦尔·赫拉利_著, 林俊雄_译. 未来简史——从智人到智神(第一版)[M]. 中信出版社, 2017, 2.

[2] David Li. 史上十大最严重的瘟疫[EB/OL]. (2009-6-23) [引用日期:2020-2-18]. http://www.360doc. com/content/ 09/0623/20/152695_4008826. shtml.

[3] 做好传染病防治人员安全防护提升传染病防控体系水平——中国疾控中心主任王宇解读《国务院办公厅关于加强传染传染病防治人员安全防护的意见》[J]. 首都公共卫生, 2015, 9(2): 93-94.

[4] 夏志坚. “病”和“疫”非常不一样,防控疫情要有系统思维[EB/OL]. (2020-2-10)[引用日期:2020-2-18]. https://tech. sina.com.cn/d/f/2020-02-10/doc-iimxyqvz1618918.shtml.

[5] WHO. Report of the Review Committee on the Functioning of the International Health Regulations (2005) in relation to Pandemic (H1N1) 2009[R]. 2011.

[6] Gates, Bill. The Next Epidemic-Lessons from Ebola[J]. New England Journal of Medicine, 2015, 372(15): 1381-1384.

[7] Daigneau, Robert. Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services[M]. Boston: Addison-Wesley, 2011.

[8] Evans E. Domain-Driven Design: Tackling Complexity in the Heart of Software[J]. Domain-driven design: tackling complexity in the heart of software, 2002.

[9] Adam Wiggins. The Tewlve-Factor App[EB/OL]. (2017) [引用日期:2020-2-18]. https://12factor.net/.

Designing Monitoring and Prevention Software for Public Health Systems in Emergencies

Luo Tiejian1, Sun Yihan1, Luo Chenxi2

(1. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing, 101407, China)(2. Intelligent Software Research Center, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)

Public health emergencies refer to large-scale infectious diseases in some countries or regions, which seriously threaten people’s life, living and production. In modern society, due to the large amount of information received by individuals, the large and fast random moving radius, and the possibility of entering dense populations, it is difficult to establish an effective system to prevent and control the spread of disease using traditional epidemiological survey and other means when public health emergencies occur. This is because those methods cannot accurately track individuals’ behavior and their detailed contact history. The author observed the novel coronavirus pneumonia epidemic in China recently, as well as the application of information technology in the fight against the epidemic, consulted the preventive and control measures against epidemic diseases from WHO, analyzed the main demands and application scenarios of public emergency monitoring and prevention, and based on the new achievements in computer and communication technology at home and abroad, put forward a technical framework, development method, and operation mode for preventing and controlling the spread of a large-scale epidemic. As an organic part of the long-term monitoring and control system of national public health emergencies, the software platform will help to improve the level of China’s prevention and control system for infectious diseases.

COVID-19; public health events; monitoring and prevention; software engineering; emergency response

2020–02–01;

2020–02–17

罗铁坚(1962–),男,博士,教授、博士生导师,研究方向为学习科学、机器智能、软件系统等。E-mail: tjluo@ucas.ac.cn

孙一涵(1994–),女,博士研究生,研究方向为学习科学、机器智能等。E-mail: sunny_alice@126.com

罗晨希(1991–),女,硕士,工程师,研究方向为智能软件,数据科学等。E-mail: luochenxi@iscas.ac.cn

10.3724/SP.J.1224.2020.00072

TP3;N03

A

1674-4969(2020)01-0072-12

猜你喜欢

公共卫生防控疫情
战疫情
配合防控 人人有责
猪常见腹泻病症状及防控
抗疫情 显担当
疫情中的我
守牢防控一线 静待春暖花开
疫情期在家带娃日常……
夏季羊中暑的防控
《首都公共卫生》征订启事
公共卫生服务怎加强