var Profile = { url: '', link: '', thatEventId: '', thatPromise: null, thatTempalteCode: '', thatSerial: '', thatPageContent: null, index: 0, firstCode: '', profileRes: [], dc: [], htmlStr:['
', '', '
抱歉,暂未找到符合条件的结果。
', '
'].join(''), init: function (ops) { var me = this; if (!(!!ops && typeof ops === 'object')) { showTip('参数有误!'); return; } ops.cb && ops.cb.call(me); me.url = ops.url; me.link = ops.link; me.thatPromise = ops.thatPromise; me.thatEventId = ops.thatEventId; me.thatTempalteCode = ops.thatTempalteCode; me.thatSerial = ops.thatSerial; me.thatPageContent = ops.thatPageContent; me.index = 0; me.firstCode = ''; me.profileRes = []; me.dc = []; window['dataCode']=[]; }, //获取模板 templateRequest: function () { var me = this; return new me.thatPromise(function(resolve, reject) { $.ajax('../template/'+me.thatTempalteCode+'.html', { dataType: 'html', type:'GET', error: function(xht, type, throwErr) { showTip("档案模板获取失败。"); }, success: function(html) { resolve(html); } }) }) }, //根据thatTempalteCode获取数据 profileDataRequest: function () { var me = this; return getReqPromise( me.url,{ event: me.thatEventId , // 事件ID catalog: me.thatTempalteCode, // 档案类型 serial: me.thatSerial || "1" // 该类别顺序号,默认填1 },'JSON','GET'); }, promiseAll: function () { var me = this, fistDc = me.thatTempalteCode; Promise.all([ me.templateRequest(), me.profileDataRequest()]).then(function (datas) { var html = datas[0]; me.profileRes.push(datas[1]); me.thatPageContent.html(html); me.firstCode = me.thatTempalteCode; me.dc = window['dataCode']; if (me.dc.length > 0) { me.reqDataMore(me); } else { me.changeData(fistDc); } }).catch(function(e) {d.close();console && console.error(e);}); }, //获取多个数据 reqDataMore: function (me) { me.thatTempalteCode = me.dc[me.index]; Promise.all([ me.profileDataRequest()]).then(function (datas) { me.profileRes.push(datas[0]); me.index++; if (me.dc.length > me.index) { me.reqDataMore(me); } else { me.changeData(me.firstCode); } }); }, changeData: function (fistDc) { var me = this, jsonData = []; me.dc.unshift(me.firstCode); $.each( me.profileRes, function (index) { jsonData.push(me.selectXmlDom(me.profileRes[index],me.dc[index])); }); if (jsonData.length > 0) { if (jsonData.length === 1 && !!!jsonData[0]) { me.thatPageContent.html(me.htmlStr); } else { var data = me.mosaicData(jsonData); me.renderProfileTemplate($.extend(true,{},data)); } } else { me.thatPageContent.html(me.htmlStr); } d.close(); }, //渲染模板 renderProfileTemplate: function (data) { this.thatPageContent.removeAttr('avalonctrl').attr('ms-controller',"viewController"); var vm = avalon.define($.extend({},{"$id": "viewController"},data)); avalon.scan(); }, //获取xml数据 selectXmlDom: function (profileRes,tempalteCode) { var me = this, $dom = $(profileRes.data.replace(/<\?xml .*\?>/,'')), version = $dom.find(">version").length?$dom.find(">version").attr("code"):$dom.attr('version'); $.trim(version) || (function () { version = $dom.find(">ClinicalDocument").length? '2.0.0.1' : ''; })(); if($.trim(version)) { var verNum = version.split('.')[0]; var xmlToJson = window["dsXmlToJson"+tempalteCode+'_'+verNum], jsonData = {}; if(xmlToJson && $.isFunction(xmlToJson)) { if(!profileRes.data || profileRes.data=="[]") { if(version=2) { profileRes.data = ''; } else { profileRes.data = ''; } } // xml 转 json if((typeof profileRes.data=='string')&&profileRes.data.constructor==String) { // 去除携带的脚本内容 profileRes.data = profileRes.data.replace(/]*?>[\s\S]*?<\/script>/ig,''); // console.log(profileRes.data.replace(/<\?xml .*\?>/,'')) jsonData = xmlToJson(profileRes.data.replace(/<\?xml .*\?>/,'')); } } return jsonData; } }, //数据拼接 mosaicData: function (data) { for (var i = 1; i < data.length; i++) { data[i] && (function () { for (key in data[i]['data']) { data[0]['data'][key] = data[i]['data'][key]; } })(); } return data[0]; } }; var dataCode = []; var Request = GetRequest(), eventId = Request.event, typeName = decodeURIComponent(Request.typeName), serial = Request.serial, catalog = Request.catalog; var d = dialog({contentType:'load', skin:'bk-popup'}); var $profileItemList = $('.lin-sel-group'), // 搜索无结果时显示 $noResultWrap = $('#no_result_wrap'), $selectedProfileName = $('#selected_profile_name'), $pageContent = $('.page-content'); // 分页查询当前页数 var curPage = 1, // iscroll 滚动条实例 iscroller; // 初始化就诊事件列表 initProfileList = function() { $selectedProfileName.text(typeName); if(catalog) { getProfileTemplateHtml(catalog); } }, getProfileTemplateHtml = function(tempalteCode){ if(!(/^0[12]\d{2}/.test(tempalteCode))) { dialog({ content: '对不起,因数据对接问题,暂不支持本记录的展示,请查看其他就诊记录。', okValue:'我知道了', ok: function (){ window.history.go(-1); } }).showModal(); return ; } d.show(); Profile.init({ url: "patient/archives/event/healthData", link: '../template/'+tempalteCode+'.html', thatPromise: Promise, thatEventId: eventId, thatTempalteCode: tempalteCode, thatSerial: serial, thatPageContent: $pageContent, }); Profile.promiseAll(); }, showTip = function(msg) { if(msg) { var d = dialog({contentType:'', skin:'bk-popup',content: msg}).show(); setTimeout(function() { d.close(); },1000) } }, // 绑定页面事件 bindEvents = function () { $('#xiangqing_btn').on('click',function() { window.location.href = 'event-profile.html?event='+eventId+'&catalog='+catalog }); }; // 页面业务处理流程开始 getReqPromise('patient/archives/event/catalog',{event: eventId},'JSON','GET') .then(function(res) { if(res.status==200) { catalogs = res.data } else { showTip('档案类型获取失败。'); } },function() { showTip('档案类型获取失败。'); }).then(function() { initProfileList(); // 绑定页面事件 bindEvents(); }).catch(function(e) { console && console.error(e); });