使用XForms和Ruby on Rails开发小型门诊管理系统,第3部分 - 编程入门网
ditPatient 窗体,ID 附加在 URL 后面(因此 grab 视图知道从数据库读取哪一条记录并返回 XForm)。注意下方添加新患者的链接。单击该链接将打 开本系列第 2 部分创建的表单。
该表单如图 1 所示。 图 1. 患者列表 使用XForms和Ruby on Rails开发小型门诊管理系统,第3部分(5)时间:2011-11-29 ibm Tyler Anderson单击链接就会看到包 含已有数据的 editPatient 表单,如图 2 所示。 图 2. 在 editPatient 表单查看已有的数据 在这 里可以根据需要编辑数据。要注意,提交该表单的时候,按照 清单 1 的定义,执行的是 kiosk/update 脚本而不是 kiosk/create 脚本。还有 URL 中的 id 变量,清单 2 中的 grab 控制器依靠它才知道从数 据库获取哪个 id。 选择 Submit Information 按钮之前,应该修改 kiosk 控制器的 update 方 法。 Kiosk update 控制器 需要修改 update 控制器来处理 XForms 提交数据,存储到数 据库中替代原来的 XML 数据。修改后的 kiosk 控制器如清单 4 所示。 清单 4. 修改 kiosk 控 制器的 update 方法 def update doc = REXML::Document.new("<Info></Info>") params[:Info].each_pair do |key,value| if (key.index('':'') == nil) #removes el = REXML::Element.new key el.add_text value doc.root.add el else doc.root.add_attribute key,value end end id = @request.env["HTTP_REFERER"].split(''='')[1] @patient = Patient.find(id) @patient.information = doc @patient.update_attributes(params[:patient]) redirect_to :action => ''list'' end 使用XForms和Ruby on Rails开发小型门诊管理系统,第3部分(6)时间:2011-11-29 ibm Tyler Anderson注意和 create 控制器的相似性。差别在于如何使用引用 URL 检索原有的患者信息。首先 ,该方法创建了 XForms 提交数据的 XML 文档,然后从数据库检索已有的患者,用新数据替换已有的 XML 数据并保存到数据库。 这样就行了!对用户界面略加修改就能大大加强应用程序的功能,真 是令人吃惊。现在可以查看和更新已有的患者记录了。 护士审批表单 护士审批表单(triagePatient.xhtml)让护士从完全不同的视图(triage)编辑和审查患者输入的数 据。triagePatient 表单允许护士使用 Submit Information 按钮编辑患者信息,使用 Approve 按钮编 辑和批准患者信息。但是创建该表单之前,需要为患者表添加一个新的字段。 修改患者表 患者模式中新增一个 approve 字段,用于确定哪些信息已经经过审核批准,哪些还没有。要修改患者模 式请打开 DB2 Control Center,找到 Patients 表,如图 3 所示。 图 3. 修改患者模式 右键 单击 Patient 表,像上图那样单击 Alter。在打开的窗口中单击 Add,输入新的字段信息,如图 4 所示 。 图 4. 添加 approved 字段 使用XForms和Ruby on Rails开发小型门诊管理系统,第3部分(7)时间:2011-11-29 ibm Tyler Anderson请注意字段名、数 据类型、默认值和 Nullable。连续单击 OK。Control Center 将通知您修改已经成功,可以看到修改后 的表模式,如图 5 所示。 图 5. 修改后的患者模式 如果使用 DB2 Control Center,实际上不需要使用命令行工具。 现在可以创建 Triage 视图了。 Triage 视图和控制器 需要把 triage 视图、控制器以及护士 XForm 的患者模型联系起来。创建新的视图 和控制器,请输入清单 5 所示的代码。 清单 5. 创建 triage 视图和控制器 ruby script/generate scaffold patient triage exists app/controllers/ exists app/helpers/ create app/views/triage exists app/views/layouts/ exists test/functiona |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |