运行三年,需要总结一下
到2011年底,这套医院管理已经在我院运行了三年。最近的一年改动已经很少,从博客中可以看出来,博客的内容不断地跑题。对于医院管理软件,现在又有了一系列的改进想法。在改进之前,打算最近做一个阶段性的总结,把目前运行的程序和数据,放在Cygwin里做成一个绿色软件包,可以在XP系统运行。[@more@]年底事情比较多,有空的时候再做。
SQLite对中文like查询的问题
在医院数据库里,象药品名称、病人姓名等等是中文GB码保存的。今天在针对药品入库单写程序的时候,发现用like查询药品名称,查询结果很混乱。比如这个sql语句:select * from yk_billdetail where medname like '%丹参%';会查到很多不包含'丹参'的结果到Google上查“sqlite 中文 like”,发现这个问题很普遍,解决的方法就是对中文用utf-8编码保存。[@more@]医院数据库已经使用GB码保存中文了,不好改到uft-8编码。要解决这个问题可以避开sqlite本身的中文处理方式,而是读取中文后使用Perl的匹配来处理。my $medname='丹参';my $sql = qq
刚做的一个opera mini ppc改服版
我的PPC手机现在运行的是WM6,平时用Opera mini比较多。近几在在网上发现有Opera mini ppc版改服的信息,下载了一个试了一下,已经不能用了。但还是给我有关改服的启示。通过工具软件对改服版的分析,发现了在PPC版改服的原理,于是,到Opera官网下载了PPC版的5.12版,PPC版现在还没有6.0版。下载后,安装,拷贝到PC进行分析,发现是可以改服的。于是修改为我近日搭建的一个Opera mini的HTTP服务器。经过测试,这个修改过的Opera mini可以浏览twitter、facebook。[@more@]随手放在我的淘宝空间里了:http://item.taobao.com/item.htm?id=10
病历书写规范
前几天,卫生局下发了《病历书写规范(2010年版)》。有空的时候,计划参照这个新的病历书写规范,逐渐扩展、完善医院HIS中的病历部分。[@more@]下周二(11月16日)左右,如果稀土板块达到预期中的小高点,就清仓。然后再选择一个较低的买进机会。
智能手机电话交易
这篇博客和医院管理无关。通过手机查询股票行情很简单,但要实现交易不一定能很方便做到。比如我用了几年的多普达PPC无论如何也装不上齐鲁证券的掌E通。经常不会在电脑跟前,那么有没有简便地通过手机交易的方法呢?想了一下,可以通过电话交易实现。如果是手工拨打交易电话,要输入资金账号、密码、股票代码、价格等等信息,非常繁琐。如果编辑好一组电话码,类似于IP拨号那样,填好股票代码和价格,粘贴到电话拨号面板,拨打出去就可以了。这样相比手工拨号交易已经方便了很多,其实还可以继续完善,就是通过mortscript编程,实现拼音码
完成医院第二药房的处理
在新的学期,医院有了新的工作,在HIS中需要设定第二个药房。在另一个校区,需要我们医院派医生护士去值班,虽然医疗规模很小,但为了对药品和收费的正规管理,还是要求电脑管理。在HIS中,设置出来第二个药房,凡是带到另一校区的药品,需要从本地药库调拨到第二药房。关于处方录入的问题,因为没有专线连接,所以处方录入需要通过互联网连接,对于B/S的结构很容易做到,需要Apahce放开某段IP的访问权限就可以了。对于学期末剩余的药品,需要带回本地药房,在HIS中调拨回本地药房。[@more@]基本过程就这样,没必要做演示。以前的演示网站
对于需要重复录入处方的处理
最近,受甲流感的影响,门诊发热的病人比较多,挂号室的MM提出这样一个问题:能否对某些处方重复录入。在临床上,门诊或住院都经常会遇到这样的情况:先开了两天的输液处方,两天之后还没好,需要再次录入该处方。当然,也有可能要做某些小的调整。在这种情况下,如果可以把以前的处方直接读入到编辑状态,进行简单地修改或者不用修改,并录入新处方,很显然提高了录入效率。通过对处方查询程序和处方录入程序的修改,目前已经实现了这个功能,可以通过一个简单的例子来说明这个过程:[@more@]比如在10月17日有一个名字为“曲俊伟”的输液
Linux中自动telnet登录Windows机器的方法
现在医院服务器是Linux,需要每天自动登录内网电脑的Windows机器,并运行一个批处理文件。查了一下网上的资料,按照网上的脚本并不能成功,关键是登录的时候“回车”不能模拟实现。经过研究,可以用"r"的方法实现回车。具体来说:建立一个autotelnet.sh的脚本,内容如下:[@more@].........itpub的Blog系统原因,反斜杠都丢了,所以脚本已删掉,可以到http://space.itpub.net/21129783/查看。运行sh autotelnet.sh自动登录了192.168.0.2的机器,并列出了E盘的目录文件。昨天想登录itpub的blog,发现登不进去了,又发现space里也
Linux双网卡设置过程记录
HIS要往Linux系统上转移,需要解决一台Linux双网卡服务器的设置问题。一个网卡连接互联网,另一个网卡连接一个内网,要求内网部分电脑可以通过服务器访问互联网。[@more@]Ubuntu 9.04图形化的网络管理不好用,网上有人说还有bug,所以首先删掉:apt-get remove network-manager然后编辑/etc/network/interfaces,对两块网卡进行设置。没想到无论怎么设置,在networking restart的过程中就停住了,只能Ctrl+C退出。查了很多网上资料,试了无数次也不成功。只好用另一个办法,就是用ifconfig命令临时设置一下网络,键入以下两条命令,eth0连
关于运行环境的说明
目前的HIS的用到了Apache、Perl、Sqlite,这些都是开源的软件,也是跨平台的软件,在Linux或Windows系统里都可以很好地运行。[@more@]事实上,我们医院的HIS是在Windows环境里开发、运行的。医院的服务器一直装的是Windows系统(过去北京的HIS使用的是SQLServer数据库)。另外,开发过程中需要经常在不同电脑上拷贝程序运行,而一般PC上安装的都是Windows,所以干脆就在Windows里开发。为了方便在Windows里安装和运行,研究了一个从Apache网站上下载的集成软件包,软件包已经包含Apache、Mod_Perl,又安装上SQLite和Ajax模块并做了一些修改
最简单的文字通信程序...
医院各科室之间有时会需要文字消息交流,所以写了个即时通信的程序。其实就是聊天室一类的东西,不过叫聊天室不大好,因为是办公用的。以前没写过这一类的程序,这几天试着做了一下,采用的是iframe局部刷新的方式,测试网址是:[@more@]只有三个文件:一个界面文件,一个后台处理程序,一个消息文本记录文件。这是最简单的文字交流工具,不需要注册,不需要密码,后台程序只是简单地记录IP地址,作为文字消息即时交流的目的已经实现了,目前没有打算继续改进它。欢迎通过这个聊天程序和我交流。服务器在教育网,学校的网络出口常常会有问
[程序]两个日期之间的天数计算
在HIS中,经常会需要计算两个日期之间的天数,比如计算住院天数。如果从两个日期的年、月、日进行比较编程计算,可能会有些麻烦,因为需要注意大月小月、闰年的问题,弄不好会误差一天两天。在Perl中,可以使用Date::Parse模块进行计算,而且很简单。它的原理是把两个日期都整理为UNIX时间戳,相差的秒数除以86400(一天的的秒数),就得出两个日期之间的天数。Date::Parse支持很多日期格式,比如03/07/2009、2009-08-06 15:30、14:22:42,Thursday,19-04-2007等等。[@more@]#!/usr/bin/perluse Date::Parse;$t1 = str2time('2009-2-20');$t2
[程序]人民币大写金额的转换程序
医院门诊、住院打印发票时需要打印人民币大写金额。HIS开始使用的大写转换程序是自己用Perl写的,算法很简单,没有大问题,就是个别情况下大写金额“不规范”,所谓的“不规范”其实就是下面程序中需要特殊处理的几种情况.在网上查了一下,看看有没有很规范的大写金额转变程序,在CPAN上没有查到,不过在网上查到这个网页:http://www.newmasterpieces.com/blog/?p=25这个程序我试了一下,还是有点小问题,就是对于带小数的金额可以正确转变,对于只有整数的金额无法转换,可能是运行环境的原因.所以我又修改了一下这个程序,在命令行下
认识SQLite
以前对SQLite的印象是体积小、简单易用,只有一个单一文件,支持通用的SQL语句。为了方便开发,在我们医院的HIS试验使用了SQLite。经过几个月的运行,对于SQLite又有了新的认识,它不仅小,而且还稳定、快速,原来SQLite并不是一个玩具,而是一个实用的数据库。SQLite只有一个可执行文件,只有一个数据库文件,无论是安装还是维护都特别简单。[@more@]SQLite适合在低并发写入的场合下使用,所以大医院肯定不能使用SQLite数据库。对于小医院来说,SQLite应该足够使用了,我们医院业务量比较小,每天全院处方数量一般在一百左右,服务器在上
要去日照市几天
每年都要去日照出差几次,现在海水可能还有点凉。在转移到Mod_Perl的过程中,本来自己测试已经没有问题,可是实际运行起来还是发现了一些小问题。看来不经过实际运行,很多问题是自己无法发现的。好在就在医院上班,发现问题可以及时解决。所有程序已经在Mod_Perl中运行了。就我们医院来说,这个HIS已经基本完工了,因为HIS已经在实际工作中稳定运行了一段时间,院长和各科室提出的合理要求也都完成了。出于自己的兴趣,还是要继续完善这个HIS,近期会关注下面几个事情:[@more@]一是处方的草稿功能,就是挂号室在不忙的时候,可以把可能需
在Mod_Perl中运行程序
以前经常用Perl写程序,可是很少写Web上的程序。Perl并不是设计用来写Web程序的,这和PHP、ASP、JSP等编程语言根本上是不同的,尽管很多CGI程序是用Perl编写的。很多人喜欢把自己使用的网关语言和Perl作性能比较,这样比较其实没有什么意义,因为和Mod_Perl比较才有意义。所以,要让用Perl写的CGI程序高效运行,应该转移到Mod_Perl上。[@more@]开始做HIS的时候,直接就用Perl来写了,时间长了发现这是一个失误,因为已经写好的Perl程序并不能直接在Mod_Perl里运行。在Mod_Perl上运行的Perl程序需要注意几点:1. 全局变量的问题,Perl使用过
临床药品说明书检索
刚得到了一份“临床药品说明书大全”,纯文本格式的,药品内容比较新,大约有两万五千余条药品记录。[@more@]打算处理一下,放进数据库里方便查询。首先要对这个文本进行过滤,筛选出有用的信息。然后把有用的信息归类。最后把分类的信息导入数据库。再编写一个查询程序。使用Perl的正则表达处理文本是最合适了,大概几天之后就可以整理好。////////////////////////////////////////////////////整理好了,临时网址:http://zkwang.us.hot.iiszs.com/
两年前做的学校教职工体检程序
两年前,按照医院的要求,做了一个简单的体检数据管理程序。每年使用一次,现在又在用了。两年前的想法和现在很不一样,所有的查体数据放在一个文本文件中,十几个Perl程序只是在维护着这个文本文件........[@more@]教职工个人信息登记、修改的功能比较简单,不用再说了。化验室实际录入化验结果:学校要求对体检结果有两种通知形式:一个是按单位通知,另一个是发给个人的体检报告。报告格式是医院自己修定的,因为体检项目很少,所以报告很简单。体检结果分析:HIS演示:http://zkwang.us.hot.iiszs.com/欢迎来信交流!
门诊处方录入(二)
如果处方内容较多,录入过程中出现错误怎么处理?删除处方重新录入是基本方法,但效率很低。及时修改处方中的错误应该是必要的功能。[@more@]假设录入一个门诊输液的处方:0.9%NS250ml青霉素800万u5%GS250ml利巴韦林0.5维生素C2.0一,当录入完成,还没有提交到数据库,检查一下处方,发现0.9%NS250ml录成0.9%NS500ml的了。这时候,可以通过药品前面的勾选项来处理:二,如果是发现0.9%NS250ml错录成2瓶了,可以通过再次录入0.9%NS250ml来修正数量:三,如果处方已经提交到数据库,药房还没有发药上账,这时挂号员可以辙销处方,重新录入处
门诊处方的录入(一)
门诊处方录入是医院系统使用最多的功能,如果做不好会影响整个医院的工作效率。 [@more@]近日根据挂号室工作人员的建议,对门诊处方录入程序进行了较多修改。即使有朋友在线进行测试,有些功能也未必能够了解清楚,所以还是做成Flash,一看就明白。多说一句有关界面的话题,医院给我的要求就是界面尽可能地简洁、实用,我个人也对华丽的界面没有兴趣。目前有不少技术可以实现华丽的界面,看一下某些WebOS就知道。不过漂亮的界面对于系统开销不小,对于网络也会产生较大的流量。引入Ajax技术,仅仅是为了提高页面交互能力,让页面的各种查询