創業軟件醫院信息平臺工程實施手冊_第1頁
創業軟件醫院信息平臺工程實施手冊_第2頁
創業軟件醫院信息平臺工程實施手冊_第3頁
創業軟件醫院信息平臺工程實施手冊_第4頁
創業軟件醫院信息平臺工程實施手冊_第5頁
已閱讀5頁,還剩180頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGE3第一章引 第二章平臺概 第三章平臺構 第四章實施方 第五章實施規 5.5.1 需求與提 醫院是通過統一的標準數據字典和數據交換通訊協議(HL7、CDR、DCIOM等,基于主索引,整合醫院各業務系統的臨床數據,建立臨床數據中心,并基于臨床SOA架構模式,將各業務系統的功能抽PAGE6經過幾年的共同努力,創業醫院產品已正式發布,并在江陰人民醫院SQL醫院管理指標數據標準配置PAGE10及臺系統客戶化修改、系統培訓、系統部署、、項目完成八個階段工作內容,每個及 及平組數組接基實需系UI口礎施求統設施開框培分分計工發架訓析析師程組組組員員軟管軟師質管質師戶方以及公司方的項目共同組成。1組、外部第企業)標準、配置腳懂公司的B/S開發框架項目總負責(協調用戶:項目、項目小組項目小序號數量11PC4顆InXeonE7-4820八核處理器;2、64GB內存;5MSWindowsServer20082CDR是醫院的核1PC顆InXeonE5-2620六核處理器24支持,mpi服務、索,EMRView31PC2顆InXeonE5-2609四核處理器,2、16GB內存;3press,adapter數據與前置機應用,由5MSWindowsServer2008R2646、3年原廠保修服務41、248GBFCSANSwitch口2連接,采用區域網SAN451理軟件及6OracleDatabaseEnterpriseEdition11g50用戶,ESL172“E:/jdk1.6.0”E:\jdk.60\jr1.0PATH,將;%JAVA_HOME Tomcat相關版本,這里的是6.x的版本,地因為用的是exe格式的,所以時候點擊圖中所示的“WindowsServiceInstaller。點擊“I如果你沒有安裝其他的服務器,沒有占有8080測試,打開瀏覽器,輸入或依次點擊“開始”如圖:打開“開始”->“運行”->“cmdnetstarttomcat6”回車,即可啟動tomcat服務,如下圖:Tomcatnetstoptomcat6(ATomcat服務器安裝完畢并正常啟動后,在瀏覽器的地址欄中輸入war解壓項目提供的部署文件壓縮包configServer.war放入Tomcat6.0下的webapps文件 下,并啟動Tomcat服務,即可成功部署應用程序。例:Tomcat安裝 止Tomcat服務,修改數據庫配置文件。在數據庫中創建SSDEV表空間,并運 tform_create.sql 然后修改數據庫的用戶名跟以及連接地址即可,只需修改當前所使用的數據庫連接的用戶名跟以及連接地址,其他數據庫可以不用修改<appid="SOLR"title="檢索<catalogid="MPICATA"title="檢索 title="病歷檢索" <arg 在部署tformtomcat服務器。在部署tform之前確認tform數據庫已被創建。面%tform_home%\WEB-INF\classes\ibatis\pertiesdb連接為我們建立的平臺庫地址。其中tform為庫地/址,his和portal為業務庫修改%WEB-INF\classes\tform\spring\spring-hibernate.xmldb連接修改%tform_home%\WEB-INF\config\spring\spring-service.xml文件中ssdev:application節點中registryAddress="zookeeper://:2181"。 節點為我 發布的訪問地址,例如修改文件%WEB-INF\classes\tform\spring\spring-quartz.xml文件,修改程序定時器的配置。Cron表達式的簡介在文檔結尾。修改文件%comress_homeWEB-INF\classes\ibatis\perties下,type的值只要不是his2即可。服務端的配置已經在提供的war包中配置完成,只需要在需要的客戶端配置即可。注:單點登錄客戶端與服務端的說明:這里的平臺作為服務端,主要提供對用戶名的校驗等功能,客戶端可以是其他的應用,比如emrview,config。需要引入jar包,ssdev-oauth.2.3.2.jar;把consumer配置文件直接放在 1):\webapps\web-inf\lib:在\webapps\項目名\WEB-INF\classes下創建oauth注:consumer的內容如下sample.baseURL:sample.consumerKey:emr在某一個客戶端中,只需要選擇一個,比如令sample.consumerKey為tform,sample.consumerSecret為Aoqvegyxf6UT/SuL/BZI1LWP即可。> 息同步到庫。我們通過觸發器加日志表的方式,即每個表創建相應的觸發器,到平臺庫中。根據表的位置,我們把員工代碼和科室代碼的日志信息保存在operation_log_hisoperation_log_portal中。賬戶共享使用說明:首先在業務庫中創建日志表operation_log_his, tomcat-configServer\webapps\configServer\WEB-INF\classes\ibatis下的perties的jgid的名稱要相同。注:sqlBS-CDR2.1.01.1000-\01-程序\02-可執行程序\門實施人員方便查找,截取了sql的前面部分。擇相應的sql來執行;3:執行觸發器語句,選擇單機構觸發器的oracle版本,。雙擊%tomcat_home%\bin\startup.bat服務<Serverport="8005shutdown="SHUTDOWN">2:http端,地址使用的端<Connectorport="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>端<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>么rpcServerWorkUrl字段后面配置的端和http端要相同。Cron7秒分月年(可選字段問號(?)字符和字母L字符只有在月內日期和日期字段中可用。問號表示這日期值無關緊要。字母Llast的縮寫。放在月內日期字段中,表否則代表當月內日期的最后一個實例。所以“0L”表示安排在當月的最后一個秒0-59,-*/分0-59*0-23*1-31*LW1-12JAN-DEC*1-7SUN-SAT*LC年(可選)1970-2099*"0012**12?****10:15"01510**2005"200510:15*14*0/5140-51410,443WED"2:102:44"01510*MON-FRI"10:15L*10:15*6L"10:15*6#3"10:15 獲得solr修改solr的服務器 件的關于solr的啟動配置信息如下: 的“bin\catalina.bat”文件關于solr的啟動配置信息為: -DzkHost=:2181DnumShards=2”(-DnumShards件關于solr的啟動配置信息為:setJAVA_OPTS=%JAVA_OPTS%-DzkHost=:9080”(solr配置的將項目應用程序WAR包拷貝粘貼到Tomcat/webapps 裝時設置的端,mpi是指Tomcat/webapps 注:Tomcatwebapps下的WARTomcat完成后將WAR包刪除。 根據mpi的數據庫類型選擇相應的數據庫配置,并修改數據庫的連接地址和用戶名, Hais.zip(決策支持系統)解壓置于tomcat\webapps下,在webapps\Hais\WEB-INF\config\springperties文件,庫的用戶名跟以及連接地址即可,只需修改當前所使用的數據庫連接的用戶名跟夾覆蓋,然后重啟tomcat即可Solr下載solr3.5,官方下載地:http: //lucene/solr/3.5.0/選擇apache-solr-3.5.0.zip<?xmlversion="1.0"encoding="utf-war"debug="0"crossContext="true"> override="true"/>注:F:\lucene\solr\apache-solr-3.5.0\dist\apache-solr-3.5.0.war為solr解壓后的warwar<Connectorport="8080"protocol="HTTP/1.1"啟動tomcat,并路徑出現etoSolr!這樣一個簡單的solr+tomcat就部署成功了。//注:地址為固定格式夾中(新建solr文件夾。-Durl=mit=yes-post.jardemo-假設安裝路徑在E:\mongodbMongodb數據庫的數據路徑mongod命令建立一個mongodb數據庫,數據存放路徑mongod.exe–port11111–dbpathE:cdmongo.exe解壓:tarzxvfmongodb-linux-i686- 中cd 鏈接已有的mongodb數據庫./mongodb/bin/mongo這里就建立2222端口。器,這里我就開啟D盤上的mongodb,端口3333。也就是addshard()。的片鍵,在mongodb中設置片鍵要做兩步test數據庫。 chunks:Tomcat服務器安裝完畢并正常啟動后,在瀏覽器的地址欄中輸入war解壓項目提供的部署文件壓縮包medical放入Tomcat6.0下的webapps 下,并啟動Tomcat服務,即可成功部署應用程序。 止Tomcat服務,修改數據庫配置文件。在數據庫中創建表空 SSDEV,并運行medical_create.sql 然后修改數據庫的用戶名跟以及連接地址即可,只需修改當前所使用的數據庫連接的用戶名跟以及連接地址,其他數據庫可以不用修改同理,mongodb的數據庫配址為“webapps\medical\WEB-INF\lib” 改文件中\mongodb mon-0.0.1-SNAPSHOT.jar”文件打開并修改文件Tomcat服務器安裝完畢并正常啟動后,在瀏覽器的地址欄中輸入war下,并啟動Tomcat服務,即可成功部署應用程序。例:Tomcat安裝 止Tomcat服務,修改數據庫配置文件。 地址(綠色框內部分,其他配置改動修改完成后保存文件。在同一臺服務器。部署前請確認服務器已經正確安裝了jdk。010102-可執行程序\portalportal\webapps\configServer\WEB-INF\config\spring\portal\binstartup.bat該程序可以跟門戶程序部署在同一臺服務,視情況而定。但是不要和2)雙擊雙擊 Config\bin\startup.bat啟動服裝了jdk。 controlCentre\webapps\hai-mcentre\WEB-INF\config\spring\controlCentre\webapps\hai-mcentre\WEB-INF\config\ibatis\perties文件controlCentrebinstartup.bat一臺服務器。部署前請確認服務器已經正確安裝了jdk。HaiResouce\dbConfig\ibatis\DicSqlMapConfig.xmlHaiResouce\dbConfig\ibatis\MonitorSqlMapConfig.xml2打開ods\hibernate.cfg.xmlresourceCentrebinstartup.bat服務器。部署前請確認服務器已經正確安裝了jdk。 spring-hai-node.xml文件tomcatList.xml文件haiService\nodes\node_1\webapps\hai-node\WEB-\spring-hai- haiService\control\bin\Jetty-Service.exeadapteradapter數據庫已被創建。件中db連接為我們建立的數據庫地址。中ssdev:application節點中例如:registryAddress="zookeeper://:2181"。rpcServerWorkUrl節點為我們tomcat雙擊%tomcat_home%\bin\startup.bat服務 WEB-INF\classes\ibatis\perties文件%\雙擊%tomcat_home%\bin\startup.bat文件啟動服務 WEB-INF\classes\ibatis\perties文件%\雙擊%tomcat_home%\bin\startup.bat文件啟動服務 修改文件adapter,cdr,config_etl數據庫的連接。修改文件 雙擊%tomcat_home%\bin\startup.bat文件啟動服務Cron7秒分月年(可選字段問號(?)字符和字母L字符只有在月內日期和日期字段中可用。問號表示這當月內日期的最后一個實例。所以“0L”表示安排在當月的最后一個星期日執秒0-59,-*/分0-59*0-23*1-31*LW1-12JAN-DEC*1-7SUN-SAT*LC年(可選)1970-2099*"0012**12"01510**"10:15"01510**10:15***"010,44143WED"2:102:44"01510*MON-FRI"10:15"0151015*1510:15"01510L*10:15"01510*6L"10:15"01510*6L2002-2005"2002200510:15"01510*6#3"10:15 此階段的主要工作是項目實施人員指導用戶對確定后的CDR數據集范圍及數據集5.5.1分類;確認每個數據集的模式(接口、SQL、每個數據集需建立的數據模型,數據模型對應方式。msg.jarpublicclassPatientextendsHaiMsgEntityBaseprivateStringname;//姓privateStringage;// privateString publicStringgetName(){return}publicStringsetName(Stringname){=name;}publicgetAge(){return}publicStringsetAge(Stringage){this.age=age;}publicget(){;}publicStringset }}publicclassInsolationRequestNoteextends{publicList<InsolationItem>}publicclassInsolationItemextendsHaiMsgEntityBasePAGE80}PAGE102在一次以一個為單位的檢驗申請單交互中,消息形式如下publicclassMsgInsolationRequestNoteextendsHaiMsgEntityBase{publicPatientpatient;publicList<InsolationRequestNote>}*注解 packagehai.demo;publicclassOrder{privateHashMap<String,String>header;privateList<OrderItem>items;privateStringid;publicStringgetId(){return}publicvoidsetId(String{this.id=}publicList<OrderItem>{return}publicvoidsetItems(List<OrderItem>{this.items=}publicHashMap<String,String>{return}publicvoidsetHeader(HashMap<String,String>{this.header=}}packagehai.demo;publicclassOrderItem{privateStringproduct;privateStringcount;publicStringgetProduct(){return}publicvoidsetProduct(String{duct=}publicString{return}publicvoidsetCount(String{this.count=}}<property<property<property<?xmlversion="1.0"encoding="UTF-<smooks-resource-listxmlns="<param<param<paramname="input.xml"<jb:beanbeanId="header"class="java.util.HashMap"<jb:valueproperty="@name"data="/order/header/property"<jb:beanbeanId="order"class="order.Order"<jb:valuedata="/order/order-items/order-item/id"<jb:wiringbeanIdRef="items"property="items"<jb:beanbeanId="items"class="java.util.ArrayList"<jb:wiring<jb:beanbeanId="OrderItem"class="order.OrderItem" HaiResouce\msgt\ransform\bean2xml<?xmlversion="1.0"encoding="UTF-<smooks-resource-listxmlns="<param<param<paramname="input.java"<ftl:markerapplyOnElement="#<ftl:temte><![CDATA[<?xmlversion="1.0"encoding="UTF-<#list.vars["order.OrderItem"]as<param<param<param<paramname="tem</ftl:<resource-configselector="# HaiResouce\msgt\ransform\xml2beanXmlXmlHL7消息支持HL7(HealthLevelHL7HIS/RISHIS/RIS編碼規則。它也沒有規定規范說明如何支持OSI第一到第六層的數據。的包括所有已知的程序(Trigger)和數據(SegmentField)HL7(Message)是數據交換的基本單位。HL7(Parser然后,開發一種代碼,它根據規則數據庫的內容,自動生成某一種計算機語言代于資源 HaiResouce\org\hl7\v2*下v2_*為不同醫院版本的區分。HaiResouce\org\hl7\v2*\message HaiResouce\org\hl7\v2*\segment文件夾下 MSHPIDNK1PV1HL7HL7ADT^A04(MSHPIDNK1PV1,那么我們在轉換成XML模板的時候,這個消息的段就可以轉換成這樣:PID等的存放路徑。如圖,MSH消息的基本內容如圖:XMLXMLXML5其中,segmentid=“MSH”name=“消息頭”repetition=”1”分別標識XMLelementidelementname;name示可選。按照這樣的規則就可以將一個字段轉換成XML模板了。號來分隔的,這樣的形式在轉換成XML模板時,如圖6所示轉換:segmentGroup每 segmentGroup間為一個循環體,例如如下消息像xml那樣進行自描述。作該消息(增加、刪除段落,、修改字段等。構造函數HL7Converter(Stringversion):傳入hl7版本號,這里的版本號對應資 下HaiResouce\org\hl7\v2*文件夾。比如:HL7Converterhl7Converter=newHaiResouce\org\hl7\v2bsfot 下獲取HL7模版文件。tempName:模版名稱,例如在HaiResouce\org\hl7\v2bsoft\message下有名為HL7Converterhl7Converter=newMessageconvertMessageToStr(StringtempNameStringdata)hl7MessageconvertMessageToStr(MessagemessageStringdata)hl7Type+_”+Event=模版名稱,例如ADT_A01.xmlEvent=A01MessageconvertMessageToXml(StringtempNameStringxmlData)xml的基類,包括消息、段落、字段、組等等。使用該對象對HL7消息進行。MessagegetChild(intgroup,StringMessagegetChild(StringMap<String,Message>getGroup(intintremoveGroup(intStringStringparseString(StringparML(String<elementid="UniversalServiceIdentifier"<elementid="Identifier"name="化驗ID"<elementid="Text"name=<elementid="AlternateIdentifier"name="組套ID"<elementid="AlternateText"name=publicclassPatientextendsHaiMsgEntityBaseprivateStringname;//姓privateStringage;// privateString publicStringgetName(){return}publicStringname){}publicgetAge(){return}publicStringsetAge(Stringage){this.age=age;}publicget(){;}publicStringset){ }}hai-ods:ODS功能組件。 通過重寫initialization方法來實現初始化的功能。packagepublicclassPerformanceMonitorextendsExtendServiceBase{@Overrideprotectedvoidinitialization()throws{super.initialization();Monitormonitor=newMonitor();}privateclassMonitorextends{publicvoidrun()}}}TaskOutputinvoke(TaskInputinput):該方法不建議重寫,僅僅在以上方法不能滿如果要在流程中使用RPC服務,就必須要使用TaskInput,TaskOutput,[]booleanisReturnable>>使用該參數作為輸出,不過回傳該類型將會獲得功能。 List<String>gotoLables=new <Response><ResultCode]</ResultCode><ResultMsg>[packageimportpublicclassLisOutputAdapterextends{protectedObjecterrInvoke(TaskInputinput)throws{Stringcode="-Stringmesgif(input.getInputArgObj()instanceofException)Exceptionexception=(Exception)input.getInputArgObj();mesg=exception.getMessage();if(exceptioninstanceofHAIException)code=String.valueOf(((HAIException)}}mesg+"</ResultMsg></Response>";}}采用了資源中心的形式來保證集群內資源的,為此平臺提供了DistributedResourcesManage.getFile(Stringpath,IResourceUseruser);DistributedResourcesManage.getFile(Stringpath)Stringpath:文件在資源*注:每個域節點下有一個名為hai-node-data的文件夾,該文件與資源中文IResourceUseruser:資源使用者接口,該接口用于資源的變更獲取多個資源文件:DistributedResourcesManage.getFiles該方法返回DistributedResourcesManage.getFiles(Stringpath,IResourceUseruser);DistributedResourcesManage.getFiles(Stringpath)DistributedResourcesManage.getFiles(Stringpath)和DistributedResourcesManage.getFiles(Stringpath)方都只能在調用的時候從資源DistributedResourcesManage.getFiles(Stringpath,IResourceUserDistributedResourcesManage.getFile(Stringpath,IResourceUseruserpathIResourceUser接口的對象,該方法publicinterface{void} classResourceUserDemoextendsFlowRPCServiceBaseimplementsIResourceUser{protectedvoidinitialization()throwsExceptionFilefile=DistributedResourcesManage.getFile("serviceConfig/"+this.serviceID+"/HL72xTransform.config",this);}publicvoid{try}catch(Exceptione)}}}臺捕獲并且處理。平臺異常由HAIException(hai-util.jar)類定義。booleansave:是否主要記錄該異常,由界面上查看。intcode:異常代碼。Exceptionex:UNDEFINDERR=500;//未定義的異常BASEINITERR=502;//基礎容器啟動錯錯誤SERVICEINSTALLERR=523;//服務部署錯誤SERVICEUNINSTALLERR=524;//服務卸載失敗PROCEDUREEGRUNERR=552;//流程引擎運行錯誤PROCEDUREMONITORERR=554;//流程錯誤ERRSUPPORTERR=555;//流程錯誤FILENOTFOUNT580;//文件未找到FILEREADERROR=581;//文件失敗 使用HaiSysout.print和HaiSysout.println()輸出控制臺消息。通過 /hai-mcentre/console界面查看。 /hai-mcentre/procedureConfig的務應該被發布到LIS域下。衡,必須發布為RPC服務。不同的參數錄入。詳見流程配置5.1使用功能發布服務進試,確認沒有問題后再更新如正式環境。址 編輯流程(拖入步驟,連線,配置參數 驟,這些步驟可以使用程序控制的邏輯來選擇輸出端口,從而控制流程。示了默認的數據流程。,擎,這里簡單的介紹程配置文件。<?xmlversion="1.0"encoding="UTF-<flowConfig name= <step " <editortitle="LISimg="start.png //<stepArgs>:key-value<argkey="name"value="LIS<argkey="inputName"<argkey="returnable"<argkey="logable" <errOut<out <next 由于集成平臺使用統一的WebService調用接口,所以需要用調用一個RPC服務,需要配置參數 可以轉調RPC服務,并且使用該服務的返回值。用于調用WebService,該步驟可以調用第WebService。在實露WebService接口,然后使用該步驟接入平臺。 參考 LIS在配置時需要以KeyValue的形式制定需要翻轉的。xPath以及字典名稱。item/patient XML內的值使用的 字典,相關規則請查看xPathLISLIS且查詢結果保存到ODS中。在該流程中我們發現:1) packagepackage{protectedObjecterrInvoke(TaskInputinput)throwsException{Stringcode="-Stringmesg"無法解析的異常{Exceptionexception=(Exception)mesg=}return"<Response><ResultCode>"+code+"</ResultCode><ResultMsg>"+mesg+}} 在制作消息時盡量在消

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論