his医院管理系统远源码(医院的his系统)
本文目录一览:
谁有(HIS)医院管理系统 C#源代码,我在51和csdn上找了两个,但是都是不完整的,没开发完。留下我的QQ:
his医院管理系统远源码我有医汇通his医院管理系统远源码的。his医院管理系统远源码你要不要
关于HIS~~医院管理系统
医院管理信息系统(Hospital Management Information System,HMIS)的主要目标是支持医院的行政管理与事务处理业务,减轻事务处理人员的劳动强度,辅助医院管理,辅助高层领导决策,提高医院的工作效率,从而使医院能够以少的投入获得更好的社会效益与经济效益,象财务系统、人事系统、住院病人管理系统、药品库存管理系统等就属于HMIS的范围。
临床信息系统(Clinical Information System,CIS)的主要目标是支持医院医护人员的临床活动,收集和处理病人的临床医疗信息,丰富和积累临床医学知识,并提供临床咨询、辅助诊疗、辅助临床决策,提高医护人员的工作效率,为病人提供更多、更快、更好的服务。象医嘱处理系统、病人床边系统、医生工作站系统、实验室系统、药物咨询系统等就属于CIS范围。
一个完整的医院信息系统(Integrated Hospital Information System,IHIS)应该既包括医院管理信息系统,又包括临床医疗信息系统,这是毫无疑义的。
医院管理信息系统所需要的资源较少,比较起来所需要的磁盘容量、工作站数量、网络传输能力、显示器质量均远远低于CIS的需求。
支持医院管理信息系统的计算机技术较为单纯和简单。由于医院管理信息系统以处理文字和数字类数据为主,较少涉及声音、图象、多媒体数据的动态传递等复杂需求,因此实现起来容易得多。
临床信息系统在数据处理的实时性要求、响应速度、安全保密性等方面一般要比管理信息系统有更苛刻的要求。
从投入与产出考虑,多数医院的决策者们均认为HMIS较之CIS,能够使医院更直接、更明显、更迅速地获得系统的回报。就是说,以较少的投入,获得较大的收益。
当然,HMIS和CIS也不是截然分开的,HMIS中常常会涉及一些病人的临床信息,特别是它所收集的病人主索引、病案首页等信息往往是CIS以病人为中心的临床医疗信息的基础。而CIS一旦建立,也往往会使HMIS工作的更准确和更有效率。
4.2计算机信息处理的三个层次
完整的医院信息系统对信息的处理大体上可分为三个不同的层次:数据的收集过程;数据的集中加工、处理与分析过程和决策咨询与决策支持过程。一般来说,数据的收集过程与基层科室的事务处理活动相联系;数据的集中处理与分析过程与中层科室的工作任务相联系;决策、支持过程则与高层领导相联系。
4.2.1 支持联机事务处理
通常,信息流是伴随着各式各样窗口业务处理过程发生的,这些窗口业务处理可能是医院人、财、物的行政管理业务,也可能是有关门、急诊病人、住院病人的医疗事务。例如:人事处要办理医院职工工资的调整与变化;总务处要负责全院各部门的物资、材料、办公用品、低值易耗品的供应、采购与发放;病房的医生要不断地为住院病人开出医嘱;护士要不断地整理医嘱或各种摆药单、领药单、注射单、治疗单、化验检查单,并执行和记录这些执行的过程;而门诊的药房药剂士要为处方划价,要为病人配药和发药;门诊收费处则要完成划价收费业务,在各种处方、化验、检查单上加盖已收费标记和付给病人帐单(报销单)。在所有这些繁杂、琐碎的业务活动过程中,大量的信息产生了。我们开发的HIS要支持这些日常的、大量的前台事务处理。事务处理级的计算机系统(例如门诊收费系统、病房医嘱处理系统等)应该同时担负双重的任务。
对于窗口业务人员来说,这些系统是帮助他们完成日常繁重窗口业务的工具。借助计算机系统,使他们凌乱的工作变的有条理,解脱他们需要记忆大量信息(药品的规格、价钱,疾病的名称与编码等)的困难。保证他们遵守某些规范,减轻他们汇总、统计、报告、传递这些信息的负担。因此,尽量符合这些事务处理级工作人员的工作秩序与工作习惯、功能完整、操作简单、响应迅速、界面友善、易学易用成为这类软件必须满足的功能要求。应该让使用者感到该系统是专门为帮助他们完成窗口业务而设计的。系统所拥有的任何其他功能(指支持窗口业务处理之外的功能)应该尽量的是后台的、隐藏的、不被终端用户所感知的、不增加或尽量少增加窗口业务处理人员的负担。
对于整个医院信息系统来说,窗口事务处理的计算机系统同时又是完整的HIS数据收集端口。它们是HIS伸向信息发源地的触角、感受器。例如:办理病人入出转(ADT)业务的系统必然向住院处实时提供病人入出转的信息,同时也是住院病人动态统计的主要信息来源。门诊收费系统在完成病人交费过程的同时也收集到了相应的为门诊提供医疗服务的各门诊科室及辅助科室的门诊收入与工作量信息。所有这些数据都是上一层直至最高一层信息系统用以进行统计、分析等数据加工的原料。从数据采集的角度,HIS要求窗口业务系统收集的信息完整、准确、及时和安全。
4.2.2支持科室级信息的汇总与分析
医院的中层科室担负着繁重的管理任务,例如,医务处负责全院医疗工作的计划、组织与实施,医疗动态的监督控制,医疗质量的检查管理;人事处负责全院机构设置与调整,考勤考核,各级各类专业技术职务的评审;护理部负责全院护理工作的组织实施,全院护理质量的管理,护理人员的管理……等等。随着这些管理级工作的日趋科学化,中层科室会越来越多地依赖于它们从基层收集来的基本数据进行汇总、统计与分析,用来评价他们所管理的基层部门与个人的工作情况,据以做出计划,督促执行,产生报告和做出决定。
计算机化的信息系统要支持中层科室的数据收集,综合、汇总、分析报告与存储的工作。科室级的信息系统要能够定期自动地从基层科室收集数据,按照需要,对数据进行各种加工处理,产生出能够支持中层科室管理工作的分类统计报表和报告。例如,统计室应该能收集来自住院处的病人ADT数据,来自收费处的病人收费数据,来自病案室的有关住院病人的诊断,手术等临床数据,定期的产生住院病人的动态报告,床位使用情况报告和单病种分析报告。医务处则应该从住院处、统计室、病房、手术室等等不同部门收集到有关信息,产生有关医疗动态、医疗质量控制的各种报表。
科室级的信息系统的特点是:
通常不与窗口事务处理工作相连系。
较少有实时的数据录入任务。
定期地对收集到的信息进行加工处理。
加工处理的算法通常是固定的。
目的是为了本科室管理业务的需要或者定期上报的报告与报表需要。
4.2.3支持医院最高领导层对管理信息的需求
医院的最高领导层要实现对全院的科学化管理,必须得到计算机信息系统的全面支持。经过中层科室加工分析的数据不仅要产出上交高层领导的报表和报告,用以直接辅助医院最高领导层的决策,而且要通过计算机的信息系统把加工后的数据直接传递给最高领导层。HIS的最高一层模块:医疗和财务信息的综合查询与辅助决策模块接收并重新组织这些数据,把全院各职能部门,包括临床的、行政的、医疗的、财务的各方面,各部门的信息沿二条主线-医疗、财务组合起来,提供一些非常方便、灵活的检索与查询的手段,满足医院最高领导层不断变化着的对信息的各种需求。这一层信息系统的特点是:
它不同任何具体的事务处理相连系,即除了接收下层的数据和提出各种查询、统计请求外,没有数据录入。
它的主要功能是提供灵活的检索、查询、统计、分析能力。
该系统产出的报表、报告是随需求而变化的,是不定期、不固定内容的。
该系统往往同一些财务管理、经济核算、质量控制、动态分析等专门化的与医院管理有关的模型和算法相联系。例如医疗质量的监督与评价、医院财务执行情况的监督与评价、各部门医疗工作量负担的监督与评价等等。
该系统强调产生报告的形式,例如图形、图表……等,要灵活、通俗、易懂。
5.医院信息系统的特性
广义地说,医院管理信息系统是管理系统(MIS)在医院环境的具体应用。因此,它必定具有以下一些与其它MIS系统共有的特性:
它们均是以数据库为核心,以网络为技术支撑环境,具有一定规模的计算机化的系统
它们是以经营业务为主线,以提高工作质量与效率和辅助决策为主要目的,可以提高综合管理水平,反映企业全貌,增强企业竞争能力,获得更多、更好的社会、经济效益的信息系统
在系统内部按一定原则划分若干子系统(也可能在子系统之上加一层分系统),各子系统、分系统之间互有接口,可有效地进行信息交换,真正实现信息资源共享
它处理的对象即有结构化数据,也有半结构化或非结构化数据。有些数据及结构会较多地受到人工干预和社会因素的影响,即有静态的,也有动态的
开发难度高,技术复杂,周期较长
具有完善的系统管理、监督、运行保障体系以及相应的规章制度和系统安全措施
医院信息系统属于乞今世界上现存的企业级(Enterprise)信息系统中最复杂的一类。这是医院本身的目标、任务和性质决定的。它不仅要同其它所有MIS系统一样追踪管理伴随人流、财流、物流所产生的管理信息,从而提高整个医院的运作效率,而且还应该支持以病人医疗信息记录为中心的整个医疗、教学、科研活动。
基于web的医疗交换中心系统的源代码
医院管理系统(HIS)应用设计
这里我们介绍医院管理系统HIS的应用设计his医院管理系统远源码,它包括医院门诊时间表线上查询系统、线上医院预约挂号系统等应用的点子、设计实例、以及详细解说his医院管理系统远源码,让您快速地设计出各种医院的网站应用。
医院网站资料库应用
医院使用网站资料库,可以透过Internet、或Intranet提供以下的应用∶
* 线上查询医院门诊时间表*
* 线上医院预约挂号*
右上角标示*的应用,本节将提供设计的范例,并详加解说。
执行本章资料库的范例,所用的资料库可为Microsoft Access、Microsoft SQL Server、或Text档案(读者可修改成其他支援ODBC的资料库,详见1-5节),须於NT安装IIS 3.0,并於「控制台」中的「ODBC」,新建一个名称为「BookSamp」的资料来源,驱动程式为「Microsoft Access Driver」、「SQL Server」、或「Microsoft Text 驱动程式」。详见附录 范例磁片。
1
医院门诊时间表线上查询系统
「医院门诊时间表线上查询系统」,可以透过Internet,查询医院门诊时间表。
一般的医院,每月会提供一张新的医院门诊时间表。看病的人可以透过Internet,连线上医院的「医院门诊时间表线上查询系统」,即可线上查询新的医院门诊时间表。
设计实例
让我们执行一个实例。
( 范例 data7.asp 医院门诊时间表线上查询
若要查询门诊时间表,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data7.asp,即可显示查询的结果如下,包括科别、星期一~星期六的门诊医师姓名∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表HospitalSchedule。
於栏名CLASS、A1~A6分别输入科别、星期一~星期六的门诊医师姓名。
使用Microsoft Access建立一个资料表HospitalSchedule,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalSchedule,如下∶
或使用Text档案建立一个资料表HospitalSchedule,如下∶
查询资料库
接著,网站伺服器执行data7.asp档案,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,设定SQL指令,查询HospitalSchedule的资料,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchedule"
Set RS = Conn.Execute(SQL)
接著,要显示查询的结果his医院管理系统远源码了。首先,由「 IF RS.EOF THEN ...」判断是否找到HospitalSchedule的资料,若RS.EOF为TRUE,则显示「本月无门诊」。
程式码,如下∶
查询结果:br
% IF RS.EOF THEN %
FONT COLOR="#FF0000"本月无门诊/FONT
若找到HospitalSchedule的资料,则显示科别、星期一~星期六的门诊医师姓名,分别由RecordSets物件的RS(0)、RS(1) ~RS(6) 取得。
RS.Fields.Count表示RecordSets物件的栏位数,由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各栏位的资料。配合TABLE表格的HTML语法,将结果填入表格的各栏位当中。
若还有下一笔资料,使用RS.MoveNext移到下一笔的位置。
程式码,如下∶
% ELSE %
FONT COLOR="#0000ff"本月份 门诊时间表如下:/FONT
TABLE COLSPAN=8 CELLPADDING=5 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期一/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期二/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期三/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期四/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期五/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期六/FONT/TD
/TR
% Do While Not RS.EOF %
TR
% For i = 0 to RS.Fields.Count - 1 %
% If LEFT(RS(i).Name,1) = "W" Then %
TD BGCOLOR="f7efde" ALIGN=CENTER
FONT COLOR="#0000"%= RS(i) %/FONT/TD
% Else %
TD ALIGN=CENTER BGCOLOR="#800000"
FONT%= RS(i) %/FONT/TD
% END IF %
% Next %
/TR
RS.MoveNext
Loop
RS.Close
Conn.Close
/TABLE
% END IF %
最后,使用RS.Close关闭RecordSet,使用Conn.Close关闭资料库。
全部的程式码,如下∶
HTML
HEAD
TITLE医院门诊时间表 线上查询系统/TITLE
META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5"
/HEAD
CENTER
BODY BGCOLOR=#FFFFFF
FONT SIZE=+2 COLOR="#0000FF"医院门诊时间表 线上查询系统/FONT
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchedule"
Set RS = Conn.Execute(SQL)
HR
查询结果:br
% IF RS.EOF THEN %
FONT COLOR="#FF0000"本月无门诊/FONT
% ELSE %
FONT COLOR="#0000ff"本月份 门诊时间表如下:/FONT
TABLE COLSPAN=8 CELLPADDING=5 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期一/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期二/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期三/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期四/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期五/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT星期六/FONT/TD
/TR
% Do While Not RS.EOF %
TR
% For i = 0 to RS.Fields.Count - 1 %
% If LEFT(RS(i).Name,1) = "W" Then %
TD BGCOLOR="f7efde" ALIGN=CENTER
FONT COLOR="#0000"%= RS(i) %/FONT/TD
% Else %
TD ALIGN=CENTER BGCOLOR="#800000"
FONT%= RS(i) %/FONT/TD
% END IF %
% Next %
/TR
RS.MoveNext
Loop
RS.Close
Conn.Close
/TABLE
% END IF %
HR
/CENTER
/BODY
/HTML
2
线上医院预约挂号系统
「线上医院预约挂号系统」,可以透过Internet,完成医院预约挂号的手续。
一般的医院,提供排队、人工接听电话、或语音系统等多种预约挂号的方式。透过Internet,现在可以提供比较丰富、生动的预约挂号方式。
看病的人可以透过Internet,连线上医院的「线上医院预约挂号系统」,在电脑上输入病历号码(或身分证号码),再输入要预约的科别、医师、预约日期、和上下午夜间,即可完成预约挂号的手续。
挂号系统将告诉您挂几号的看诊顺序,并自动统计每一个门诊的预约人数,若超过名额,将自动告之,要求预约其他的时间。
预约时,预约系统提供可以增加、取消、查询预约的功能。
看病的人并可线上查询医院门诊时间表、医师简介、用药须知、健康新知、医院活动、医院地址等资讯。
挂号系统将自动印出所预约的每日挂号表,以供医院相关部门准备病历表。
设计实例
让我们执行一个实例。
( 范例 data12.asp 线上医院预约挂号
若要线上预约医院挂号,於用户端使用浏览器,浏览本书所附安装於网站伺服器的data12.asp,於「科别」处选择科别如内科,於「病历号码」处输入病历号码如123456后,於「看诊日期」处输入看诊日期如870701后,按下「预约挂号」按钮,即可显示预约挂号的结果如下,包括病历号码、看诊日期、科别、看诊顺序∶
预约医院挂号时,若预约的诊次已经预约过,则重覆预约相同的诊次将显示「已经预约挂号」如下∶
预约医院挂号时,若超过诊次的100个名额时,则显示「预约挂号已满」如下∶
取消预约挂号
预约医院挂号后,可以取消所预约的挂号,於「选修课程」处选择待取消选修课程如婚姻学,於「科别」处选择科别如神经科,於「病历号码」处输入病历号码如123456后,於「看诊日期」处输入看诊日期如870701后,按下「取消预约挂号」按钮,即可显示取消预约挂号的结果如下∶
若待取消的诊次尚未预约过,则取消预约挂号时显示「尚未预约挂号」如下∶
查询预约挂号
预约医院挂号后,可以查询所有预约的诊次,仅须於「病历号码」处输入病历号码如123456后,按下「查询预约挂号」按钮,即可显示查询预约挂号的结果如下∶
查询预约挂号时,若尚未预约挂号,则查询预约挂号时将显示「尚未预约挂号」如下∶
门诊时间表
按下「门诊时间表」按钮,即可显示门诊时间表如下∶
设计实例详细解说
建立资料表
首先使用Microsoft Access、Microsoft SQL Server 、Text档案、或任何一种支援ODBC的资料库,建立一个资料表HospitalCount,储存一个诊次的预约挂号人数、和最后看诊顺序。
这个资料表系供预约挂号和取消预约挂号时,记录预约挂号人数、和最后看诊顺序号码之用。建立栏位TOTAL、COUNT0、DATE0、CLASS,分别代表一个诊次的预约挂号人数、最后看诊顺序号码、预约日期、科别名称。建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表HospitalCount,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalCount,如下∶
或使用Text档案建立一个资料表HospitalCount,如下∶
尚需要建立另一个资料表HospitalReserve,储存预约挂号的记录,建立栏位ID、COUNT0、DATE0、CLASS,分别代表一笔预约挂号记录的病历号码、看诊顺序号码、预约日期、科别名称。
这个资料表系供预约挂号、查询预约挂号、和取消预约挂号时,记录预约诊次、和看诊顺序之用。
建立资料表时不必输入资料。
使用Microsoft Access建立一个资料表HospitalReserve,如下∶
或使用Microsoft SQL Server建立一个资料表HospitalReserve,如下∶
或使用Text档案建立一个资料表HospitalReserve,如下∶
设计输入的表单
接著,设计输入的表单form,当病患选择科别CLASS1,输入病历号码ID1,看诊日期DATE1,按下「预约挂号」等按钮submit时,即使用POST的方式将输入资料传送到网站伺服器,并执行於「form action=...」所设定的data12.asp档案(与form为同一个ASP档案),程式码如下∶
预约挂号, 请输入以下资料 (初诊者以身分证字号代替病历号码):br
form action="data12.asp" method="post"
FONT COLOR="#FF8080"■ /FONT科别:
select name="CLASS1"
OPTION SELECTED内科
OPTION神经科
OPTION小儿科
OPTION外科
OPTION妇产科
OPTION耳鼻喉科
OPTION眼科
OPTION皮肤科
/select
br
FONT COLOR="#FF8080"■ /FONT病历号码 (如123456):
INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10BR
FONT COLOR="#FF8080"■ /FONT看诊日期 (如87年7月1日请输入870701):
INPUT TYPE=TEXT VALUE="870701" NAME="DATE1" SIZE=6BR
INPUT TYPE=submit VALUE="预约挂号" name="Action"
INPUT TYPE=submit VALUE="取消预约挂号" name="Action"br
INPUT TYPE=submit VALUE="查询预约挂号" name="Action" 仅须填入病历号码br
/form
form
INPUT TYPE=button VALUE="门诊时间表" OnClick="location.href='data7.asp'"
/form
若按his医院管理系统远源码了「门诊时间表」按钮时,将执行data7.asp,以显示门诊时间表。
网站伺服器执行data12.asp档案,首先经由Request.Form("Action")取得所按submit按钮上的显示文字VALUE,Left(Request.Form("Action"),2)系只取前两个中文字,若Request.Form("Action")非空白时,表示为表单输入所呼叫执行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判断是按his医院管理系统远源码了那个按钮。若按钮上前两个字为「预约」时,则执行AddReserve() 副程式;若为「取消」时,则执行DeleteReserve() 副程式;若为「查询」时,则执行CheckReserve() 副程式。
SELECT CASE Left(Request.Form("Action"),2)
CASE "预约"
AddReserve()
CASE "取消"
DeleteReserve()
CASE "查询"
CheckReserve()
END SELECT
预约挂号
按了「预约挂号」按钮时,将执行AddReserve() 副程式。
首先,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再寻找所待新增的预约挂号记录,以检查是否已经预约过,使用SELECT的SQL指令查询资料库的资料,於HospitalReserve资料表,设定SQL指令,查询病历号码栏位ID符合所输入Request.Form("ID1"),看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
程式码如下∶
Sub AddReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" Request.Form("ID1") "' AND DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
接著,要显示执行的结果了。
首先於HospitalReserve资料表,寻找预约挂号的记录,由「IF RS.EOF THEN ...」判断是否找到病历号码栏位ID符合所输入Request.Form("ID1"),看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料。
若RS.EOF为TRUE,表示尚未预约挂号,再寻找所待预约挂号的诊次是否已经有人预约挂号过。於HospitalCount资料表,设定SQL指令,查询看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料。若RS.EOF为TRUE,表示此诊次尚未有人预约挂号过,则於HospitalCount资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的预约挂号人数栏位TOTAL、和最后看诊顺序号码栏位COUNT0都设定为1,科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
然后再於HospitalReserve资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的看诊顺序号码栏位COUNT0为1,病历号码栏位ID为Request.Form("ID1"),科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
显示执行的结果时,配合TABLE表格的HTML语法,将结果填入表格的各栏位当中。程式码,如下∶
FONT COLOR="#0000FF"预约挂号结果:/FONTbr
IF RS.EOF THEN
RS.Close
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
'此科次尚未有人预约挂号 ! 於HospitalCount新增一笔
SQL = "INSERT INTO HospitalCount(COUNT0, TOTAL, DATE0, CLASS) VALUES(1,1,'" Request.Form("DATE1") "','" LEFT(Request.Form("CLASS1"),2) "')"
Set RS = Conn.Execute(SQL)
'HospitalReserve新增一笔
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(1,'" Request.Form("ID1") "','" Request.Form("DATE1") "','" LEFT(Request.Form("CLASS1"),2) "')"
Set RS = Conn.Execute(SQL)
FONT COLOR="#0000FF"预约挂号 OK ! 看诊顺序为第 1 号/FONT
TABLE COLSPAN=8 CELLPADDING=1 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT病历号码/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊日期/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊顺序/FONT/TD
/TR
TR
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("ID1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("DATE1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =LEFT(Request.Form("CLASS1"),2) %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"1/FONT/TD
/TR
/TABLE
若RS.EOF为FALSE,表示此诊次已有人预约挂号。
由「IF RS(0) 100 THEN...」判断RS(0) 预约挂号人数TOTAL是否超过100个名额。
若未超过,则於HospitalCount资料表,使用「UPDATE...」指令,将此笔资料的预约挂号人数TOTAL、和最后看诊顺序号码COUNT0都加一。
然后,再於HospitalReserve资料表,使用「INSERT INTO...」指令新增一笔资料。此笔新增资料的看诊顺序号码栏位COUNT0为HospitalCount资料表的加一后之COUNT0新值,病历号码栏位ID为Request.Form("ID1"),科别栏位CLASS设定为Request.Form("CLASS1"),日期栏位DATE0设定为Request.Form("DATE1")。
接著,显示执行的结果时,配合TABLE表格的HTML语法,将於HospitalReserve资料表新增的资料,填入表格的各栏位当中显示出来。
程式码,如下∶
% ELSE
IF RS(0) 100 THEN
'此诊次已有人预约挂号 ! HospitalCount的COUNT,TOTAL增一
TotalNo = RS(0)+1
CountNo = RS(1)+1
SQL = "UPDATE HospitalCount SET TOTAL = " TotalNo ",COUNT0 = " CountNo " WHERE DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
'HospitalReserve新增一笔
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(" CountNo ",'" Request.Form("ID1") "','" Request.Form("DATE1") "','" LEFT(Request.Form("CLASS1"),2) "')"
Set RS = Conn.Execute(SQL)
FONT COLOR="#0000FF"预约挂号 OK ! 看诊顺序为第 % =CountNo % 号/FONT
TABLE COLSPAN=8 CELLPADDING=1 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT病历号码/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊日期/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊顺序/FONT/TD
/TR
TR
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("ID1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("DATE1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =LEFT(Request.Form("CLASS1"),2) %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =CountNo %/FONT/TD
/TR
/TABLE
若此课程的预约挂号人数TOTAL超过100个名额,则显示「预约挂号已满 ! 请预约其他诊次 !」。
接著,显示执行的结果,配合TABLE表格的HTML语法,将病历号码和看诊日期等资料,填入表格的各栏位当中显示出来。
程式码,如下∶
% ELSE %
% '100预约挂号已满 %
FONT COLOR="#FF0000"报歉 !/FONTbr
FONT COLOR="#FF0000"预约挂号已满 ! 请预约其他诊次 !/FONT
TABLE COLSPAN=8 CELLPADDING=1 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT病历号码/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊日期/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
/TR
TR
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("ID1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("DATE1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =LEFT(Request.Form("CLASS1"),2) %/FONT/TD
/TR
/TABLE
% END IF %
% END IF %
当於HospitalReserve资料表,由「IF RS.EOF THEN ...」判断是否已经预约挂号时,若RS.EOF为FALSE,表示此诊次已经预约挂号过,则显示「报歉! 已经预约挂号! 看诊顺序为第...号」。
接著,显示执行的结果,配合TABLE表格的HTML语法,将病历号码、看诊日期、和看诊顺序等资料,填入表格的各栏位当中显示出来。
程式码,如下∶
% ELSE %
% '已经预约挂号 %
FONT COLOR="#FF0000"报歉 !/FONTbr
FONT COLOR="#FF0000"已经预约挂号 !/FONT 看诊顺序为第 % =RS(1) % 号/FONT
TABLE COLSPAN=8 CELLPADDING=1 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT病历号码/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊日期/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊顺序/FONT/TD
/TR
TR
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("ID1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =Request.Form("DATE1") %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =LEFT(Request.Form("CLASS1"),2) %/FONT/TD
TD BGCOLOR="f7efde" ALIGN=CENTERFONT COLOR="#0000"% =RS(1) %/FONT/TD
/TR
/TABLE
% END IF
Conn.Close
End Sub %
最后,使用Conn.Close关闭资料库。
取消预约挂号
按了「取消预约挂号」按钮时,将执行DeleteReserve() 副程式。
首先,先寻找到所待取消的预约挂号记录,使用「Server.CreateObject」建立连线的物件,并使用「Open」开启待存取查询资料库BookSamp。
再使用SELECT的SQL指令查询资料库的资料,於HospitalReserve资料表,设定SQL指令,查询病历号码栏位ID符合所输入Request.Form("ID1"),查询看诊日期栏位DATE0符合所输入Request.Form("DATE1"),和科别栏位CLASS符合所选择Request.Form("CLASS1")的资料,,下个「Execute」指令,即可开始执行存取查询资料库的动作,并将查询结果储存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判断是否找到所待取消的预约挂号记录,若RS.EOF为TRUE,表示此诊次尚未预约挂号,则显示「找不到 ! 尚未预约挂号 !」。
程式码如下∶
Sub DeleteReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" Request.Form("ID1") "' AND DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
HR
FONT COLOR="#0000FF"取消预约挂号结果:/FONTbr
IF RS.EOF THEN
'找不到 ! 尚未预约挂号 !
FONT COLOR="#FF0000"找不到 ! 尚未预约挂号 !/FONT
若找到所待取消的预约挂号记录,则於HospitalReserve资料表,使用「DELETE FROM...」指令删除此笔资料。
然后,再於HospitalCount资料表,使用「UPDATE...」指令,将此笔课程的预约挂号人数TOTAL减一。
接著,显示执行的结果,配合TABLE表格的HTML语法,将於HospitalReserve资料表删除的资料,填入表格的各栏位当中,以显示出来。
程式码,如下∶
% ELSE
'取消预约挂号 !
'HospitalReserve删除一笔
SQL = "DELETE FROM HospitalReserve WHERE ID = '" Request.Form("ID1") "' AND DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
'HospitalCount的TOTAL减一
'RS.Close
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
FONT COLOR="#FF0000"找不到预约挂号资料 !/FONT
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE HospitalCount SET TOTAL = " TotalNo " WHERE DATE0 = '" Request.Form("DATE1") "' AND CLASS = '" LEFT(Request.Form("CLASS1"),2) "'"
Set RS = Conn.Execute(SQL)
FONT COLOR="#FF0000"预约挂号已经取消 !/FONT
TABLE COLSPAN=8 CELLPADDING=1 BORDER=1
TR
TD ALIGN=CENTER BGCOLOR="#800000"FONT病历号码/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT看诊日期/FONT/TD
TD ALIGN=CENTER BGCOLOR="#800000"FONT科别/FONT/TD
/TR
TR
TD BGCOLOR="f7efde" ALIGN