摘要:
我在某县卫生健康委员会公共卫生信息中心工作,是信息中心的负责人。2021年5月,我中心受县疾病预防控制中心委托,为某种疾病疫苗3期临床项目开发受试对象拦截系统。我负责系统架构设计,需求分析以及后期的部分编码工作。通过与疾病控制中心领导,二级医院和卫生院信息科负责人沟通后,我们认为该系统存在开发时间紧,预算不高等特点,适合采用数据流批处理的架构,采用快速应用开发方法。
快速应用开发方法将该系统分为规划设计阶段,设计阶段,实现阶段,系统版本迭代阶段,运行阶段等,每个阶段完成了该阶段的重要任务。系统通过多次迭代,最终顺利完成。系统运行后效果很好,得到了疾病预防控制中心随访组负责人和工作人员的高度肯定和赞扬。
正文:
本人在某县卫生健康委员会公共卫生信息中心工作,是信息中心的负责人,主要负责整个县区卫生事业的发展。
2021年5月,我县疾控中心与某大型疫苗研发企业合作,开展某种疾病疫苗的3期临床实验项目。我中心受县疾控中心委托,为某种疾病疫苗3期临床项目开发受试对象拦截系统(以下简称系统)。该系统的一个关键环节是及时追踪受试对象在当地2家医院和5家乡镇卫生院的就诊情况,从而及时安排对应随访工作人员去做相应的现场随访。项目初期,疾病预防控制中心采用医院人工上报的方式追踪,效率低下且容易漏报,疾病预防控制中心领导与我中心沟通,希望可以通过信息化的手段进一步提高受试对象追踪效率。
在与疾病预防控制中心领导进行面对面的沟通之后,我们获取了一些项目的宏观要求:
(1)受试对象拦截系统最好在2周内开发完成。
(2)由于时间紧迫,无法使用正常的信息化项目开发流程来申请预算,所以开发预算不是特别充裕。
(3)受试对象拦截系统需要部署到2家二级医院和5家乡镇卫生院,但拦截系统使用人员指派难度较大,所以对系统运行自动化程度要求高。
按照上述情况,我与2家二级医院和5家乡镇卫生院的信息科相关负责人讨论之后认为时间需求紧,预算不高的前提下,受试对象拦截系统适合采用数据流批处理的架构。系统从各家医院数据库抽取数据,然后经过转换后,保存为文件,最后将文件发送给疾控中心对应负责人。并且认为系统采用快速应用开发方法比较合适。
一.规划阶段
规划阶段初步确定系统架构和系统开发方法之后,我与疾控中心领导沟通,组织开了一次多方碰头会。参会的人员有县疾病预防控制中心领导,县公共卫生信息中心负责人,县疾病预防控制中心信息维护员,疾病预防控制中心疫苗项目随访工作负责人,二级医院信息科科长以及乡镇卫生院信息系统工程师等。在碰头会上,我们创建了受试对象拦截系统沟通交流工作群,方便以后沟通交流。
碰头会进一步明确了业务流程,即受试对象拦截系统每天都将昨天在各家医院就诊的受试对象的就诊信息 反馈到县疾病预防控制中心,疾病预防控制中心的随访工作 负责人,二级医院信息科科长以及乡镇卫生信息系统工程师等。在碰头会上,我哦创建了受试对象拦截系统沟通交流工作群,方便以后沟通交流。
碰头会进一步明确了业务流程,即受试对象拦截系统每天都将昨天在各家医院就诊的受试信息反馈到县疾病预防控制中心,疾病预防控制中心的随访人员按照信息进行相应的随访。
碰头会明确了受试对象拦截系统需求:拦截2家二级医院和5家乡镇卫生院的门诊患者和住院患者:门诊患者需要提供姓名,性别,身份证号码,家庭住址,就诊日期和患者诊断;住院患者需要提供姓名,性别,身份证号码,家庭住址,就诊日期和患者诊断;住院患者需要提供姓名,性别,身份证号码,家庭住址,入院诊断,入院日期,床号;每天上报昨天的拦截信息到疾病预防控制中心;拦截对象数据库在项目初期就已经确定,项目期间发生变动的概率很小。
二.设计阶段
该阶段依据系统需求,通过认证分析和设计,我们受试对象拦截系统统一采用Python语言进行开发,并提供以下几个重要功能:
(1)拦截人员数据库管理:由于拦截人员数据库在项目期间几乎不会发生变动,可以采用导入医院信息系统数据库的方式导入人员数据。
(2)数 据抓取:可以编写SQL脚本从数据库抽取数据
(3)数据清洗:编写数据清洗模块,可以依赖Python统计框架Pandas.
(4) 报表生成:提供"门诊患者拦截信息"和"住院患者拦截信息"两个报表,报表格式为".xlsx".
(5) 报表加密:报表".xlsx"文件使用zip压缩,在压缩过程中使用对称密码加密,各医院和疾病预防控制中心事先沟通好使用的加密密钥。
(6)报表发送:报表压缩包使用电子邮件发送。
三.实现阶段
2家医院和5家乡镇卫生信息系统工程师负责编写SQl脚本,卫建委信息中心负责实现数据清洗,报表生成,报表打包加密以及报表发送等模块。
系统开发期间,疾病预防控制中心领导负责完成受试对象拦截系统建设的相关申请,申请书需要县卫生健康委员会领导批准并加盖县为健康委员会公章。
四.系统版本迭代阶段
(1)第一次版本跌打。
3天之后,乡镇卫生院受试对象拦截系统完成编码工作,我们将一周拦截数据反馈给疾病预防控制中心随访负责人,安排随访人员试用,得到如下反馈;乡镇卫生院获取到的患者数据质量不高,许多患者没有身份证号码;许多患者的住址和手机号码也缺失严重。
经过进一步研究讨论,我们按照是否有身份证号码等信息分类别处理,进一步生成门诊患者通过身份证号码拦截信息门诊患者通过姓名拦截无身份证号码门诊患者人工辅助检查工具住院患者通过身份证号码拦截住院患者通过姓名拦截无身份证号码住院患者人工排查辅助表共6张核心表。
(2)第二次系统迭代。
第二次系统迭代主要是提高受试对象拦截系统运行的可靠性,优化运行错误处理,便于系统在后台zhe运行。
五.运行阶段
经过两次用户反馈和开发迭代,我们完成了乡镇卫生院受试对象拦截系统开发。通过测试后,系统进入试运行阶段,在试运行阶段,我每天人工执行一次脚本,管哈是否有测试阶段未发现的异常发生,连续1周之后,我设置了Linux cron服务,让系统任务自动运行。
总结
受试者对象拦截系统经过约10天的开发,顺利完成并开始运行。由于采用快速应用开发的方式,用户参与早,反馈非常及时,整个系统非常简单,花费也非常小。系统可以比较好的满足客户实际业务需求,极大的提高了疾病预防控制中心随访效率,疾病预防控制中心随访组的工作人员对这个系统非常满意。
这次受试者患者拦截系统的开发过程,让我颇有感触,并不是投资巨大的大型系统才是好系统。这次系统采用批处理的方式,无web界面,无用户授权,按照与常规信息化系统比较,这个系统顶多算一个初期模型,但在系统实际使用过程中发现,很贴合业务实际需求,虽然系统本身非常简单,但发挥了极大的价值;另一个感受就是,信息系统的价值只有在在有能力的业务人员手里才能体现出来,没有人使用,系统就是一个摆设。