少"
endif
ifcbx_5.checked=truethen
syms=syms+"皮肤骚痒"
realp_d_s=0.47
realp_dn_s=0.4
realskin
realp_s_d
skin=p_d*p_d_s+p_dn*p_dn_s
p_s_d=p_d_s*p_d*0.1/skin
bayes=bayes+p_s_d
endif
ifcbx_6.checked=truethen
syms=syms+"遗传"
realp_d_i=0.9
realp_dn_i=0.02
realinherit
realp_i_d
inherit=p_d*p_d_s+p_dn*p_dn_s
p_i_d=p_d_i*p_d*0.4/inherit
bayes=bayes+p_i_d
endif
ifsyms=""then
messagebox("提示","您没以下症状如要想要继续请点下一步")
endif
messagebox("提示","进过BAYES推理您患糖尿病概率为"+left(string(bayes),5))
opensheet(w_first_history,w_main,3,original!)
根据不同的病症,BAYES的阈值也不同,三多一少为0.9视力模糊为0。8依次类推。确定后进入既往史输入界面。
图5.7既往史
该界面是专家询问用户是否有以下既往史,代码见附录程序2
其中ST_1.TEXT为上一个窗口传递的症状值
接着是对血糖的测量
图5.8血糖测量
该界面是关于血糖值的测量,对于断定是否患糖尿病有重要作用为了准确的进行测量,根据知识库的搜索树在此进行了两次检测,代码见附录程序三
图5.9血糖测量
当饭前输入为4时,如上图,会提示进入口服葡萄糖界面。
图5.11血糖测量2
如果输入>15的话会提示进入急性诊断界面
当两次输入的数值符合糖尿病患病数值的时候进入下一模块
图5.13INSC肽化验
确定按扭代码如下
b_ins=real(trim(sle_1.text))
ifb_ins>8.1then
ins_st="高"
else
ins_st="底"
endif
opensheet(w_fifth_gadcheck,w_main,3,original!)
接着是GAD检测模块
图5.14GAD检测
根据第三章搜索树的推理,当INS值为底的时候,GAD为阳性变可推测换I型糖尿病代码见附录程序4
图5.15最后诊断窗口
如果为阴性则继续进行年龄和体重的推理得出结论,将会出现以下的情况
5.16年龄输入窗口
图5.17体重测量
5.4糖尿病慢性诊断窗口
图5.18患病年数树输入
该图是慢性诊断的第一个窗口,因为糖尿病慢性病是长时间才显出症状,所以需要输入年数和类型
5.5糖尿病预防模块
该模块结合了一型,二型等有关糖尿病预防的知识,设计界面如下。
图5.20糖尿病预防预防
图5.20糖尿病预防模块
5.6糖尿病治疗模块
5.21治疗模块
慢性并发症治疗模块
由于慢性病治疗模块基本相似,选择视网膜病变治疗模块
5.22慢性病治疗模块
5.7血糖检测模块
糖尿病病人控制得关键因素在于血糖,每天患者必须检测自己的血糖值,如果血糖控制不好,就会导致很多疾病的产生。所以该模块运用数据库技术让患者了解自己的血糖情况。
图5.22血糖输入窗口
--
图5.23血糖检测窗口
第六章系统的编译和发布
完成了医院住院病人管理信息系统的编程工作并调试通过后,最后一步就是系统的编译和发布。这涉及到工程对象的创、可执行应用程序的生成以及发布环境的配置等多方面问题。一个系统开发的是否成功,归根结底是要看用户对系统的使用是否满意。本系统是一个数据库应用系统,需要涉及到数据库环境配置等问题。因此需要将系统应用程序编译成可执行文件,将应用所需要的环境发布出去,这样既可以减少应用程序的大小,又可以提高应用程序的运行速度。
和其他软件一样,用PowerBuilder提供的编译工具可将应用程序编译成可直接在系统下运行的应用程序。
6.1创建工程对象
使用Project中的ApplicationWizard建立工程的基本步骤如下:
⑴在工具栏上单击New图标,选择Project页中的ApplicationWizard向导。
⑵在AbouttheApplicationProjectWizard对话框中单击Next按钮。
⑶在SpecifyDestinationLibrary对话框中选择存储工程的应用库,本系统只有一个应用库,即xxgl.pbl,单击Next按钮。
⑷在SpecifyProjectObject对话框中给工程命名为p_xxgl_exe,单击Next按钮。
⑸在SpecifyExecutableandResourceFiles对话框给可执行文件命名为D:\bysj\xxgl.exe,单击Next。
⑹在SpecifyBuildOptuibs对话框中选择编译类型IncrementalBuild(只重新编译新增部分),并且选中PromptforOverWrite选中,表示当覆盖文件是出现提示,单击Next按钮。
⑺在GenerateMachineCode对话框中选择生成机器代码,单击Next按钮。
⑻在SpecifyDynamicLibraryOptions对话框中选择应用程序生成动态库,单击Next按钮。
⑼在SpecifyVersionInformation对话框中填写版本信息,单击Next按钮。
⑽在ReadytoCreateApplication对话框中单击Finish按钮,即生成了一个工程对象。
6.2编译生成和测试
编译步骤如下:
⑴在PowerBuiler的环境下,打开该工程对象。
如图6-1所示在该对话框中列出了前面所设置的工程对象属性。可以在此处直接修改工作对象的各个属性。
图6.1 打开工程对象
⑵单击工程画笔工具栏上的Build图标进行工程编译。PowerBuilder将会弹出一个窗口,显示编译的过程信息。可以单击该窗口上的"Stop"按钮来终止编译过程。编译完毕后,即生成了相应的可执行文件和动态库文件。
编译通过后,生成可执行文件expersystem.exe。在测试。发布前还要对生成的可执行文件进行测试,测试的步骤如下:
⑴离开PowerBuilder开发环境,返回到操作系统环境下。
⑵将编译好的文件拷贝到PowerBuilder库文件放置的路径下。
⑶运行可执行文件。
6.3发布
通过上面测试的可执行文件,就可以进行发布了,考虑到最终用户使用机器的复杂性,还需要发布PowerBuilder的环境文件以及数据库运行的客户端软件。
PowerBuilder生成的可执行文件必须在其自身带的支持文件的帮助下才能运行。用户安装了PowerBuilder后,目录"Sybase\Shased\PowerBuilder"下就具有了这些支持文件。应用程序中不同的对象需要不同的支持文件。在发布应用程序时,必须发布的文件有PBVM90.DLL、LIBJCC.DLL、PBDWE90.DLL、PBRTC90.DLL、NPDWE90.DLL、NPPBA90.DLL、PBTRA90.DLL等。
第七章结论
*总结
专家系统是人工智能的一个分支,具有极强的应用性。由于对人工只能这门较为复杂学科的挑战,和对医学领域的兴趣,这次毕业设计课题,我选择的是糖尿病专家系统。通过一个学期的学习和实践,我阅读了大量有关人工只能和专家系统的书籍,基本掌握了专家系统的基本理论、基本设计方法,通过担任知识专家的指导老师的合作,从大量的糖尿病诊断知识,预防知识,中提取精华,建立知识库,采取软件工程的方法和专家系统的设计原则进行系统分析和设计,实现推理机,完成人机交互界面。
在设计过程中,遇到许多的难题,比如:如何进行正确糖尿病诊断,如何进行BAYES概率推理,在各种医学数值下,如何取的让普通用户都能看懂的表达形式。还有如何使专家系统功能更加完善,让患者使用起来更为方便上都下了很大的工夫去改进,去克服。
*不足之处
由于时间的限制,本系统仍有许多地方值得改进。
1.知识库嵌套在程序中
专家系统的设计
上一篇:
PB科研管理系统pb(论文和程序).SQL
下一篇:
试析影响公路路面平整度的因素及应采取的施工措施