资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
收稿日期 2003 01 16 薛凯 硕士生 主研领域 数据库及软件开 发 基于图像存储的病历管理系统 薛 凯 钱晓平 王一抗 上海交通大学生物医学工程系 上海 200030 摘 要 随着计算机技术的飞速发展 数据库技术在医学领域的应用越来越广泛 利用多媒体技术可以将医生在治疗过程中采 集的图像与其他记录一同存入数据库中 并可根据需要随时输出含有图像的报表 这就给医生带来了极大的方便 避免了手工查询 病历所带来的繁琐与可能出现的错误 关键词 图像 数据库 CASE HISTORY MANAGEMENT SYSTEM BASED ON IMAGE STORAGE Xue Kai Qian Xiaoping Wang Yikang Department of Biomedical Engineering Shanghai Jiaotong University Shanghai 200030 Abstract With the rapid development of computer technology the database technology is finding an increasingly wide scope of application in the medical field By making use of the multimedia technique images that doctors gather during the process of treatment can be stored along with other records into the database and may send out at any time report forms with images when need arises avoiding the unnecessary trouble and possible mis takes brought by manual operations and thus greatly benefiting doctors Keywords Image Database 1 系统设计 1 1 概 述 笔者根据某医院病人治疗记录的实际需要 设计开发了一 个包括图像内容的病历管理系统 该系统应用程序界面的开发平台是 Inprise 公司的 Delphi 5 0 后台数据的存储采用Microsoft 公司开发的 SQL Server 7 0 我们所开发的病历管理系统是针对一种肿瘤消融机而设计 的 这种肿瘤消融机是采用高强度聚焦超声技术 HIFU 来治 疗肿瘤的 当一个病人的治疗完成后 医生要填写两部分报表 第一部分只需一张 就是病人治疗总结记录报表 第二部分需 要若干张 也就是病人每一次的治疗记录 它包含了若干个断面 的记录 由于治疗的需要 每一个断面记录中都包含两幅治疗 图像 疗前图像 疗后图像 这两幅图像在医生诊断病人的疗 效上起到了关键的作用 如何存取这些图像成为了管理系统设 计的关键 经过仔细分析笔者建立了一个由四个表组成的数据 库 其中表三中有两个用于存储图像的属性 photo1 和 photo2 它 们的数据类型用 image 数据类型 在这里笔者运用与图像相关 的辅助字段来识别图像 采用 Delphi 开发应用程序界面 要用到 Delphi 自带的 BDE 数据库引擎 来连接 SQL Server 1 2 开发病历管理系统的客户端程序 医学图像对于分辨率的要求很高 且要具有清晰的层次感 这就要求每个象素的量化位数要足够高 1 数据输入系统的设计 首先创建该应用程序的主界面 见图 1 主界面的设计要 符合医生治疗病人时使用病历的习惯 图 1 应用程序主界面 基于数据输入数据库中的源代码采用 object pascal 语言 下 面是往数据库 table2 和 table3 中输入数据的源代码 procedure Tmainform Button3Click Sender TObject begin if table2 CanModify then begin table2 append table2 IDhao edit7 text Table3photo1 Assign Image1 Picture Bitmap Table3photo1 是一个 Blob 变量 table2 post 第 21卷第 4 期 计算机应用与软件Vol 21 No 4 2004 年 4 月 Computer Applications and SoftwareApr 2004 注意程序中用到了 Blob 长二进制 变量 table3photo1 此变 量是专为存放图像用的 Assign 函数的作用是把 Image1 中的图 像装载入Table3photo1中 把图像字段放入表三就是为了让图 像字段能够利用表三中其他字段来唯一标识自己 这样图像存 储在数据库中之后 在同一个记录中包含了能唯一标识本记录 中图像的所有信息 当用户需要有关图像的信息时 只要输入 与此图像相关的必要信息 也就是上述的 ID 号等 就可唯一确 定所需要的图像 2 用户查询系统的设计 用户查询系统可以利用 Delphi 中的 Query 控件来实现 我 们在这里仅举一个例子 其他 query 控件用法与此类同 首先将 Query 控件的 database 属性设为 k 然后在 SQL 属 性项中输入初始 SQL 查询语句 再将 Query 的 active 属性设为 true 当用户在界面上输入要查询记录的特征值时 点击确定按 钮后即可在程序主界面上看到要查询的记录 图2 用户查询界面 查询程序源代码如下所示 query1 SQL add select from table1 query1 open with mainform do begin edit1 text query1 IDhao edit2 text query1 HIFUhao Image1 Picture Bitmap Assign query3photo1 图像字段的输出 输出到 Image1 中 上述代码中 query3photo1是一个 Blob 变量 这个变量是在查 询过程中被赋值的 然而 query3photo1 究竟怎样被赋予了用户 要查询的图像呢 这就用到了 SQL 语言 如下代码所示 query3 SQL add select from table3 query3 SQL add where IDhao idnumber and zhiliaohao edit2 text and cixuhao edit3 text 由此可见 只要用户输入能唯一决定相关图像的字段信息 就可 根据此信息在数据库中找到包含用户所需图像的记录 然后就 可在此记录中找到所需的图像 并将图像赋值给 query3photo1 query3photo1得到值后 主窗体中的 Image1 控件就可调用 Assign 函数将查询到的图像装载到 Image1 中 并在主窗体中显示出 来 3 报表生成系统的设计 报表的生成可以采用 Delphi 开发环境自身带的 Qreport 选 项卡内的控件来完成 报表的制作因医生要求的不同而有很大 的差别 笔者在这里是根据医生的特殊要求设计了治疗记录报 表 总结记录报表 和HIFU 治疗记录报表 在报表的生成过程中由于报表中的内容是从数据库中查找 得出的 所以运用了 Query 控件来完成此项工作 生成报表的 询问界面如图 3 所示 图 3 报表询问界面 报表生成时的源代码如下所示 Query1 params 0 asstring edit1 text Query1 open report1form QRLabel13 Caption query1 IDhao report1form 就是要输出的报表 report1form qrlabel3 Caption query1 HIFUhao report1form QuickRep1 Preview end 生成的报表见图 4 同样有图像的输出问题 在此笔者运 用 QRDBImage 控件直接将其与查询到的数据库中的相应记录 相连接 并将其 DataField 属性设置为需显示的字段 如 photo1 这样当用户需要输出报表时 只需先输入必要的信息 ID 号 治 疗 ID 断面号等 就可输出所需的报表 图 4 治疗记录报表 至此我们已完成了本次数据库的大部分设计工作 数据库 应用程序还需有修改和删除功能 此两项功能设计与查询功能 的设计大致相同 故在此不再赘述 2 总 结 1 此病历管理系统充分满足了医生治疗病人时的各种需 求 它强大的数据录入 查询 修改 删除功能受到了医院的一 致好评 特别是它的图像存储功能更是已往医用数据库所很少 见到的 这给医生治疗病人提供了直观形象的技术资料 2 在病历管理系统的开发过程中特别应注意的是 数据库中长二进制数据 BLOB 的运用 在数据库建库过 程中有关长二进制数据的设置问题 要根据具体情况的不同而 有不同的设计 Delphi 与 SQL Server 的连接是比较繁琐的事情 数据库 开发者要做好二者的连接 下转第 80页 第 4 期 薛凯等 基于图像存储的病历管理系统41 bm 3 4bm 2 bm 1 6Pm 2 bm 2 4bm 1 bm 6Pm 1 bm 1 5Pm 6Pml 2 5Pm bm 1 6Pmr bn 2 4bn 1 bn 6Pn 1 注意 1 和 2 以及之间的式子 未知数和方程数相等 可以 把它们作为独立的方程组提取出来 而且将它们分为两个方程 组 A B 如下 5Pk bk 1 6Pkr Pk 4bk 1 bk 2 6Pk 1 Pk 1 4bk 2 bk 3 6Pk 2 A bm 3 4bm 2 bm 1 6Pm 2 bm 2 4bm 1 Pm 6Pm 1 由方程组 A 可以解出 Pkr Pk 4bk 1 bk 2 6Pk 1 Pk 1 4bk 2 bk 3 6Pk 2 B bm 3 4bm 2 bm 1 6Pm 2 bm 2 4bm 1 bm 6Pm 1 bm 1 5Pm 6Pml 由方程组 B 可以解出 Pml 篇幅所限 略去复杂的计算过程 最后计算结果为 Pkr 1 6am k 5am k am k 1 Pk m k 1 i 1 1 m k 1 ia i 6Pm i 1 m k 1P m 3 Pml 1 6am k 5am k am k 1 Pm m k 1 i 1 1 m k 1 ia i 6Pk i 1 m k 1P m 4 其中 a 为这样的数列 1 4 4 4 1 4ar 1 ar 2 通项表达式可用组合数学的方法计算出 an 3 6 2 3 n 2 3 n 5 3 式为计算尖点 Pk右插入点的公式 4 式为计算尖点 Pm的左插入点公式 2 2 封闭的边界的情况 B 样条的反算求解是由反算方程组 bi 1 4bi bi 1 6Pi 加上两个合适的边界条件去求解的 不同的边界条件会得出略 有不同的曲线 所谓封闭其实就是加了如下的边界条件 b0 bn 1 bn b1 不封闭的时候我们可以加如下的边界条件 b0 b2 bn 2 bn 我们用上述边界条件来求解为制造尖点 而在左边界添加 的左插入点和在右边界添加的右插入点 从展开的方程组 bi 1 4bi bi 1 6Pi中抽取出右边的方程 再像不封闭的情况的求 解方法一样分拆方程组 再代入消元 最终可得 Pmr 1 6an m 5an m an m 1 Pm n m 1 i 2 1 n m 1 ia i 6Pn i 1 n m6P n 1 6 Pkl 1 6ak 5ak ak 1 Pk k 1 i 2 1 k 1 ia i 6Pi 1 k6P 1 7 其中an 2 3 n 1 2 3 n 1 n 1 8 此为边界条件为 bn 2 bn b0
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号