不同区域的体温单格式不尽相同,本文以江苏某地体温单为范例,介绍完整的体温单系统开发。
1、名词解释
体温单:又叫三测单,是护理病历的一部分。体温单主要用于记录患者的生命体征及有关情况,内容包括患者姓名、年龄、性别、科别、床号、入院日期、住院号(或病案号)、日期、住院天数、手术后天数、脉搏、呼吸、体温、血压、出入量、大便次数、体重、身高、页码等。
2、体温单功能点
结合病历书写规范以及医生在临床中的习惯,电子体温单的功能点主要包括以下部分:
分类 | 序号 | 功能说明 |
1 | 表头(XXX医院,体温单) | |
文字部分 | 2 | 蓝色或黑色水笔填写页眉各栏,包括:姓名,年龄,性别,科别,床号,入院日期,住院号,数字均使用阿拉伯数字 |
3 | 住院日期首页第1日及跨年度的第1日需填写"年-月-日"(如:2010-01-01)。 每页体温单的第1日及跨月的第1日需填写“月-日”(如:03-01),其余只填写日期 |
|
4 | 蓝色或者黑色水笔填写“住院天数”;红色笔填写“手术(分娩)后天数”,以手术(分娩)次日为第一天,依次填写14天, 若14天内进行第2次手术,则将第一次手术天数作为分母,第二次手术天数作为分子填写,例如:3/7 |
|
5 | 患者入院,转入,手术,分娩,出院,死亡等时间,用红色笔纵向在40-42℃之间相对应的时间格内填写 | |
体温曲线 | 6 | 体温符号:口腔温度以蓝点表示,腋下温度以蓝叉表示,直肠温度以蓝圈表示,耳温以蓝色空心三角形表示 |
7 | 体温单每小格0.2℃,测量的度数用蓝色笔绘制于体温单35-42℃之间,相邻体温用蓝线相连 | |
8 | 物理降温或药物降温半小时后测得的体温,画在物理降温前温度的同一纵格内,以红圈表示, 并用红虚线与降温前体温相连;下一次测得的体温与降温前体温相连 |
|
9 | 当脉搏与体温重叠一点时,如系口腔体温,先画蓝点表示体温,再将红圈画于其外表表示脉搏; 如系直肠体温,先画蓝圈表示体温,其内画红点表示脉搏; 如系腋下体温,先画蓝叉表示体温,再将红圈画于其外表示脉搏 |
|
10 | 患者体温突然上升或下降,应予复试,复试复合,在原体温上方用蓝笔以一小写英文字母V表示核实 | |
11 | 如体温低于35℃,于35℃线处用蓝笔画一蓝点,并在蓝点处向下画箭头(↓),长度不超过2小格,并与相邻温度相连。 体温不升时可将“不升”二字写在35℃以下 |
|
12 | 若患者因据测,外出进行诊疗活动等原因未能测量体温的。在体温单34-35℃之间用蓝笔纵写“拒测”“外出”等, 前后两次体温断开不相连 |
|
脉搏曲线 | 13 | 脉搏以红点表示,心率以红圈表示,每小格4次/分,相邻两次脉搏或心率均用红线相连; 若需记录脉搏短缩图表,则于心率和脉搏之间以红笔斜线涂满; 使用心脏起搏器的患者心率和脉搏应以“H”表示,相连两次心率用红线相连。 如脉搏或者心率大于180次/分,在180次/分处画红点或红圈,并向上画“↑”,长度不超过一小格, 如心率或体温重叠,在体温单上写"H"。 |
呼吸曲线 | 14 | 呼吸以蓝点表示,相邻两次呼吸用蓝线相连。如呼吸与脉搏相遇,先画呼吸符号,再用红笔在外画红圈。 如果使用呼吸机,则在呼吸20次上方画® |
特殊栏 | 15 | 特殊栏填写,包括血压,入量,出量,大便,体重等需要观察和记录的内容 |
16 | 血压:收缩压/舒张压 | |
17 | 入量 | |
18 | 出量 | |
19 | 大便次数已阿拉伯数字表示,如“0”,灌肠后大便以“E”表示, 如灌肠一次后的大便次数,应与次数下加短横线写“E”,如“0/E”表示灌肠1次后无大便,3/2E表示灌肠2次后3次大便; 如因手术需要,对已经解过大便的患者仍需灌肠者,则以1 3/2E表示, 即灌肠前已经大便1次,经2次灌肠后又解大便3次,“※”表示大便失禁,“☆”表示人工肛门 |
|
20 | 体重 | |
21 | 身高 | |
22 | 皮试:红色笔写阳性,黑笔写阴性,不用+,-表示 | |
23 | 过敏药物 | |
24 | 其他:根据病情需要填写,如特别用药,腹泻,药物过敏试验等 |
3、程序功能点
结合体温单功能点,电子体温单因满足以下功能:
序号 | 功能说明 |
1 | 对表头以及文字部分的绘制 |
2 | 对体温(口温、耳温、腋温、肛温)、脉搏、呼吸曲线图的绘制 |
3 | 提供上一页、下一页、首页、末页以及跳转到某一页的功能 |
4 | 打印(打印当前页、打印全部) |
4、控件介绍
为了简化体温单开发,现将体温单控件封装,实现了设计框架更灵活多变,通过动态设置,可以实现多种样式的三测单格式,同时控制也更加简单。
5、接口说明
本体温单控件包括四个接口参数
1.MainTitle:控制体温单主标题的显示文字(主要用于显示医院名称)
2.SecondTitle:控制体温单次标题的显示文字(主要用于显示体温单名称)
3.TimeStart:控制体温单时间的初始时间
4.XmlData:XML数据,结构文档中包括病人信息,护理数据,体温数据,具体如下:
<ROOT> <BRXX> <!--病人信息 --> <NAME>李四</NAME> <!--病人姓名 --> <AGE>29</AGE> <!--病人年龄 --> <SEX>男</SEX> <!--病人性别--> <DEPARTMENT>外科</DEPARTMENT> <!--病人科别 --> <INPATIENTAREA>外科一区</INPATIENTAREA> <!--病人病区 --> <BEDNO>22</BEDNO> <!--病人床号 --> <HOSPITALIZATIONNUMBER>20150909</HOSPITALIZATIONNUMBER> <!--病人住院号(病案号) --> <RYRQ>2015-07-01</RYRQ> <!--病人入院日期 --> <SSRQ>2015-07-07</SSRQ> <!--病人手术日期--> </BRXX> <HLJLDATA> <!--病人护理相关数据--> <HLJL> <RQ>2015-07-08</RQ> <!--护理日期 --> <XY>66/99</XY> <!--床血压--> <RL>66</RL> <!--入量--> <CL>98</CL> <!--出量 --> <NL>67</NL> <!--尿量 --> <DBCS>☆</DBCS> <!--大便次数 --> <TZ>66</TZ> <!--体重--> <SG>178</SG> <!--身高 --> <PSXX>青霉素</PSXX> <!--皮试信息 --> <PSJG>阳性</PSJG> <!--皮试结果(阴性/阳性)--> </HLJL> </HLJLDATA> <TWJLDATA> <!--病人体温相关数据 --> <TWJL> <RQ>2015-07-08</RQ> <!--体温记录日期 --> <SJ>10:00</SJ> <!--体温记录时间 --> <TW>36.8</TW> <!--体温 --> <TWBW>肛表</TWBW> <!--体温部分(取值范围:口表、耳表、腋表、肛表) --> <MB>68</MB> <!--脉搏--> <HX>40</HX> <!--呼吸 --> <HXJ>0</HXJ> <!--是否使用呼吸机 (0:否 1:是) --> <XL>100</XL> <!--心率--> <XZQBQ>1</XZQBQ> <!--是否启用心脏起搏器(0:否 1:是) --> <WLJW>36.8</WLJW> <!--物理降温--> <JCWC></JCWC> <!--拒测外出(取值范围:拒测、外出) --> <EVENT>转入</EVENT> <!--事件--> <EVENTTIME>23:19</EVENTTIME> <!--事件时间(时间格式(时:分) --> <SFFH>1</SFFH> <!--是否审核(0:否 1:是) --> </TWJL> </TWJLDATA> </ROOT>
6、程序说明
6.1 数据录入
由于数据录入的方式多种多样,无论采用什么方法,只要将体温单需要展示的信息存储即可,这里只给出录入界面,具体实现方式参考源码。
6.2 信息展示
有了体温单控件的支持,程序中只要将需要显示的数据按照接口样式传入即可,实现思路为在数据库中查询出需要显示的体温单信息(包括病人信息、体温记录、护理记录),在程序中转换为XML。
为了便于处理,需要实现一个将DataTable转换为XML的函数,具体如下:
private string dataTableToXML(DataTable dt,String rootNode) { StringBuilder xml=new StringBuilder(); if (rootNode != "") { xml.Append("<"+rootNode+">"); } for (int i = 0; i < dt.Rows.Count; i++) { xml.Append("<"+dt.TableName+">"); for (int j = 0; j < dt.Columns.Count; j++) { xml.Append("<" + dt.Columns[j].ColumnName + ">"); xml.Append(dt.Rows[i][j].ToString()); xml.Append("</" + dt.Columns[j].ColumnName + ">"); } xml.Append("</" + dt.TableName + ">"); } if (rootNode != "") { xml.Append("</" + rootNode + ">"); } return xml.ToString(); }
这样在查询出数据之后,直接处理在DataTable转换为XML格式,再将XML的信息传入体温单控件即可,为了方便起见,将数据转换与信息展示写在了窗体的Load事件中:
private void TC_TEST_Load(object sender, EventArgs e) { //实现DataTable到XML之间的转换 DataSet dsData = new DataSet(); string sql = "exec USP_TC_QUERY " + this.brid; dsData = SqlHelper.ExecuteDataSet(CommandType.Text, sql); DataTable dtBrxx = dsData.Tables[0].Copy(); dtBrxx.TableName = "BRXX"; DataTable dtHljl = dsData.Tables[1].Copy(); dtHljl.TableName = "HLJL"; DataTable dtTwjl = dsData.Tables[2].Copy(); dtTwjl.TableName = "TWJL"; string xmlBrxx = dataTableToXML(dtBrxx, ""); string xmlHljl = dataTableToXML(dtHljl, "HLJLDATA"); string xmlTwjl = dataTableToXML(dtTwjl, "TWJLDATA"); StringBuilder sb = new StringBuilder(); sb.Append("<ROOT>"); sb.Append(xmlBrxx); sb.Append(xmlHljl); sb.Append(xmlTwjl); sb.Append("</ROOT>"); string xmlData = sb.ToString(); //显示体温单 TemperatureUC tuc = new TemperatureUC(); tuc.MainTitle = "传入医院"; tuc.SecondTitle = "传入体温单"; tuc.TimeStart = 2; tuc.XmlData = xmlData; tuc.Dock = DockStyle.Fill; this.Controls.Add(tuc); }
7、免费试用版本
需要源码的私信我(有偿提供)
效果图