第五部分为复用模块的设计,这也是系统的核心之一。上面是从表面上来介绍了复用模块的设计方向。复用模块的制作,大大简化了制作护理文书的工作量,因为大部分护理文书的样式都类似一般护理记录单,且只是报表里的项目不同和爆表名不同,制作其他报表时,只需继承基类,在数据库里录入表头项目,然后做少量的修改(如报表的打印等)就可完成一张护理文书的制作,大大简化了工作流程,节约了大量时间。
因而本章通过对上述内容的描述是对本课题实现的主要内容。
4 部分系统功能的实现
护理文书的实现主要分为以下几个部分。首先是主界面,主界面做好了等于整个程序的框架就搭好了,这界面的设计已经在上文中描述过了,实现起来比较简单,就不再详细介绍了。其次便是种类繁多的护理文书,这里归纳为三类,一种是以体温单为代表的图表类文书,一种是以护理记录单为代表的明细网格类文书,还有一种是以护理记录单为代表的复合类文书。还有就是护理文书的打印,每个病人出院后,护理文书都是要打印出来归档的,所以文书的打印也是不容忽视的一块。最后就是三层架构中,中间层中间服务器的实现和实际用途。
4.1 体温单的实现
如图4.1所示体温单的实现其实可以分为三个部分,第一部分是输入数据,第二部分是加载数据,第三部分为显示数据。输入部分即用户界面上供用户输入的位置,这部分内容是由Textbox、Button、ComboBox以及一些子窗体组成,这些全是写在frm_temp_Load()中,通过定义这些控件,并设置这些控件的位置,来构成输入框[6]。
第二部分加载数据就是定义若干个数组,从VITAL_SIGNS_REC里取得对应的数据即可。比如取体温的SQL语句为:
SELECT CONVERT(NVARCHAR(10),RECORDING_DATE,121) AS RECDAY, CONVERT(VARCHAR(2),TIME_POINT,8) AS TIMEPOINT,VITAL_SIGNS_VALUES AS TEMPVALUE,UNITS,VITAL_SIGNS_REC.VITAL_SIGNS FROM VITAL_SIGNS_REC WHERE PATIENT_ID =@PATIENT_ID AND VITAL_SIGNS IN ('体温','肛表','腋表' ) AND CONVERT(NVARCHAR(10),RECORDING_DATE,121) >= @PAGE_START_DAY AND CONVERT(NVARCHAR(10),RECORDING_DATE,121)<=@PAGE_END_DAY AND CONVERT(VARCHAR(2),TIME_POINT,8) IN ('02','06','10','14','18','22') ORDER BY RECORDING_DATE,TIME_POINT
第三部分,也就是最重要的部分,就是把体温单显示出来,这里先暂不作解释,因为体温单的显示与打印是相同的,所以留到4.4.1中再做介绍。
图4.1 体温单流程图
4.2 复用模块的实现
如图4.3所示,在程序设计中已经介绍了表头已经表格的实现,剩下的还有两部分,一是查询、保存、删除按钮的实现,二是子窗体的实现。
首先保存按钮调用OnSave()方法。
然后执行增删改,以增加行为例,循环调用AddVitalSignsRows(DataRow row)来获取增加的行的信息,获取完后调用UpdateSign(itemname, itemvalue, datetime, note)(体征名称,体征值,日期时间,“体征项目”)执行保存。其实不管是增、删还是改,最终调用bool UpdateSign()方法[7]。
另一部分为子窗体的实现,当一个体征项目有多个固定的选项,且可复选时需要用到的,因为下拉的COMBOBOX只能单选,无法解决复选的问题,所以只能通过子窗体来实现。
在Gridview上写了个双击事件,dgView_CellDoubleClick(),以护理记录单中的“指导”这项体征为例,双击后判断是指导护理,则调用YCNurseEditXtraForm_SY():
if (m_strNoteColumnName == "指导护理") 基于.NET的三层构架的护理文书系统的设计与实现(12):http://www.youerw.com/jisuanji/lunwen_617.html