(function ($) { var HOST = '/icss-web'; // var HOST = 'http://192.168.3.12:8080/icss-web'; // var HOST = 'http://192.168.2.165:8080/icss-web'; // var HOST = 'http://192.168.2.164:8080/icss-web'; // var HOST = 'http://192.168.3.12:8080/icss-web'; var draw_tmpl = { tooltip: { trigger: 'axis' }, grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, yAxis: { type: 'value' }, xAxis: { type: 'time', boundaryGap: ['10%', '10%'] } }; //绘制 function draw($wrapper, option) { var eChart = echarts.init($wrapper[0]); eChart.setOption(option); $(window).resize(function () { eChart.resize(); }); } function _genOneDrawData(obj) { if (!obj) { return null; } var draw_option = { legend: { data: [] }, series: [] }; $.each(obj, function (k, v) { if(!v || !v.length){ return; } var _data = v[0], name = _data.itemName, data = []; draw_option.legend.data.push(name); $.each(v, function (i, item) { data.push([parseInt(item.itemTime), item.itemValue]); }); data.sort(function (item1, item2) { return new Date(item1[0]) - new Date(item2[0]); }); draw_option.series.push({ type: 'line', name: name, smooth: true, smoothMonotone: 'x', data: data }); }); return $.extend(true, draw_option, draw_tmpl); } function genDrawData(data) { var return_data = [], draw_data; for (var i = 1; i < 4; i++) { draw_data = _genOneDrawData(data[i]); if (draw_data) { return_data.push(draw_data); } } return return_data; } function genIndicatorInfo(data) { var $indicator = $('#indicator'), $wrapper = $indicator.find('.canvas-wrapper'), $proteins,$blood_sugar,is_odd,dif=0; var len = data.length; if (len === 0) { return; } $indicator.show(); is_odd=len % 2 === 1; if (is_odd) { $wrapper.append('
'); } for (var i = 1; i < len; i++) { $wrapper.append('
'); } i=0; $proteins=$wrapper.find('.protein'); if(is_odd){ $blood_sugar=$wrapper.find('.blood-sugar'); draw($blood_sugar, data[0]); i=1; dif=1; } for (; i < len; i++) { draw($proteins.eq(i-dif), data[i]); } } function addInfo(data) { return data ? data : ''; } function genPersonInfoData(data) { var sex_map = { '1': '男', '2': '女' }, birthday = new Date(data.cusBrithday), year = birthday.getFullYear(), month = birthday.getMonth() + 1, day = birthday.getDate(), now = new Date(), now_year = now.getFullYear(), now_month = now.getMonth() + 1, now_day = now.getDate(), age; age = now_year - year; if (now_month > month) { age += 1; } else if (now_month === month) { if (now_day >= day) { age += 1; } } return { 'name': data.cusName, 'sex': sex_map[data.cusSex] ? sex_map[data.cusSex] : '未知', 'identity': data.cusIdentity, 'phone': data.cusPhone, 'birthday': year + '-' + month + '-' + day + '|' + age + '岁', 'body': (data.cusHeight ? (data.cusHeight + 'cm|') : '') + (data.cusWeight ? (data.cusWeight + 'kg|') : '') + data.cusBim, 'liveAddress': data.cusLiveAddress, 'workUnit': data.cusWork } } //初始化个人基本信息 function initPersonInfo(data) { var $personal = $('#personal'), $tds = $personal.children('.wrapper').find('td'); $tds.filter('[data-type=name]').text(addInfo(data.name)); $tds.filter('[data-type=sex]').text(addInfo(data.sex)); $tds.filter('[data-type=birthday]').text(addInfo(data.birthday)); $tds.filter('[data-type=identity]').text(addInfo(data.identity)); $tds.filter('[data-type=phone]').text(addInfo(data.phone)); $tds.filter('[data-type=body]').text(addInfo(data.body)); $tds.filter('[data-type=work-unit]').text(addInfo(data.workUnit)); $tds.filter('[data-type=live-address]').text(addInfo(data.liveAddress)); } function genMedHistoryInfoData(data) { return { 'pastInfo': data.pastInfoList, 'medicineInfo': data.medicineInfoList, 'mainQuestion': data.complicatInfoList } } function separate(str) { return str.replace(/;;|;;/,';'); } //初始化病史信息 function initMedHistoryInfo(data) { var $medical_history = $('#medical-history'), $tds = $medical_history.children('.wrapper').find('td'), arr = [undefined, [], [], [], []], medication = [], main_question = []; if (!data.pastInfo && !data.medicineInfo && !data.mainQuestion) { return; } $.each(data.pastInfo, function (i, v) { var date=''; if(v.recordDate){ var data=new Date(v.recordDate); date+='('+data.getFullYear()+'-'+(data.getMonth()+1)+'-'+data.getDate()+')'; } arr[v.pastType].push(date+v.pastSummary); }); $.each(data.medicineInfo, function (i, v) { medication.push(v.drugName); }); $.each(data.mainQuestion, function (i, v) { main_question.push(v.disName); }); $tds.filter('[data-type=post]').text(separate((addInfo(arr[1].join(';'))))); $tds.filter('[data-type=family]').text(separate(addInfo(arr[2].join(';')))); $tds.filter('[data-type=allergy]').text(separate(addInfo(arr[3].join(';')))); $tds.filter('[data-type=other]').text(separate(addInfo(arr[4].join(';')))); $tds.filter('[data-type=medication]').text(separate(addInfo(medication.join(';')))); $tds.filter('[data-type=main-question]').text(separate(addInfo(main_question.join(';')))); $medical_history.show(); } //初始化就诊记录 function initMedRec(data) { var $recording = $('

' + data.time.split(' ')[0] + '

'), $content = $('
'), $group, $group_content; if (data.hpis.length) { $group = $('
'); $group.append('

' + '【现病史】' + '

'); var str = ''; $.each(data.hpis, function (i, v) { str += v; }); $group.append('

' + str.replace(/#/g,'') + '

'); $content.append($group); } if (data.vitals.length) { $group = $('
'); $group.append('

' + '【体征】' + '

'); str = ''; $.each(data.vitals, function (i, v) { str += v; }); $group.append('

' + str.replace(/#/g,'') + '

'); $content.append($group); } // if (data.lisesStr.length) { // $group = $('
'); // $group.append('

' + '【化验】' + '

'); // $group_content = $('

'); // $group.append($group_content); // $.each(data.lisesStr, function (i, v) { // if (v.type === '1') { // $group_content.append('

' + v.name + '' + v.val + v.unit + '(正常值:' + Number(v.minVal).toFixed(2) + '--' + Number(v.maxVal).toFixed(2) + ')

'); // } else if (v.type === '2') { // $group_content.append('

' + v.name + '' + v.val + '

'); // } // }); // $content.append($group); // } if (data.lisesStr.length) { $group = $('
'); $group.append('

' + '【化验】' + '

'); $.each(data.lisesStr, function (i, v) { $group.append('

' + v.replace(/#/g,'') + '

'); }); $content.append($group); } if (data.pacses.length) { $group = $('
'); $group.append('

' + '【辅检】' + '

'); $group_content = $('

'); $group.append($group_content); $.each(data.pacses, function (i, v) { $group_content.append('

' + v + '

'); }); $content.append($group); } $recording.append($content); if (data.intervenes) { var arr = data.intervenes.split('#'); arr.pop(); $group = $('
'); $group.append('

' + '【干预建议】' + '

'); $group_content = $('

'); $group.append($group_content); $.each(arr, function (i, v) { var one_arr = v.split(':'), title_w = byteLen(one_arr[0]) * 7, $title = $('

' + one_arr[0] + ':

'), str = ''; $group_content.append($title); if (one_arr.length > 1) { var son_arr = one_arr[1].split('&&'); for (var i = 0, len = son_arr.length; i < len; i++) { var _str = son_arr[i]; str += _str + '
'; } } $group_content.append('

' + str + '

'); }); $content.append($group); } return $recording; function byteLen(target) { var byteLength = target.length, i = 0; for (; i < byteLength; i++) { if (target.charCodeAt(i) > 255) { byteLength++; } } return byteLength; } } //创建就诊信息 function genMedInfo(data) { var $medical_records = $('#medical-records'), $recordings = $(), $wrapper = $medical_records.find('.recording-wrapper'); if (data.length === 0) { return; } $.each(data, function (i, v) { $recordings = $recordings.add(initMedRec(v)); }); $wrapper.append($recordings); $medical_records.show(); $recordings.find('p[data-re=y]').each(function () { var $p = $(this); $p.css('top', $p.next().position().top); }); } function initMedRec2(details, time) { if (!details.length) { return null; } var arr = [[], [], [], [], [], [], [], [], [], []]; var title_arr = ['【主诉】', '【现病史】', '【既往史】', '【其他史】', '【体征】', '【化验】', '【辅检】', '【诊断】', '【治疗】', '【干预建议】'] var date = new Date(time); var $recording = $('

' + (date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate()) + '

'), $content = $('
'); $.each(details, function (i, v) { arr[v.type].push(v.itemDescribe); }); $.each(arr, function (i, v) { if (!v.length) { return; } $content.append('

' + title_arr[i] + '

' + v.join(';') + '

') }); $recording.append($content); return $recording; } function genMedInfo2(data) { var $medical_records = $('#medical-records'), $recordings = $(), $wrapper = $medical_records.find('.recording-wrapper'); if (data.length === 0) { return; } $.each(data, function (i, v) { $recordings = $recordings.add(initMedRec2(v.details, v.clinicTime)); }); $wrapper.append($recordings); $medical_records.show(); } //初始化整个页面 function init() { var url_obj = (function () { var r = window.location.search.substr(1).split("&"), obj = {}; $.each(r, function (i, v) { if (v) { var arr = v.split("="); obj[arr[0]] = arr[1]; } }); return obj; })(); $.getJSON(HOST + '/ch/customer/get_customer_info_by_patient_id', { patientId: url_obj.patientId, hospitalId: url_obj.hospitalId }, function (res) { var data = res.data; initPersonInfo(genPersonInfoData(data)); initMedHistoryInfo(genMedHistoryInfoData(data)); genIndicatorInfo(genDrawData(data.map)); }); $.getJSON(HOST + '/chronic_controller/get_record_info', { patId: url_obj.patientId, hospitalId: url_obj.hospitalId }, function (res) { var data = res.data; if (data.recodeType === 1) { genMedInfo(data.recodeList); } else if (data.recodeType === 2) { genMedInfo2(data.recodeList); } }); } init(); })(jQuery);