中山市人民医院电子病历文档管理系统的设计与实现

中山市人民医院电子病历文档管理系统的设计与实现

ID:75594407

大小:2.31 MB

页数:79页

时间:2024-02-04

上传者:笑似︶ㄣ無奈
中山市人民医院电子病历文档管理系统的设计与实现_第1页
中山市人民医院电子病历文档管理系统的设计与实现_第2页
中山市人民医院电子病历文档管理系统的设计与实现_第3页
中山市人民医院电子病历文档管理系统的设计与实现_第4页
中山市人民医院电子病历文档管理系统的设计与实现_第5页
中山市人民医院电子病历文档管理系统的设计与实现_第6页
中山市人民医院电子病历文档管理系统的设计与实现_第7页
中山市人民医院电子病历文档管理系统的设计与实现_第8页
中山市人民医院电子病历文档管理系统的设计与实现_第9页
中山市人民医院电子病历文档管理系统的设计与实现_第10页
资源描述:

《中山市人民医院电子病历文档管理系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

分类号密级注1UDC学位论文中山市人民医院电子病历文档管理系统的设计与实现(题名和副题名)苏韶生(作者姓名)指导教师佘堃教授电子科技大学成都尚文刚高工广东医学院附属医院湛江(姓名、职称、单位名称)申请学位级别硕士专业学位类别工程硕士工程领域名称软件工程提交论文日期2013.9.25论文答辩日期2013.11.17学位授予单位和日期电子科技大学2013年12月24日答辩委员会主席评阅人注1:注明《国际十进分类法UDC》的类号。 THEDESIGNANDCONSTRUCTIONOFELECTRONICMEDICALRECORDMANAGEMENTSYSTEMOFZHONGSHANPEOPLE'SHOSPITALAMasterThesisSubmittedtoUniversityofElectronicScienceandTechnologyofChinaMajor:MasterofEngineeringAuthor:SuShaoshengAdvisor:SheKunSchool:SchoolofInformationandSoftwareEngineering 摘要随着信息与网络技术的快速发展,医院传统的病案管理方式正发生重大变革,调查显示,在中国96.10%的大型医院都已实施或计划实施电子病历系统,电子病历的归档、存储和利用成为当前医院信息化面临的重大课题。本文在此背景下,分析、设计与实现了中山市人民医院电子病历文档管理系统,主要工作如下:1、阐述了医院的病案管理、电子病历系统的基本概念和发展趋势,分析了系统开发方法、系统开发体系结构和相关技术概述,如C#、.NET技术等。2、对系统进行需求分析和总体设计,先分析了系统的功能需求、性能需求和系统设计用例,在需求的基础上分别设计了系统的电子病历文档归档、电子病历文档查阅和系统管理模块等,且设计系统的数据库表结构,完成了系统的程序流程图、数据库逻辑和存储过程的设计。3,根据需求分析与设计的内容进行详细设计,选择Microsoft.NET平台框架,采用MicrosoftVisualStudioC#2005开发工具和MicrosoftSQLServer2000数据库实现系统,主要模块包括:文档整理、自动索引、数据审核、文档上传、文档查询、查阅申请、查阅审批、文档浏览、用户登录、用户管理、用户日志、系统设置等模块。最后,对设计实现的电子病历文档管理系统进行功能与性能测试。该系统在网络环境下运行,除实现对电子病历文档的规范化管理外,还体现以下三个方面创新:1、电子病历文档管理系统与其相对应的电子病历系统数据管理衔接,电子实现病历文档归档与管理自动化。2、数据审核功能实现电子病历文档与电子病历系统病历内容一致性,确保病历文档完整性。3、电子病历文档查阅模块既提高了病历利用率,又确保病历安全,防止电子病历文档被非法复制、下载,通过对本系统的建设对于医院病案管理信息化发展具有着一定的理论与实践价值。关键词:电子病历,归档,系统设计,病案管理I ABSTRACTOvertheyears,informationprocessingtechnologyandnetworkingtechnologyhavegonethrougharapiddevelopment,whichledtraditionalmethodsformanagingmedicalrecordsreformelectronically.Accordingtotheresearch,96.10%ofthird-gradeA-levelhospitalshavedeployedorareplanningtodeployelectronicmedicalrecord(EMR)system.Inthissense,themanagingofEMRarchiving,storageandExploitationbecomescritical.Inresponsetohospitalgoingelectronically,thisthesisisgoingtoanalyzeanddiscusshowZhongShanPeople’shospital(ZSPH)constructeditsEMRmanagementsysteminthefollowingaspects:1.Thethesiswillgiveabriefintroductiontotheconceptsofhospitalmedicalrecordarchiving,EMRsystemandthetrendofEMRsystemdevelopment.Moreover,themethod,architectureandthekeytechniqueofEMRsystemdevelopment,suchasC#and.NET,isdiscussedinthispaper.2.ThethesiswillthendiscusstheanalysisanddesignofEMRmanagementsystemindetail,suchastherequirementanalysisandusecases.Basedontherequirements,theEMRmanagementsystemisdividedintoseveralmodules,includingEMRarchiving,EMRconsulting,andEMRstorage.Thisthesisalsoprovidesthediscussionofdatabasedesign,programflowdiagram,databaselogicandstoredprocedure.3.Basedonthesystemanalysisanddesign,theEMRmanagementsystemisimplementedbasedonMicrosoft.NETplatform,MicrosoftVisualStudioC#2005andMicrosoftSQLServer.Thisthesisprovidesexampleanddiscussionofmainfunctions,includingdocumentmanagement,automaticindex,dataexamine,EMRstorage,EMRinquiry,applicationofEMRinquiry,applicationofEMRauthorize,EMRbrowse,userlogin,usermanagement,userjournal,systemsettings,andsoon.Finally,thisthesisisgoingtodiscusssoftwaretestingoftheEMRsystem.Exceptforefficientmanagementofelectricalmedicalrecords,theEMRsystemmakesthefollowinginnovations:1.LinkingtheEMRsystemwithrelativeelectronicrecords,recordsarchivingandmanagementisachievedautomatically.2.Dataconsistencyismaintainedbydataexaminationbetweenrecords.3.ThemoduleofEMRconsultingnotonlyenhancestheutilizationofelectronicII medicalrecords,butalsopreventrecordsfrombeingillegallydownloadedorcopied.ThedevelopmentofEMRmanagementsystemisvaluablebothintheoryandpracticalforthefuturedevelopmentofEMRmanagementsysteminhospitals.Keywords:EMR,Archiving,SystemDesign,MedicalRecordManagementIII 目录第一章绪论....................................................................................................................11.1课题背景与意义................................................................................................11.1.1课题背景..................................................................................................11.1.2国内外研究现状和发展态势..................................................................21.1.3目前存在的问题......................................................................................41.1.4研究意义及应用价值..............................................................................41.2研究目标和主要内容........................................................................................51.2.1课题研究目标..........................................................................................51.2.2主要内容..................................................................................................61.3本文结构安排....................................................................................................6第二章系统构建的主要方法和相关技术....................................................................82.1系统开发方法....................................................................................................82.1.1结构化系统开发方法..............................................................................82.1.2面向对象的开发方法..............................................................................82.1.3本系统采用的开发方法..........................................................................92.2系统开发体系结构............................................................................................92.2.1主要的体系结构模式..............................................................................92.2.2三层体系结构........................................................................................102.3相关技术概述...................................................................................................112.3.1.NET技术..............................................................................................112.3.2.NETFramework技术...........................................................................122.3.3ADO.NET技术......................................................................................122.3.4SQLSERVER数据库...........................................................................142.3.5C#技术....................................................................................................152.4本章小结..........................................................................................................16第三章中山市人民医院电子病历文档系统需求分析..............................................173.1关于电子病历文档归档系统概述..................................................................173.2系统功能需求..................................................................................................173.2.1归档管理模块........................................................................................18IV 3.2.2查阅管理模块........................................................................................183.2.3系统管理模块........................................................................................193.3系统性能需求..................................................................................................193.4系统安全需求..................................................................................................203.5系统用例分析..................................................................................................203.5.1电子病历文档归档管理用例设计........................................................213.5.2电子病历文档查阅管理用例设计........................................................223.5.3系统管理用例设计................................................................................233.6本章小结..........................................................................................................24第四章中山市人民医院电子病历文档管理系统设计..............................................254.1总体设计..........................................................................................................254.1.1系统总体设计........................................................................................254.1.2系统结构模型........................................................................................254.1.3系统设计流程........................................................................................264.2系统主要功能模块设计..................................................................................274.2.1文档归档管理模块设计........................................................................274.2.2文档查阅管理模块设计........................................................................274.2.3系统管理................................................................................................284.3数据库设计......................................................................................................294.3.1数据库设计的原则................................................................................294.3.2实体-联系图...........................................................................................294.3.3数据库表结构设计................................................................................314.4本章小结..........................................................................................................34第五章中山市人民医院电子病历文档管理系统实现............................................355.1系统实现平台..................................................................................................355.2系统数据层实现..............................................................................................355.2.1数据库及数据表创建............................................................................355.2.2存储过程实现........................................................................................375.2.3数据库连接实现....................................................................................375.3主要业务流程图..............................................................................................385.4系统功能模块实现..........................................................................................405.4.1病历文档归档管理模块实现................................................................405.4.2病历文档查阅管理模块实现................................................................48V 5.4.3系统管理................................................................................................535.5本章小结..........................................................................................................59第六章系统测试..........................................................................................................606.1系统测试..........................................................................................................606.2调试及问题纠错..............................................................................................616.3本章小结..........................................................................................................62第七章总结与展望......................................................................................................637.1总结..................................................................................................................637.2展望..................................................................................................................64致谢............................................................................................................................65参考文献........................................................................................................................66攻硕期间取得的研究成果............................................................................................68VI 第一章绪论1.1课题背景与意义1.1.1课题背景本课题来源于广东省中山市人民医院病案管理工作的实际需求,系统与该院的电子病历系统无缝连接,通过数据异构整合技术,完成获取电子病历系统生成的电子病历文档包集中采集,自动建立电子病历文档索引,并为用户提供查询、查阅、浏览病历文档服务等一系列工作。改变病案归档方式,将病案管理员从日常繁重的手工作业方式中解脱出来,简化工作流程,实现病案归档自动化,降低病案管理员劳动强度,促进病案归档管理工作的规范化和信息化,极大地提高工作效率和质量;数据审核功能促进病案文档数据的准确性与完整性,有效控制电子文档丢失、失效;病历查阅功能提高病历息检索和调阅的速度,防止电子病历文档被非授权访问,提高病历文档数据安全性,为医务人员临床诊治、科学研究、临床教学提供完整资料。为了更好的达到三甲医院评审标准,在现有的资源的基础上,努力做到病案管理科学化、规范化、自动化。病历归档管理工作应建构信息化管理模式,逐步从事务型管理向信息化管理转变,将病历归档工作的各个环节纳入信息管理,提高病案利用开发使用率,实现中山市人民医院病历管理的规范化和高效化。卫生部《电子病历基本规范(试行)》第二十三条规定提到:“归档后的电子[1]病历采用电子数据方式保存,必要时可打印纸质版本”,规范里要求实施电子病历的医院,病历的书写、传输、使用、保存、管理要实现电子化、无纸化,这也要求病历归档时需要电子化方式归档。根据卫生部《关于开展电子病历试点工作的通知》(卫医政发[2010]85号)文件,要求通过开展电子病历试点工作,探索建立适合我国国情的电子病历系统,建立完善电子病历应用管理制度、工作模式、运行机制以及质量评估和持续改进体系。作为卫生部试点单位,中山市人民医院开展电子病历文档管理系统的设计与实现实属必要。传统的以手工方式管理病案的模式面临着严峻挑战。传统的病案管理的模式在纸质病案收集、整理、装订、登记、上架等机械繁琐的劳动上化把大量人力、物力,工作效率和质量都不高。传统的病历归档方法已无法适应医院工作需要,如何利用现代化的手段和技术进一步提高工作效率,开发一套适合中山市人民医院病案归档管理工作需要的软件非常有必要。1 电子病历发展的必然趋势。根据统计,电子病历在我国覆盖率达到48.18%,三甲医院基本实施了电子病历,病历的书写、传输、质量管理等都实现了电子化,但到病历归档环节时,绝大多数医院都是把电子病历打印成纸质病历归档保存。这种情况与传统的纸质病历没有本质区别,医生查找、使用病历时非常不方便,并且容易丢失或毁坏病历。如果能实现电子病历文档管理系统,就能冲破病案利用的空间和时间限制,使封闭的病案管理变为开放的管理,转变管理职能,从病案的保管和利用上升到病历信息采集、管理和服务。因此,这样的背景非常有必要将计算机技术、病案管理知识和软件工程方法学理论结合起来,开发一套基于文件式管理的电子病历文档管理系统,与电子病历系统无缝连接,把电子病历文档进行电子化管理,来提高病历管理的现代化水平、工作效率和资源有效使用率。1.1.2国内外研究现状和发展态势[2]我国病案管理工作始于1921年,在上个世纪90年代以前,我国的病案管理工作的进展一直非常缓慢。1、在病案保存方面,病案资料的载体长期以纸质病案为主,存在着占用空间大、不易保管、查找或存取困难的缺陷。2、在病案利用方面,大多数医院的病案利用仍采用较为原始手工劳动为主的运作方式,工作效率极低,且传统的病案利用方式受到时间和速度的限制。3、历年病案随着时间的[3]推移,在自然毁损或在使用的过程中破损丢失。到了90年代后,一些大医院已开始对病历档案进行数字化加工开始对病历档案进行数字化加工,主要有两种方式:1、病案缩微。病案缩微是指通过光学影像拍摄技术,把病案资料拍摄到胶片上保存,其基本流程包括病案整理、建立索引、病案缩微、信息处理、数据储存、病案检索查阅等工序。用户按照病案号、患者姓名等检索词,可以检索到缩微病案的光点号和胶卷号,然后在缩微阅读仪的作用下,可随时根据需求把缩微病案还原成原始病案阅读。病案缩微的优点是病案保存安全、节省存储空间等,但是,跟计算机查询相比,缩微病案查询速度较慢,故这种技术方案只适用于调阅频率相对较低的历史病案。2、病案扫描。病案扫描是只用用高速扫描设备将病案扫描成图像文件,用硬盘或光盘作为存储介质,在网上可实现全病案电子影像的在线调阅,用扫描技术归档的病案通常叫也影像病案[3]或数字化病案,相对于纸质病案和缩微病案,除了具有节省存储空间、保存安全之外,还具有检索速度快,打印病历便捷等优点。电子病历在国内官方定义是:“电子病历是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图表、图形、数据、影像等数字化信息,2 并能实现存储、管理、传输和重现的医疗记录,是病历的一种记录形式。使用文字[1]处理软件编辑、打印的病历文档,不属于本规范所称的电子病历。”从电子病历定义可以知道它主要功能是完成病人病历信息采集、加工、存储、传输和利用,对归档后的病历文档库进行管理并提供查询浏览等相关服务,它不止将传统的纸病历完全无纸化,并改进了纸质病历的管理模式,便于无纸化归档储存、查询、统计、数据共享和反复利用。最近10年,电子病历迅速发展,病历的生成、传输都实现了电子化,2009年,公立医院改革开始,也进一步将电子病历推向了前所未有的高度,政府从上至卫计委(原国家卫生部)下至地方县市卫生局纷纷出台了一系列针对电子病历的规范或制度,如《电子病历基本架构与数据标准(试行)》、《电子病历基本规范(试行)》、《电子病历系统功能规范(试行)》等,国家以法规或制度的形式为电子病历的建设、应用提供了规范文件,并承认了无纸化电子病历的合法性。但对于病历保存方式很多医院还是将病历打印出来,再由医务人员手工签名后,以纸质病历、缩微病历或者影像病历方式进行归档保存。这种情况与传统的纸质病历没有本质区别,与真正的电子病历预期目标相差甚远,集成病人历次住院病历,实现病历长期保存和随时查阅是电子病历主要目标之一。电子病历的存储有多种实现方式,有数据库形式,也有文档形式或者两者混合形式,李包罗、薛万国等学者认为临床数据存储库(ClinicalDataRepository,CDR)是一种能满足病历长期[5]安全归档保存的解决方法,其主要采用数据库与文档相结合的方法实现。2007[6]年解放军251医院的电子病历存储采用虚拟打印技术,将患者的病案资料调出,以PDF格式按ID号集中存储于电子病历归档服务器中保存。解放军第163医院开发“电子病历备份系统”以解决电子病案的备份、恢复或转储,以确保电子病[7]案的最高安全性保障。[8-12]美国是最早将计算机技术应用到病案管理中的国家,1968年,美国LarryWeed博士首次从结构上对传统的医学记录进行改进和优化并在1982年开发了著名的POMIS系统。1991年、1997年美国电子病历研究所分别发布电子病历研究进展报告,他们所定义的电子病历是:以电子化方式管理的有关个人终生健康状态和医疗保健行为的信息,它可在医疗中作为主要的信息源取代纸张病历,提供超越纸张病历的服务,满足所有的医疗、法律和管理需求。根据HIMSSAnalytics2009[13]年的调查显示,电子病历使用率已超过76%,其中16.9%的医疗机构电子病历拥有临床数据存储库。日本也于1990年开始开发研究电子病案,1995年由日本千叶县龟田医院率先实现电子病案系统,并由政府产业和学科界组成电子病案开发委[14]员会。3 [15]在电子病历信息模型上,HL7发布了HL73.0和RIM,在病历文档标准化方面发布了CDA,在病历录入上开发了专科结构化录入病历界面、知识库等,在病历存储方式上,美国医疗信息与管理系统学会(HIMSS)认为电子病历要集中保存在临床数据存储库(ClinicalDataRepository,CDR)中,提出用临床数据库解决[16]电子病历数据异构和海量存储。总的来说,国内外大多数医院实现了医疗文书电子化处理,未来的主要目标是实现以病人为中心的信息集成和存储管理,实现电子病历的长期、集中、安全存储,一体化展示。1.1.3目前存在的问题在现代病案管理发展中,病历先后从纸质病历、缩微病历、影像病历最后过渡到电子病历,纵观国内外,电子病历已成为病历发展主流,无纸化存储、一体化展现、智能化应用是当前电子病历发展的重要内容和方向,目前国内外以数据库方式存储的电子病历面临着以下挑战:1、电子病历文件式管理需求。电子病历无法长期存储在数据库中,电子病历建立在各临床信息系统之上,数据采集于各个临床信息系统之中,伴随着时间的推移和业务的增长,数据库中数据量也呈几何级增大,这必将增加了数据库的压力和安全风险,降低了临床信息系统的工作效率。为解决这个问题,必须把电子病历从在线系统中离线出来,生成基于XML的电子病历文档,对电子病历文档进行归档管理。2、电子病历无法解决数据异构与一体化归档展示的矛盾,电子病历基础数据来源各临床信息系统,数据类型复杂,由于各临床数据库难以长期同时在线,电子病历归档后无法实现海量、长期的一体化视图展示。3、电子病历文档网络化查阅问题。在确保病历安全的前提下,系统不仅要提供电子病历文档网络化查询、阅读浏览功能,还必须防止电子病历文档被非法复制、下载。1.1.4研究意义及应用价值本课题体现了电子病历文档管理一种尝试。从理论上讲,电子病历文档将逐步取代纸质病案、缩微病案或影像病案。但就目前而言,电子病历与传统的纸质病案、缩微病案、影像病案将在较长一段时间内共存,这种运作管理现状将会有一个漫长的过渡期。随着新医改的深化和信息技术发展,如何管理好电子病历文档,并使之与其相对应的电子病历系统连接,取代纸质病案,同时提高病历的安全性和使用率,这是目前病案管理的关键。本课题的研究是对于电子病历文档管理一种初步尝试,也对今后电子病历文档管理系统设计方面的流程设计、技术标4 准研究有一定的参考价值。促进电子病历深层次应用。近年,国家卫生部在政策上都积极鼓励开展对电子病历文档管理的研究与探讨。中共中央、国务院《关于深化医药卫生体制改革的意见》中特别提到“以建立居民健康档案为重点,构建乡村和社区卫生信息网络平台;以医院管理和电子病历为重点,推进医院信息化建设”。中山市人民医院在国家有关部门未统一电子病历文档管理软件之前,为逐步解决本院电子病历文档管理问题,力求在本院内开发和使用电子病历文档管理系统,以解决病历归档、保存和使用等问题,对电子病历文档进行规范管理,以确保电子病历文档归档质量和病历有效使用。实现电子病历文档有效收集与管理。电子病历文档的收集与管理是电子病历文档管理的基础,只有做好了此项工作,才能开展电子病历文档的查阅与利用,为医院开展医教研活动提供信息支持,为患者保存资料、异地就诊提供医疗记录。减轻病案管理员工作量。由于电子病历文档归档工作的相对滞后,现有电子病历系统无法直接归档,电子病历必须打印成纸质病历,再把纸质扫描成影像病案归档,同时还要归档纸质病案,这种“双轨制”管理模式导致很多工作重复,工作繁琐,工作量增加。中山市人民医院电子病历文档管理系统的设计与实现,能有效解决电子病历文档的收集与管理,减轻医务人员工作量,加快病案信息化建设。本课题以中山市人民医院为案例,提出以电子病历文档管理的方式解决电子病历的存储、数据开发利用问题,力求在本院内开发和使用电子病历文档管理系统,对电子病历文档进行规范管理,实现电子病历归档、保存和使用电子化,以确保电子病历文档归档质量和病历有效使用。1.2研究目标和主要内容1.2.1课题研究目标本课题利用数据库技术,开发一套基于中山市人民医院电子病历系统的电子病历文档管理系统。整个系统的目标是:注重实用性、科学性和可操作性并重的原则,把病案管理员从繁杂的手工劳动中解脱出来,提高病历归档的质量,为医务人员提供便捷的病历查阅服务,提高病历使用率,提高归档病历安全性。系统具体实现的功能目标:使电子病历文档管理系统软件具备适应电子病历文档存储格式、能够支持实时浏览、具有网络检索功能,能够实现电子病历文档收集整理、建立索引、数据审核、数据存储、检索浏览、查阅管理、权限控制与5 管理,满足医院电子病历文档一体化管理和病历资源开发利用的需要。整个系统均以工作流流程的方式运行,系统自动完成病历文档归档过程,改变以往传统的纸质病历手工归档模式。病历文档的授权浏览功能,极大的方便了医务人员查看病历的速度、广度和深度,提高病历利用率,同时,提高病历安全性。1.2.2主要内容本文根据电子病历文档管理和病历资源开发利用等方面需求以及未来可扩展性考虑,选择基于Microsoft.NET平台框架,采用MicrosoftVisualStudioC#2005开发工具进行开发,利用MicrosoftSQLServer2000数据库作为后台数据库管理平台,采用软件工程方法学系统理论,结合用户需求进行需求分析,并设计其系统模型,按照设计的系统模型实现系统设计。电子病历文档管理系统将实现以下三大功能模块:1、归档管理模块。普通用户(病案管理员)登录系统后,选择电子病历系统中生成的电子病历文档存放源目录,设置目标病历文档存放位置,运行相关算法后,系统在后台自动完成电子病历文档整理,根据文档信息自动分析并建立病历基本信息索引,同时进行病历文档完整性校验审核,最后,把符合归档的电子病历文档上传到服务器保存,以上工作全部由系统在后台自动完成,完全不用人工干预。2、查阅管理模块。系统为用户提供文档检索功能,用户通过查询功能能够查询到病历基本信息,如果需要查看原件,用户可以通过查阅申请向系统管理员申请查看病历,申请获得系统管理员审批同意后,申请人可以查看完整的病历文档,同时,系统自动记录申请人、审批人、病历、文档传输情况等信息。3、系统管理模块。系统提供用户管理功能,可以新增、编辑、删除用户,并且能够为用户授权;用户日志能够自动准确记录用户申请查看病历记录和系统管理员的审批记录,一方面能够有效记录病历文档追踪管理,保护病人隐私,另一方面,能够准确统计电子病历文档利用情况。此外,系统还具有系统配置功能。1.3本文结构安排本文研究设计中山市人民医院电子病历文档管理系统,结合具体病历文档归档、查阅和系统管理功能需求,运用面向对象的结构化设计思想,采用关系型数据库管理技术,研究了多层架构下的电子病历文档管理的设计与实现。系统完成后,可以自动化实现电子病历索引建立、文档整理、数据审核、文档上传、文档查询、网络阅读等功能,具有较高的实用价值。6 本文总共分成七章,各章节内容安排如下:第一章:绪论,首先介绍课题研究背景情况及研究意义,阐述了国内外研究现状和发展趋势,并总结目前存在的主要问题,然后提出本文的研究内容、目的,提出系统的设计思路与原则,最后,提出论文研究的组织结构;第二章:系统构建的主要方法和相关技术,论述软件系统设计基础理论,提出了适合本系统的系统开发方法和体系结构,选择.NET技术与SQLServer数据库进行系统设计,最后对系统所用到的.NET、.NETFramework、ADO.NET、SQLSERVER、C#等技术进行详细论述;第三章:中山市人民医院电子病历文档管理系统需求分析,主要研究了系统的基本功能需求、性能需求和安全性需求进行分析,最后对系统用例进行分析。第四章:中山市人民医院电子病历文档管理系统设计,首先概要描述系统总体功能设计,接着详细对各个功能模块进行用例设计,最后设计了系统的实体图及数据库表。第五章:中山市人民医院电子病历文档管理系统实现,根据以上的系统需求分析和系统设计内容,实现了系统的电子病历文档归档模块、电子病历文档查阅模块和系统管理模块,完成了电子病历文档管理系统全部功能的实现。第六章:系统测试。采用黑盒测试方法完成系统测试,并最终通过测试得出了详细的测试结果报告,最后,对系统的调式和问题纠错进行分析。第七章:总结与展望,总结本论文研究工作并且对今后工作作进一步展望。7 第二章系统构建的主要方法和相关技术2.1系统开发方法中山市人民医院电子病历文档管理系统的开发是一个复杂的工程,受到多方面条件的制约。要开发出一套功能齐全、性能稳定的信息系统,前提是必须选择一个合适的系统开发方法。2.1.1结构化系统开发方法目前应用最普遍、最成熟的一种开发方法是结构化的开发方法(SSDM,StructuredSystemDevelopmentMethodology)。结构化系统开发方法又称结构化生命周期法,将整个开发过程划分为五个首尾相连接的阶段,每个阶段都有明确的任务和应得到的成果,它五个阶段内容如下[17]:一、系统规划阶段:根据组织中用户的系统开发请求,进行初步调查,明确组织中是否存在问题,确定为解决问题必须实现系统目标和总体结构,这个阶段的成果物是项目建议书。二、系统分析阶段:这个阶段的工作主要是分析业务流程,定义数据与数据流程,提出分析处理方式和新系统逻辑方案,这个阶段的成果物是系统建议书。三、系统设计阶段:这一阶段的工作是围绕系统分析的结果进行总体架构设计、功能模块设计、数据库设计、输入/输出设计、算法设计等,最终通过物理设计和逻辑设计给出完整设计方案,详细设计说明书在这个阶段产生。四、系统实施阶段:这一阶段,程序员进行代码编写,系统分析设计人员(培训工程师)培训用户,同时,业务人员围绕系统上线进行数据准备,然后投入试运行。五、系统运行与维护阶段:进行系统的日常运作管理、评估、维护、优化,在出现不可调和的问题后,进一步提出开发新系统的需求,老系统生命周期结束,新系统诞生,开始新系统的生命周期。结构化开发方法适用于大型综合、复杂系统。它强调了开发过程的全局性和整体性,每个阶段结束后及时总结、检查、反馈和完善,避免造成浪费和混乱,但其缺点是开发周期长、见效慢、项目风险大。2.1.2面向对象的开发方法8 面向对象开发方法(ObjectOriented,OO)又称快速原型法。它的开发过程[18]包括以下五个方面:一、系统调研和需求分析:通过与用户沟通,对系统面临的具体管理难题和用户对系统开发的需求进行调研分析,也就是说,先了解有什么问题需要系统解决。二、分析问题性质并求解问题:在复杂的问题域中,抽象地辨别对象、对象结构、方法、行为和属性等。这个过程也叫面向对象的分析。三、整理问题:整理问题也叫对面向对象的设计,通常根据上一步的分析结果做详细的抽象、归类、整理,最后,将它们以范式的形式确定下来。四、程序实现:将上一步整理的范式,用面向对象的程序设计语言映射为应用软件,用程序设计语言来取代范式。这个过程也叫面向对象的程序。五、描述客观世界中的对象和行为,分别单独设计出各类对象的实体;分析各个对象间的关联及相互之间所传递的信息,并构建信息系统的架构模型;把信息系统模型变换成软件模型,合并和整理各类对象,并确定对象间的关系;把软件模型变换成目标系统。面向对象的开发方法在分析和设计中的对象或软件中的对象保持着一致性,实现了软件的复用,简化程序设计,其系统易于维护,缩短开发周期。但它不易于大系统的开发。2.1.3本系统采用的开发方法通过对软件系统开发方法的分析、比较,综合以上开发方法的优点和缺点,本系统在开发过程中,在系统规划、系统分析、系统设计三个阶段中应用结构化系统开发方法,系统程序编写与测试阶段应用面向对象的系统开发方法。这种混合式开发方法有效解决了开发周期长、见效慢的不足,当用户的需求发生变化时,系统也能适时做出必要的调整。2.2系统开发体系结构随着信息系统规模的不断扩大,选择和设计合理的系统的体系结构显得尤为重要。系统的体系结构决定了应用程序各部分的交互关系和各部分功能的实现。2.2.1主要的体系结构模式一、客户端/服务器端(Client/Server,C/S)体系结构C/S结构是以数据库服务器为中心、以客户端为网络基础、在信息系统软件支9 [19]持下的两层结构模型。目前大多数应用软件系统都是C/S形式的两层结构。虽然传统的C/S体系结构是开放模式,但面对不同的操作系统,需要开发不同版本的软件,已经很难适应百台电脑以上局域网用户同时使用,不能再满足系统设计的需要了。二、浏览器/服务器(Browser/Server,B/S)体系结构随着互联网技术的发展,B/S体系结构是对C/S改良和提高。在这种结构下,在Web客户器实现软件应用的用户表现,在应用服务器端实现业务逻辑,业务处理在客户端浏览器实现。B/S是全新的软件架构技术,成为当今及未来应用软件的[20]首选体系结构。三、B/S结构较C/S结构的优势(1)应用较广泛B/S比C/S更强的适应范围:C/S一般建立在专用网络上,小范围网络环境;B/S建立在广域网、3G网之上,任何网络结构都适用,特别适于没有宽带的地方,例如电话拨号上网,B/S适应范围比C/S强,一般只要有操作系统和浏览器环境就可以实现。(2)操作使用简单B/S最大的特点是可以在任何平台操作而不需安装客户端,只需安装一个浏览器即可。而C/S模式需要在客户机上安装不同的应用程序。(3)软件维护和升级简单在软件应用过程中,软件升级是不可避免的,在B/S结构中,当软件需要升级时,只需要管理服务器就行了,无论用户的规模有多大,对系统管理员来说,客户端都是零维护,极大地减少软件升级工作量。(4)代码扩展性、重用性较强跟C/S结构的代码可重用性差相比,B/S采用面向对象技术,具有代码的扩展性和重用性较强的特点。2.2.2三层体系结构三层体系结构,是在数据库层和客户层之间加上一个应用层。这里所说的三层体系,不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,指表示[21]层(USL)、业务逻辑层(BLL)、数据访问层(DAL)。一、表示层:主要表示WEB方式。业务逻辑层如果足够强大和完善,不管表现层做如何定义和修改,业务逻辑层始终都能完善地提供服务。二、业务逻辑层:主要是针对具体的问题的操作,是表示层和数据访问层之10 间通信的桥梁。三、数据访问层:主要是对原始数据的操作层,具体为表示层或业务逻提供数据服务。[19]基本框架图见图2-1所示:客户端浏览器表示层用户界面表示逻辑WEB服务器应用服务器逻辑层业务处理业务逻辑数据层数据库服务器数据逻辑图2-1B/S模式的三层体系结构图2.3相关技术概述2.3.1.NET技术.Net是微软通过软件连接信息、人、系统和设备的WEB服务策略。作为微软的集成开发平台,它实现了一种跨语言跨平台的构想。.Net的基本的出发点在于将软件视为服务,即将Internet上的各种应用都看作服务。它构建在XML和Internet标准基础之上,为用户提供基于Web服务的开发和应用环境。它全面支持XML,集成了分布式WEB服务的应用程序开发,以[22]将软件变为服务的策略提供一个高效的开发环境。.Net具有如下优势:一、NET在代码封装的选择性和易用性相比于其它技术好一些。二、NET提供了较多加密算法,如:非对称算法、HASH算法、对称算法、随机数生成法。三、NET通过WSA(WebServiceArchitecture)和WSE(WebServiceExtension)包来提供最新的WEB服务安全保证。四、NET门槛较低,使用方便,学习成本较低。11 2.3.2.NETFramework技术[23].NETFramework(.Net)是微软公司产品,它是一个专注于敏捷软件开发、快速应用开发、跨平台和网络透明化的软件开发平台。.NET与Windows操作系统相互支持兼容,使得基于Windows操作系统上对.NET的应用开发更加简易。为使研发工程师更便捷地建立Web应用程序和服务,便于互联网上的各应用软件使用[24-25]Web服务进行沟通,它提供了一个跨语言的统一编程环境。.NETFramework本质是运行在Windows基础之上的,主要组件包括以下两个:公共语言运行库和.NETFramework类库。一、公共语言运行库是.NETFramework的基础,它能够提供跨语言调试和调用。此外,还提供远程处理和内存管理线程管理等核心服务,类似于一个.NETFramework的代理,提供了所有.NET程序的运行环境,负责内存管理、安全性管理和简化应用程序部署等。二、.NET公共语言运行环境即.NETFramework类库,是类、接口和值类型的库,提供对系统功能的访问,是构建.NETFramework应用程序、控件和组件的基础。它功能类似于虚拟机,包含了丰富的代码库。用户可以直接把需要的库调用到应用程序中,它的优点是可以使复杂的应用程序更直观简洁。.NETFramework[26]的组成见图2-2所示。VBC#VC++JScript其他通用语言规范VisualStudio.NETWEB服务用户接口数据和XML基本类库通用语言运行时图2-2.NET架构模型2.3.3ADO.NET技术ADO.NET是一种数据访问技术,使得应用程序与数据存储相互连接,并实现以各种方式操作数据。该技术基于.NETFramework,与.NETFramework类库的其余部分高度集成。ADO.NETAPI的设计,实现所有面向.NETFramework的语言都可以使用该API,如VisualC++、J#、C#和VisualBasic。ADO.NET软件栈由提供12 [27]者和服务两个主要部分组成。ADO.NET的提供者是一些组件,这些组件可以与指定的数据库交互(比如,有一个提供者与Oracle数据库交互,而另一个提供者与SQLServer数据库交互)。所有的提供者都向外提供一个统一的API接口,ADO.NET软件栈中的其他层在此API之上建立。ADO.NET还包括基于提供者而建立的一些服务,设计这些服务的目的,是为了方便应用程序编写。其中有一个服务是内存中的缓存服务,缓存服务记录了数[28-29]据的关系形式,并实现修改跟踪和约束验证等功能;该服务由ADO.NETDataSet接口提供,包括一些与提供者层实现交互的其他组件。ADO.NET五大对象分别是:一、Connection(连接数据库);二、Command(执行T-SQL语句);三、DataAdapter(用户填充DataSet,断开模式);四、DataReader(读取数据库,一种只读模式,只向前的);五、DataSet(数据集,好比电脑的内存)。ADO.NET的革新:一、ADO.NET支持XML这是ADO.NET的主要设计目标之一。在ADO.NET中软件开发工程师通过XMLReader,XMLWriter,XMLNavigator,XMLDocument等可以快速、方便地创建和使用XML数据,同时还支持W3C的XSLT、DTD、XDR等技术标准。XML能成为Microsoft.NET数据交换的统一标准化格式,依赖于ADO.NET对XML的支持。二、ADO.NET引入了Dataset概念DataSet包含DataTable对象集合和DataRelation对象集合,可以将任意多个表、存储过程、SQL查询或视图等数据集合包含其中,还可以对这些表之间的所有关系和所有的模式信息进行统计、跟踪和记录。ADO.NET引入了Dataset概[30]念,代替了原有的Recordset对象。它利用Dataset的优势优化了程序的交互性、灵活性以及可扩展性。不管数据源是关系型的数据库,还是XML文档,都可以用一个统一的编程模型来实现数据创建和使用。三、ADO.NET增加了对断开连接的数据处理在传统的主从式应用程序中,执行程序时会一直保持与数据源的联机,但在某些状况下是没有必要与数据库保持一直联机状态的,且这种一直保持的联机必然造成系统资源浪费。为改善这个缺点,把ADO.NET设计成非持续联机状态,只有在应用程序查询数据或者更新数据时才与数据源进行联机工作。因此,随着应用程序管理的连接数减少、负载减少、系统资源开销下降,效率必然也提升了。13 四、ADO.NET可以进行批量复制ADO.NET允许从一个数据源到另一个数据源的批量复制,不同类型的数据提供者类名基本相同;可以进行批量更新,可以代替几个短周期提交请求的方式,将会大大提高提高服务器的性能。五、ADO.NET引入了一系列的新的对象和编程模型这使得对于数据操作的方便性和效率都有了极大的改进。比如,增加了DataReader对象,用户可以利用该对象来实现数据的高效读取,并且产生一个只读的记录集。2.3.4SQLSERVER数据库数据库是各类应用管理系统的核心,数据库管理系统是操纵和管理数据库的大型软件,它可以通过建立、使用和维护数据库,实现对数据库进行统一的管理和控制,它的主要功能包括:数据组织、数据定义、数据操作、存储与管理、数据库的保护、数据库的运行管理、数据库的维护和通信等功能。目前国内外各类成熟的数据库管理系统层出不穷,主流数据库管理系统包括:Informix、Sybase、MySql、Dbase/FoxPro、DB2、Access、SQLServer、Oracle等。数据库管理系统的选择是否恰当与项目成本、软件质量息息相关,总的来说,数据库管理系统选择需要参考以下原则:一、考虑项目所处的行业特点和系统应用范围,数据库管理系统要有较好的通用性,以便与其他业务系统数据交互;二、考虑系统的业务处理能力,如果系统的业务数据处理并发数大、数据量大,则必须考虑大型企业级数据库管理系统,如Oracle,反之,可以考虑轻量型桌面型数据库,如Access,否则会造成资源浪费。三、考虑系统的开发环境和应用环境。有些系统平台与数据库管理系统具有较好的兼容性,能够把两者的效用发挥到极致,如Windows+SQLServer,Mysql+PHP+Apache等。根据以上原则,结合中山市人民医院的信息系统建设现状,选用SQLServer作为后台数据库管理系统。[31-32]SQLServer数据库是目前最流行的关系数据库系统之一,它是微软公司推出的数据库管理系统软件,简化了企业应用程序的创建、部署、管理和应用,能在所有主流平台上运行。它采用完全开放策略,可以使客户选择最适合的解决方案。它对平台服务器的要求比较低,并且包含了视图的灵活运用、触发器与存储过程、用户自定义数据类型与自定义函数、维护数据的完整性等,有很强的实14 用性。丰富的XML和Internet标准支持使得SQLServer成为一个完全Web支持的数据库产品,提供了以Web标准为基础的扩展数据库编程功能。SQLServer的优点众多,使其在数据库领域独占鳌头,成为最受用户欢迎的数据库系统。一、图形化用户界面 SQLServer提供图形化用户管理界面,数据库管理和系统管理更加简单化和直观化,系统提供了数据表、视图和查询定义的图形界面,可以在QueryAnalyze的图形界面中使用SQL语言,服务器和数据库的用户配置的图形化界面。二、丰富的编程接口工具 为用户进行程序设计提供了更大的选择余地,SQLServer提供了丰富的应用程序接口来访问服务器的数据。主要的访问方法有:ODBCAPI、OLEDB、Transact-SQL和DB-Library,客户机可以通过这些API作为动态连接库来使用,并通过客户端的网络库与SQLServer服务器通信。三、系统占用资源少SQLServer为企业提供全面的、集成的、端到端的数据管理解决方案,提供了一个高安全性、高可靠性和高效率的平台用于数据管理和商业智能应用,相对于其他大型数据库,SQLserver所占用的资源要少得多。四、减少IT复杂度SQLServer为IT专家和信息工作者带来了强大的、熟悉的工具,简化了开[33]发、部署和管理业务线和分析应用程序的复杂度。2.3.5C#技术C#是.NET框架主要编程语言,C#语言在C++和C基础上发展起来,是微软公司专为.NET架构定制的编程语言,.NETFramework类库提供的每种功能C#都可以支持[34]。同时,C#吸取了许多其他语言的优点,解决了许多问题。作为专门为.NET设计的完全面向对象的编程语言,C#不但结合了Java语言简洁和C++强大灵活的特征,还具有VB和Delphi易用性特征。C和C++语言能实[35-37]现的所有功能都可以利用C#语言来实现,并且增强了程序的安全性。C#可以实现大多数软件工程师所需要的功能。它可视化的VisualStudio2008开发平台为软件工程师提供了良好的代码编写、代码管理、程序调试和系统部署环境,极大地提高了软件的开发效率。软件工程师应用C#,可以进行Windows服务、Windows应用程序、Windows控件、Web服务、Web应用程序、报表应用程序等一系列开发。此外,C#还具有大多数软件工程师所需要的功能特点:语法简15 单、功能强大、文档齐全、兼容性好。C#与其他语言相比,具有较多的优点,具体如下所示:一、C#语法简化了C++的诸多复杂性,拥有类似java的语法,语言简单明了,相比java拥有更加丰富的类库,简单易学。同时提供了很多强大的功能,例[38]如可为空的值类型、枚举、委托、匿名方法和直接内存访问。二、C#支持封装、继承和多态性概念。继承,使代码重复调用;多态,是对方法的重载;封装,能保护字段的安全性。三、VS编码工具强大,特别是应用式软件,编码效率非常高。四、C#还可以用于ASP.NET编写XMLWeb服务和Web动态页面代码。对于上述大多数特性,VB.NET和C++也具备。但C#从一开始就使用.NET,对.NET[39-41]特性的支持不仅是完整的,而且提供了比其他语言更合适的语法。2.4本章小结本章简要介绍了系统开发方法、系统体系结构以及相关技术。在系统开发方法中,把结构化系统开发方法和面向对象的开发方法进行比较分析,选择了合适的系统开发方法。在系统开发体系结构中,通过对比C/S模式与B/S模式,可以看出B/S模式在传统的两层结构C/S模式之间增加了一个应用服务器,根据系统的需要,采用B/S模式三层体系结构。在相关技术概述中,分别简单的描述了.NET技术、.NETFramework技术、ADO.NET技术、SQLServer以及C#技术。16 第三章中山市人民医院电子病历文档系统需求分析软件需求分析指的是在软件设计开发过程中,对要拟解决的问题进行详细的分析,理清问题的要求,包括需要输入什么数据,输出什么结果,其目的是对各类需求信心进行分析和抽象描述,为软件建立概念模型。需求分析的任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他软件的接口细节,定义软件的其他有效性需求,解决系统“做什么”的问题。需求分析是一项重要的工作,也是最困难的工作,在开始构造软件之前,软件分析师与用户交流,捕捉、分析和修正用户对目标软件的需求,对项目能否顺利进行并达到设计目标有着直接影响,下面详细介绍本系统的需求分析。3.1关于电子病历文档归档系统概述本系统是基于中山市人民医院病案室电子病历文档管理实际运作流程为原型,与电子病历系统无缝连接,实现从电子病历系统中离线的电子病历文档自动化采集、整理、校验、上传、归档、网络检索和查阅等功能,力求做到无纸化存储、一体化展示、智能化应用,最终实现提高工作效率、改善病历归档准确率和完整率、提高病历利用率的目的。下面详细介绍本系统的需求分析。3.2系统功能需求系统功能需求分析在系统设计开始之前进行,即详细描述信息系统所需要具备的功能模块,其关键点和难点在于要实现功能需求定义无歧义性,以防止在系统开发过程中产生项目风险而导致项目失败。针对本系统的设计目标,电子病历文档管理系统主要功能模块见图3-1所示:电子病历文档管理系统归档管理查阅管理系统管理建文数文文查审文用用用系立档据档档阅批档户户户统索整审上查申申查登管日设引理核传询请请阅录理志置图3-1系统功能模块图17 3.2.1归档管理模块电子病历系统中离线生成电子病历文档包并保存在本地计算机硬盘上,电子病历文档管理系统采集电子病历文档,建立文档索引信息,并把病历文档以文件式存储到文件服务器上,主要可包括以下步骤:一、建立索引:每份病历文档包上均包括一个记录病历索引信息的ERC文件,分析ERC文件,解析病历的基本信息和病历文档信息,包括:病人姓名、住院号、性别、年龄、入院科室、出院科室、入院日期、出院日期、病历页数及文件大小、病程记录页数及文件大小、检验报告页数及文件大小、影像报告单页数及文件大小、知情同意书页数及文件大小、护理文书页数及文件大小等,把解析结果保存到数据库中,为数据审核提供依据。二、文档整理:以病历文档的出院日期和病人住院号为病历文档建立目标文档存储目录规则,如病人住院号为9888的病历文档,出院日期2012-12-25,即该病历文档的存储目录为“2012/2012-12/2012-12-25/9888”,把电子病历文档包从源目录复制到目标文档存储目录中。三、数据审核:根据以上2步工作生成的病历信息进行数据校验审核,主要审核索引文件与采集的文档信息是否一致,保证病历数据的完整性。四、文档上传:完成病历文档的数据完整性校验审核后,通过FTP文件传输协议,把病历文档上传到文件服务器中保存。3.2.2查阅管理模块系统为用户提供文档查询功能,用户通过查询功能能够查询到病历基本信息,如果需要查看全病历,用户可以通过查阅申请向系统管理员申请查看病历,用户获得系统管理员审批同意后,申请人可以查看完整的病历文档,同时,系统自动记录申请人、审批人、病历、文档传输情况等信息。一、文档查询:主要是对电子病历文档信息进行检索,任何合法用户都具有此操作权限,系统提供病历文档基本查询接口,包括按病人住院号、按患者姓名、按出院科室、出院日期、归档状态、归档时间等病历文档基本信息多条件组合查询,用户通过文档查询,可以显示病历文档基本信息、归档情况及借阅情况。二、查阅申请:由于病历的特殊性,病历内容的查阅必须经过严格的申请、审批和登记程序,普通用户没有查阅病历内容权限,必须向系统管理员申请查阅病历,申请内容包括:病人住院号、姓名、出院日期、出院科室、申请人、申请查阅时间等。三、审批申请:系统管理员审批普通用户的病历查阅申请,对符合条件的申18 请可以授权阅读,不符合条件的申请则进行驳回处理,系统后台记录申请、审批记录。四、文档查阅:合法用户可以通过网络调阅整份完整病历文档资料,实现病历一体化展示,同时,还必须防止病历文档被非法下载、复制。3.2.3系统管理模块一、用户登录:用户可以通过输入用户名和密码登录系统,并按照用户权限登录对应功能模块,非法用户不给予通过验证。二、用户管理:主要实现系统用户的增删改操作。按照业务功能分配用户权限,管理员具有对系统用户的增删改操作,其它系统用户不具有此项功能权限。新增用户时,设置用户默认密码及默认权限。用户登录后,可以自行修改密码,同时还能根据系统赋予的权限进行相应操作。三、用户日志:主要是统计病历查阅情况、病历归档情况。四、系统设置:系统设置主要是对系统所涉及到的参数进行增删改设置。系统管理员有此操作权限,其它普通用户则没有。系统设置内容主要是一些常用的操作参数定义,如文件服务器地址、数据库接口参数的定义。3.3系统性能需求为了使得电子病历文档管理系统设计更加合理,提高系统的生命周期,在做系统设计时必须考虑以下性能要求:一、高效性。在系统的多次用户访问中,业务并发至少同时支持峰值6000笔/分钟批量数据交换和峰值3000笔/分钟的实时查询或处理业务。二、稳定性。系统的稳定性主要取决于整体的系统架构设计合理,要求系统能同时响应多用户操作,即使系统处于最繁忙的时刻,用户点击具体功能按钮操作,系统也可以迅速做出反应,不发生系统宕机、无响应。此外,系统在运行时还必须保持数据的一致性。三、可扩展性。健壮的软件在系统的拓展性和可维护性方面有严格的要求,在系统设计的时候,利用C#开发环境中的可视化编程,系统界面上的控件是可以进行再次开发的。同时,随着业务和技术的发展,系统的需求也会发生变化,还要考虑到系统以后功能扩充的需要。四、可靠性。医院业务是24小时连续运作的,很多值班医生会在夜间查阅病历,系统应该7*24小时不停机运行,因此,系统必须具有较高的可靠性。五、内聚性与耦合性。在面向对象程序设计中,应严格遵循“高内聚、低耦19 合”的软件设计思想,以降低系统开发的复杂性。设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高功能模块间内聚度,以此获得较高的模块独立性,使系统具有更好的重用性、维护性和扩展性,可以更高效的完成系统的后期维护开发,持续支持业务的发展。总之,电子病历文档管理系统的设计要求用户界面友好,能够实现多线程并发处理,且采用C/S模式与B/S模式相结合的架构的设计要求,极大地满足医院病历文档管理需求,提高工作效率。3.4系统安全需求一、安全可靠性需求病历文档是医院以病人为中心的核心资源,如果遇到非法破坏或系统宕机,将对医院造成无法估量的损失。需要保护的资源除了物理资源和数据资源外,还有网络资源等。二、数据保密性需求电子病历文档中记录大量的临床数据、病人隐私内容,在其处理过程中,特别是系统与业务数据交换过程中,必须进行数据加密传输和存储,防止数据在传输和存储被非法获取、识别,确保数据的安全和保密性。三、数据完整性需求在数据存储、传输过程中满足数据完整性需求。要保证数据存储和传输过程中不被篡改和丢失。建立数据审核与安全机制,保证数据库的完整性、实时性、一致性。四、基于角色访问的身份识别对于纸质病历的保密性,国家有明确的法律条文规定,而且长期以来医院已做好妥贴的安全管理措施,但对于电子病历文档来说,国内医院在病人隐私保密上的意识较低,并且电子病历文档具有共享性高的特点,为保证病人病历资料的隐私,系统必须具有识别用户身份的功能,并且根据用户身份的不同授予不同的系统访问权限,能够拒绝非法用户访问系统。3.5系统用例分析用例图能清晰完整地显示系统的用例、参与者以及它们之间的关系。它是分析系统的描述性文件,通过连接的作用把系统的参与者与系统的所有事件有序组织起来,是系统需求与终端用户之间的连接点。20 3.5.1电子病历文档归档管理用例设计结合对电子病历文档归档管理模块的分析,明确归档管理需要实现的用例主要包括:文档整理、建立索引、数据审核、文档上传。文档归档管理的用例图如图3-2所示,文档归档管理的用例描述见表3-1所示。文档整理建立索引数据审核系统管理员文档上传图3-2电子病历文档归档管理用例图表3-1电子病历文档归档管理用例描述用例名称电子病历文档归档管理用例用例标识号101简要说明系统管理员用来归档病历文档前置条件系统管理员已经登录系统参与者系统管理员基本事件所拥有的事件:系统管理员点击“整理”按钮,弹出文件浏览控件,先选择源电子病历文档文件目录地址,然后再选择归档后的文件存放路径,最后点击“确认”按钮,程序自动开始执行文档归档,包括:1、文档整理:为每份文档包分配索引文件及阅读器;2、建立索引:分析索引文件,为文档建立索引库;3、数据审核:审核文档数是否完整,以及文档内容是否有空白4、文档上传:在目标文件夹下按规则建立文件目录,把源文件上传到目标文件目录中。其他事件流在任务未完成时,可以点击“取消”中断任务异常事件流1、提示报错信息,用户确认;2、返回到管理系统主界面后置条件索引库被更新,文档上传到服务器中注释无21 3.5.2电子病历文档查阅管理用例设计根据对电子病历文档查阅管理模块的分析,文档查阅管理模块需要实现的用例主要包括:文档查询、查阅申请、审批申请、文档查看。电子病历文档查阅管理模块的用例图如图3-3所示,电子病历文档查阅管理模块的用例描述见表3-2所示。文档查询查阅申请审批申请文档查看系统管理员普通用户图3-3电子病历文档查阅管理用例图表3-2电子病历文档查阅管理用例描述用例名称文档查阅管理用例用例标识号102简要说明系统管理员用来查阅病历文档前置条件系统管理员、普通用户已经登录系统参与者系统管理员、普通用户基本事件普通用户所拥有的事件:1、文档查询:普通用户输入查询条件,检索病历文档基本信息,点击“申请”按钮,系统管理员申请授权查看完整的全文病历文档;2、文档查看:可以查看审批结果,申请获系统管理员批准后,根据权限查阅病历文档,系统记录用户查阅日志。系统管理员所拥有的事件:1、具有普通用户所拥有的全部功能、权限;2、审批申请:有权限拒绝或同意普通用户查阅申请,并将审批结果反馈给普通用户;3、有权限从服务器中下载病历文档。22 其他事件流在传送病历文档时,如果系统长时间未响应,可以自动中断线程异常事件流1、在病历文档传送过程中,能提示文档传送失败信息,用户确认;2、返回到管理系统主界面后置条件1、数据库更新病历文档查阅信息;2、管理系统退出前,清空本地临时文件夹;注释无3.5.3系统管理用例设计根据对系统管理功能模块的分析,明确系统管理要实现的用例包括:用户登录,用户管理、用户日志和系统设置,其中各个用例又包含多个子用例。系统管理的用例图见图3-4所示,系统管理的用例描述见表3-3所示。登录验证用户登录修改密码添加用户普通用户用户管理修改用户删除用户系统超级管理员归档日志用户日志查阅日志系统设置图3-4系统管理用例图表3-3系统管理用例描述用例名称系统管理用例用例标识号103简要说明系统管理员用来维护管理系统,普通用户登录验证前置条件有初始用户参与者系统管理员、普通用户基本事件普通用户所拥有的事件:普通用户可以根据账号及密码登录系统,并可修改密码。23 系统管理员所拥有的事件:1、具有普通用户所拥有的全部功能、权限;2、用户管理:系统管理员可以新增、修改、删除用户,并为用户设置权限;3、用户日志:可以查询病历文档的归档情况和普通用户查阅病历文档记录;4、系统设置:可以对系统外部数据接口、服务器地址等参数进行设置。其他事件流查询结果支持数据导出异常事件流1、登录失败时提醒用户;2、返回登录界面后置条件无注释无3.6本章小结本章是论文研究中山市人民医院电子病历文档管理系统的需求分析部分,首先对系统的基本功能需求、性能需求和安全需求进行分析,并分析系统的用例状况。24 第四章中山市人民医院电子病历文档管理系统设计4.1总体设计4.1.1系统总体设计为了达到“高内聚,低耦合”的软件构架思想,在中山市人民医院电子病历文档管理系统架构设计中,采用三层架构设计,三层架构(3-Tierapplication)在通常意义上指的是将整个业务应用划分为表现层(UI)、业务逻辑层(BLL)、数据访问层[43](DAL),具体见图4-1。表现层(UI)业务逻辑层(BLL)数据访问层(DAL)图4-1三层架构图数据访问层位于系统最底层,主要负责数据库的访问,该层的设计结果影响到整个系统的设计结果,因为该层既与数据库相关联,可以直接操作数据库,实现数据增加、修改、删除、更新、选择等,还为业务逻辑层提供服务,如数据访问接口或函数。业务逻辑层位于系统中间层,是系统架构中体现核心价值的部分,主要负责对数据业务逻辑的处理,包括文档归档管理、文档查阅管理、系统设置等。表现层位于系统最顶层,一般是指展现给用户的界面,运行在客户端机器上的,为用户提供使用系统的交互式操作界面,用于显示输出数据结果和处理用户输入的数据。4.1.2系统结构模型中山市人民医院电子病历文档管理系统功能模块包括病历文档归档管理、病历文档查阅管理、系统设置三个模块,见图4-2所示。25 电子病历文档管理系统病历文档归档管理病历文档查阅管理系统管理数据访问层数据库图4-2系统功能模块图4.1.3系统设计流程电子病历文档管理系统是根据软件工程学系统开发方法论而进行设计与开发的,共包括五大工作流程:一、总体方案阶段。在编写总体方案时,需要中山市人民医院病案室评审、确认我们编写的《系统总体解决方案设计书》。二、需求分析阶段。项目开发组与病案室病案管理人员沟通进行需求调研,在调研期间病案管理员详细描述日常业务工作流程,软件分析师捕捉、分析和修正用户对目标软件的需求,最后,在需求调研结束时形成《需求分析报告书》,并把报告书提交医院评审并确认。三、分析设计阶段。在分析设计阶段,软件分析师与用户沟通,进行系统分析和设计。所使用到的分析设计工具包括Case工具、UML的用例图和序列图等[42],并经评审确认后形成《电子病历文档管理系统详细设计报告》。四、系统编码与测试阶段。在系统编码阶段,工程师根据《电子病历文档管理系统详细设计报告》中对业务流程分析、数据库设计、逻辑算法分析和具体功能模块实现等方面的设计要求,开始详细的程序编写工作,实现各模块的功能设计,从而实现对目标系统的界面、功能、接口、性能和效率等方面的要求。在系统开发阶段,测试工作就开始,主要是软件工程师内部测试,及时发现系统在编写过程中的Bug,在单元测试期间,对于一些关键业务处理的单元测试用例,可以由病案管理员与测试员共同完成。系统编写完成后进行集成测试和系统测试工作,每个功能进行一个一个的确认测试并形成测试报告。五、系统实施阶段。将系统设计和编码阶段的电子病历文档管理系统安装给用户使用,包括软件环境配置、数据准备、用户培训、试运行、正式运行等工作。26 4.2系统主要功能模块设计根据需求分析,本节主要针对文档归档管理、文档查阅管理和系统管理等几个功能进行详细的设计。4.2.1文档归档管理模块设计文档归档管理功能主要实现把一批无序的电子病历文档包按出院日期和ID号归档,并上传到文件服务器中归档,其主要过程包括病历文档索引库建立、文档整理、数据审核和文档上传,这个四个步骤是一个连贯过程,前一个步骤与后一个步骤有关联,环环相扣。首先,用户先选择电子病历文档包临时存储目录,然后再设定归档文档存储目录,最后点击“整理”按钮开始执行归档任务。其执行过程包括以下四步:一、建立索引。系统先自动检测索引文件ERC文件,然后循环遍历读取当批次所有病历的病人姓名、住院号、性别、年龄、入院科室、入院日期、出院科室、出院日期、病历首页页数及文件大小、病程记录页数及文件大小、检验报告页数及文件大小、影像报告单页数及文件大小、知情同意书页数及文件大小、护理文书页数及文件大小等;把读取出来的病历信息写进电子病历基本信息表和电子病历文档信息表中。二、文档整理。根据数据库中电子病历基本信息表的患者出院日期和住院号建立归档文档存储目录,并把临时存储目录中的电子病历文档复制到对应的归档文档存储目录中,为每一份病人电子病历文档分配索引文件及阅读器,形成完整病历文档。归档文档存储目录的建立规则是“根目录出院年份出院年月出院年月日住院号”。三、数据审核。系统读取外部数据(电子病历系统中间表)提供的核对信息,把索引库中的电子病历文档信息与核对信息进行校验,检查病历文档包文件与原电子病历系统中的文件是否一致,防止数据在导出、传输过程中丢失而导致病历文档不完整,并返回核对信息列表。四、文档上传。经过审核后的完整病历文档通过FTP的方式上传到文档服务器中归档保存。4.2.2文档查阅管理模块设计文档查阅功能主要是普通用户查询病历文档基本信息,并向系统管理员提交查阅申请,系统管理员审批查阅申请,并授权用户查阅病历。在文档查阅功能中,文档的安全是最为重要的,必须防止用户非法授权查阅、下载病历文档,因此,27 系统还必须在后台记录用户的查阅记录、文档发送状态、文档查阅完成后还必须从客户端中自动删除病历文档,模块见图4-3所示。文档查阅管理文查审文档阅批档查申申查询请请看图4-3文档查阅管理功能模块图一、文档查询:用户在姓名、住院号、出院科室、出院日期等文本框中中录入查询条件,点击“查询”按钮进行查询,符合查询条件的病历文档基本信息以列表形式显示。二、查阅申请:用户查询完成后,可以在病历基本信息列表中勾选病历(可多重勾选),然后点击“申请”按钮,提交查阅病历文档申请。三、审批申请:系统管理员进入审批界面,点击“申请列表”实时刷新用户提交的申请列表,系统管理可以授权或拒绝用户申请请求,对于授权的申请,系统管理员还可以授权用户查阅病历的具体模块(如病程记录)和查阅有效期限。四、文档查看。普通用户获得系统管理员授权后,点击“查看病历”按钮,病历文档从文档服务器中通过FTP协议发送到客户端临时文件夹,当用户查阅完病历退出文档管理系统时,系统自动把临时文件夹中的病历文档清空,防止病历文档被非法复制。4.2.3系统管理系统管理模块主要包括用户管理,用户登录、用户日志、系统设置四个模块,见图4-4。系统管理用用用系户户户统登管日设录理志置图4-4系统管理功能模块图28 一、用户登录:用户输入在“用户”和“密码”文本框输入用户名和密码,点击“登录”按钮,系统把密码进行MD5加密,并和用户名一起进行登录验证比对,监测到用户为合法用户后,根据用户权限授权用户登录打开对应功能模块。二、用户管理:系统管理员可以新增、删除用户,可以为用户授权访问系统功能模块。三、用户日志:系统管理员可以查询后台记录的查阅病历文档记录、归档记录和文档的传输状态记录,支持按日期查询,查询结果可以导出到EXECL表。四、系统设置:系统设置主要是对系统所涉及到的参数进行增删改设置。系统管理员有此操作权限,其它普通用户则没有。系统设置内容主要是一些常用的操作参数定义,如文件服务器地址、数据库接口参数的定义。4.3数据库设计本系统数据库采用MicrosoftSQLServer2000。设计目标是构建合理的数据存储框架,满足系统数据存取需要。数据库设计是指根据需求,基于具体数据库管理系统,设计其数据库结构,建立数据库的过程,其核心是如何设计出合理高效的数据库逻辑结构和物理结构来。数据库设计的是否高效合理直接影响整个系统的效率和质量,数据库设计是否高效合理,往往与业务流程设计息息相关,而实际的现状是业务流程具有多变性,因此,数据库设计往往是一个迭代循环、不断优化的过程,例如,在实际系统开发过程中,往往会根据系统的需求变化而重新调整数据结构。4.3.1数据库设计的原则一、标准性:电子病历文档管理系统在设计开发过程中必须严格遵守行业标准的规范要求,如HL7.0。二、规范性:保证数据结构化、规范化,在设计数据库时一定要严格按照命名规则和规范来开展设计工作,这样也为系统得可扩展性打下良好的基础。三、一致性:系统内部数据组织完整性、有效性和一致性,对后期数据的整理工作提供了很大的便利条件。四、安全性:在系统运行中必须保证数据库安全,防止非授权用户进入数据库,防止系统负载过重而导致系统效率下降或者崩溃。4.3.2实体-联系图根据设计的数据结构和数据项,可以设计各种实体,以下列出主要的实体-联29 系图进行说明,其中图4-5为电子病历文档实体-联系图,图4-6为用户实体-联系图,图4-7为日志实体-联系图。病人姓名住院号入院次数病人性别归档时间病人年龄文档目录出院日期归档IP入院日期病历出院科室出院状态1手写病历归档状态检验报告放射报告组成N病历文档住院号出院日期病人姓名文档名称文档大小病历结构名图4-5电子病历文档实体-联系图30 用户工号用户姓名用户密码创建日期用户用户科室1属于N用户用户工号用户权限权限标识图4-6用户实体-联系图住院号病人姓名出院日期申请人IP申请类别申请模块查阅日志病历内容申请时间传输时间传输状态申请人图4-7日志实体-联系图4.3.3数据库表结构设计根据中山市人民医院电子病历文档管理系统数据库E-R图设计,本节详细设计系统的数据库表结构信息,结合系统的不同功能模块要求,本系统设计了五个主要数据表:电子病历基本信息表、电子病历文档信息表、用户表、用户权限表、31 电子病历文档、查阅日志表,实现管理系统主要数据目的。一、电子病历基本信息表电子病历基本信息表是系统主索引表,用于管理电子病历基本信息,电子病历文档份数、归档情况以及审核结果都记录在表中,为实现记录的唯一性,在选择关键字时,选择了住院号和出院日期为关键字,这是由于一位病人存在有多份病历或者住院号,为了区别病人不同住院次数的病历信息,选择了住院号与出院日期为关键字,表字段说明见表4-4所示:表4-4电子病历基本信息表字段字段类型字段长度字段说明是否主键是否允许空Patientnamevarchar30病人姓名否否Inpatientnovarchar20住院号是否Outdatedatetime8出院日期是否Admisstimesint4入院次数否否Sexvarchar4性别否是Agevarchar4年龄否是Indatedatetime8入院日期否是Outdepartmentsvarchar30出院科室否是Handwritinglackbit1手写病历否是Ctreportlackbit1放射报告否是Lstreportlackbit1检验报告否是Filestatusbit1归档状态否是Outinstatusvarchar50出院状态否是Ipaddressvarchar30归档IP否是Showstatusbit1是否显示否是Addressvarchar100文档目录否是Createtimedatetime8归档时间否是二、电子病历文档信息表完整的电子病历由多份文档组成,如病历首页、病程记录、检验报告、检查报告、手写病历等,电子病历文档信息表用于记录构成一份完整电子病历的全部文档的基本信息,与电子病历基本信息表是一对多关系,表的字段说明见表4-532 所示。表4-5电子病历文档信息表字段字段类型字段长度字段说明是否为主键是否允许空Patientnamevarchar50病人姓名否否Inpatientnovarchar20住院号是否Outdatedatetime8出院日期是否FilenameVarchar20文档名称否是RecordnameVarchar20病历结构名否是FilelengthDecimal9文档大小否是三、用户表用户表用于记录用户工号、姓名、所在科室等信息,其中选择用户工号(Userid)作为该表的主键。表的字段说明见表4-6所示。表4-6用户表字段字段类型字段长度字段说明是否为主键是否允许空UseridVarchar20用户工号是否UsernameVarchar20用户姓名否否PasswordVarchar20用户密码否否DepartmentsVarchar20用户科室否是CreatetimeDatetime8创建日期否是四、用户权限表用户权限表记录用户的功能权限,与用户表是一对多关系,同样也是选择用户工号(Userid)作为该表的主键。表的字段说明见表4-7所示。表4-7用户权限表字段字段类型字段长度字段说明是否为主键是否允许空UseridVarchar20用户工号是否permissionsnameVarchar50用户权限否否permissionsvaleVarchar50权限标识否否五、电子病历文档查阅日志表电子病历文档查阅日志表用于记录电子病历文档被用户查阅的情况,包括申33 请人信息及文档发送状态信息等,选择住院号和出院日期作为该表的主键。表的字段说明见表4-8所示。表4-8电子病历文档查阅日志表字段字段类型字段长度字段说明是否为主键是否允许空PatientnameVarchar50病人姓名否否InpatientnoVarchar50住院号是否OutdateDatetime8出院日期是否ApplyipVarchar50申请人IP否是ApplytypeVarchar50申请类别否是ApplyrecorinfoVarchar500病历内容否是ApplynameVarchar50申请模块名否是ApplyusernameVarchar50申请人否是ApplytimeDatetime8传输时间否是TransportresultVarchar50传输状态否是timeconsumingVarchar50传输时间否是4.4本章小结本章详细介绍了电子病历文档管理系统概要设计。对系统总体设计、结构模型、功能模块、数据库进行概要设计。34 第五章中山市人民医院电子病历文档管理系统实现5.1系统实现平台系统服务器端WindowsServer2003服务器操作系统MicrosoftSQLServer2000数据库.NETFramework2.0系统客户端InternetExplorer6.0或以上浏览器Microsoft.NETFramework2.0WindowsXP或以上操作系统系统设计环境MicrosoftSQLServer2000数据库Microsoft.NETFramework2.0MicrosoftVisualStudio20055.2系统数据层实现5.2.1数据库及数据表创建一、创建电子病历基本信息表PatientInfoCREATETABLE[PatientInfo]([PatientName][varchar](30)NOTNULL,[AdmissTimes][int]NULL,[InPatientNo][varchar](20)NOTNULL,[Sex][varchar](4)NULL,[Age][varchar](4)NULL,[OutDate][datetime]NOTNULL,[InDate][datetime]NULL,[OutDepartMents][varchar](30)NULL,[HandwritingLack][bit]NULL,[CTReportLack][bit]NULL,[LstReportLack][bit]NULL,35 [Export][bit]NULL,[OutInStatus][varchar](10)NULL,[ShowStatus][bit]NULL,[IPAddress][varchar](30)NULL,[Address][varchar](100)NULL,[CreateTime][datetime]NULL)二、创建电子病历文档信息表ExportResultCREATETABLE[ExportResult]([InpatientNo][varchar](20)NULL,[PatientName][varchar](30)NULL,[OutDate][datetime]NOTNULL,[FileName][varchar](20)NULL,[RecordName][varchar](20)NULL,[FileLength][decimal](18,0)NULL)三、创建用户表UsersCREATETABLE[Users]([UserID][varchar](20)NULL,[Department][varchar](20)NULL,[Password][varchar](20)NULL,[UserName][varchar](20)NULL,[CreateTime][datetime]NULL)四、创建用户权限表UsersPermissionsCREATETABLE[dbo].[UsersPermissions]([UserID][varchar](50)NULL,[PermissionsName][varchar](50)NOTNULL,[PermissionsVale][bit]NULL)五、创建电子病历文档查阅日志表ApplyInfo36 CREATETABLE[dbo].[ServerLog]([ApplyIP][varchar](50)NULL,[InpatientNo][varchar](50)NULL,[PatientName][varchar](50)NULL,[OutDate][datetime]NULL,[ApplyType][varchar](50)NULL,[ApplyRecordInfo][varchar](500)NULL,[ApplyName][varchar](50)NULL,[ApplyUserName][varchar](50)NULL,[ApplyTime][datetime]NULL,[TransportResult][varchar](50)NULL,[TimeConsuming][varchar](50)NULL)5.2.2存储过程实现存储过程的设计目的主要是将常用或复杂的数据操作过程进行封装调用。事先用SQL语句进行编写创建,并设定一个存储过程名称保存到数据库工具中,系统的前台程序使用该数据操作时,只需要调用该存储过程就可以实现程序指令。在创建时存储过程时需要先编译一次,此后每次执行该条存储过程均不再需要编译,跟普通SQL相比起来,存储过程的执行效率会快很多。使用存储过程不仅能减轻程序员工作量,还可以提高程序效率,因为存储过程可以把复杂操作的数据处理指令进行封装处理,再结合数据库提供的基本事务使用。电子病历文档管理系统主要设计了八个存储过程,实现了数据的查询、修改、插入和删除四大功能。5.2.3数据库连接实现为方便日后的功能扩展和节省项目开发时间,数据库连接字符串配置在项目的配置文件config.ini文件中,后期如果需要维护应用数据库,可直接更新此配置文件中的数据库连接字符串即可。字段Connectionstr保存的是数据库连接字符串,此字符串从config.ini配置文件中读取,该方法在一定程度上提高了软件的可重用性,并保证了维护方便。Publicstaticvoidgetconnectionstr(stringpath){//省略部分代码37 stringconnectinostr=null;connectinostr="server="+con.Server+";InitialCatalog="+con.DataBase+";userid="+con.Userid+";password="+con.Password+";ConnectTimeout=10";SqlConnectionconn=newSqlConnection(connectinostr);conn.Open();returnconn;}5.3主要业务流程图本节给出电子病历文档归档管理模块、电子病历文档查阅模块业务流程图。一、电子病历文档归档管理模块业务流程图,见图5-1所示。38 建立索引文档整理数据审核文档上传开始读取源文档解析生成基本信息建立文件夹获取电子病历系统病历项目数目复制文档解析计算文档文档数Y上传文档数目目一致N结束图5-1电子病历文档归档管理业务流程图二、电子病历文档查阅模块业务流程图,见图5-2所示。39 文档查询查阅申请申请审批文档查阅开始文档查询文档列表查阅Y权限N填写申请单发送申请单收到申请单N申请Y传送文档处置结束图5-2电子病历文档查阅模块业务图5.4系统功能模块实现本系统应用了三层架构,使用C#.NET开发页面和底层代码,使用Sqlserver2000作为后台数据库。本节将分三个小节对系统的三个模块的实现分别进行介绍,它们是:病历文档归档管理模块、病历文档查阅模块、系统管理模块。5.4.1病历文档归档管理模块实现病历文档归档模块主要实现病历文档整理、病历基本索引建立、文件整理、数据审核和病历文档上传等功能,而这几个功能在软件界面上实现时,仅需要先40 选择源文档目录及目标文档根目录,然后点击“确认”按钮,后台自动执行相关步骤程序。一、建立索引,即分析ERC文件,并建立电子病历基本信息库每一份病历文档包中都包含一个索引文件Exportresult.erc,它是一个基于XML的数据文件,用于记录该病历的基本信息,建立索引的代码主要实现把单独的Exportresult.erc索引文件进行解析,并把解析后的病历基本信息存进数据库中,建立病历基本信息库,具体代码如下:if(xnode.Name=="patient"){datatable.Rows.Add(1);xe=(XmlElement)xnode;datatable.Rows[rowindex]["住院号"]=xe.GetAttribute("pid");xn=xnode.SelectSingleNode("baseinfo");foreach(XmlNodexmlnodeinxn.ChildNodes){xe=(XmlElement)xmlnode;strtemp=xe.GetAttribute("name");datatable.Rows[rowindex]["出院日期"]=DateTime.Parse(Common.HYComm.uf_FormatToDate(xe.GetAttribute("outdate"),false)).ToString().Split('')[0];datatable.Rows[rowindex]["出院科室"]=xe.GetAttribute("outdeptname");}rowindex++;}二、文档整理。文档整理的功能是实现程序能根据病历文档住院号和出院日期在目标文件夹里自动创建目录,并为每一份病历文档包分配单独的索引数据文件和病历文档浏览器。程序执行过程如下:(1)用循环遍历每一份病历文档,读取病历住院号和出院日期;(2)去除出院日期上的间隔号“-”,根据住院号和出院日期的“年/年月/年月日/住院号”目录规则,检查文档存储目录是否存在,如果不存在,则新建文档存储目录,如果新建目录失败,要提醒用户新建目录失败;反之,如果目录文档已存在,则不建立目录;(3)根据住院号、出院日期把源目录里的病历文档、浏览器、索引文件复制41 到对应的文档存储目录中,如果目录中已有文档,则覆盖更新所有文档;(4)文档复制或覆盖成功后,继续下一条循环,读取处理下一份病历文档。程序流程图如图5-3所示:开始循环遍历读取住院号、出院日期目录是N建立文档N提示“新建成功否存在存储目录目录失败”YY文档是N复制文档、浏览N提示“文档成功器、索引文件复制失败”否存在YY覆盖文档、浏览器、索引文件N循环完成Y结束图5-3文档整理程序流程图根据文档整理程序流程图,以下给出实现该流程的部分关键代码:for(intj=0;j=20KB容空白”结果Y返回“数据审核成功”结果N循环完成Y结束图5-5数据审核程序流程图数据审核的文档份数审核代码如下:rowindex=arrayItemName.IndexOf(strvalue+"检验报告");if(rowindex>-1)counts[1]=int.Parse(dtDirectoryInfo.Rows[rowindex]["份数"].ToString());rowindex=arrayItemName.IndexOf(strvalue+"检验报告(惠侨)");44 if(rowindex>-1)counts[2]=int.Parse(dtDirectoryInfo.Rows[rowindex]["份数"].ToString());if(counts[1]==counts[2])dr["缺检验报告"]=false;elsedr["缺检验报告"]=true;数据审核反馈界面见图5-6,图中红色记录显示的是该份病历的检验报告文档数目与电子病历系统检验报告文档数目不一致,需要管理员重新处理后才能上传文档。为了解决无内容电子病历文档检测问题,还需要对病历文档的文件大小进行计算,我们发现,一般情况下,当病历文档的文件大小小于10KB时,改病历文档的往往没有任何内容,属于不合格病历文档,不符合归档条件,因此,数据审核功能还能对病历的内容是否空白进行检测审核。图5-6数据审核图四、病历文档上传病历文档上传是指利用第三方FTP工具,通过FTP协议把病历文档从本地临时目录中上传到服务器上。(1)程序定时刷新触发任务列表,发现有可上传状态的病历文档时,启动上传任务;45 (2)用循环遍历任务列表,读取住院号和出院日期;(3)检查文档名中是否含有非法字符,如果有,则提醒用户该因文档名含非法字符而上传失败,并继续到下一循环;(4)检查文档大小是否超过2GB,当文档大小超过2GB时,则提醒用户该文档太大而无法上传,并继续到下一循环;(5)把通过检查后的文档名、住院号、出院日期、文档临时存放目录等参数传给第三方FTP工具,开始上传任务;(6)文档上传成功后,返回上传状态到任务表中,标记为“已上传”;(7)任务结束,继续下一循环。程序流程图见图5-7所示:开始触发任务循环遍历读取住院号,出院日期Y提示文档名非法文档名?含非法字符NY提示文档太文档大小>2GB大N文档上传N成功标记为失败状态Y标记为成功状态N循环完成Y结束图5-7病历文档上传程序流程图46 病历文档上传实现通过FTP协议把病历文档从本地临时目录中上传到服务器上,部分关键代码如下:PrivateFtpWebResponseOpen(UriftpUriUser,stringftpMathod)//省略部分代码{_request=(FtpWebRequest)WebRequest.Create(ftpUriUser);_request.Method=ftpMathod;_request.UseBinary=true;_request.Credentials=newNetworkCredential(UserName,Password);if(Proxy!=null){_request.Proxy=Proxy;}return(FtpWebResponse)_request.GetResponse();}病历文档上传到文件服务器后,文件目录遵循既定规则,即“年份年度-月份年度-月份日期住院号”模式,病历文档在文件服务器上的存储方式见图5-8所示。图5-8病历文档存储图47 5.4.2病历文档查阅管理模块实现病历文档查阅管理模块包括病历文档查询与申请、申请审批和电子病历文档查看四个功能,主要由三个界面及对应的代码实现一、病历文档查询与申请(1)打开查询界面,在文本框中录入查询条件,查询条件包括病人姓名、住院号、出院日期、出院科室、归档IP等;(2)点击查询按钮,查询数据库病历基本信息表,查询病历是否存在,并一列表的形式显示出来;(3)判断用户权限,如果用户是超级管理员,可以无需审批直接查看病历文档,并把查看记录写入在数据库日志表中;如果用户是普通用户,则选择病历和申请理由,通过表单提交到电子病历文档查阅日志表中,待超级管理员审批。程序流程图如图5-9所示。开始输入查询条件N病历是否存在Y显示检索到的病历信息Y有无权限查看病历文档NY写入查看记录选择文档、是否申请申请理由N发送(写入)申请信息结束图5-9病历文档查询与申请程序流程图根据病历文档查询与申请流程图实现文档查询和申请,以下为病历文档查询48 的关键代码:PrivatevoidtsbtnSearch_Click(objectsender,EventArgse){//省略部分查询条件判断代码{DataSetds=BLL.PATIENTINFO.FuzzyQueryWithPrimaryKey(patientinfomodel);dtPatientInfo=ds.Tables[0];dgvcmsData.dataSource=dtPatientInfo;StatisticsDt();dgvData2_CellClick(null,null);}}病历文档查询与申请界面见图5-10,从图中可知用户先输入查询条件,比如出院科室和出院日期,点击“查询”按钮后,查询结果以表显示,如果需要查看原件,用户可以在列表上勾选病历申请类型、阅读时间、病历文档模块等,然后提交申请给系统管理员,待系统管理员审批。图5-10病历文档查询与申请程序流程图二、审批申请(1)超级管理员刷新用户申请信息,当有新的申请单进入系统时,超级管理员获取用户申请信息;(2)审核用户申请,对于符合查阅条件的申请,给予授权查阅权限,否则,拒绝用户申请,把审批结果写入查阅申请日志表反馈给用户。程序流程图见图5-11所示。49 开始获取用户申请N是否有申请Y查看用户申请Y授权访问审核申请N保存审核信息结束图5-11审批申请程序流程图申请信息添加代码如下:for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭