那个”万能密码”用了三年:一次权限管理的觉醒

“系统出错了!”

信息科李主任刚上班,就接到药房电话。

药房馮主任在电话里嚷:”为什么我登录系统,提示’密码过期’?我昨天还能用!”

李主任心里一沉。

药房系统,用的是全院统一的”管理员账户”——用户名admin_yaofang,密码是Yaofang@2023

这个密码一年前就该过期了,但冯主任一直没改。不是他不想改,是改了之后,药房十几台电脑都要手动更新密码,很麻烦。

而且,这套密码,从2023年用到现在,从来没出过问题。

但今天,突然提示密码过期。

李主任查了一下密码策略:密码有效期是180天。Yaofang@2023是2023年10月设置的,到今天已经超过500天了。

奇怪,为什么系统突然开始强制改密码?

他打开密码策略配置——有效期还是180天,但”密码历史记录”被改成了”记住5次”。而且,”密码必须复杂性”被开启。

“有人动过密码策略。”李主任说。

他查变更日志,发现是上周安全加固时,小吴改的。

小吴来了,解释:”我发现全院所有科室的管理员密码,都是’科室名@年份’,太简单了。我就把策略调严了:必须大小写字母+数字+符号,8位以上,180天过期,不能重复使用。”

“但药房不知道啊,”李主任说,”他们没收到通知。”

“系统登录的时候会提示。”

“但提示了为什么不改?冯主任说,他点了’确定’,登录还是失败。”

小吴查了一下:”哦,新密码策略要求密码不能包含用户名。冯主任如果设成’Yaofang@2024’,就包含了’Yaofang’,不符合策略,所以设失败。”

李主任明白了:这是一个典型的”好心办坏事”——安全策略变严了,但用户不知道怎么设置合格的新密码,导致集体被锁。

1. “万能密码”的发现

但这件事,只是冰山一角。

当天下午,老周来信息科做客,李主任跟他抱怨:”我们这权限管理,一团糟。”

老周问有多乱。

李主任打开用户管理后台,给老周看:

发现一:存在”万能账户”

– 有个用户叫admin_backup,密码是Admin@123456

– 这个账户的权限是”超级管理员”,但没人知道是谁创建的

– 最后一次登录是半年前,但账户状态是”启用”

李主任说:”这个账户是V2.0时代留下的,那时开发商留的后门。V3.0迁移时忘了删。”

发现二:科室共用账户严重

– 药房:admin_yaofang(5人知道密码)

– 住院处:admin_zhuyuan(3人知道密码)

– 财务科:admin_caiwu(4人知道密码)

– 检验科:admin_jianyan(2人知道密码)

密码都是”科室名@年份”,而且五年没改过。

“为什么这么乱?”

“因为一旦改密码,所有科室电脑都要同步更新,很麻烦。而且我们系统没有单点登录,每个科室都要独立账户。”李主任说。

发现三:权限虚高

– 门诊挂号岗的账户,有”删除挂号记录”权限

– 护士站的账户,有”修改药品价格”权限

– 医嘱开立岗的账户,有”删除医嘱”权限

“这些高权限,是出厂设置,我们没细调。”

老周看着后台,摇头:”这就像一个家,钥匙分给所有邻居,而且钥匙上贴着’万能’两个字。”

2. 老周的建议:三管齐下

老周给李主任提了三个建议:

1. 清理账户,最小权限原则

– 删除所有未使用的账户(尤其是admin_backup

– 所有账户按角色分配权限:挂号员只能挂号,收费员只能收费,护士只能执行医嘱

– 每个角色,只给”必须”的权限,不给的权限,一个都不要给

2. 推广单点登录(SSO)

– 医院职工用一个账号(工号)登录所有系统

– 密码只需改一次,所有系统同步更新

– 极大减少”共用账户”现象

3. 建立账户生命周期管理

– 新员工入职,自动创建账户

– 员工调岗,自动调整权限

– 员工离职,24小时内禁用账户

– 定期(每季度)审计所有账户,清理僵尸账户

3. 实施中的”人性化”难题

但实施起来,困难重重。

第一关:清理”admin_yaofang”这类共用账户

李主任在信息科会上提出:药房今后不再使用admin_yaofang,改为每人一个独立账户。

冯主任当场反对:”我们药房十几个人,每人一个账号,那密码怎么管理?出问题谁负责?”

“你们现在共用一个密码,出了问题谁负责?”李主任反问。

“现在也没出问题啊。”

“刚才的密码过期事件,不就是问题吗?”

冯主任不说话了。

李主任提出妥协方案:

– 先为药房所有在职人员创建独立账户

– 保留admin_yaofang账户,但降权为”只读”

– 过渡期一个月,期间两种账号都可以登录,但鼓励用个人账号

– 一个月后,禁用admin_yaofang

冯主任勉强同意。

但执行时,很多人不配合——”用哪个账号不是用?为什么非要改?”

李主任只有硬着头皮,一家家科室去沟通,解释安全风险。

第二关:角色权限细化

老周带着实施团队,开始梳理所有岗位的权限。

工作量巨大:医院有五十多个岗位,每个岗位有上百个操作权限。他们要做的,是为每个岗位,设计”最小必要权限集”。

比如”挂号员”:

– ✅ 能创建门诊挂号记录

– ✅ 能查询患者历史就诊

– ✅ 能退号

– ❌ 不能修改挂号费(财务的事)

– ❌ 不能删除挂号记录(数据安全)

– ❌ 不能开医嘱(业务隔离)

但细化后,业务部门又有意见:

“我们有时候需要帮病人改个联系方式,为什么不能’修改患者信息’?”

“我们偶尔要退号,为什么’删除挂号记录’不行?”

老周的解释是:权限分配,不是按”当前需求”,而是按”职责边界”

如果挂号员需要频繁改患者信息,那应该增加一个”患者信息维护岗”,而不是给挂号员这个权限。否则,每个人都是全能,出了事谁的责任?

但医院觉得这样太”死板”,影响效率。

老周让步:增设一个”高级挂号员”角色,权限比普通挂号员多几条(如修改患者联系方式),申请这个角色需要科室主任批准。

4. SSO上线后,各部门”不习惯了”

三个月后,单点登录系统上线。

所有科室,终于只有一个账号、一个密码。

理论上,密码安全度提高了——统一密码策略要求:12位,大小写+数字+符号,90天过期,不能和历史密码重复。

但实施后,负面反馈来了:

“密码太复杂了,记不住!”

“三个月就过期,太频繁了!”

“我手机不能记密码,每次都要问同事!”

冯主任更是直接找到李主任:”药房现在有两个人同时操作一台电脑,一个人输入密码登录,另一个人就用同一个账号继续操作。这跟以前共用账户有什么区别?”

李主任哑口无言。

这是”安全”与”便利”的永恒矛盾。

5. 老周的平衡之道

老周听完李主任的抱怨,说:”我们是不是把目标定错了?”

“什么目标?”

“我们以为目标是’安全’,其实目标应该是‘可控的安全’。”

“什么意思?”

“绝对的安全,会带来绝对的不便。比如每个操作都要二次验证,那业务就不用做了。安全措施,必须考虑用户的接受度。”

老周调整了策略:

1. 密码策略适度放松

– 长度从12位改为10位

– 复杂度要求保留,但增加”密码短语”支持(允许用句子,如”IloveHIS2024!”)

– 过期时间从90天延长到180天

2. 增加”二次认证”选择性

– 对于普通操作,只用密码

– 对于高危操作(删除、修改价格、批量导出),强制手机验证码

– 这样,日常使用不受影响,高危操作有保护

3. 推广”扫码登录”

– 每个科室电脑,贴一个二维码

– 职工用自己的手机扫码,免密登录

– 手机有生物识别(指纹/面容),安全和便利兼顾

4. 定期安全培训

– 教职工识别钓鱼邮件

– 教育密码管理常识(不要写在便签上)

– 通报安全事件案例

6. 一年后的变化

一年后,李主任再次盘点权限管理:

– 共用账户:从原来的12个,减少到2个(特殊场景,已申请保留)

– 个人账户:全院95%职工有独立账户

– 僵尸账户:清理了37个(离职未禁用)

– 权限事故:0次

– 密码相关求助电话:从每月20+次,降到2-3次

冯主任现在也适应了:”用扫码登录,确实方便。而且密码一年才改一次,能接受。”

老周来检查时,李主任说:”我现在觉得,权限管理不是’技术活’,是’管理学活’。你不仅要懂技术,还要懂人心。”

“怎么讲?”

“技术方案再完美,如果用户不接受,就是废纸。你不能指望医院人员都有IT专业素养。你必须把安全措施,做得像呼吸一样自然——用户甚至感觉不到’我在遵守安全规则’,这才是成功的。”

7. “最小权限”不是”最小信任”

李主任后来在一次省内HIS安全交流会上,分享了他的心得:

“很多领导觉得,权限管理是’防着自己人’。其实不是。

‘明确责任边界’

当每个人只有自己的权限,干了什么操作都能追溯到人,出了问题,就知道是谁的责任。

反过来,如果大家用的是同一个账户,出了事,互相甩锅,查不清。

所以,最小权限原则,表面上是限制,实际上是保护——保护了守规矩的人,也约束了不守规矩的人。

而且,给了每个人独立的账户,是对他们的尊重——’你是独立的个体,有你的职责和权限’。

共用账户,意味着’你只是系统的一个使用者,没有身份’。

这是两回事。”

互动话题

你们单位的账号密码管理是什么情况?有没有”万能密码”?

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。

一次周到的回访:让赵主任主动把续约会提前半年

软佳实施完成三个月后,按照合同约定,第一年的免费运维期还剩九个月。按常规,下一年度的续约会谈通常提前三个月开始。

但一个工作日的上午,小张的手机响了,是XX医院信息科赵主任打来的。

“小张,你们能不能这周来一趟?有些事想当面聊。”

小张心里一紧。合同期还没到,赵主任这么急找上门,难道系统出什么大问题了?他赶紧查看最近的服务记录,没有收到任何紧急工单啊。

“赵主任,出什么事了吗?我立刻带工程师过去。”

电话那头笑了:”别紧张,系统好得很。我是想讨论明年的续约,能不能现在定下来?我还想加两个模块。”

小张愣住了。这他还是第一次遇到——客户主动要求提前续约,还要加功能。他看到过太多供应商追着客户签合同的场面,没想到自己会遇到相反的情况。

“您是说…现在就把下一年度的合同签了?”小张确认道。

“对。这周你们有空吗?”

1. 从”常规流程”到”主动邀约”

小张挂掉电话,立即给售后团队的老周打电话。老周是负责XX医院的技术支持工程师,过去九个月里,他每个月都去巡检一次。

“老周,你说赵主任为什么主动要续约?”

老周想了想:”可能跟我们的服务有关吧。这九个月,我们做了不少事,虽然按合同该做的都做了,但有些超出合同的部分…”

“比如?”

“比如我们主动做健康巡检,每次去都带一份详细报告,提前发现隐患。还有两次夜间紧急响应,我们都在两小时内到位的。另外上次系统升级,我们主动给医院写了一个数据迁移脚本,不收一分钱。”

小张明白了。这些事在软佳内部算不了什么——他们认为售后就应该主动、快速、贴心——但在客户看来,这是一种”超预期”的体验。他忽然想起一句话:最好的续约,不是追着客户签单,而是客户主动提出续约。

“走,我们现在就去医院,”小张对老周说,”带上所有服务记录。”

2. 过去九个月,我们做了什么?

XX医院信息科会议室。赵主任 already 等在那里,身边还有财务科的王科长。

“小张,老周,坐。”赵主任开门见山,”我想先跟你们说说,为什么我愿意提前续约。”

他拿出一份A4纸,上面列着三个要点:

1. 每月主动健康巡检

– 过去九个月,软佳的售后团队每月一次上门巡检,每次都提前发送检查报告,列出发现的风险和建议。

– 有两次巡检发现数据库连接数接近阈值,我们提前扩容,避免了高峰期的性能问题。

– 巡检报告非常详细, ours 工程师还会用通俗语言跟我们解释,让我们也懂技术风险。

2. 紧急响应快如闪电

– 合同承诺4小时响应,但软佳两次夜间问题都在2小时内解决。

– 有一次是凌晨一点,收费系统突然出现”重复记账”bug,我们财务科急死了。打电话给你们,老周半小时就到了,两个小时修复完成,第二天早高峰没受影响。

– 响应速度快,不仅解决了问题,更让我们感到”有靠山”。

3. 升级时的小礼物

– 三个月前,你们推送V2.5版本时,主动提供了一个数据迁移脚本,帮我们把旧数据迁到新结构,没额外收费。

– 很多供应商在升级时借机收钱,你们反而送”服务”。这说明你们不是为了短期利益,而是希望系统长期稳定。

赵主任抬起头:”这些事,看起来不大,但积攒起来,就是信任。”

小张感动了。他们没有刻意去”做续约准备”,只是按公司的服务理念——把每次服务做到位,把每个细节超出预期——结果客户就主动表达了续约意愿。

3. 信任建立:从”供应商”到”伙伴”

小张代表公司说话:”赵主任,您说的这些,都是我们应该做的。我们的理念是,售后服务不是’售后’,而是’伴后’——陪伴在客户身边,长期服务。”

赵主任笑了:”这个说法好。很多供应商把合同签完就换人,有问题找半天。你们不一样,从实施到运维,一直是同一批人,我们什么问题找谁,都熟悉。”

“其实,”老周插话,”我们更愿意把客户关系看成长期的。系统一旦上线,未来十年甚至更长时间都要维护,前期建立的良好沟通机制,会让后期合作顺畅很多。”

财务科王科长补充:”我们算过账,如果系统不稳定,每天因为效率损失、重复工作、患者投诉,隐性成本很高。而软佳的服务,让我们系统稳定性达到99.8%,这比省下那点服务费重要得多。”

赵主任点点头:”还有一点,你们不藏着掖着——每次有问题,都告诉我们真相,不推卸。这种透明,让我们很放心。”

4. 续约谈判:价格、服务与未来

谈话进入正题。小张拿出续约草案:

– 续约三年,价格按现行标准锁定,不涨价。

– 包含现有模块的维护、升级、技术支持。

– 额外增加两个模块:移动端离线编辑、AI辅助诊断提示。

– 保留每月巡检、4小时响应承诺(实际我们一贯更快)。

赵主任对价格很满意:”现在签,还能按现在的价格,三年不涨。过三个月再签,可能就要涨5%了。”

“我们珍惜像您这样的客户,”小张说,”提前续约,我们也能提前规划资源,双赢。”

最终,双方签署了三年续约协议,并当场确定了新模块的需求排期,三个月内上线。

赵主任在朋友圈发了条消息:> “软佳的服务,让’售后’这两个字该改改了,应该叫’伴后’。image: [握手表情]

这条朋友圈,医院圈子很多人都看到了。不久后,软佳的业务员说,有另外两家医院的领导主动来询问合作意向,提到”看到赵主任在朋友圈的推荐”。

5. 服务哲学的反思

事后,软佳内部开了个复盘会。周总说:”很多人以为续约靠销售技巧、靠关系、靠压价。但我们这次案例表明,续约不是销售的终点,是服务的自然结果。如果服务不到位,签了合同也留不住客户;如果服务到位,客户会主动续约,甚至帮你宣传。”

他总结了三点:

1. 主动服务创造惊喜

巡检、报告、提前发现问题——这些超出合同范围的动作,让客户感受到”这家公司在乎我的系统”。

2. 快速响应建立信任

4小时承诺,2小时做到,这个差距就是口碑。客户会记住关键时刻的及时救援。

3. 免费的价值最高

升级时送迁移脚本,看似损失一笔小收入,却换来客户的长期信任和转介绍。有时候,不赚钱的服务,反而带来更大的回报。

6. 客户关系维护的”铁三角”

基于这个案例,软佳把客户关系维护总结为”铁三角”:

定期主动体检:每月一次健康巡检,提前邮件发送报告,不等问题发生。

关键时刻在场:夜间、节假日问题不推脱,确保响应时间过半。

增值惊喜常态化:在能力范围内,为客户提供合同外的帮助——一个脚本、一次培训、一个优化建议。这些”小礼物”会让客户感到被重视。

“铁三角”的核心理念是:把客户当成长期伙伴,而不是一单生意。当你真心为客户好时,客户也能感觉到。

7. 从一次续约到更多转介绍

赵主任的朋友圈效应很快显现。

不到半个月,软佳陆续收到三家医院的咨询,提到”听赵主任说你们服务好”。其中一家直接表示,”如果能达到跟XX医院一样的服务标准,我们可以直接签三年合同”。

小张感悟:客户的成功案例,是最好的销售素材。与其自己夸自己,不如让满意的客户为你说话。而让客户满意的唯一方式,就是在服务过程中不断创造”超预期”的体验。

现在,软佳要求所有客户成功经理,在每次服务结束后,问自己一个问题:”客户会因为这次服务而更愿意续约吗?”如果答案是否定的,那就说明服务还有提升空间。

互动话题

你们的客户会主动续约吗?如果会,他们最看重的是什么?如果不会,你觉得卡在哪个环节?欢迎分享你们的客户关系维护经验。

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。

除夕夜,我们升级了XX医院的HIS系统

“今年除夕,你们必须完成HIS系统从V3.0到V4.0的升级。”

信息科李主任发来这个消息时,老周正在看春节值班表。窗外飘着雪花,办公室里只剩下他一个人。明天就是除夕,大部分同事已经提前请假回家过年了。

老周是昆明软佳的运维负责人,负责XX医院的HIS系统运维。V4.0版本开发了半年,投入了15个开发人员,新功能很多:病历模板云端共享、手术排程智能优化、药品库存预警、移动查房、患者画像、智能分诊…但最关键的,是架构升级——从单体应用变成微服务,理论上更稳定,扩展性更好。

但老周知道,这套系统已经运行了五年,数据量庞大,业务逻辑复杂。数据库里存着三百万患者的完整病历,七年的门诊记录,五年的住院档案,总数据量超过2TB。XX医院是省内最大的三甲医院,日均门诊量一万五千人次,住院病人四千多人,高峰时段并发用户超过2000。任何一点差错,都可能造成医疗事故,甚至引发医疗纠纷,导致医院声誉受损。

“为什么非要除夕?”老周回问。

“因为那天下午后门诊就停了,初二才开诊。”李主任说,”我们有三天窗口期。而且,除夕夜全院最安静,没手术,没急诊高峰,病人少,业务量最低。”

老周沉默了。

说的有道理,但他更知道:除夕夜,工程师们都在家过年,谁愿意加班? 而且,越是”安静”的时候,越容易麻痹大意。平时医院人来人往,任何异常都能及时发现;除夕夜如果出问题,可能到初二上班才暴露,那会已经酿成事故,影响初三的学术会议——院长要在会议上展示新系统,给医院”长脸”。

“能不能预约年初三?”老周问。

“不行,初三有学术会议,院领导和外宾都在。系统要展示新功能,我们要在全同行面前亮相。”

老周明白了:这不是单纯的技术问题,是政治任务,是面子工程。院长要在学术会议上展示HIS系统升级成果,给医院加分,给信息科长脸。

2. 升级前的”恐吓式”测试

老周带着团队,先做了一件事:模拟灾难

他们在测试环境,把V4.0版本部署上去,然后人为制造各种故障场景,看系统能否扛住。

测试环境的数据量是生产环境的10%(200GB),但架构完全一致。

场景一:数据库突然断电

模拟数据库服务器宕机,看应用能否优雅降级。结果:所有功能全部不可用,微服务全部报错。因为所有服务都依赖数据库,而数据库挂了后,服务注册中心(Nacos)也挂了(它也依赖数据库),微服务之间互相找不到,整个系统雪崩。

场景二:网络突然中断

拔掉其中一台应用服务器的网线。结果:那台服务器上的所有请求失败,但没有自动迁移到其他服务器。负载均衡器虽然检测到服务器不可用,但需要30秒才能剔除,这期间用户请求都会失败,体验极差。

场景三:某个微服务突然崩溃

手动kill掉”医嘱管理”服务。结果:所有依赖这个服务的上游功能(如病历书写、护理记录、检查申请)全部报错。熔断器(Hystrix)配置了,但阈值设得太高——需要100次错误才触发,而在这之前,上游已经堆积了大量错误,线程池被打满。

场景四:磁盘突然写满

模拟日志磁盘爆满。结果:系统开始抛出大量IOException,但错误没有统一处理,用户看到的是”系统异常”,而不是”服务器繁忙,请稍后重试”。没有降级策略。

场景五:GC停顿

模拟Full GC,暂停30秒。结果:所有请求超时,用户感觉”卡住了”。

老周的头大了。

这些都不是V3.0时代会遇到的问题——V3.0是单体应用,数据库不挂,系统就不挂。现在V4.0拆成十几个微服务,一个环节出问题,可能影响一片功能。微服务的复杂性,远超预期

3. 我们制定了三套”保底方案”

老周给李主任打了个电话:”直接升级风险太大。我建议分三步走,每一步都有回退方案,确保业务绝对不中断。”

第一步:增量上线,不是全量切换

– 先在门诊药房试点,只对药房人员开放新系统,其他科室继续用旧系统

– 试点稳定三天后,再扩大范围到门诊收费、住院收费

– 最后全员上线

“这样可以控制风险范围,即使药房出问题,也只是局部影响,不影响整个医院。”

第二步:数据双写,随时能回退

– 春节期间,新旧系统并行运行

– 所有新业务数据,同时写入新旧两个数据库

– 如果新系统出问题,一秒回退到旧系统,数据不丢

“数据一致性怎么保证?”李主任问。

“我们在应用层做双写,用一个事务同时写两个库。如果其中一个写失败,整个事务回滚。而且我们会做定时对账(每半小时一次),发现不一致立即修复。双写最多保持一周,等新系统稳定了,就切换单写。”

第三步:除夕不升级,只做”预演”

– 除夕当天,我们不碰生产环境

– 在测试环境,完整演练一遍升级流程和回滚流程

– 如果演练顺利,年初二晚上做真实升级

“为什么不在除夕升级?”

“因为除夕全员都在家,万一出事,人手不足。年初二大家已经收假,可以应对突发情况。”

李主任沉默了很久,思考这个方案的利弊。

“如果年初二升级失败,初三学术会议展示什么?”

“展示我们之前双写的旧系统数据。新系统没上线,但升级计划已经在执行中,可以汇报进度,说明我们在扎实推进。”老周说。

李主任终于同意了:”行,就按你说的来。但年初二必须成功,不然院长会发飙,我们大家都不好过。”

4. 那个熬了三天的夜晚

年初二晚上八点,升级正式开始。

老周团队八个人,加上信息科三个人,全部在现场。机房温度有点低,但每个人都精神高度紧张,手里拿着对讲机,随时沟通。

升级步骤详细到分钟,印在每个人的手里:

1. 数据库备份(预计30分钟):全量备份 + 校验和比对

2. 部署V4.0新服务(预计60分钟):13个微服务逐个启动、初始化、健康检查

3. 数据迁移(历史数据从旧表结构迁移到新表结构,预计120分钟):涉及2176张表,2.3TB数据

4. 配置切换(DNS、负载均衡切到新服务,预计15分钟)

5. 功能验证(各科室核心功能验证,预计60分钟):挂号、收费、住院登记、医嘱、药房…

计划总时长:285分钟,也就是四个半小时。

看起来时间很充裕。

但老周知道,计划赶不上变化。他们准备了”升级失败回滚预案”,如果任何一步出问题,60分钟内必须回滚,否则数据不一致,回滚会更麻烦。回滚本身也需要时间。

第一步:数据库备份。顺利。

虽然备份速度比预期慢10%(用了45分钟),因为数据量比预想大20%,但还是在计划内完成,并校验了checksum,无错误。

第二步:部署V4.0新服务。顺利但有波折。

微服务启动时,有2个服务启动失败:配置管理服务(config-server)因为端口6380被占用(旧系统有个监控进程),注册中心(nacos)因为数据库连接字符串写错了(少了个分号)。修改后重试,总共花了75分钟,比计划多15分钟。

第三步:数据迁移——这是最关键的一步,也是风险最大的。

历史数据有七年的门诊数据、五年的住院数据, Tablespace 超过 2TB。迁移工具data-migrator是公司自己开发的Java程序,还没在这么大的数据集上验证过。

“开始迁移。”

进度条:0.1%…0.2%…

时间一分一秒过去,大家都盯着屏幕,不敢说话。

一百分钟后,进度条卡在37%。

“停一下。”老周心里一紧。

运维工程师小王脸色很难看:”迁移速度变慢了,从每分钟1%降到每分钟0.1%。可能遇到数据热点,或者某张表有锁,或者磁盘IO达到瓶颈。”

“什么表?”

“医嘱表,数据量最大的表,四亿多条记录,占总数据量的60%。现在卡在这一步,因为医嘱表有外键约束,其他表都在等它完成。”

老周拳头捏紧了,指甲嵌进肉里。

37%的数据已经迁过去了,如果中断,回滚要删除这些数据,很麻烦;如果不回滚,继续迁,但速度这么慢(0.1%/分钟,意味着还需要6天),到天亮也迁不完,初二肯定上不了线。

“能不能跳过医嘱表,先迁其他表?”

“不行,医嘱表被其他几十个表外键约束。如果医嘱表没迁移成功,其他表迁了也联不起来,数据是断的,对账都对不上。”

会议室里,气氛凝重。已经凌晨一点,窗外偶尔传来鞭炮声——有人在提前过年。

已经是凌晨一点。

老周看向大家,眼神坚定:”还有什么想法?不论多大胆,说出来。”

5. 最后的办法:物理复制

小王,这个26岁的年轻工程师,说了一个大胆的想法:”我们不做逻辑迁移了,用物理复制。”

“什么意思?”

“我们不通过工具逐条迁移数据,而是直接把旧数据库的 MDF/LDF 文件拷贝到新数据库服务器,在新库上直接做 schema 转换。”

这相当于把旧数据库的”硬盘”直接物理搬到新数据库,然后在新数据库上修改表结构,适应V4.0的 schema。

因为只是修改表结构(加字段、改索引),不移动数据行,速度会快很多——复制2.3TB文件,通过内网万兆光纤,只需要30分钟;schema转换再花1小时。总共2小时搞定。

但风险是:

– 物理复制过程中,如果旧库还有数据写入(虽然升级期间已经通知停业务,但万一有漏网的终端还在连接),数据会不一致。

– 新旧数据库的字符集、排序规则必须完全一致,否则会乱码。

– 复制后需要重新统计信息,否则查询性能会下降,相当于”数据迁移了,但查询更慢了”。

“赌一把。”老周说。现在没有其他选择,时间不等人。

他们先命令所有终端停止连接数据库,确保业务完全停止——这一点至关重要,确保了物理复制的ACID。

然后,停止旧数据库服务,用Robocopy工具拷贝数据文件,保留所有权限和属性。

拷贝花了20分钟(2.3TB通过内网万兆,速度比预想快)。

接着,在新数据库上运行 schema 转换脚本,把旧表结构改造成新表结构。这个过程要极其小心:不能丢失数据,要处理字段类型变化(如VARCHAR长度变化)、新增字段默认值、索引重建…

30分钟搞定。

接着,启动新数据库,验证数据一致性。

比对脚本跑了一个小时,结果是:一致性 99.99%,有少量数据不一致(约0.01%,约230万条记录中的23条),但都是升级期间产生的”残留”数据(停业务后最后几分钟的操作,有的写一半,有的锁未释放),我们可以从binlog里补回来。

老周看了看表:凌晨三点四十分。

“继续!”他的声音沙哑,但坚定。

6. 天亮前的最后一道坎

数据迁移完成,已经是早上六点,天蒙蒙亮。

下面就是配置切换, cutover 到新系统。

但就在这时,医务科刘主任打来电话,语气焦急:”有几个科室反映,他们电脑登录新系统特别慢,要半分多钟。医生在急着开医嘱,病人等在排队,护士站骂人了。”

老周心里一沉。

“是不是网络问题?”

“不是网络,是新系统启动后,有些服务初始化慢。特别是’患者基本信息查询’这个服务, cold start 要一分钟。很多医生在开机后第一次查询,要等很久,他们没耐心。”

老周突然想到:”我们不是有双写吗?让这些科室的人先用旧系统,我们调优新系统。”

但问题是,有些功能V4.0才有,旧系统用不了,医生会抱怨新功能不能用。

“能不能手动调整那些慢服务的超时时间,先让他们能登录?”

小王试了一下,调整了JVM堆内存(从2G加到4G)和线程池参数(从50加到100),登录时间从50秒降到了15秒。

“先这样,赶不上初一,初二能上线就不错了。”老周安慰自己,但心里知道,用户体验不能一直这样凑合。

7. 大年初二,系统上线了

上午十点,老周带着运维团队,在医院信息科”坐镇”。

李主任也在,脸色紧张。他身后站着医务科、护理部、财务科的人,都在等消息。

各科室开始有人陆续上班,系统正式开放使用。

第一个问题是在十点二十分钟出现的:收费处小张打不开收费界面,提示”服务不可用”。

运维立即排查:是”收费服务”这个微服务挂了,因为内存溢出(OOM),JVM heap 满了。

分析堆 dump,发现是某个收费记录的数据量异常大(超过10万条明细),导致内存泄漏。

临时方案:重启服务,并设置单笔交易明细上限为1000条,超过则提示”数据过多,请分批处理”。

十一点,药房反映,药品库存数量不对,有些药显示有库存,实际药架上没药。

查日志:数据迁移时,有一批药房的库存流水没迁全——因为那条记录的状态字段是NULL,迁移脚本跳过了NULL值。

紧急从旧库补数据,手动执行SQL,花了20分钟。

十二点,住院处反映,有病人出院结算时,总金额多了一块二毛钱。

查对账系统:有一笔三毛钱的二维码支付手续费,V3.0没算进总金额,V4.0算了(新功能自动计算)。

热修复:在结算时,如果金额与旧系统差异<1元,自动以旧系统为准。

下午三点,所有问题基本解决,系统运行平稳。

老周给李主任发了消息:”系统基本稳定,可以对外宣称升级完成了。”

李主任回复:”好。但学术会议还有半小时开始,院长要展示新功能,你们那边准备好了吗?”

老周深吸一口气,在微信群里发了消息:”所有工程师,保持手机畅通,随时待命。系统暂时稳定,但别掉以轻心。”

8. 为什么升级总是这么惊险?

升级完成后第三天,老周写了长篇复盘报告,发给公司管理层和XX医院信息科。

他发现,这次升级之所以这么惊险,不是因为技术难度大,而是因为:

1. 想一次性完成:没有采用渐进式上线,而是”一夜切换”。如果分阶段(先药房、再收费、后住院),问题可以早发现早解决,不会最后搞”大杂烩”。

2. 数据迁移工具没经过大数据验证:37%的迁移速度就已经暴露出性能问题,说明工具在TB级数据上表现不佳,应该用更成熟的方案(如物理复制)。

3. 冷启动问题没预判到:新服务启动慢,影响用户体验,特别是首次查询。应该有预热机制(提前启动,加载缓存)。

4. 测试环境数据量不到生产环境十分之一:所以没遇到真实场景的性能瓶颈和脏数据问题。测试应该用生产数据的脱敏副本。

5. 应急预案不够细:虽然准备了回滚方案,但执行时发现很多细节没考虑到(如回滚后的数据一致性验证)。

改进措施(老周在报告中详细列出):

1. 未来升级,必须先灰度发布,小范围验证(如先上10%流量,观察24小时)

2. 数据迁移工具,必须在与生产环境同量级的数据集上测试(至少1TB),并准备物理复制作为备选方案

3. 服务预热机制:在切换前2小时,提前启动新服务,完成JIT编译和缓存预热

4. 升级期间,必须有物理备份,随时能回滚到上一秒状态

5. 建立”升级检查清单”,逐项打勾,不跳过任何步骤

6. 每个微服务都要有熔断、降级、超时配置,不能依赖”默认值”

7. 升级窗口期要预留buffer,计划6小时的任务,给10小时

9. 事后,李主任说了一句话

一周后,李主任请老周吃饭,地点在医院食堂的小包间,没叫外人。

“这次升级,虽然出了不少问题,但总体是成功的。”李主任说,”最重要的是,我们没有因为升级导致病人看病受阻。初三学术会议,院长展示了新系统,效果很好。院长说:’你们的信息科,能打硬仗。'”

老周松了口气。

“但我有个问题,”李主任又说,露出苦笑,”下次升级,能不能别选春节?我们科的人也要过年,连续三天熬夜,身体受不了。”

老周笑了:”下次,我建议选五一或十一,窗口期更长,我们也有更多时间做灰度验证,不用赶工期。”

李主任点头:”这个提议,下次班子会我会提。顺便,你们那套’双写+对账’方案,效果不错,数据零丢失。我们想把它固化下来,以后日常也跑,作为实时备份。”

“可以,我们会写成功能模块,纳入标准产品。”

10. 稳定压倒一切

老周后来在部门内部分享会上,反复强调,把这起事件作为反面教材成长案例

“系统升级最大的风险,不是技术问题,是时间压力

时间一紧,人就容易慌,容易漏步骤,容易不走检查清单。

但系统升级,最怕的就是’赶’。

宁可慢一点,稳一点,分阶段上,也不要一次性能完成但风险不可控。

稳定压倒一切。业务连续性,比面子、比会议、比展示,都重要得多。

这次除夕升级,教训是深刻的。我们学到了:

不要相信’理论上’,一定要测试验证,尤其是灾难恢复测试

不要跳过检查清单,每一步都要有记录、有责任人、有回滚方案

要有回滚预案,而且回滚方案本身也要测试过

时间缓冲要给足,计划再乘以1.5的系数

升级不是IT部门的事,是全院的事,业务部门要参与演练

工程是严谨的科学,不是冲刺。冲刺得来的成功,往往是隐患的开始。”

互动话题

你经历过最惊险的一次系统升级是什么情况?有什么经验教训?

> 基于真实医院场景改编,人物均为化名


立即免费试用门诊系统https://app.kmhis.com/
International Versionhttps://app.kmhis.com/multi/
了解软佳门诊管理系统详情https://www.kmhis.com/outpatient-management-system.html


扫码预约

手机扫码试用患者预约。请勿输入个人真实信息(点击图片可查看原图)

支持8种语言:简体中文、繁体中文、香港中文、English、藏文、泰文、老挝语、越南语


说真的。这类问题我见过太多了。每次看到医院同事为选型头疼。我就想,要是早点有人把这些经验分享出来就好了。毕竟。选择不对。后面全是麻烦。选择对了。省心省力。还能提升整个机构的运行效率。希望这篇能帮到正在纠结的你。

你如果有具体需求。也可以去 www.kmhis.com 看看。那里有更详细的技术方案和案例。

软佳医院信息管理系统2025新版已集成AI技术,多方面为医疗机构提供智能辅助

昆明软佳科技有限公司专注于医院信息化管理系统的研发,致力于医疗软件开发,旨在全面提升医疗软件功能和医院管理水平,助力医院实现数字化转型。

软佳医院信息管理系统以核心HIS模块为基础,是医院信息管理的核心支撑。随着2025年软件与医院行业双双迈入AI时代,软佳医院信息管理系统进行了多项重要更新。

各行各业正积极拥抱DeepSeek-R1,从患者利用其求医问诊,到医院主动部署应用,这一现象反映了AI技术在医疗领域加速渗透的趋势。

医院部署DeepSeek后,如何充分发挥其价值?

大多数医院已认识到AI与医疗深度融合的潜力,并加速将其应用于实际场景。医院应充分利用AI技术,以提升医疗效率、改善服务质量、降低医疗成本,并优化全社会医疗资源配置,从而让患者切实享受到AI带来的优质医疗服务。

然而,仅仅开发一个简单的问答系统远远不够。医院需要结合自身实际情况,探索DeepSeek在具体场景中的应用潜力,例如通过二次开发,将其融入诊断辅助、治疗方案优化或资源管理等环节,真正实现AI的价值最大化。

目前已知云南省内已有以下医院明确应用或计划应用DeepSeek:

  • 云南省肿瘤医院:利用DeepSeek构建数字医事智能体,采用对话式交互设计,应用于门诊、住院和随访等场景,提升患者管理效率。
  • 云南省第三人民医院:通过智能体平台接入DeepSeek,在医院微信公众号上线智慧问答功能,方便患者获取医疗信息。
  • 云南省滇南中心医院(红河州第一人民医院):计划通过竞争性谈判采购方式实现DeepSeek本地部署服务,以满足医院定制化需求。
  • 昆明医科大学第一附属医院:将AI医疗助手患者服务系统嵌入官方微信小程序,相较之前新增三大功能,包括AI智能导诊,进一步优化就医体验。
  • 云南省妇幼保健院:DeepSeek的智能搜索技术已应用于新生儿科,用户通过输入关键词即可快速获取该科室在技术、服务和患者满意度等方面的全面信息,提升数据分析与服务能力。
  • 云南省第一人民医院:急诊内科已开启DeepSeek R1+RAG模型的本地化运用,助力智慧科室建设,提高急诊诊疗的智能化水平。

这些应用不仅提升了医疗效率和患者满意度,也推动了云南省医疗行业的数字化和智能化转型。未来,随着更多医院探索DeepSeek的潜力,可能在资源优化、疾病预测等领域进一步深化AI的应用。

昆明软佳科技有限公司在云南省各家医院在搭建DeepSeek问答系统,摸索DeepSeek怎么用,用在哪里的时候,已经率先在自主版权的产品:软佳医院信息管理系统 SoftPlus HIS 中支持DeepSeek API 本地部署或API接口调用集成,集成AI技术,充分利用AI来提供智能辅助。很多人会问:医院使用HIS系统是核心系统吗,HIS系统的目的是什么?这里来介绍一下:

医院信息管理系统(HIS,Hospital Information System)通常被视为医院信息化建设的核心系统。它是医院日常运营和管理的数字化基础,整合了医疗、行政和财务等多方面的信息,是医院实现高效运转和现代化管理的关键。HIS系统的核心目标是通过信息化手段优化医院的运营效率、提升医疗服务质量并支持管理决策。具体目的包括:

HIS系统的目的

HIS系统的核心目标是通过信息化手段优化医院的运营效率、提升医疗服务质量并支持管理决策。具体目的包括:

  1. 提升医疗效率
    • 实现患者信息(如病历、诊断、处方)的电子化管理,减少手工记录的时间和错误。
    • 自动化挂号、收费、药品管理等流程,缩短患者等待时间。
  2. 改善医疗服务质量
    • 提供临床决策支持,例如合理用药提醒、检查结果分析等,辅助医生提高诊疗准确性。
    • 支持医护人员实时访问患者数据,确保治疗的连续性和一致性。
  3. 优化资源管理
    • 整合医院的人力、物力(如药品、设备)和财力资源,减少浪费。
    • 通过数据统计分析,优化床位分配、手术安排等资源使用效率。
  4. 降低运营成本
    • 减少纸质文档和人工操作带来的成本。
    • 通过数据化管理降低医疗差错和纠纷风险,间接节约费用。
  5. 支持医院数字化转型
    • 为医院引入AI、大数据等先进技术奠定基础(如与DeepSeek等AI系统对接)。
    • 提供数据支持,用于科研、教学和政策制定。
  6. 提升患者体验
    • 通过在线预约、智能导诊等功能,方便患者就医。
    • 增强信息透明度,例如费用明细查询,提升患者信任感。

HIS作为核心系统的原因

HIS之所以为核心系统,是因为它连接了医院的各个部门(如门诊、住院、药房、检验科)和业务流程,起到“中枢神经”的作用。没有HIS,医院的信息化管理将碎片化,无法实现数据共享和流程协同。尤其在现代医疗中,HIS不仅是基础平台,还能与其他系统(如电子病历系统EMR、实验室信息系统LIS)集成,进一步放大其价值。

云南省各家医院在搭建DeepSeek问答系统,摸索DeepSeek怎么用,用在哪里,在了解了HIS是核心系统后,目的很明确:AI的应用场景就是和HIS系统做结合(如患者诊断辅助、合理用药分析),做问答系统等应用实在是太浪费了!医院应优化DeepSeek的自动化能力,减少人工干预。HIS系统是医院信息化的核心,其目的是通过数字化手段提升效率、质量和患者体验,在不增加患者和医生的学习曲线下,提供智能辅助决策。

目前,软佳医院信息管理系统已集成AI技术,在以下方面为医疗机构提供智能辅助:

  • 患者诊断与治疗:支持临床路径制定,提供精准诊疗建议;
  • 处方与病历管理:优化电子病历记录,提升处方准确性;
  • 合理用药:分析药品配伍与相互作用,确保用药安全;
  • 护理与医技检查:辅助护理工作,提升检查效率与质量。

通过这些更新,软佳医院信息管理系统正推动医院管理与医疗服务的智能化发展。

软佳医院信息管理系统2025新版,门诊医院工作站屏幕截图:

软佳医院信息管理系统处方合理用药
软佳医院信息管理系统处方合理用药

 

软佳医院信息管理系统门诊临床路径
软佳医院信息管理系统门诊临床路径

门诊医院工作站/住院医院工作站在日常操作中,AI智能辅助决策在操作中自动触发,提供门诊疾病临床路径,合理用药系统,门诊处方审查等功能,AI智能辅助医生做决策,提升效率、质量和患者体验。

AI智能辅助决策系统能够根据诊断、患者信息及处方用药数据自动触发运行。相比之下,传统的临床路径管理和合理用药系统依赖预先定义的程序,应用上存在一定局限性。针对仍在犹豫如何选择HIS系统、医院如何和AI对接、AI系统怎么应用的客户,我们在2025年AI技术迫切需求的背景下,提供全面整合AI的最佳解决方案,助力医院实现智能化升级。

如果您需要了解更多信息,请访问 www.ynhis.com www.kmhis.com

软佳医院信息管理系统:领先的HIS解决方案

昆明软佳科技有限公司专注于医院信息化管理系统,致力于医疗软件开发,全面提升医疗软件和医院管理水平,助力医院数字化转型。

软佳医院信息管理系统:领先的HIS解决方案

自2002年推出以来,软佳医院信息管理系统(HIS)不断创新和优化,在系统架构、模块设计、用户体验、易用性、稳定性、安全性、扩展性、兼容性以及系统部署、维护和管理方面达到行业领先水平。

满足用户需求,优化医疗管理

软佳HIS系统以用户需求为核心,持续增加新功能,简化操作流程,打破HIS系统与其他医疗系统的壁垒,实现数据无缝交换和信息流动。我们不仅提供高效的医院管理软件(HIS系统),还帮助整合各种子系统,提供一体化解决方案。

软佳HIS系统模块化设计,覆盖全面

软佳医院信息管理系统包含17个功能模块,覆盖医院管理的各个基本环节。无论是门诊管理还是住院管理,各个子模块均通过优化的逻辑关系进行组织,业务流程清晰,提升医院运营效率。