基于ASP技术和Oracle数据库实现国际疾病编码查询系统

时间:2022-09-29 11:44:22

基于ASP技术和Oracle数据库实现国际疾病编码查询系统

摘要:通过ASP技术和Oracle数据库来开发web数据库查询系统,增强网络数据库在医疗方面的应用,能够解决医院和疗养院查询疾病编码的问题,保证了医务人员录入疾病编码的正确性。降低了医务人员利用计算机开发web数据库程序的方法,提高了医务人员的工作效率。

关键词:计算机;ASP技术;Oracle数据库;分页技术

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)30-7324-02

Actualization of International Disease Code Inquiry System Based on ASP Technology and Oracle Database

CHEN Yan-qun, ZHANG Hua-gui

(Information Department,Dalian Convalescent Hospital, Shenyang Military Region, Dalian 116013, China)

Abstract: By using ASP technology and Oracle database, web database inquiry system is developed, which reinforces the application of network database in medical treatment, helps to solve the problem of inquiring disease code by hospitals and convalescent hospitals, guarantees the accuracy of recording the disease code. Besides, it also conduces to reducing the medical personnel’s method for developing web database buy using computer and enhances the medical personnel’s work efficiency.

Key words: computer; ASP technology; Oracle database; paging technique

随着计算机的飞速发展,网络技术的迅速普及,计算机网络已经成为人们工作中离不开的工具了。而ASP技术是微软很早开发的基于网络的“活动服务器网页”,即Active Server Page。它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.ASP,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。虽然现在微软已经推出技术,但是ASP技术依然是现在网络编程人员使用最简单、最容易上手的网络编程工具。Oracle数据库是一种大型数据库系统,它的安全性高,稳定性强。比起常用的小型数据库,它的功能更强大,能够处理大批量的数据,在网络方面也用的非常多。

现在,医院和疗养院普遍使用的都是Oracle数据库,基中数据库中使用的疾病编码是需要人工查找国际疾病编码的书籍然后录入,非常麻烦,容易出错。有一些单位还在使用ICD9疾病编码,有的单位已经使用ICD10疾病编码了,由于ICD9和ICD10已经发行很长时间了,在网络上可以很轻松的找到它们编码的ACCESS数据库文件,我们只需要在Oracle数据中建好数据表,导入疾病编码的数据即可。通过此疾病查询程序可以很容易的查询到ICD9、ICD10的编码,极大的方便了医护人员的使用。

ASP连接Oracle数据库的技术一般通过ADO来实现。Oracle Object for OLE是Oracle公司为了客户端存取数据库发展的一个重要产品,它支持微软的COM标准和ActiveX技术,可以使用VBScript和JavaScript访问Oracle数据库。Oracle Object for OLE访问数据库要比ODBC方式更简单并且安全性更高。Oracle ObjectServe是ASP访问Oracle数据库的重要功能之一。OraSession对象用来在程序中管理OraDatabase , OraConnection和OraDynaset等对象,它是由ASP的Create0bject创建的一个对象。OraDatabase对象表示对数据库服务器的虚拟登录,并为SQL的执行提供方法。OraDynaset对象会将数据库服务器符合SELECT命令的数据加以存储在客户端的缓冲区,让用户浏览或更新,最后将结果写回到服务器。OraField对象表示在OraDynaset对象中的某个字段或数据项目,它通过Value属性设置或取得OraDynaset对象中的某个字段值。

1 首先在Oracle中建立疾病编码查询表,表名称为ICD

字段名称:ID 数据类型:数字(主键,唯一)

BM数据类型:文本(疾病编码字段)

MC数据类型:文本(疾病名称字段)

MC_VER数据类型:文本(疾病名称版本:指ICD9或ICD10)

ZJM数据类型:文本(疾病输入码字段)

根据需要由信息人员录入疾病编码,或者导入别的ICD的疾病编码库文件。

2 建立全局的GLOBA.ASA文件,方便ASP程序连接执行查询程序

Sub Session_OnStart‘用户一进入系统首先会执行

Session.Timeout =500 ‘设置超时时间

set Session("OraSession") = CreateObject("OracleInProcServer.XOraSession")

set session("OraDatabase") = Session("OraSession").DbOpenDatabase("Hospital ","resthome" & "/" & "resthome",0)'连接数据库,所带参数分别为数据库的SID,用户名和密码,启动类型

End Sub

Sub Session_OnEnd

session("OraDatabase").Close '使用完毕后释放对象

set OraSession=nothing

End Sub

3 在ASP页面中新增表单、文本框、查询按钮,在代码区指定要执行的SQL组合查询语句

新增三个文本框,分别是疾病编码icd_code,疾病名称icd_name,输入码icd_spec,用来输入要查询的条件,这三个条件可任意组合进行模糊查询。再增加一个隐藏域search,值为1。代码如下:

search=Trim(Request("search"))

if search="" then

sql="select * from t1 order by id"

else

icd_code=Trim(Request("icd_code"))

icd_name=Trim(Request("icd_name"))

icd_spec=Trim(Request("icd_spec"))

sql="select * from icd10 where bm like '%"&icd_code&"%' and mc like'%"&icd_name&"%' and zjm like'%"&icd_spec&"%' order by id"‘组合查询语句

end if

set OraDynaset =Session("OraDatabase").DbCreateDynaset(sql,0) ‘执行查询

if OraDynaset.recordcount=0 then

response.write "alert('对不起,你输入的条件不存在,请重新输入!');location='index.asp';"

end if%>

程序说明:首先程序判断Trim(Request("search"))的值是否为空,以此确定用户是否输入了查询条件,如果没有输入则查询所有疾病编码,否则,程序根据获取的输入条件来执行查询语句。在SQL查询中,我们主要使用LIKE来匹配模糊查询。它有标准语法中:%是代表任意多个任意字符的通配符,_(下划线)是代表一个任意字符的通配符。

打开数据库后, 程序通过OraDynaset.recordcount=0来判断查询的结果数,如果为0,会提示要求用户重新输入查询条件。

4 在ASP页面增加疾病数据显示表格,在代码区增加读取数据代码

由于显示部分比较简单,这里只列出关键代码

do until OraDynaset.EOF

i = i + 1‘继续取下一条数据 %>

此处放置需要显示的数据。如,需要显示的某个疾病名称,只需使用

来进行显示,如果要显示其它字段,只需要按此方式输出即可。

最后加入循环的代码即可

Loop %>

5 查询条件突出显示

我们在查询的页面中经常看到我们输入的查询条件在查询的输出表中用不同的颜色突出显示,更便于我们查看。这里主要用了一个正则函数来实现。

dim objRegExp

Set objRegExp=new RegExp

objRegExp.IgnoreCase =true

objRegExp.Global=True

objRegExp.Pattern="(" & word & ")"

strContent=objRegExp.Replace(strContent,"$1" )

Set objRegExp=Nothing

BoldWord=strContent

End Function%>

在ASP中大家可也以通过replace内置函数来实现,下面是代码:

Mc_name=replace(rs("mc"),keyword,""&keyword&"")

此程序还可以进一步扩展,通过更加智能的感知技术来实现优化查询,如:在查询条件中输入胃,就会列出所有所胃有关疾病的下拉列表,并显示记录数,这样更便于用户的检索。需要使用ICD网络查询系统的用户可以与笔者联系,笔者的ICD查询系统共有2万多条记录,完全可满足医院及疗养院的需要。

通过ASP技术、计算机网络和Oracle数据库系统三者的结合,完全可以很好的制作出适合自己的网络数据库查询系统。以上的方法给大家提供了一个实现的实例,我们用ASP技术在一个页完全实现了对疾病编码的模糊查询并突出显示查询的结果。

参与文献:

[1] 冒东奎,冒小慧.用ASP存取数据库的图形[J]计算机应用,2002(2).

[2] 周奇.利用ASP实现分页技术[J]信息技术,2003(6).

[3] 刘化君,李铭.Web数据库的查询分页显示[J].电脑开发与应用,2003(7).

[4] 明德廷,李娟.基于ASP的Web查询技术[J].计算机与现代化,2003(6).

上一篇:基于VB的考试系统的设计与实现 下一篇:云计算技术在高校数字化建设的应用研究