一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

不同病理系统的数据交互方法、装置和存储介质与流程

2021-11-10 02:48:00 来源:中国专利 TAG:
1.本发明属于医用数据交互
技术领域
:,特别涉及一种不同病理系统的数据交互方法、装置和存储介质。
背景技术
::2.病理报告的患者信息对医生进行疾病的诊断和治疗有重要的参考意义,但是在目前绝大多数的医院信息化架构下各子系统相互之间并没有一套规范化的交互方式和数据格式。所以一套病理系统要在不同的软件环境下良好运行,需要投入大量的接口开发工作。这部分接口工作需要数据生产方和消费方分别投入新的沟通、协定、开发、调试等成本。此外重复开发相同软件行为的接口也容易引入更多的错误。随着计算机开发语言、框架、数据结构的发展,出现了诸如面向切面、面向接口编程等设计思路。本发明利用现代计算机语言和框架设计了一套基于数据接口的病理诊断报告方法,能完全通过软件配置的形式把病理系统的接口编码工作量减小为零,极大的减少了病理诊断软件的接口开发成本。技术实现要素:3.本发明提供了一种不同病理系统的数据交互方法、装置和存储介质,提升了病理系统与其他系统数据交互的二次开发效率、提高了病理诊断报告系统的扩展性、降低了数据交互过程中的风险。所述技术方案如下:一方面,本发明实施例提供了一种不同病理系统的数据交互方法,该方法包括:s101:创建不同病理系统的接口配置信息,所述接口配置信息包括配置表和字段关系表。4.s102:获取患者信息并构造申请请求w作为信息提取依据,患者信息用于病理系统作为病理检查登记数据。5.s103:根据配置表判断接口定义方式,并根据不同的接口定义方式和配置表中的配置获取返回信息。6.s104:根据字段关系表从返回信息中保留需要在病理系统中使用的数据结果r。7.s105:将数据结果r根据字段关系表和转换配置文件进行内容转换,使外部数据转化为内部可识别的数据结构s,数据结构s被病理系统用于展示和维护申请信息或患者信息,同时作为病理报告上患者基础信息的数据源。8.s106:通过配置表使用反射技术构造出发送模块;用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据配置表中不同的接口定义方式进行发放。9.其中,配置表包括接口分类category、表名称tablename、程序集名称assemblyfullname、数据库脚本命令sqlcommand、数据库类别dbtype、数据库连接字符串connectionstring、网络服务地址webserviceurl、网络服务函数webservicemethod、转换配置文件名称xsltname和请求参数param;字段关系表包括接口分类category、外部数据库表列名columnname和内部数据库表列名propertyname。10.另一方面,本发明实施例还提供了一种不同病理系统的数据交互装置,该装置包括:配置模块:用于创建不同病理系统的接口配置信息,所述接口配置信息包括配置表和字段关系表。11.申请信息生产模块:用于获取患者信息并构造申请请求w作为信息提取依据,患者信息用于病理系统作为病理检查登记数据。12.信息获取模块:用于根据配置表判断接口定义方式,并根据不同的接口定义方式和配置表中的配置获取返回信息。13.数据清洗模块:用于根据字段关系表从返回信息中保留需要在病理系统中使用的数据结果r。14.数据映射模块:用于将数据结果r根据字段关系表和转换配置文件进行内容转换,使外部数据转化为内部可识别的数据结构s,数据结构s被病理系统用于展示和维护申请信息或患者信息,同时作为病理报告上患者基础信息的数据源。15.数据发送模块:通过配置表使用反射技术构造出发送模块;用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据配置表中不同的接口定义方式进行发放。16.又一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的不同病理系统的数据交互方法。17.本发明实施例提供的技术方案带来的有益效果是:本发明提供了不同病理系统的数据交互方法、装置和存储介质,具有速度快、定义明确、通用性好、安全性高等优点。附图说明18.图1是本发明实施例中的不同病理系统的数据交互方法的流程框图。具体实施方式19.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。20.实施例1参见图1,本发明实施例提供了一种不同病理系统的数据交互方法,该方法包括:s101:创建不同病理系统的接口配置信息,接口配置信息包括配置表和字段关系表,病理系统具体可以为his、pacs和集成平台等。21.s102:获取患者信息并构造申请请求w作为信息提取依据,患者信息用于病理系统作为病理检查登记数据,患者信息具体可以为门诊号、住院号或体检号等患者标识信息。22.s103:根据配置表判断接口定义方式,并根据不同的接口定义方式和配置表中的配置获取返回信息。接口定义方式一般是基于tcp协议之上的应用层协议,主要类型有http、https、soap、数据库传输协议等,接口方式的定义d,d主要判断依据是是否有设置connectionstring,d可能为数据库(connectionstring有配置)和其他(connectionstring没有配置);其中“db”表示通过数据库直连的方式获取,需要用数据库字段拼接的方式形成由配置项决定的动态查询语句,其他诸如“http”、“webservice”、“socket”、“dll”等表示相应的其他接口调用方式,调用方式及其实现行为主要由assemblyfullname对应的程序集负责;后者通过配置构造param,param为接口约定的入参。对于数据库直连获取的数据无需进行加密,而对于非数据库直连获取的数据需要进行加密以提升安全性。23.s104:根据字段关系表从返回信息中保留需要在病理系统中使用的数据结果r。24.s105:将结果结果r根据字段关系表和转换配置文件进行内容转换,使外部数据转化为内部可识别的数据结构s,数据结构s被病理系统用于展示和维护申请信息或患者信息,同时作为病理报告上患者基础信息的数据源。25.s106:通过配置表使用反射技术构造出发送模块;用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据配置表中不同的接口定义方式进行发放,病理报告由常规的病理报告系统生成,病理报告系统主要负责病理科从收标本至出具诊断报告的流程;病理科出具的报告由报告发放环节发送到患者或者相关医生所使用的系统。病理报告相关数据及文档发送至相关科室医生处或患者本人通过自助形式进行报告获取。26.其中,配置表包括接口分类category、表名称tablename、程序集名称assemblyfullname、数据库脚本命令sqlcommand、数据库类别dbtype、数据库连接字符串connectionstring、网络服务地址webserviceurl、网络服务函数webservicemethod、转换配置文件名称xsltname和请求参数param等;当然,根据需要还可以包括其他项,如配置项说明memo。其中,字段关系表包括接口分类category、外部数据库表列名columnname和内部数据库表列名propertyname等,当然,根据需要还可以包括其他项,如description。27.其中,步骤s103具体包括:s1031:根据配置表中connectionstring是否有配置,判断是否为数据库直连;如果是,则执行步骤s1032;如果否(为空),则执行步骤s1033。28.s1032:根据配置表中的dbtype准备数据库访问组件dbconnector,再根据配置表中的connectionstring建立数据库连接,根据字段关系表得到sql查询脚本,根据dbconnector和sql查询脚本得到返回信息。29.s1033:若接口约定通过web服务的形式访问,则根据配置表中的webserviceurl、webservicemethod和assemblyfullname得到返回信息;若接口通过其他组件调用,则根据配置表中的assemblyfullname来指定程序集引用其他组件,组件的引用方式用mef技术进行动态加载,在应用程序调用处做函数签名的调整,通过反射技术构造assemblyfullname对应程序集的实例,执行程序集实例定义的接口调用过程,将配置表中的param作为入参,其中{a}形式的数据内容以实际数据进行替换,例如病理系统数据中name会把{name}替换为“张三”、#b#作为特殊处理文本的替换;#b#作为特殊处理文本的替换,例如配置为#time#的文本根据约定可以被替换为类似20210101080000格式的具体时间;对返回信息进行解密。30.其中,步骤s104体包括:根据字段关系表将返回信息保留字段关系表中columnname配置了的条目组成新的数据结果r,字段关系表中propertyname为对应的病理系统数据项。31.其中,步骤s105具体包括:r根据字段关系表中columnname配置项进行对应的propertyname进行替换,使外部数据转化为内部可识别的数据结构s。32.其中,所述sql查询脚本的构造过程为columnnam:a,propertyname:b,columnname:c,propertyname:d……;按语句selectaasb,casdfromtablenamewherea={b}进行构造。33.其中,步骤s106具体包括:s1061:根据字段关系表中的assemblyfullname使用反射技术构造出发送模块,发送模块interface的函数定义为execute;execute函数根据pathologyid获取病理报告以及相关信息并根据配置表中定义的接口方式执行报告发送。34.s1062:根据配置表中connectionstring是否有配置(是否为空),判断是否为数据库直连;如果是,则执行步骤s1063;如果否,则执行步骤s1064。35.s1063:通过配置表中的connectionstring和dbtype构造数据库连接,用配置表中的sqlcommand进行脚本配置,使用标记为{a}、#b#的文本模板引擎进行动态数据替换,形成可执行的update或insert数据库脚本;将构造的数据库脚本通过对应数据库连接执行完成报告发放。36.s1064:若接口约定通过web服务的形式访问,则根据配置表中的webserviceurl定义访问的网络地址,根据配置表中的webservicemethod项定义访问函数名称,根据配置表中的assemblyfullname定义具体执行;若接口约定通过其他组件调用,则根据配置表中的assemblyfullname来指定程序集引用其他组件,组件的引用方式用mef技术进行动态加载;通过反射技术构造assemblyfullname对应程序集的实例,执行程序集实例定义的接口调用过程,将配置表中的param作为入参,其中{a}、#b#形式的数据内容以实际数据通过模板引擎技术替换为实际业务数据;对于非数据库直连的方式获取的数据进行加密。37.s1065:根据构造的程序集中execute函数通过webserviceurl的webservicemethod函数发送报告。38.进一步地,本发明提供的不同病理系统的数据交互方法还包括:将步骤s105得到的数据结构s通过字段类别进行区分,将与病理诊断相关的数据通过专有病理词库进行分词,然后使用mapreduce作业将用于诊断分析的数据存入hadoop集群;将所有数据都按病理系统数据结构存入到病理系统数据库中,并生成相应病理号pathologyid。39.实施例2(db直连方式)s101获取患者信息:用申请号患者标识信息,根据软件接口配置组装成发往his系统的申请消息w;接口配置如下:申请消息组装的方式主要是通过配置表和字段关系表经过组装算法实现,配置表dxdbconfigs结构主要包含接口分类category、表名称tablename、程序集名称assemblyfullname、数据库脚本命令sqlcommand、数据库类别dbtype、数据库连接字符串connectionstring、网络服务地址webserviceurl、网络服务函数webservicemethod、配置文件名称xsltname、请求参数param、配置项说明memo等配置项;字段关系表dataexchangetablemappings主要包含接口分类category、外部数据库表列名columnname、内部数据库表列名propertyname、配置项说明description;具体配置为:category:医嘱提取——表示该配置在接口提取场景下触发tablename:exam.path_test_masteraꢀꢀꢀꢀfullouterjoinexam.exam_masterbona.test_no=b.exam_noꢀꢀꢀꢀleftjoinexam.path_test_tumourcona.test_no=c.test_noꢀꢀꢀꢀleftjoinexam.path_test_womandona.test_no=d.test_noꢀꢀꢀꢀ‑‑leftjoincomm.dept_dicteona.ordering_dept=e.dept_codeꢀ‑‑送检科req_dept室,不是按照orderingdept关联ꢀꢀꢀꢀleftjoincomm.dept_dictfonf.dept_code=b.req_deptꢀꢀꢀꢀleftjoinmedrec.pat_master_indexgonb.patient_id=g.patient_idꢀꢀꢀꢀleftjoininpadm.pats_in_hospitalhonh.patient_id=b.patient_idꢀꢀꢀꢀ‑‑病区是inpadm.pats_in_hospital表中的数据ꢀꢀꢀꢀleftjoincomm.dept_dictioni.dept_code=h.dept_codeꢀꢀꢀꢀleftjoincomm.area_dictjong.birth_place=j.area_codeꢀꢀꢀꢀleftjoin(selecttest_no,count(*)timesfromexam.path_test_mastergroupbytest_no)nona.test_no=n.test_no——把his数据库中所需数据关联查询后的脚本,具体如下,assemblyfullname:dataexchange.getmedicaladvice.beizhong.getmedicaladvicebeizhong——程序集名称,即对应代码中类的全称sqlcommand:null——没有需要额外执行的sql命令dbtype:1——加载oracle访问组件connectionstring:userid=path;password=path;datasource=(description=(address=(protocol=tcp)(host=194.1.2.181)(port=1521))ꢀꢀꢀꢀ(connect_data=(service_name=orcl)));——数据库连接字符串webserviceurl、webservicemethod、xsltname、param均不适用db直连方式。40.s102:确定信息获取接口的协议,根据实际配置:获取配置表配置中对于接口方式的定义d,存在connectionstring配置,d为数据库(connectionstring有配置),表示通过数据库直连的方式获取,需要用数据库字段拼接的方式形成由配置项决定的动态查询语句,具体实现过程为:s1021:根据配置表中指明的数据库类型dbtype(1‑oracle)准备数据库访问组件oracledbconnector,再根据配置项connectionstring建立数据库连接。41.配置表dataexchangetablemappings内容示例如表1所示:表1配置表dataexchangetablemappings内容示例从配置表中的tablename和字段关系表dataexchangetablemappings的columnname:a,propertyname:b;columnname:c,propertyname:d……构造出查询脚本:selectnulltjh,casewhenb.patient_source=1then'门诊'else'住院'endpatientsource,……………………nullpatientageunitfromexam.path_test_masteraꢀꢀꢀꢀfullouterjoinexam.exam_masterbona.test_no=b.exam_noꢀꢀꢀꢀleftjoinexam.path_test_tumourcona.test_no=c.test_noꢀꢀꢀꢀleftjoinexam.path_test_womandona.test_no=d.test_noꢀꢀꢀꢀ‑‑leftjoincomm.dept_dicteona.ordering_dept=e.dept_codeꢀ‑‑送检科req_dept室,不是按照orderingdept关联ꢀꢀꢀꢀleftjoincomm.dept_dictfonf.dept_code=b.req_deptꢀꢀꢀꢀleftjoinmedrec.pat_master_indexgonb.patient_id=g.patient_idꢀꢀꢀꢀleftjoininpadm.pats_in_hospitalhonh.patient_id=b.patient_idꢀꢀꢀꢀ‑‑病区是inpadm.pats_in_hospital表中的数据ꢀꢀꢀꢀleftjoincomm.dept_dictioni.dept_code=h.dept_codeꢀꢀꢀꢀleftjoincomm.area_dictjong.birth_place=j.area_codeleftjoin(selecttest_no,count(*)timesfromexam.path_test_mastergroupbytest_no)nona.test_no=n.test_nowherea.examno=ꢀ‘000001’。42.s1022:用数据库连接oracledbconnector及所生成的sql查询脚本执行命令,得到返回结果集ds。43.s103:根据接口方式定义d和接口字段关系表dataexchangetablemappings的字段配置内容进行返回结果清洗,将步骤s1022得到的返回结果集ds中保留dataexchangetablemappings中columnname配置了的条目组成新的数据结果r,数据结果r只包含需要在病理系统中使用的所有数据,配置表中propertyname为对应的病理系统数据项。44.s104:将步骤s103中结果r根据dataexchangetablemappings中columnname配置项进行对应的propertyname替换,即columnname1‑>propertyname1、columnname2‑>propertyname2、…………columnnamen‑>propertynamen完成所有字段映射,使外部数据彻底转化为内部可识别的数据结构s。45.s104:将转化后的病理系统数据存入关系型数据库;具体步骤为:将步骤s104所得的数据结构s通过字段类别进行区分,将标本部位、临床诊断、肿瘤信息、妇科信息、手术所见等与病理诊断相关的数据通过专有病理词库进行分词,然后使用mapreduce作业将用于诊断分析的数据存入hadoop集群;另外将所有数据都按病理系统数据结构存入到病理系统数据库中,并生成相应病理号pathologyid。46.s105:通过基于接口的报告发放单元发送电子报告至相关科室医生处或患者本人通过自助形式进行报告获取。具体发放步骤为:将步骤s104生成的病理报告以及相关诊断数据通过配置表dxdbconfigs中类别为报告回传或报告归档的配置进行报告发放,dxdbconfigs表内容示例如表2所示:表2dxdbconfigs表内容示例报告发放算法实现过程具体为:s1051:通过配置表dxdbconfigs中的assemblyfullname使用反射技术构造出发送模块,发送模块interface的函数定义为execute(stringpathologyid);用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据不同结构进行发放。47.s1052:报告接收方服务类型为db,通过connectionstring和dbtype构造数据库连接,用sqlcommand进行脚本配置,使用标记为{a}、#b#的文本模板引擎进行动态数据替换,形成可执行的update或insert数据库脚本;本例数据回传接口脚本如下:ꢀꢀbeginꢀꢀꢀꢀupdateexam.path_test_masterꢀꢀꢀꢀsetresult_status='4',final_report_time=’2020‑01‑01’,final_reporter=’张三’,supplement_report_time=’2020‑01‑01’,supplement_reporter={lastreportdr}ꢀꢀꢀꢀwheretest_no=‘000001’;updateexam.exam_mastersetresult_status='4',patient_local_id=’000001’,report_date_time=’2020‑01‑01’,reporter=’李医生’,exam_date_time=’2020‑01‑01’ꢀwhereexam_no=’0000001’;end。48.s1053:报告发放执行,构造好的脚本通过oracledbconnector使用配置的连接字符串接入his系统数据库,并执行回传脚本。49.实施例3(webservice服务方式)s101获取患者信息:用申请号患者标识信息,根据软件接口配置组装成发往his系统的申请消息w;接口配置如下:申请消息组装的方式主要是通过配置表配置和字段关系表配置经过组装算法实现,配置表dxdbconfigs结构主要包含接口分类category、表名称tablename、程序集名称assemblyfullname、数据库脚本命令sqlcommand、数据库类别dbtype、数据库连接字符串connectionstring、网络服务地址webserviceurl、网络服务函数webservicemethod、配置文件名称xsltname、请求参数param、配置项说明memo等配置项;字段关系表dataexchangetablemappings主要包含接口分类category、外部数据库表列名columnname、内部数据库表列名propertyname。具体配置为:category:医嘱提取——表示该配置在接口提取场景下触发tablename:留空——非数据库连接不存在表名assemblyfullnamedataexchange.getmedicaladvice.qingyuan.getmedicaladvicefromwsqingyuan——要运行的程序集全路径sqlcommand、dbtype、connectionstring均不适用webserviceurl:http://172.18.0.63:10019/eaiserver——his提供的webservice服务路径webservicemethod:hipmessageserver——webservice服务对应提取接口的方法名xsltname:清远人民医院提取。xslt——用于结果转换的xslt文件名,默认按照约定会到程序目录下找到该文件进行xml数据转换。50.memo:清远人民医院医嘱提取接口配置——接口配置说明param:<xmlversion="1.0"encoding="gb2312"><documentelement><accesskey>[accesskey]</accesskey><methodname>[method]</methodname><datatable><patient_id>{patientid}</patient_id><inpatient_no>{inpatientid}</inpatient_no><card_no>{outpatientid}</card_no><input_mode>1</input_mode><input_id>{tjh}</input_id><!‑‑>体检用<‑‑><begin_date>#‑365yyyymmddtime#</begin_date><end_date>#yyyymmddtime#</end_date><exec_dept>0320</exec_dept><data_org_id>[fromorg]</data_org_id><data_sys_id>[fromsys]</data_sys_id></datatable></documentelement>——给webservice服务的入参。[0051]s102:确定信息获取接口的协议,根据实际配置。[0052]s1021:获取配置表配置中对于接口方式的定义d,存在connectionstring配置,d为非数据库直连(connectionstring无配置),根据webserviceurl的内容判断为通过webservice的方式用一次网络请求获取信息,由配置项构造发送过程以及入参及出参的转换,具体实现过程为:s1022:webservice方式,根据配置表中webserviceurl的地址和webservicemethod,获取到webservice的web服务描述(wsdl)信息;通过该信息临时创建出webservice调用组件framework.webservice.dynamicwebservicecalling.{随机编码}.dll,通过该组件进行webservice请求得到如下返回结果:u2fsdgvkx190w84kgyu6onjewmaikbahwcvldulvhx2qin7 qn5etimlnuvpy1ytwhxs rtuoiohoaek02w1wyijebl z3ylvdojhvv 3xnrmpmfkpbxo tbxupyuivbc2pfma5oa3p/trv6mz3g6i06nnwnnn7mh8nhbs/vgqjlg vczcl0kem4vd/vg7nkqnx2cng32qbqmkvyseyrmyeurpcli5nrbhuucyv49vuqcqpawln23iv/xcdk8mkddhuubv34cwocfvdd0utjpqxv4iz aoc2tev6nz0iyidd/vg/skljgjgx20qbzjnthjqcuf6cnlmozozissoz3gudsc4mkgb2bldsxykli5w66rvens3pijfmeszx/yqdqt7/lebn ytabfsnomddqoz8nvjmgytvkzr3lclfuc6wmreyllr4ql7ytn/oxurl/gql9dq6q7cvz3azsnicrrxutaq5inpq7yc8efn9tnr8zovwx0wl1mkcdhmjnr5ycexhknuaw lxdrnbcqginniytohkqe86xktcj5mlpt8i s5/0uiaxzw/w61tg47zmj/hiksi4ojskfr51o8jaxxyfwpshdbha9hele9hms9qkxieeu5vxgdgrsw78j7cimvn8lsstdp0rnktjwyngh7u1u9ta0vdqssedl/meiqcjpedkcclsxg4/efbzy4vjoqjxae7jfnaognvxw1c1ufbjvs4yfaxd5mlt2nngr9ll/btmtefthy1vd4s9kbho cuv/g0ptik0c4i/joc2/omuhnw/xpala6keat4/swq891hqc0jqsprbntjxrhmtrtdc09/shy/1j8ygnce/1wcv2ku2a60ttms5vp lyxaemju2itmj8nbl3asisn3sggnxiu pwsh62iau4xbjasa381jzpk4txr3ecqvgw8ye2p3rffjfluts60eyy6moy7goz3wqkpw24wiuyx/yp6wdzs6ztqdrvp7h6tk9 a4k1ykvv2a9r1u/bq6o0yceppn0uq67hsjvccez6qfxs3dhgjodfjedbqfi9wet0 x60pq2yp45b3zvjy62fohea7araqpdbofh5fjce1yow==。[0053]s1023:将密文数据用约定好的密钥解密得到如下明文数据:<data><rspcode>0</rspcode><rspmsg></rspmsg><dataset><row><sqh></sqh><brid>zy12286</brid><xm>杨照友</xm><xb>男</xb><nl>77岁</nl><mz></mz><hf></hf><zy></zy><jg></jg><sfzh>420102194112012810</sfzh><lxxx></lxxx><sjks>泌尿外科住院</sjks><sjys></sjys><sjrq></sjrq><bblx></bblx><bbmc></bbmc><mzh></mzh><zyh>00310090</zyh><bq>泌尿外科住院</bq><ch>19010</ch><fb></fb><lczd>入院诊断:血尿;</lczd><bszy></bszy><sssj></sssj></row></dataset></data>s1024:再由《清远人民医院提取.xslt》进行xml‑>xml的数据转换,形成如下格式的xml数据:<arrayofpitayaxmlns:xsi="http://www.w3.org/2001/xmlschema‑instance"xmlns:xsd="http://www.w3.org/2001/xmlschema"><pitaya><reqnoteid></reqnoteid><patientid>zy12286</patientid><inpatientid>00310090</inpatientid><outpatientid></outpatientid><patientname>杨照友</patientname><patientsex>男</patientsex><patientage>77</patientage><patientageunit>岁</patientageunit><marriage></marriage><nationality></nationality><occupation></occupation><nativeplace></nativeplace><identitycard>420102194112012810</identitycard><contactinfo></contactinfo><inspectiondepartment>泌尿外科住院</inspectiondepartment><inspectiondoctor></inspectiondoctor><inpatientarea>泌尿外科住院</inpatientarea><bednum>19010</bednum><clinicaldiagnosis>入院诊断:血尿;</clinicaldiagnosis><historysummary></historysummary><operativefindings></operativefindings><bblx></bblx><remarks/><bbmc></bbmc><feetype></feetype></pitaya></arrayofpitaya>后者为与病理系统约定的固定格式,不同来源的xml格式数据均转换成此格式。[0054]s103:根据病理系统所需数据进一步做xml节点数据清洗,如:将编码类型的数据转为适合用户阅读的内容medicaladvicecode‑>medicaladvicename、日期格式的出生年月日转换为年龄及年龄单位19900101‑>31岁,数据结果r只包含需要在病理系统中使用的所有数据,数据清洗算法对病理系统中的数字、编码及其他存在数据转换需要的数据项进行校验及清洗,排除掉异常数据得到可用的病理数据;该实例的字段映射算法在xslt文件中体现,原xml‑>新xml的过程即数据映射过程。[0055]s104:将转化后的病理系统数据存入关系型数据库;具体步骤为:将数据映射后的数据通过字段类别进行区分,将标本部位、临床诊断、肿瘤信息、妇科信息、手术所见等与病理诊断相关的数据通过专有病理词库进行分词,然后使用mapreduce作业将用于诊断分析的数据存入hadoop集群;另外将全量数据反序列化后写入病理系统系统数据库中,并生成相应病理号pathologyid。[0056]s105:通过基于接口的报告发放单元发送电子报告至相关科室医生处或患者本人通过自助形式进行报告获取。具体发放步骤为:将步骤s104生成的病理报告以及相关诊断数据通过配置表dxdbconfigs中类别为报告回传或报告归档的配置进行报告发放。[0057]报告发放算法实现过程为:s1051:通过配置表dxdbconfigs中的assemblyfullname使用反射技术构造出发送模块,发送模块interface的函数定义为execute(stringpathologyid);用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据不同结构进行发放。[0058]s1052:报告接收方服务类型为webservice,根据配置表中webserviceurl的地址和webservicemethod,获取到webservice的web服务描述(wsdl)信息;通过该信息临时创建出webservice调用组件framework.webservice.dynamicwebservicecalling.{随机编码}.dll,使用标记为{a}、#b#的文本模板引擎进行动态数据替换,构造消息如下:1$hip1105$<poor_hip1105xmlns="urn:hl7‑org:v3"xmlns:xsi="http://www.w3.org/2001/xmlschema‑instance"itsversion="xml_1.0"xsi:schemalocation="urn:hl7‑org:v3file:///e:/hl7/hl7/v3ballot_fullsite_2011may/v3ballot/html/processable/multicacheschemas/hip1105.xsd">ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑消息id‑‑><idroot="2.16.156.10011.0"extension="d5377580‑50c6‑4d7a‑ae9a‑80eed3d4b072"/>ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑消息发送时间‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀ<creationtimevalue="20100510"/>ꢀꢀꢀꢀꢀꢀꢀꢀ<interactionidroot="2.16.840.1.113883.1.6"extension="hip1105"/>ꢀꢀꢀꢀꢀꢀꢀꢀ<processingcodecode="p"/>ꢀꢀꢀꢀꢀꢀꢀꢀ<processingmodecode/>ꢀꢀꢀꢀꢀꢀꢀꢀ<acceptackcodecode="al"/>ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑消息接受方‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀ<receivertypecode="rcv">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<telecom/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<deviceclasscode="dev"determinercode="instance">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="2.16.156.10011.0.1.1"extension="s003"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</device>ꢀꢀꢀꢀꢀꢀꢀꢀ</receiver>ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑消息发送方‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀ<sendertypecode="snd">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<telecom/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<deviceclasscode="dev"determinercode="instance">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑厂商编码‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="2.16.156.10011.0.1.2"extension="s015"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</device>ꢀꢀꢀꢀꢀꢀꢀꢀ</sender>ꢀꢀꢀꢀꢀꢀꢀꢀ<controlactprocessclasscode="cact"moodcode="evn">ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ触发事件(triggereventidꢀ‑ꢀ2.16.840.1.113883.1.18)@code:new表示停止,update表示更新,delete表示删除ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<codecode="new"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<subjecttypecode="subj"contextconductionind="false">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<placergroup>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ病人信息ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<subjecttypecode="sbj">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ病人ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<patientclasscode="pat">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ病人标识对象ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ域idꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="1.2.156.112635.1.2.1.2"extension="0000001"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ患者idꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="2.16.156.10011.0.2.2"extension="0000001"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑住院号标识‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="2.16.156.10011.1.12"extension="0000001}"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<patientpersonclasscode="psn"determinercode="instance">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑患者身份证号‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemroot="2.16.156.10011.1.3"extension="0000001"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<namexsi:type="bag_en">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<item>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<partvalue="张三"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</item>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</name>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑性别‑‑><administrativegendercodecode="0000001"codesystem="2.16.156.10011.2.3.3.4"codesystemname="生理性别代码表(gb/t2261.1)">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<displaynamevalue="男"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</administrativegendercode>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑出生日期‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<birthtimevalue="19900101"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</patientperson>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<providerorganizationclasscode="org"determinercode="instance">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑病人报告科室编码‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemextension="0320"root="2.16.156.10011.1.26"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑病人报告科室名称ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<namexsi:type="bag_en">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<item>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<partvalue="病理科"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</item>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</name>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<asorganizationpartofclasscode="part">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<wholeorganizationdeterminercode="instance"classcode="org">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑医疗机构代码ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemextension="45711463‑0"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑医疗机构名称ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<namexsi:type="bag_en">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<item><partvalue="清远市人民医院"/></item>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</name>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</wholeorganization>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</asorganizationpartof>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</providerorganization>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</patient>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</subject>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ就诊次数ꢀ‑‑><componentof1contextconductionind="false"typecode="comp"ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀcontextcontrolcode="op">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<encounterclasscode="enc"moodcode="evn">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ就诊次数ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemextension="20200101"root="1.2.156.112635.1.2.1.7"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ门诊/住院就诊流水号ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<itemextension="0000001"root="1.2.156.112635.1.2.1.6"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</id>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑就诊类别编码‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<codecodesystem="2.16.156.10011.2.3.1.271"code="0000001">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ就诊类别名称ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<displaynamevalue="01"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</code>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<statuscodecode="active"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<subjecttypecode="sbj">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<patientclasscode="pat"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</subject>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</encounter>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</componentof1>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</placergroup>ꢀꢀꢀꢀꢀꢀꢀꢀ</subject>ꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑文档体章节‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<component>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<structuredbody>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑整体pdf文档‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<component>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<section>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<codecode="20001"codesystem="2.16.840.1.113883.6.96"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<entry>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<observationmediaclasscode="obs"moodcode="evn">><valuexsi:type="ed"mediatype="application/pdf"></value></observationmedia>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</entry>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</section>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</component>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ文档描述章节‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<componentdisplayname="文档描述信息">ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<section>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<entry>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ关联申请单信息ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<infulfillmentof>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<applicationno>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ关联申请单信息(可多个)循环ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<idextension="0000001"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</applicationno>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</infulfillmentof>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑文件相关信息描述‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<fileinformation>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀfastdfs唯一路径文件上传路径名称‑‑><filepathextension="ftp://172.18.0.98/0000001"displayname="文件上传路径"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ文件名称ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<filenameextension="文件"displayname="文件名称"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</fileinformation>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ报告相关信息ꢀ‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<reportinfomation>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑报告流水号‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<reportsnextension="0000001"displayname="本地系统报告号"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑版本控制流水号‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<reportsntwoextension="88920897‑4c13‑4952‑9783‑6374a7cb671a"displayname="版本控制号"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ报告类型编码‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<reporttypecodecode="009"displayname="报告类型编码"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ报告类型名称‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀ<reporttypenameextension="病理系统报告"displayname="报告类型名称"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑ꢀ报告格式:比如:pdf、jpg、html等‑‑>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<reportmedailtypeextension="pdf"displayname="报告格式"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ<!‑‑报告引用路径地址‑‑><reportpathextension="http://198.16.50.30:8080//report/pitaya/findallname=0000001"displayname="报告浏览地址"/>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</reportinfomation>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</entry>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</section>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</component>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</structuredbody>ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ</component>ꢀꢀꢀꢀꢀꢀꢀꢀ</controlactprocess></poor_hip1105>.s1053:根据配置表中webserviceurl的地址和webservicemethod,获取到webservice的web服务描述(wsdl)信息;通过该信息临时创建出webservice调用组件framework.webservice.dynamicwebservicecalling.{随机编码}.dll,通过该组件进行webservice请求发送上述报告数据。[0059]实施例4实施例4提供了一种不同病理系统的数据交互装置,该装置包括:配置模块:用于创建不同病理系统的接口配置信息,所述接口配置信息包括配置表和字段关系表。[0060]申请信息生产模块:用于获取患者信息并构造申请请求w作为信息提取依据,患者信息用于病理系统作为病理检查登记数据。[0061]信息获取模块:用于根据配置表判断接口定义方式,并根据不同的接口定义方式和配置表中的配置获取返回信息。[0062]数据清洗模块:用于根据字段关系表从返回信息中保留需要在病理系统中使用的数据结果r。[0063]数据映射模块:用于将数据结果r根据字段关系表和转换配置文件进行内容转换,使外部数据转化为内部可识别的数据结构s,数据结构s被病理系统用于展示和维护申请信息或患者信息,同时作为病理报告上患者基础信息的数据源。[0064]数据发送模块:通过配置表使用反射技术构造出发送模块;用病理号pathologyid从病理系统数据库获取到病理报告相关数据及文档,根据配置表中不同的接口定义方式进行发放。[0065]其中,信息获取模块包括:第一接口协议判断单元:用于根据配置表中connectionstring是否有配置,判断是否为数据库直连;如果是,则执行第一数据库连接单元;如果否,则执行非数据库连接单元。[0066]数据库连接单元:用于根据配置表中的dbtype准备数据库访问组件dbconnector,再根据配置表中的connectionstring建立数据库连接,根据字段关系表得到sql查询脚本,根据dbconnector和sql查询脚本得到返回信息。[0067]非数据库连接单元:用于若接口约定通过web服务的形式访问,则根据配置表中的webserviceurl、webservicemethod和assemblyfullname得到返回信息;若接口通过其他组件调用,则根据配置表中的assemblyfullname来指定程序集引用其他组件,组件的引用方式用mef技术进行动态加载,在应用程序调用处做函数签名的调整,通过反射技术构造assemblyfullname对应程序集的实例,执行程序集实例定义的接口调用过程,将配置表中的param作为入参,其中{a}形式的数据内容以实际数据进行替换,#b#作为特殊处理文本的替换;对返回信息进行解密。[0068]数据发送模块包括:发送模块创建单元:用于根据字段关系表中的assemblyfullname使用反射技术构造出发送模块,发送模块interface的函数定义为execute;execute函数根据pathologyid获取病理报告以及相关信息并根据配置表中定义的接口方式执行报告发送。[0069]第一接口协议判断单元:用于根据配置表中connectionstring是否有配置,判断是否为数据库直连;如果是,执行数据库发送单元;如果否,则执行非数据库发送单元。[0070]数据库发送单元:用于通过配置表中的connectionstring和dbtype构造数据库连接,用配置表中的sqlcommand进行脚本配置,使用标记为{a}、#b#的文本模板引擎进行动态数据替换,形成可执行的update或insert数据库脚本;将构造的数据库脚本通过对应数据库连接执行完成报告发放。[0071]非数据库发送单元:用于若接口约定通过web服务的形式访问,则根据配置表中的webserviceurl定义访问的网络地址,根据配置表中的webservicemethod项定义访问函数名称,根据配置表中的assemblyfullname定义具体执行;若接口约定通过其他组件调用,则根据配置表中的assemblyfullname来指定程序集引用其他组件,组件的引用方式用mef技术进行动态加载;通过反射技术构造assemblyfullname对应程序集的实例,执行程序集实例定义的接口调用过程,将配置表中的param作为入参,其中{a}、#b#形式的数据内容以实际数据通过模板引擎技术替换为实际业务数据;对于非数据库直连的方式获取的数据进行加密。[0072]发送执行单元:用于根据构造的程序集中execute函数通过webserviceurl的webservicemethod函数发送报告。[0073]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献