中小型his系统维护

中小型his系统维护

再聊一下我维护his的日常吧,简单了解一下。

项目原源

有些项目在你维护的时候,极有可能会是一种很古老的技术栈,甚至是被淘汰掉的技术栈,当然也会有近代化的流行技术栈,看你命运如何了。像我维护的,就是Spring+Struts+Hibernate+无日志的his项目。SSH说老么,也不是很老,说不老么,没见到在2023年还有几家公司在用它。我在猜想为什么会遇到它呢?大致有那么几个原因吧,首先城市不是一线,位居了二线,互联网环境自然不如一线那样顺畅,人员技术储备也有一定的局限性,从大厂出来的选手放在二线不一定有几家公司可以接得住,所以好的选手自然还是会优先选择去一线发展。其次,就是SSH当时开发的时间段,时间算下来到现在也差不多到了维护期的地步了,所以能遇见也不是很稀奇,当然如果可以翻新,那自然翻新是最好的选择,因为要为以后的业务扩展做打算,不然接手都会让技术人员处于被动。

项目简介

县级规模的医院his系统,日活也不是很大,医院更注重的是业务的准确性以及无异常行为。具体涉及的内容简单列举几项:医生开单到付款到患者拿取单据至指定科室去做诊断诊疗,医院进药品库存并分发,支付系统与账目比对,报表系统,与LIS-PACS系统对接等等。

项目日常维护

讲到这里,就是我平时的工作要求了。

  1. 要根据医院提出的需求进行筛选,判定哪些是可行的,哪些是高优先级执行的,哪些是花费精力多的。
  2. 紧急的问题要紧急处理,不必要的技术能不上尽量不上,毕竟项目是已经上线过的。
  3. 量大的时候要及时分发给其他同事帮忙处理,并指导他们业务流程以及技术代码修改的大致区域范围。
  4. 文档要尽可能得多,分类要合理,像his系统就不光只有医院给出的文档,还有可能会有省级市级大数据平台给出的接口文档,所以这不只是你一个人的维护工作,还会有很多种可能性发生。
  5. 维护的时候一定要有一个详细的数据库表结构文档,也要审计代码注释区域,优先检查这些内容,以便让上级有一定的思想准备以及安排后续的处理工作。
  6. 日志系统,如果检测到线上没有记录的话,请一定要优先提出,这是排查问题的重点内容,该加上的就加上,该分离的就分离。有很多外包出去的项目,在以前极有可能不会太注重细节的处理,因为以前的log技术并不是像现在这样功能多且成熟。
  7. 如果感觉只有维护工作量级还是少的话,可能还会安排给你一些研发的工作,所以你需要有一个合理的工作计划,如果忙不过来,一定要及时跟上级反馈,以便给上级腾出时间去调度任务。毕竟现在的老板都喜欢全栈选手,虽然我们技术人员不咋喜欢全栈这个工作量,但是老板为了节省成本,他一定会这样做的。
  8. 上班时间安排,能不让公司占用自己下班时间的尽量不让占用,毕竟互联网的技术含量很高的,而且迭代速度也是非常快,所以需要不断去学习。就目前较火的AI领域,看着跟国外的差距也很明显。不要总把自己当成是工厂里的人,要把自己当成是创造的人,这样才能追赶国外的技术脚步,当然了,这是需要资金加持的,如果急需资金就当我没说。

项目已收尾款之后

当项目收了尾款之后,医院再有相应地需求处理或者新的需求,就需要让其与实施人员或者市场人员去做对接,商议额外收费的内容以及可行性方案。等商议结束之后,再由工程师与实施人员来进行方案内容对接,商议结束之后,再交流收费流程以及开发时长,需要的项目环境等。

HISDemo源码 系统分了几个逻辑层,对于层与层之间的调用我们要实现一下几点: 1.层与层之间只通过接口调用 2.接口所对应的具体实现通过XML配置指定 3.可能会对接口实例的生存周期进行管理 这里我们使用Unity的依赖注入容器(Dependency Injection, DI)去实现 数据访问层Repositories:主要用NHibernate访问数据库,但也有可能去访问其他模块或系统的WebService,也有可能用Linq去访问一些缓存(内存中的)数据,也有可能访问XML,文本文件等等.... 业务领域层Core:系统的核心层,所有与数据访问无关的业务逻辑都应该内聚在这里,业务领域对象理论上应该是充血的,内聚自己的业务逻辑。但有一些业务逻辑在设计的时候涉及到了多个业务领域对象 ,我们很难决定放在哪个具体的业务对象里,所以我们有一个Service层来放这种业务逻辑。 外观层(设计模式之外观模式)Facade:把数据访问接口,业务领域对象的业务逻辑,Service接口简单的封装一下成为Facade层接口供展示层UI或SOA层调用,这个层需要注意的是它只是简单的封装,免得UI层调太多层的接口,这层不应含有业务逻辑。 SOA层:因为系统比较庞大 模块很多,且业务上要求各大模块间需要一定解耦,所以这一层作用是作为各大粗粒度模块间调用以及给其他系统调用,比如有基础数据管理大模块和门诊挂号大模块,他们之间的调用是必须要通过SOA层的,而不能直接走Facade层,传输的对象应该新建DTO数据传输对象,而不应该直接传递业务领域对象,从而通过SOA层我们把各个粗粒度模块完全隔离开。这个层取名为SOA也许不大恰当,大家也不必深究...计划是采用WCF 这样可以灵活的配置通讯方式 表现层Presentation:由Asp.net MVC的Action给ExtJs传输数据 ,Controler只需调用Facade接口 公共类库FrameWork:整个项目框架的公用代码,相当于公共类库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值