【摘要】
我在某县卫生健康委员会公共卫生信息中心工作,是信息中心的负责人。2021年5月,我中心受县痪病预防控制中心委托,为某种痪病疫苗3期临床项日开发受试对象拦截系统。我负责系统架构设计、需求分析以及后期的部分编码工作。通过与庆病预防控制中心领导、二级医院和卫生院的信息科负责人沟通后,我们认为该系统存在开发时间紧,预算不高等特点,适合采用数据流批处理的架构,采用快速应用开发方法。

快速应用开发方法将该系统分为规划阶段、设计阶段、实现阶段、系统版本迭代阶段、运行阶段等,每个阶段完成了该阶段的重要任务。系统通过多次迭代,最终顺利完成。系统运行后效果很好,得到了痪病预防控制中心随访组负责人和工作人员的高度肯定和赞扬。

【正文】
本人在某县卫生健康委员会公共卫生信息中心(以下简称“卫健委信息中心”)工作,是信息中心的负责人,主要负责整个县区卫生信息化事业的发展。2021 年5月,我县疚病预防控制中心与某大型疫苗研发企业合作,开展某种痪病疫苗的3 期临床试验项目。我中心受县庆病预防控制中心委托,为某种痪病疫苗3期临床项目开发受试对象拦截系统(以下简称“系统”)。该系统的一个关键环节是及时追踪受试对象在当地2家医院和5家乡镇卫生院的就诊情况,从而及时安排对应随访工作人员去做相应的现场随访。项目初期,疾病预防控制中心采用医院人工上报的方式追踪,效率低下且容易漏报,疾病预防控制中心领导与我中心沟通,希望可以通过信息化的手段进一步提高受试对象追踪效率。

在与族病预防控制中心领导进行面对面的沟通之后,我们获取到了一些项目的宏观要求:
(1)受试对象拦截系统最好在2周内开发完成。
(2)由于时间比较紧迫,无法使用正常的信息化项目开发流程来申请预算,所以开发预算不是特别充裕。
(3)受试对象拦截系统需要部署到2家二级医院和5家乡镇卫生院,但拦截系统使用人员指派难度铰大,所以对系统运行自动化程度要求高。

按照上述情况,我与2家二级医院和5家乡镇卫生院的信息科相关负资人讨论之后认为时间紧、预算不高的前提下,受试对象栏截系统适合采用数据流批处理的架构。系统从各家医院数据库抽取数据,然后经过转换后,保存为文件,最后将文件发送给族控中心对应负贵人。并且认为系统开发采用快速应用开发方法比较合适。

快速应用开发(RAD)是基于构件的开发方法,强调用户参与、开发或复用构件、模块化要求高。一般不适用于新技术,快速应用开发方法的基本思想为:
(1)让用户更主动地参与到系统分析、设计、构造活动中。
(2)组织召开一系列重点突出的研讨会,并让项目投资方、用户、系统分析师、设计人员和开发人员一起参与。
(3)采取迭代方式加速需求分析和设计。
(4)尽快让用户看到一个可以工作的系统。

快速应用开发方法可以分为规划、设计、实现、系统版本迭代和运行五个阶段,而设计和实现一般需要多次迭代,下面我就受试对象拦截系统的开发过程介绍如下:

一、规划阶段
规划阶段初步确定系统架构和系统开发方法之后,我与庆控中心领导沟通,组织召开了一次多方碰头会。参会人员有县庆病预防控制中心领导、县公共卫生信息中心负责人、县疾病预防控制中心信息维护员、庆病预防控制中心疫苗项目随访工作负责人、二级医院信息科科长以及乡镇卫生院信息系统工程师等。在碰头会上,我们创建了受试对象拦截系统沟通交流工作群,方便以后沟通交流。

碰头会进一步明确了业务流程,即受试对象拦截系统每天都将昨天在各家医院就诊的受试对象的就诊信息反馈到县庆病预防控制中心,痪病预防控制中心的随访人员按照信息进行相应的随访。碰头会明确了受试对象拦截系统需求:拦截2家二级医院和5家乡镇卫生院的门诊患者和住院患者:门诊患者需要提供姓名、性别、身份证号码、家庭住址、就诊日期和患者诊断;住院患者需要提供姓名、性别、身份证号码、家庭住址、入院诊断、入院日期、床号;每天上报昨天的拦截信息到痪病预防控制中心;拦截对象数据库在项目初期就已经确定,项目期间发生变动的概率很小。

二、设计阶段
该阶段依据系统需求,通过认证分析和设计,我们得到受试对象拦截系统统一采用 Python 语言进行开发,并提供以下几个重要功能:
(1)拦截人员数据库管理:由于拦截人员数据库在项目期间几乎不会发生变动,可以采用导入医院信息系统数据库的方式导入人员数据。
(2)数据抓取:可以编写 SQL 脚本从数据库抽取数据。
(3)数据清洗:编写数据清洗模块,可以依赖 Python 统计框架 Pandas。
(4)报表生成:提供“门诊患者拦截信息〞和“住院患者拦截信息〞两个报表,报表格式为“.xlsx”。
(5)报表加密:报表“xlsx”文件使用 2ip压缩,在压缩过程中使用对称密码加密,各医院和疾病预防控制中心事先沟通好使用的加密密钥。
(6)报表发送:报表压缩包使用电子邮件发送。

三、实现阶段
2家医院和 5家乡镇卫生院信息系统工程师负责编写数据抓取的 SQL脚本,卫健委信息中心负责实现数据清洗、报表生成、报表打包加密以及报表发送等模块。系统开发期间,痪病预防控制中心领导负责完成受试对象拦截系统建设的相关申请,申请书需要县卫生健康委员会领导批准并加盖县卫生健康委员会公章。

四、系统版本迭代阶段
(1)第一次系统迭代。
三天之后,乡镇卫生院受试对象拦截系统完成编码工作,我们将一周拦截数据反馈给痪病预防控制中心随访负责人,安排随访人员试用,得到如下反馈:乡镇卫生院获取到的患者数据质量不高,许多患者没有身份证号码:许多患者的住址和手机号码也缺失严重。

经过进一步研究讨论,我们按照是否有身份证号码等信息分类别处理,进一步生成“门诊患者通过身份证号码拦截信息”“门诊患者通过姓名拦截(需人工核实)”“无身份证号码门诊患者人工排查辅助工具”“住院患者通过身份证号码拦截”“住院患者通过姓名拦截(需人工核实)”无身份证号码住院患者人工排查辅助表”共6张核心报表。

(2)第二次系统迭代。
第二次系统迭代主要是提高受试对象拦截系统运行的可靠性,优化运行错误处理,便于系统在后台运行。

五、运行阶段
经过两次用户反馈和开发迭代,我们完成了乡镇卫生院受试对象拦截系统开发。通过测试后、系统进入试运行阶段,在试运行阶段,我每天人工执行一次脚本,观察是否有测试阶段未发现的异常发生,连续运行1周之后,我设置了 Linux服务,让系统任务自动运行。与此同时,我将拦截系统的相关代码通过 GitHub 共享给2家二级医院的信息科,医院信息系统工程师将代码中的 SQL 脚本替换为适合自家医院信息系统的 SQL 脚本后开始测试和手工试运行,1周之后,也采用 Linux cron 的方式自动运行。

受试对象拦截系统经过约 10天的开发,顺利完成并开始运行。由于采用快速应用开发的方式,用户参与早,反馈非常及时,整个系统比较简单,花费也非常小。系统可以较好地满足客户的实际业务需求,极大地提高了族病预防控制中心,随访效率,庆病预防控制中心随访组的工作人员对这个系统非常满意。

这次受试患者拦截系统的开发过程,让我颇有感触,并不是投资巨大的大型系统才是好系统。这次系统采用批处理的方式,无 Web 界面、无用户授权,按照与常规信息化系统比较,这个系统顶多算一个初期模型,但在系统实际使用过程中发现,很贴合业务实际需求,虽然系统本身非常简单,但发挥了极大的价值:另外一个感受就是,信息系统的价值只有在有能力的业务人员手里才能体现出来,没有人使用,系统就是一个摆设。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/94513.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/94513.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/94513.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4056:【GESP2403八级】接竹竿

/*4056:【GESP2403八级】接竹竿flag 数组 存储每个元素出现的位置,nxt[i]j;存储每个位置 后面第一次出现 与a【i】相等的位置//其中 a【i]a[j] :记录i的下一个位置 ,flag 存储每个值的位置下一次 具有下一次,相当于的链表了&…

企业落地版 AutoGen 多智能体工程(完整示例)

企业生产级参考实现,目标是一套可直接部署的模板工程,包含: FastAPI HTTP API(任务提交、状态查询) Celery 异步任务队列(Redis Broker) PostgreSQL + pgvector(向量存储,RAG) SQLAlchemy + Alembic(ORM 与迁移) AutoGen 多智能体编排(Planner / Coder / Executor…

前端的请求协议对应java的接收

application/json前端发送 JSON 数据,后端用 RequestBody 接收并自动映射为 Java 对象。前端示例(Axios):axios.post("/api/user", { name: "张三", age: 20 }, {headers: { "Content-Type": "…

esp32_hid_device 调试遇到的一些问题

nimble to windows10 22h2esp_hid_device 的keyboardReportMap在win10 22h2 csr4.0 下好像识别不了, Windows(和大多数 BIOS/UEFI)只认 6-byte key array 的 HID Keyboard 描述符。如果不是 6 个字节,Windows HID 驱动就会认为这不…

观察者模式 (Observer Pattern)与几个C++应用例子

1. 模式定义与核心思想 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当这个主题对象的状态发生变化时,它会自动通知所有观察者对象,使它们能够自动更新自己。核心思想: 解耦主题和观察者。主题…

[系统架构设计师]论文(二十三)

[系统架构设计师]论文(二十三) 一.论软件系统架构评估 1.架构所关注的质量属性主要有:性能,可用性,安全性,可修改性 1)性能。性能是指系统的响应能力,即要经过多长时间才能对某个事件…

攻克 Java 分布式难题:并发模型优化与分布式事务处理实战指南

攻克 Java 分布式难题:并发模型优化与分布式事务处理实战指南 开场:从“摇摇欲坠”到“稳如磐石”,你的分布式系统进阶之路 你是否曾经遇到过这样的场景?精心打造的电商应用,在大促开启的瞬间,页面响应变得…

如何在Ubuntu中删除或修改已有的IP地址设置?

在 Ubuntu 中为新增加的网卡设置网络时,需要区分原有网卡和新网卡的配置,确保它们可以独立工作(可在同一网段或不同网段)。以下是具体步骤,假设你需要为新网卡配置静态 IP(以 192.168.1.190/24 为例&#x…

Ansible Playbook 概述与实践案例(下)

#作者:张桐瑞 文章目录四、条件判断的实现五、循环的实现六、Jinja模板应用1、Jinja模板2、handlers组件七、角色 role1、角色介绍2、案例: 部署zabbix-agent四、条件判断的实现 when: 条件 - hosts: appserveruser: roottasks:- name: create userAuser: nameuser…

LeetCode 100 -- Day6

1. 哈希:49、128(1)49 字母异位词分组 -- 字典from collections import defaultdict class Solution(object):def groupAnagrams(self, strs):"""创建字典{sorted_string:原str}"""resultsdefaultd…

多因素认证(MFA/2FA)实战指南:如何保护你的账号

一、MFA/2FA 基础认知 1. 概念辨析与演进 单因素认证(1FA)的局限性:仅依赖 “知识因素”(如密码),据 2024 年 Verizon 数据泄露报告,81% 的账户入侵源于密码泄露 —— 要么是用户使用弱密码&a…

vue3 字符 居中显示

在Vue 3中&#xff0c;要实现字符的居中显示&#xff0c;你可以使用多种方法&#xff0c;具体取决于你是想在HTML元素内居中文本&#xff0c;还是在CSS样式中实现。下面是一些常见的方法&#xff1a;1. 使用内联样式你可以直接在元素上使用style属性来实现文本的居中。<temp…

《Spring Boot 进阶:从零到一打造自定义 @Transactional》 ——支持多数据源、动态传播行为、可插拔回滚策略

《Spring Boot 进阶&#xff1a;从零到一打造自定义 Transactional》 ——支持多数据源、动态传播行为、可插拔回滚策略版本&#xff1a;Spring Boot 3.2.x JDK 17一、背景与痛点痛点默认 Transactional 限制多数据源只能绑定一个 DataSourceTransactionManager多租户无法在运…

open3D学习笔记

这里写自定义目录标题 核心3D数据结构 1.1 PointCloud(点云) 最近邻搜索 (KNN/Radius) 与空间索引(KDTree/Octree) 法线估计 (Normal Estimation) 聚类分割 (基于欧氏距离的聚类) 1.2 TriangleMesh (三角形网格) 泊松表面重建 (Poisson Surface Reconstruction) 滚球法 (Ba…

gt_k_char设计模块

是不是再fiber或者gt设计中经常遇到接收数据没有对齐&#xff1f;是的。很多协议需要手动对齐设计。这不&#xff0c;它来了。下面是手动对齐代码设计&#xff0c;本人在很多工程和项目中应用过&#xff0c;现在共享出来&#xff0c;给大家使用。module gt_k_char (input …

网页版云手机怎么样

随着科技的不断发展&#xff0c;云手机这一新兴概念逐渐走入大众视野&#xff0c;而网页版云手机作为云手机的一种便捷使用方式&#xff0c;备受关注&#xff0c;下面从多个方面来探讨网页版云手机究竟怎么样。与传统的需要在本地设备安装专门APP的云手机使用方式不同&#xff…

XFile v2 系统架构文档

XFile v2 系统架构文档 1. 概述 XFile 是一个基于 Go 语言开发的分布式文件管理系统&#xff0c;提供本地文件存储、网络文件共享、安全认证和多种文件操作功能。该系统采用模块化设计&#xff0c;支持大文件分片存储、用户权限管理、双因素认证等高级功能。 XFile系统的核心特…

写一个天气查询Mcp Server

上篇文章&#xff0c;我们聊到了 MCP 的基本概念&#xff0c;带大家快速入门了 MCP。 说入门应该毫不夸张&#xff0c;对于科普性质的文章&#xff0c;只需要知道这件事情的诞生背景以及有什么作用就可以了。 但是&#xff0c;如果要开发给大模型调用的 Mcp Server&#xff0…

leecode-三数之和

思路 我的思路先顺序遍历一个变量,然后使用首尾双指针去遍历&#xff0c;根据结果去更新另外两个变量&#xff0c;如何和为零&#xff0c;将结果加入集合&#xff0c;但是这里要注意去重。 class Solution {public List<List<Integer>> threeSum(int[] nums) {// 排…

【数学建模】灰色关联分析的核心步骤

文章目录步骤一&#xff1a;读数据步骤二&#xff1a;指标正向化步骤三&#xff1a;数据标准化步骤三&#xff1a;数据标准化步骤四&#xff1a;结果处理步骤一&#xff1a;读数据 步骤一&#xff1a;读数据 X xlsread(‘blind date.xlsx’); % 读取Excel文件中的相亲数据 详…