APP下载

基于.Net多线程技术的排队叫号系统的设计与实现

2012-11-16李菁菁卢冠华王春红

中国医疗设备 2012年2期
关键词:线程挂号排队

李菁菁,卢冠华,王春红

大连市儿童医院 信息中心,辽宁 大连,116012

基于.Net多线程技术的排队叫号系统的设计与实现

李菁菁,卢冠华,王春红

大连市儿童医院 信息中心,辽宁 大连,116012

本文介绍了一种优化的医院门诊排队叫号系统的设计和实现。本系统在医院现有医院信息系统(HIS)的基础上,利用微软.Net平台的多线程技术,开发出与HIS相对接的排队叫号系统。本系统在内科门诊运行使用之后,使护士免去了人工排队叫号的繁琐工作,减少了患者排队等待时间,改善了患者就诊流程,从而提高了医院信息化水平。

医院信息系统;.Net多线程技术;排队叫号系统

目前,在大中城市,排队系统已广泛应用于卫生领域[1]。但随着医院门诊就诊人数的不断增加,传统的人工分诊叫号的模式已经成为制约我院信息化发展的“瓶颈”。以我院内科门诊为例,每天的就诊人数达到千人以上,就诊高峰时,候诊大厅嘈杂混乱,排队等待时间长,患者焦躁不安、意见很大。为解决就诊排队问题,我院信息中心自行设计并实现了基于医院信息系统(HIS)的.Net多线程技术的排除叫号系统。

1 系统功能

1.1 分诊排队功能

由于本院的挂号处和就诊处不在同一楼层,从挂号处到就诊处还需要一段时间,为了避免患者未到就诊处就已经被叫号的情况发生,本系统不采用自动入队的模式,而是由患者持就诊手册到分诊台登记,护士将患者ID号(挂号时产生的识别患者身份的唯一ID号)录入到排队叫号系统。目前,医院使用的是HIS 提供挂号视图的被动的取号方式。该方式操作简单不影响目前流程[2],系统根据患者ID号自动从HIS中获取患者挂号信息,同时将患者挂号信息存储在本地数据库中,并自动分配该患者所挂号别下的就诊序号,患者凭该序号等待就诊。

1.2 叫号功能

医生点击系统叫号端程序的“下一位”按钮,即可以把该医生出诊号别队列中的第一位候诊患者的信息,以及医生所在的诊室信息通过LED屏显示出来,并通过语音广播出来,从而引导患者到相应诊室就诊。对于已经呼叫过却没有及时就诊的患者,医生可以通过选中患者列表中该患者并点击“特定呼叫”按钮进行重复叫号。如果患者列表中的患者都已经被呼叫过,则可以点击“刷新”按钮来获得新的患者列表。患者列表依据患者是否被叫号的不同状态,显示不同的背景色,使医生对于候诊患者的叫号情况一目了然。

1.3 查询功能

分诊端程序提供查询各个号别下当前的候诊患者数量的功能,以便根据患者数量和候诊情况及时调整医护人员的配备以及进行患者分流。

1.4 删除垃圾数据功能

除了以上基本排队叫号功能外,考虑到门诊患者流量大、本地数据库数据量增长快的情况,系统增加了实时自动判别并删除就诊完毕患者信息的功能,从而减少了系统维护的复杂性。对于已经分诊排队但还未就诊或因为某种原因退号的患者,本系统也能及时地删除该患者的挂号信息,这样避免了医生重复呼叫该患者导致的时间和人力的浪费。本系统的此项功能,减轻了数据库管理员的负担,使其不必定期地检查数据库使用情况、并手动删除垃圾数据。避免系统因为数据库超容而引发异常的情况发生,保证了系统的正常稳定运行。

2 系统组成和流程

根据以上系统功能分析的结果,排队叫号系统的组成和流程,见图1。

系统由运行在分诊台的分诊端、运行在医生电脑的叫号端和本地数据库3部分组成。

图1 排队叫号系统系统组成和流程

2.1 分诊端

分诊端运行在分诊台电脑上,由分诊护士进行操作。分诊端所要处理的事务比较复杂,包括响应UI界面操作、实时查询数据库叫号表中的数据并进行LED显示和语音叫号、及时清除排队表中的垃圾数据3个主要功能。考虑到这3个功能的实时性和并行性的要求,分诊端采用多线程的设计模式。从而解决了传统排队叫号系统单线程模式中UI界面“假死”(对于用户操作响应慢),以及叫号不及时的问题。.Net平台由微软开发,是致力于快速应用开发、部署网站服务及应用程序的开发平台。.NET Framework 的托管编码环境提供了一个完整而功能强大的线程模型,该模型允许编程人员精确控制一个线程运行的内容,如线程何时退出,以及将访问多少数据等。该模型除了负责程序员不必考虑的内存管理之外,还负责管理和清理线程[3]。故本系统采用.net平台下的vb.net程序设计语言来实现多线程的程序开发,开发环境为Visual studio2008。

2.2 叫号端

叫号端运行在医生电脑上,其功能比较单一,仅仅是把医生呼叫的患者信息从HIS数据中检索出来,并插入到本地数据的排队表中以及维护患者列表,所以采用单线程模式。

2.3 本地数据库

HIS和排队叫号系统作为两个相对独立的系统,本着“高内聚,低耦合”的系统设计原则,以及数据的安全性考虑,HIS 不允许排队系统对其数据库进行直接读写。同理,排队系统数据库也不允许HIS 直接读写。因此,为了实现两个系统之间的安全通信,仅对HIS数据库中的数据视图执行查询操作,把对HIS数据库的影响程度降到最低[4]。本系统的本地数据库,用于存储从HIS数据库检索到的患者挂号信息以及本系统使用的数据。

3 系统处理流程

以1例患者就诊过程为例,系统的处理流程如下:

(1)患者到分诊台签到,分诊护士将患者ID号录入到分诊端。

(2)分诊端的UI线程将该患者的挂号信息从HIS数据库中检索出来,并将检索到的患者挂号信息插入本地数据库的排队表中。

(3)医生点击叫号按钮后,叫号端的UI线程从排队表中检索出候诊该医生出诊号别的首位患者,并将该患者信息插入到本地数据库的叫号表中。

(4)语音显示线程实时查询叫号表,如果叫号表中存在患者信息,则立即将该患者的姓名、就诊诊室等信息显示和播报出来。

(5)垃圾数据清除线程实时查询排队表中的患者信息,并在HIS数据库中查询该患者的就诊状态,如果该患者已退号或者就诊完毕,则从排队表中删除该患者的挂号信息。

4 系统的运行环境

目前,本系统的使用场所是内科门诊(共11个诊室,15位医生)考虑到系统的使用规模和硬件成本,分诊端程序和本地数据库安装在同一台电脑上。该服务器的操作系统为Windows2003server,数据库采用SQL server2005企业版。此外,服务器上还要安装LED显示屏驱动程序和语音设备驱动程序。

5 系统的应用情况

目前,本系统运行在内科门诊,同时为十几个诊室提供排队叫号服务。分诊台护士只需要录入签到患者ID号,其他分诊叫号等工作都由排队叫号系统自动完成;本系统既可以处理一个号别对应一个医生的排队情况,也可以处理一个号别对应多位医生的排队情况。本系统与市场上常见的排队叫号系统相比,具有响应用户操作及时、自动清除垃圾数据等功能,从而使数据库管理员不必定期的手动清除垃圾数据。从系统的实际运行状况来看,完全达到了设计要求,能够使医护人员以及患者满意。从本质上改善了传统排队模式[5-9]存在的拥挤、嘈杂、混乱现象,使患者候诊大厅秩序井然,医护人员可以集中精力投入到为患者的诊疗服务之中去。

本系统以后还将要扩展应用到外科、耳鼻喉科、皮肤科、口腔科、眼科门诊和输液中心,使全院各个诊区都能实现自动分诊叫号。

[1] 吴晓澄.门诊排队叫号系统的研究与实现[J].中国医疗前沿, 2009,4(20):116.

[2] 鱼兆虎,王勇,顾鹤.基于“军卫一号”的病员就诊排队管理系统[J].软件开发与设计,2010,6(7):1645-1646.

[3] 刘健,董倩兰.Observer模式在.Net多线程并行计算中的应用[J].计算机时代,2010(11):13-16.

[4] 洪怀江.排队呼叫系统在医院信息化建设中的应用[J].医院数字化,2010,25(10):18-20.

[5] 李建义,张景峰,张红亮.基于ARM微控制器的排队叫号系统设计[J].微计算机信息,2008,(20):185-187.

[6] 黄卫平,李军,张渝.我院排队叫号管理系统与HIS系统数据接口的实现[J].中国医疗设备,2010,25(5):42-43.

[7] 匡长春,王薇,窦有业.排队叫号系统在门诊药房的应用[J].中国药业,2010,(12):64-65.

[8] 曲豪.嵌入式智能排队叫号系统的设计与实现[D].武汉:华中师范大学,2009.

Design and Experience of the Clinic Queuing and Calling System Based on.Net Multi-thread Technology

LI Jing-jing, LU Guan-hua, WANG Chun-hong
Information Center, Children's Hospital of Dalian, Dalian Liaoning 116012, China

This paper introduces an optimized clinic queuing and calling system. The queuing and calling system tightly-coupled with HIS was developed base on Microsoft’s.Net platform’s multi-thread technology. This system reduces the waiting time and optimized the treatment process. And it improves the management level of hospital..

HIS;.Net multi-thread technology; queuing and calling system

TP319

A

10.3969/j.issn.1674-1633.2012.02.012

1674-1633(2012)02-0044-02

2011-07-20

2011-11-09

作者邮箱:lightbluer@126.com

猜你喜欢

线程挂号排队
怎样排队
基于C#线程实验探究
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
移动『黄牛』
巧排队列
移动“黄牛”
三角龙排队
挂号中介服务“赔本赚吆喝”
Java的多线程技术探讨