张晓煜
(西藏民族大学信息工程学院,陕西 咸阳 712082)
日喀则市萨嘎县位于喜马拉雅山北麓,冈底斯山脉以南,雅江上游,全县总面积约为1.25 万平方公里,占日喀则地区总面积的11.6%,距日喀则市区约450 公里,平均海拔4 600 米以上[1-2].
国家高度重视西藏地区各族人民的民生问题,进一步完善医疗服务体系是民生工作的重点[3],六年来县域内就诊率从47.8%提高到80%[4].深入开展包虫病、结核病等传染病防治,累计筛查14 170 人[5],2021年城乡居民医疗保险参保率达到97.2%[6].萨嘎县现设7 乡1 镇,即:昌果乡、拉藏乡、雄如乡、达吉岭乡、如角乡、旦噶乡、夏如乡、加加镇,各乡卫生院均为乡一级综合医院,患者门诊就医仍沿用传统方式.以昌果乡卫生院为例,现有医师4 名、护士3 名,可以满足居民(农牧民群众、个体商户、外来务工人员、外来常驻人员、乡村两级干部)一般疾病(高血压、关节病、附件炎、小儿肺炎、感冒发烧)的就诊和治疗[2],但目前门诊的医疗信息化程度有待进一步提升.
医院的门诊部门处于医院服务系统中至关重要的位置[7],是患者就医的第一步.以萨嘎县昌果乡卫生院为例,其传统的门诊就医过程简略描述为:患者到达门诊后,第一步先挂号,根据挂号情况在不同科室问诊.在问诊环节中,根据病患的病情,如需入院治疗则进入住院管理,直至患者康复离院;如需进一步检测以佐证患者病症,则需进一步检测,待检测结果出来后再次问诊;如果无须检测则判断是否开药,如果无须开药则直接书写医嘱,病患拿着医嘱离院,如须开药则进入门诊费用环节缴费后门诊药房取药,患者离院.依据此门诊就医流程,乡卫生院门诊业务流程图如下图1所示:
图1 萨嘎县乡卫生院门诊业务流程图Fig.1 Outpatient business flow chart of Saga county health center
根据前期调研所取得萨嘎县乡卫生院近三年来得的就诊信息(以昌果乡为例)以及需求分析,确定乡卫生院门诊管理系统的设计目标如下[8]:
1)支持多费用类别、多种结算方式为患者提供方便快捷的服务;
2)提供门诊病案功能,可对病人的详细信息及过敏史进行登记;
3)为患者生成电子病历,方便医生后续问诊时快速了解患者的病情;
4)后台数据经过相应的字符编码转换,通过鼠标事件实现藏语与汉语之间的切换,方便当地大部分只懂藏语的老百姓看懂医嘱和病历.
本系统包括患者、门诊医生以及门诊药房等实体,以门诊医生为例,功能用例包括以下4 个功能需求[9],如图2所示:
图2 门诊医生用例图Fig.2 Outpatient doctor sample diagram
1)问诊病患查询:门诊医生通过就诊号建立问诊病患列表,通过此表选择病患,导出既往病历,进入日常工作;
2)药品信息查询:门诊医生可以实现对门诊药房库存药品信息的查询功能,如药品名称、库存数量、生成厂家等信息;
3)录入诊断处方:门诊医生根据病患的症状开具医嘱、处方;
4)建立或修改电子病历:门诊医生能够对病患的就诊情况例如病史、诊断结论、处方信息等进行必要的数据记录保存在数据库系统中.
在此框架中,客户端请求发送到前端控制器.控制器根据配置文件与后端控制器映射器交互.请求并确定相对应的视图后,通过模型从数据库提取数据进行处理.最后生成处理结果视图,并把处理数据的结果视图返回给用户[10],如图3所示:
图3 框架划分图Fig.3 Framework partition graph
系统功能模块设计为“系统管理”“门诊医生”“门诊费用”“门诊药房”四部分,各功能模块之间的层次关系如图4所示[11]:
图4 系统模块图Fig.4 System module diagram
各模块所实现的功能如下:
1)系统管理
系统管理主要分为“挂号设置”“员工管理”“数据库备份”“数据恢复”四个子模块.挂号设置实现患者普通挂号及医疗卡办理功能;员工管理实现将所有在册员工姓名、工号和其在系统中施加操作相勾连的功能;数据库备份实现系统日备份功能,及时将当日就诊信息存储在本地服务器中,避免信息丢失所造成的损失;数据恢复当非法操作导致信息丢失时及时利用备份数据实现恢复[12].
2)门诊医生
门诊医生模块主要分为“选病人”“看病史”“开药”三个子模块.当前挂号病人可能不唯一,选病人模块实现根据患者姓名或医疗卡号锁定问诊患者的功能,看病史模块实现查看患者既往病史的功能,开药模块实现医嘱、处方功能.
3)门诊费用
门诊费用主要分为“门诊日结”“门诊个人结算”及“门诊退费”三个模块.门诊日结实现每日费用结算,何人结账、何时结账等信息体现得一清二楚;门诊个人结算实现患者缴费后,若需发票,就诊结束时可在“门诊个人结算”菜单下打印发票的功能;“门诊退费”实现患者因情况有变等需要清退未做的检查费以及未打开包装的药品等.
4)门诊药房
门诊药房主要分为“药品入库”“药品查看”及“药品出库”三个子模块.药品入库需要在系统里登记药品入库时间、生产日期、数量等信息[13],药品查看实现所有在库药品的实时数据查阅功能,药品出库主要实现患者取药后,库存药品数量的删减功能.
2.3.1 门诊系统的E-R 图设计
在需求分析的基础上对系统进行详细设计,将用户视角中的数据信息以实体逻辑的形式呈现[14].E-R图包含三部分:实体-属性-以及它们之间的关系,本文所设计的门诊管理系统中, 四个主要实体分别为:门诊医生实体、病患实体、门诊药房实体以及门诊费用实体.门诊系统E-R 图如下图5所示,其中门诊医生实体和病患实体之间是多对多的门诊关系,门诊医生实体和门诊药房实体之间亦是多对多的关系,病患实体和门诊费用实体之间是一对多的关系.
病患实体的属性包括:病患姓名、性别、住址、既往病史、就诊号、联系方式;门诊医生实体属性包括:医生ID、姓名、登录密码、性别、所属科室、联系电话;门诊药房实体属性包括:药品编号、药品名称、库存信息、生成厂家、入库时间、药品售价、药品类别;门诊费用实体属性包括:挂号费、检查费、医药费.
2.3.2 系统主要数据库表的设计
客观世界里的信息反映到人脑中,经大脑的识别、分析后再次转变为客观存在的信息,这一过程具体到软件开发就涉及到数据库表的设计[15].本系统的主要数据库表包括以下6 张表,分别为:
1)病患表
病患数据表主要记录病患基本信息,具体表述为病患姓名、性别、住址、既往病史、就诊号、联系方式共六个字段,如表1所示:
表1 病患表Table 1 Patient information
2)门诊医生表
门诊医生数据表主要记录门诊医生基本信息,具体表述为医生ID、姓名、登录密码、性别、所属科室、联系电话共六个字段,如表2所示:
表2 门诊医生表Table 2 Outpatient doctor information
3)门诊药房表
门诊药房数据表主要记录门诊药房基本信息,具体表述为药品编号、药品名称、库存信息、生成厂家、入库时间、药品售价、药品类别共七个字段,如表3所示:
表3 门诊药房表Table 3 Outpatient pharmacy information
4)门诊问诊表、医生开药表、患者缴费表
门诊问诊数据表主要记录问诊时基本信息,具体表述为患者姓名、就诊号、问诊时间、患者自述共四个字段.医生开药数据表主要记录处方药品基本信息,具体表述为药品名称、药品编号、处方时间、医生ID、药品类别、病患ID 共五个字段.患者缴费表主要记录患者问诊费用及明细,具体表述为患者姓名、就诊号、检查费、药费共四个字段.
从可读性、可维护性和扩展性等方面综合考虑,系统采用C# 作为主要的开发语言,用于实现系统的前端界面和后端逻辑处理.同时,为确保系统的质量和可靠性也采用了敏捷开发和测试驱动开发等方法.系统数据库的选取从可扩展性、可靠性和安全性考虑系统采用Microsoft SQL Server 作为数据库管理系统.
门诊系统的运行CPU 最低要求为双核,集成显卡即可,运行内存4 G(包括4 G)以上,硬盘需要256 G(包括256 G)以上,系统的运行软件为Windows7(包括Windows7)以上.
门诊管理系统是一个多用户系统,本项目分别从系统运行速度、系统负载能力、数据库等方面分别使用白盒法、黑盒法进行了测试,每项测试通过反复测试次数不少于100 组数据来最终确定整个系统可以正常运行.
下图6 是系统主要界面的展示,界面简洁,功能正确,系统运行正常.
图6 系统主要功能界面截图Fig.6 System main function interface
本文依据西藏自治区日喀则市萨嘎县各乡卫生院目前的就诊现状,本着“功能越强大,操作越简单”的原则,从简化患者就医流程、使患者就医更加方便快捷的理念出发实现乡卫生院门诊管理系统的设计与开发.经测试萨嘎县乡卫生院门诊管理系统达到了设计要求,能满足当地老百姓及医务人员的需求.