电子病历3.7程序与医生站接口说明.doc_第1页
电子病历3.7程序与医生站接口说明.doc_第2页
电子病历3.7程序与医生站接口说明.doc_第3页
电子病历3.7程序与医生站接口说明.doc_第4页
电子病历3.7程序与医生站接口说明.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子病历3.7与医生站接口说明1. 简述:电子病历3.7提供了病历书写平台,为了更好的和医生站融为一体,实现病历书写的一体化,电子病历3.7程序提供相应的接口,已满足医生站以及其它模块的调用。电子病历3.7为C#开发,采用.net生成COM组件提供给其它程序调用的接口方案2. 方案:(1) 登录采用电子病历集中平台登录医生站作为电子病历中模块,采用统一登录方式,调用医生站程序方法由电子病历平台提供。涉及到的表:字段名字段类型是否为空默认值说明APP_CODEVARCHAR2(20)N应用程序编码NODE_CODEVARCHAR2(30)N节点编码NODE_TITLEVARCHAR2(50)Y节点标题NODE_TYPEVARCHAR2(20)Y节点类型 MENU菜单 MODULE模块PARENT_NODE_CODEVARCHAR2(30)Y父节点编码SERIAL_NONUMBER(3)Y序号FILE_NAMEVARCHAR2(40)Y文件名FORM_IDVARCHAR2(120)Y窗体IDICON_FILEVARCHAR2(200)Y图标文件HAS_TOOLBAR_ITEMNUMBER(1)Y是否显示工具栏按钮(仅菜单类项目使用),0 不显示 1 显示STATUSNUMBER(1)N1状态 1 可用 0 不可用WIN_OPEN_MODENUMBER(1)N0窗体打开方式MEMOVARCHAR2(200)N备注,其它模块的路径例如:insert into mr_app_entry (APP_CODE, NODE_CODE, NODE_TITLE, NODE_TYPE, PARENT_NODE_CODE, SERIAL_NO, FILE_NAME, FORM_ID, ICON_FILE, HAS_TOOLBAR_ITEM, STATUS, WIN_OPEN_MODE, MEMO)values (EMR, EMR06, 住院医生站, MODULE, EMR, 51, , doctws.exe, 住院医生工作站.png, 0, 1, 0, d:warddoctor);(2) COM组件的调用该接口采用.net生成COM组件Tj_Emr_Interface.dll(在EMR3.7程序包中),组件的注册:regasm Tj_Emr_Interface.dll /tlb: Tj_Emr_Interface.tlb /codebase 类名:Tj_Emr_Interface.TjEmrInterfacePB对象实例化方法:OleObject lole_interfacelole_interface = Create OLEObject if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口打开失败)return end if该组件需要实现以下功能:1.1 EMR3.7运行初始化实现电子病历程序的初始化工作,包括用户身份验证、全局变量创建、数据库连接、WCF服务器连接等工作。该方法为其它所有方法的前提条件,没有执行该方法之前其它方法都不允许执行。执行该方法进应当在后台打开EMR3.7程序,与COM不在同一进程,否则会导致EMR3.7无法访问WCF配置文件的BUG。注:程序使用EMR3.7登录平台功能则不需要此接口。 函数名:LoginEmr 参数:String用户名String用户密码 返回值:Integer 1 成功 -1 失败 举例:LoginEmr(string user, string password),参数 (用户名,密码)1.2 EMR3.7是否启动 函数名:EmrIsInitComplete 参数:无 返回值:Integer-1 失败0未找到1 成功 举例:EmrIsInitComplete ()1.3 关闭EMR进程通过向EMR3.7发送消息,关闭EMR3.7程序。注:程序使用EMR3.7登录平台功能则不需要此接口。 函数名:EmrExit 参数:无 返回值:无 举例:EmrExit()1.4 新建病历(选择模板)通过向EMR3.7发送消息,打开新建病历的模板选择界面,由医生选择模板后进入新建病历的书写窗口。 函数名:EmrWriteSelectTemplet 参数:String patSource病人来源(住院2,门诊3)String patId病人标识(病人ID)String visitId病人住院序号(门诊病人该项为0)DateTime clinicDate 门诊就诊日期(住院病人为空)String clinicNo门诊就诊序号(住院病人为空) 返回值:Integer 1 成功 -1 失败 举例:EmrWriteSelectTemplet(string patSource, string patId, string visitId, string clinicDate, string clinicNo); 1.5 病历查阅打开指定病人的病历,供医生查阅。 函数名:EmrRead 参数:String病人来源(住院2,门诊3)String病人标识String 病人住院序号(门诊病人该项为0)DateTime 门诊就诊日期(住院病人为空)String 门诊就诊序号(住院病人为空) 返回值:Integer 1 成功 -1 失败 举例:EmrRead(string patSource, string patId, string visitId, string clinicDate, string clinicNo) 1.6 病历借阅申请通过向EMR3.7发送消息,打开病历借阅申请窗口。 函数名:MrReadSearch 参数:无 返回值:无 举例:MrReadSearch ()1.7 病历借阅列表窗口通过向EMR3.7发送消息,打开病历借阅列表窗口。 函数名:MrReadApply 参数:无 返回值:无 举例:MrReadApply()1.8 病历解锁通过向EMR3.7发送消息,打开病历解锁窗口。 函数名:EmrUnlock 参数:无 返回值:无 举例: EmrUnlock()1.9 诊断格式设置通过向EMR3.7发送消息,打开诊断格式设置窗口。 函数名:ParamDiagnosis 参数:无 返回值:无 举例ParamDiagnosis()1.10 模板制作通过向EMR3.7发送消息,打开模板制作窗口。 函数名:Template 参数:无 返回值:无 举例:Template()1.11 模板树维护通过向EMR3.7发送消息,打开模板树维护窗口。 函数名:TempletTree 参数:无 返回值:无 举例:TempletTree ()1.12 模板查阅通过向EMR3.7发送消息,打开模板查阅窗口,可以查阅所有的模板的内容。 函数名:BrowseEmr 参数:无 返回值:无 举例:BrowseEmr()1.13 病历质控提示信息窗口通过向EMR3.7发送消息,打开质控提示信息窗口。 函数名:PersonalQC 参数:无 返回值:无 举例:PersonalQC()1.14 选择模板窗口通过向EMR3.7发送消息,打开模板选择界面,由医生选择模板后进入新建病历的书写窗口。 函数名:EmrWriteTemplet 参数:String patSource病人来源(住院2,门诊3)String patId病人标识(病人ID)String visitId病人住院序号(门诊病人该项为0)DateTime clinicDate 门诊就诊日期(住院病人为空“”)String clinicNo门诊就诊序号(住院病人为空“”)String templetNo 模板代码暂时为空“”即可 返回值:无 举例: EmrWriteTemplet(string patSource, string patId, string visitId, string clinicDate, string clinicNo, string templetNo)1.15 三级医生设置 函数名:DoctorSetting 参数:无 返回值:无 举例: DoctorSetting()1.16 门诊电子病历调用 说明:门诊医生站调用电子病历程序时,打开EMR3.7门诊病历书写功能,且将书写界面指定打开位置 函数名:EmrDockClinic 参数:n String WinHandle 将门诊病历书写界面显示在控件上的句柄号(handle)n String patSource 病人来源(住院2,门诊3)n String patId病人标识,为空则只打开界面,不做患者初始化n String visitId病人住院序号(门诊病人该项为0)n DateTime clinicDate门诊就诊日期(住院病人为空)n String clinicNo门诊就诊序号(住院病人为空) 返回值:无 举例: EmrDockClinic(string(handle(tab_1.tabpage_mr),ls_patsource,5001772988,0,2013-01-15,19251)1.17 门诊病历窗口初始化 说明:门诊医生站在切换患者信息后,需要触发该接口,使门诊病历窗口进行刷新 函数名:EmrDockClinicInit 参数:n String WinHandle 将门诊病历书写界面显示在控件上的句柄号(handle)n String patSource 病人来源(住院2,门诊3)n String patId病人标识n String visitId病人住院序号(门诊病人该项为0)n DateTime clinicDate门诊就诊日期(住院病人为空)n String clinicNo门诊就诊序号(住院病人为空) 返回值:无 举例: EmrDockClinicInit (string(handle(tab_1.tabpage_mr),ls_patsource,5001772988,0,2013-01-15,19251)1.18 当前门诊病历是否有修改34判断当前病历是否有修改 函数名:EmrClinicIsDocAlter 参数:无 返回值:返回值-1调用失败1有修改0无修改 举例:EmrClinicIsDocAlter ()1.19 保持当前门诊病历35判断当前病历是否有修改 函数名:EmrClinicIsSave 参数:无 返回值-1调用失败1成功0失败 举例:EmrClinicIsSave()3. 使用方法:(1) 注册COM组件COM组件Tj_Emr_Interface.dll(在EMR3.7程序包中)regasm Tj_Emr_Interface.dll /tlb: Tj_Emr_Interface.tlb /codebase(2) 实例化COM组件lole_interface = Create OLEObject if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口打开失败)return end if(3) 初始化运行EMR3.7If lole_interface. LoginEmr(string user, string password) 1 then lole_interface.disconnectobject( ) Destroy lole_interface messagebox(提示,模板选择接口调用失败!) returnend if(4) 调用COM组件函数(如新建病历接口)If lole_interface.EmrWriteTemplet(ls_patsource,u_file.patient_id,u_file.visit_id,ls_clinicdate,ls_clinicno,) 1 thenlole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,模板选择接口调用失败!)return end if4. 医生站需要做的接口:(1) 增加版本区分标志mr_index增加版本MR_VERSION字段,用于区分病历书写版本,医生站判断不同版本来做不同处理MR_VERSION VARCHAR2(5)(2) 接诊医生站接诊操作增加版本标志保存至表mr_index. MR_VERSION,用于区分电子病历书写版本(3) 调用3.7电子病历程序在医生站登陆、且自动更新完成后,实例化电子病历3.7程序,LoginEmr参数 (用户名,密码)LoginEmr(string user, string password) (4) 病历的新建和编辑If 使用3.7书写病历 thenstring ls_patsourcestring ls_clinicdate = string ls_clinicno = OleObject lole_interface/2住院3门诊ls_patsource = 2lole_interface = Create OLEObject /初始化com组件if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口打开失败)return end ifif lole_interface.EmrWriteTemplet(ls_patsource,u_file.patient_id,u_file.visit_id,ls_clinicdate,ls_clinicno,) 1 then/调用模板选择书写病历接口lole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,模板选择接口调用失败!)return end ifend if参见:选择模板窗口(5) 编辑参见:病历查阅(6) 增加“三级医生设置”菜单string ls_patsourcestring ls_clinicdate = string ls_clinicno = OleObject lole_interface/2住院3门诊ls_patsource = 2w_main.SetPosition(NoTopMost! )lole_interface = Create OLEObject /初始化com组件if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口失败)returnend ifif lole_interface.DoctorSetting() 1 then/调用三级医生设置接口lole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,三级医生设置调用失败!)returnend if参见: 三级医生设置(7) 增加“个人质控”菜单string ls_patsourcestring ls_clinicdate = string ls_clinicno = OleObject lole_interface/2住院3门诊ls_patsource = 2w_main.SetPosition(NoTopMost! )lole_interface = Create OLEObject /初始化com组件if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口失败)returnend ifif lole_interface.PersonalQC() 1 then/调用三级医生设置接口lole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,个人质控调用失败!)returnend if参见:病历质控提示信息窗口(8) 增加“模板制作”菜单参见:模板制作(9) 增加“模板树维护”菜单参见:模板树维护(10) 增加“病历书写解锁”菜单参见:病历解锁5. 门诊医生站调用电子病历方法(1) 调用3.7电子病历程序在医生站登陆、且自动更新完成后,实例化电子病历3.7程序,LoginEmr参数 (用户名,密码)OleObject lole_interfacelole_interface = Create OLEObject /初始化com组件if lole_interface.ConnectToNewObject(Tj_Emr_Interface.TjEmrInterface) 0 thenDestroy lole_interfacemessageBox(提示, 启动病历接口打开失败)return end iflole_interface .LoginEmr(string user, string password)(2) 调用门诊电子病历书写界面门诊医生站主界面打开时,同时将电子病历3.7门诊病历书写界面打开,并设置到指定位置,(位置通过传入的句柄号设置)string ls_patsourcestring ls_clinicdate = string ls_clinicno = OleObject lole_interface/2住院3门诊ls_patsource = 3if lole_interface.EmrDockClinic(string(handle(tab_1.tabpage_mr),ls_patsource,0,2013-01-15,19251) 1 then/调用模板选择书写病历接口lole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,模板选择接口调用失败!)return end if参见:门诊电子病历调用(3) 切换当前患者string ls_patsourcestring ls_clinicdate = string ls_clinicno = OleObject lole_interface/2住院3门诊ls_patsource = 3if lole_interface. EmrDockClinicInit (string(handle(tab_1.tabpage_mr),ls_patsource,0,2013-01-15,19251) 1 then/调用模板选择书写病历接口lole_interface.disconnectobject( )Destroy lole_interfacemessagebox(提示,模板选择接口调用失败!)return end if参见:门诊病历窗口初始化(4) 关闭并退出电子病历3.7程序门诊医生站程序关闭时,同时关闭实例化的电子病历书写程序if not isnull(lole_interface) or isvalid(lole_interface) then Destroy lole_inter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论