运行一年,总结一下
到现在,这个HIS已经差不多运行一年了。刚查了一下,程序文件一共231个,所有代码接近2M。是从什么时候开始这个的呢?记不太清了,只记得北京奥运会的时候,在北京一边在电视上看比赛,一边用笔记本写程序。记得在...
费用方快捷输入的处理
第二波甲流感比第一波更具威胁,近期我校数百学生出现发热症状。在医院管理系统上所反应出来的问题是这样的,由于绝大多数发热学生都需要输液治疗,在药品方录入后要再录入输液观察费,另外发热学生都要求做胸透和...
任意键退出循环
在一个无限循环的程序里,如何实现任意键退出循环?要求只是退出循环,并不是退出程序,所以Ctrl+C的方法并不符合要求。在循环程序里如果加一个等待键盘输入的功能,那么程序会停下来等待键盘输入,也不符合要求。...
有关药房借药管理
最近提到借药管理的问题,不知道别的医院借药的情况是否普遍,在我们医院,药房借药的情况是时有发生的,比如院长借药、科主任借药等等。虽然借药会有手写的借药单,但如果在医院数据库里没有处理借药的信息,那么就...
有关Telnet的几个编程问题
首先说一下,在网上,又查到这篇文章:http://www.gaoso.com/Article/safe/newss/newlou/shellbug/200502/25742.html这是一个用Perl编写的Telnet服务端程序,程序注释很详细。不过这个程序不支持多用户同时登录。...
命令行的操作方式?
在B/S结构中,用户的操作需要鼠标和键盘混合使用,一般来说这样并没有什么问题。不过有的操作员怀念纯键盘的操作方式,如果对键盘比较熟练,在命令行的界面下使用纯键盘应该效率更高一些。在B/S结构的基础上要实现...
对于需要重复录入处方的处理
最近,受甲流感的影响,门诊发热的病人比较多,挂号室的MM提出这样一个问题:能否对某些处方重复录入。在临床上,门诊或住院都经常会遇到这样的情况:先开了两天的输液处方,两天之后还没好,需要再次录入该处方。当然,也有可能要做某些小的调整。在这种情况下,如果可以把以前的处方直接读入到编辑状态,进行简单地修改或者不用修改,并录入新处方,很显然提高了录入效率。通过对处方查询程序和处方录入程序的修改,目前已经实现了这个功能,可以通过一个简单的例子来说明这个过程:[@more@]比如在10月17日有一个名字为“曲俊伟”的输液
需要重复录入处方的处理
最近,受甲流感的影响,门诊发热的病人比较多,挂号室的MM提出这样一个问题:能否对某些处方重复录入。在临床上,门诊或住院都经常会遇到这样的情况:先开了两天的输液处方,两天之后还没好,需要再次录入该处方。...
再谈crontab的问题
尽管通过crontab和at命令的组合,可以正确对数据进行打包,总觉得解决得不彻底,所以这几天有空就测试能不能只用crontab备份数据。由于思路总是在env上,按照网上说的,用几种方法在sh里加上对env的设置,测试了很...
crontab有点问题
在Linux中,需要服务器定时自动备份程序和数据库。手工备份的命令是:tar -cvf his.tar /var/www/his运行后生成his.tar包,测试打包解包都没有问题。不过,通过crontab -e把备份命令添加到计划任务里,运行...
HIS转移到Linux遇到的问题
为了更加平稳高效地运行医院HIS,近日服务器系统平台由Windows转移到了Linux。在转移的过程中遇到一些问题,记录下来以备参考:HIS是用Perl编写的,程序文件首行Perl解释器的路径问题。这个问题很单纯...
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中自动telnet登录windows机器的脚本
现在医院服务器是Linux,需要每天自动登录内网电脑的Windows机器,并运行一个批处理文件。查了一下网上的资料,按照网上的脚本并不能成功,关键是登录的时候“回车”不能模拟实现。经过反复测试,可以用"\r"的方法...
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
人民币大写金额的转换程序
#!/usr/bin/perlmy $money = <STDIN>;chomp $money;my %numberhash=("0"=>"零","1"=>"壹","2"=>"贰","3"=>"叁","4"=>"肆", "5"=>"伍","6"=>"陆","7"=>"柒","8"=>"捌","9"=>"玖");my @digitarray= ("分","角","元",...
[程序]人民币大写金额的转换程序
医院门诊、住院打印发票时需要打印人民币大写金额。HIS开始使用的大写转换程序是自己用Perl写的,算法很简单,没有大问题,就是个别情况下大写金额“不规范”,所谓的“不规范”其实就是下面程序中需要特殊处理的几种情况.在网上查了一下,看看有没有很规范的大写金额转变程序,在CPAN上没有查到,不过在网上查到这个网页:http://www.newmasterpieces.com/blog/?p=25这个程序我试了一下,还是有点小问题,就是对于带小数的金额可以正确转变,对于只有整数的金额无法转换,可能是运行环境的原因.所以我又修改了一下这个程序,在命令行下
认识SQLite
以前对SQLite的印象是体积小、简单易用,只有一个单一文件,支持通用的SQL语句。为了方便开发,在我们医院的HIS试验使用了SQLite。经过几个月的运行,对于SQLite又有了新的认识,它不仅小,而且还稳定、快速,原来SQLite并不是一个玩具,而是一个实用的数据库。SQLite只有一个可执行文件,只有一个数据库文件,无论是安装还是维护都特别简单。[@more@]SQLite适合在低并发写入的场合下使用,所以大医院肯定不能使用SQLite数据库。对于小医院来说,SQLite应该足够使用了,我们医院业务量比较小,每天全院处方数量一般在一百左右,服务器在上