瀏覽代碼

cdss6.0(未完成)

zhangxc 4 年之前
父節點
當前提交
2e734cde9f
共有 6 個文件被更改,包括 1404 次插入8 次删除
  1. 536 0
      src/css/cdss.less
  2. 51 0
      src/html/cdss.html
  3. 433 0
      src/js/cdss.js
  4. 362 0
      src/js/cdssDom.js
  5. 6 6
      src/js/promise.js
  6. 16 2
      webpack.config.js

+ 536 - 0
src/css/cdss.less

@@ -0,0 +1,536 @@
+@import './common.less';
+
+.iframeWrap {
+    margin: 10px auto 50px;
+    padding: 0 20px 20px 20px;
+    min-width: 340px;
+    overflow-y: auto;
+}
+
+.recommendInfoWrapper {
+    border: 1px solid #F2F2F2;
+    margin-bottom: 5px;
+
+    h4 {
+        color: #000;
+        // height: 24px;
+        line-height: 24px;
+        background-color: #FAEBEC;
+        font-size: 16px;
+        font-weight: bold;
+    }
+}
+
+.recommendInfoWrapper h4 i {
+    content: '';
+    width: 18px;
+    height: 18px;
+    float: left;
+    position: relative;
+    top: 3px;
+    margin: 0 12px;
+}
+
+.symptomRecommend,
+.physiExamRecommend,
+.labAndPacsRecommend {
+    h4 {
+        background-color: #ECF4FC;
+    }
+}
+
+.treatRecommend,.knowledgeInfo,.scaleInfo {
+    h4 {
+        background-color: #E3FEFE;
+    }
+}
+.tipsInfo {
+    h4 {
+        background-color: #E3FEFE;
+    }
+}
+
+
+.conditTips {
+    h4 {
+        background-color: #FDF4EE;
+    }
+}
+.warning{
+    background-color: #FF8D54;
+    font-size: 14px;
+    h4 {
+        background-color: #FF8D54;
+        font-size: 14px;
+        color: #fff;
+        line-height: 30px;
+        display: inline-block;
+        margin: 0 20px 0 0;
+        i{
+            margin: 0 12px 0 0;
+        }
+    }
+    .recommendInfoBox{
+        display: inline-block;
+    }
+    .recommendInfoItem{
+        display: inline-block;
+        float: none;
+        color: #fff;
+    }
+}
+
+.recommendInfoBox {
+    padding: 4px 17px;
+}
+
+.treatRecommend h4 i,.knowledgeInfo h4 i,.scaleInfo h4 i {
+    background: url(/images/zhiliao.png) center center no-repeat;
+}
+.tipsInfo h4 i {
+    background: url(/images/zhiliao.png) center center no-repeat;
+}
+
+.conditTips h4 i {
+    background: url(/images/tips.png) center center no-repeat;
+}
+
+.symptomRecommend h4 i {
+    background: url(/images/inquire.png) center center no-repeat;
+}
+
+.physiExamRecommend h4 i {
+    background: url(/images/tgjc.png) center center no-repeat;
+}
+
+.labAndPacsRecommend h4 i {
+    background: url(/images/inspect.png) center center no-repeat;
+}
+
+.warning h4 i {
+    background: url(/images/warings.png) center center no-repeat;
+}
+
+.diagRecommend h4 i {
+    background: url(/images/yszd.png) center center no-repeat;
+}
+
+.recommendInfoItem {
+    padding-right: 15px;
+    float: left;
+    line-height: 21px;
+    position: relative;
+}
+
+.infoMsg,
+.infoMsgOn {
+    position: absolute;
+    top: 4px;
+    right: 0;
+}
+
+.infoMsg,
+.infoMsgOn {
+    display: none;
+    cursor: pointer;
+}
+
+.recommendInfoItemHasInfo:hover,
+.diagNameBox:hover,
+.durgNameBox:hover {
+    color: #267FD7;
+
+    .infoMsg {
+        display: inline-block;
+        width: 14px;
+        height: 14px;
+        background: url(/images/msg1.png) center center no-repeat;
+    }
+
+    .infoMsg:hover {
+        background: url(/images/msg2.png) center center no-repeat;
+    }
+}
+
+// .diagNameBox:hover {
+//     color: #267FD7;
+//     .infoMsg {
+//         display: inline-block;
+//         width: 16px;
+//         height: 16px;
+//         background: url(/images/msg1.png) center center no-repeat;
+//     }
+//     .infoMsg:hover {
+//         background: url(/images/msg2.png) center center no-repeat;
+//     }
+// }
+.diagNameBox,
+.durgNameBox {
+    position: relative;
+    padding-right: 15px;
+    display: inline-block;
+    .infoMsg, .infoMsgOn {
+        top: 6px;
+    }
+}
+.durgName, .diagName{
+    border-bottom: 1px solid #1E1E1E;
+}
+.sriticalinfo {
+    height:30px;
+    background:#F5F5F5;
+    line-height: 30px;
+    margin: 10px 0;
+}
+.recommendInfoBox p {
+    line-height: 21px;
+}
+
+.commonTreatmentbox {
+    padding-bottom: 10px;
+    border-bottom: 1px solid #D1D1D1;
+}
+
+.drugTreatmentbox {
+    padding-top: 10px;
+}
+
+.illnessTable {
+    color: #267FD7;
+    line-height: 21px;
+    cursor: pointer;
+}
+
+.labAndPacsBox {
+    position: relative;
+    line-height: 21px;
+}
+
+.alertModal {
+    position: relative;
+
+    .mayResult {
+        color: #838383;
+        position: relative;
+    }
+
+    .mayResultSelect {
+        line-height: 21px;
+
+        .makesureResult {
+            cursor: pointer;
+            color: @colorBlue;
+        }
+
+        .sanjiao {
+            width: 18px;
+            height: 18px;
+            display: inline-block;
+            position: relative;
+            top: 3px;
+            background: url('../images/select.png') center center no-repeat;
+        }
+    }
+}
+
+.recommendInfoItemBox {
+    position: relative;
+}
+
+.recommendInfoItemBoxLimit {
+    height: 21px;
+    overflow: hidden;
+    position: relative;
+}
+
+.commonTreatmentInfoLimit {
+    height: 75px;
+    overflow: hidden;
+    position: relative;
+}
+
+.slideDown {
+    background-color: #fff;
+    position: absolute;
+    bottom: 0px;
+    right: 0px;
+    color: @colorBlue;
+    height: 21px;
+    line-height: 21px;
+    box-shadow: -2px 0px 15px 0px #fff;
+    cursor: pointer;
+
+    i {
+        width: 10px;
+        height: 7px;
+        display: inline-block;
+        position: relative;
+        // top: -2px;
+        background: url('../images/down.png') center center no-repeat;
+    }
+}
+
+.slideup {
+    background-color: #fff;
+    position: relative;
+    float: right;
+    bottom: 0px;
+    right: 0px;
+    color: @colorBlue;
+    cursor: pointer;
+    height: 21px;
+    line-height: 21px;
+    box-shadow: -2px 0px 15px 0px #fff;
+
+    i {
+        width: 10px;
+        height: 7px;
+        display: inline-block;
+        position: relative;
+        // top: -2px;
+        background: url('../images/up.png') center center no-repeat;
+    }
+}
+
+.responsibility {
+    text-align: center;
+    font-size: 12px;
+    color: #979797;
+    padding-top: 15px;
+    position: fixed;
+    width: 100%;
+    bottom: 30px;
+    background-color: #fff;
+}
+.disclaimer {
+    height: 26px;
+    width: 100%;
+    line-height: 26px;
+    position: fixed;
+    bottom: 0;
+    background-color: #fff;
+    left: 0;
+    z-index: 98;
+    .version-tip{
+        margin-left: 20px;
+        font-size: 12px;
+        padding-right: 34px;
+        cursor: pointer;
+        &.new-icon{
+            background: url(../images/new.png) 100% 0px no-repeat;
+        }
+    }
+    .logo {
+        // float: left;
+        font-size: 12px;
+        margin-left: 15px;
+    }
+    .disclaimerInfo {
+        float: right;
+        font-size: 12px;
+        margin-right: 15px;
+    }
+}
+
+.labAndPacsTitle {
+    border-right: 2px solid #ADADAD;
+    padding-right:5px; 
+    margin-right: 5px;
+}
+.labAndPacsItem {
+    display: inline-block;
+    padding-right: 15px;
+}
+
+.recommendNull,.TipsInfoNull {
+    color: #ADADAD;
+}
+.treatItemTitle {
+    font-weight: bold;
+    padding-bottom: 5px;
+}
+.disclaimerInfo {
+    cursor: pointer;
+}
+.moreInfo {
+    display: inline-block;
+    width:42px;
+    height:20px;
+    border-radius:4px;
+    border:1px solid #267FD7;
+    line-height:20px;
+    color: #267FD7;
+    text-align: center;
+    margin-left: 20px;
+    cursor: pointer;
+}
+.durgNameBox {
+    .medicineWaring {
+        background-color: #f4c051;
+        color: #000;
+        font-size: 12px;
+        border-radius: 4px;
+        border: 1px solid #fff;
+        line-height: 18px;
+      }
+      .medicineWaringDisMsg {
+        background-color: #fff;
+        color: @grayColor;
+        font-size: 12px;
+        border-radius: 4px;
+        line-height: 18px;
+        border: 1px solid @grayColor;
+      }
+      .medicineWaringDisMsg {
+        color: @grayColor;
+      }
+}
+.medicineWaringDis {
+    color: @grayColor;
+    .durgName{
+        border-bottom: 1px solid @grayColor;
+    }
+  }
+.medicineWaringDis:hover {
+    color: @grayColor;
+}
+
+.staticWin {
+    color: #040428;
+    text-decoration: underline;
+    cursor: pointer;
+}
+.line {
+    width: 100%;
+    height: 1px;
+    background: #D1D1D1;
+}
+.diagTitle {
+    color: #3b9ed0;
+    position: relative;
+    margin: 0 0 10px;
+    font-weight: 500;
+    i {
+        position: relative;
+        display: inline-block;
+        width: 4px;
+        height: 4px;
+        background: #3b9ed0;
+        border-radius: 50%;
+        top: -4px;
+        margin-right: 6px;
+    }
+}
+.diagDescription{
+    color: #333;
+    font-weight: 600;
+    margin: 5px 0 10px;
+}
+.treatItemTitle {
+    position: relative;
+    .slideDown {
+        font-weight: normal;
+        bottom: 5px;
+    }
+}
+.empty{
+    position: relative;
+    top: 200px;
+}
+.emptyImg{
+    width: 100px;
+    position: relative;
+    left: 50%;
+    margin-left: -50px;
+}
+.emptyTxt{
+    text-align: center;
+    color: #AAA;
+    font-size: 12px;
+}
+.titleIcon{
+    width: 16px;
+    margin: 0px 12px 0 12px;
+    position: relative;
+    top: 2px;
+}
+.warningbox{
+    .titleIcon{
+        width: 16px;
+        margin: 0px 12px 0 -5px;
+        position: relative;
+        top: 2px;
+    }  
+}
+.loading{
+    position: fixed;
+    width: 100%;
+    height: 100%;
+    left: 0;
+    top: 0;
+    z-index: 100;
+    display: none;
+}
+.loadingMask{
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    background-color: #fff;
+    opacity: 0.5;
+    filter:alpha(opacity=50);
+    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=50);";
+}
+.loadingImg{
+    width: 40px;
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    margin: -20px 0 0 -20px;
+}
+.emergency {
+    position: fixed;
+    right: 20px;
+    top: 0;
+    .disPub {
+        width: 40px;
+        height: 40px;
+        line-height: 40px;
+        position: absolute;
+        left: 0;
+        text-align: center;
+        border-radius: 50%;
+        color: #fff;
+        background-color: #f93333;
+    }
+    .singleDis {
+        left: -25px;
+        display: none;
+    }
+    .allDis {
+        display: none;
+        z-index: 10;
+        moz-user-select: -moz-none;
+        -moz-user-select: none;
+        -o-user-select: none;
+        -webkit-user-select: none;
+        -ms-user-select: none;
+        user-select: none;
+        position: fixed;
+        top: 0;
+        right: 5px;
+        width: auto;
+        height: 40px;
+        line-height: 40px;
+        border-radius: 22px;
+        border: 2px solid #f93333;
+        background-color: #fff;
+        padding-left: 50px;
+        padding-right: 30px;
+        cursor: pointer;
+        .right {
+            position: absolute;
+            right: 5px;
+            top: 9px;
+        }
+    }
+}

文件差異過大導致無法顯示
+ 51 - 0
src/html/cdss.html


+ 433 - 0
src/js/cdss.js

@@ -0,0 +1,433 @@
+require('./../css/reset.css');
+require('./../css/cdss.less');
+require('./../css/popup.css');
+require('./../images/empty.png')
+require('./../images/loading.gif')
+require('./../images/right.png')
+// require('./popupEdit.js');
+var Promise = require("bluebird");
+let diagFirstImg = require('./../images/yszd.png')
+let diagWarningImg = require('./../images/warning.png')
+let diagPossibleImg = require('./../images/knzd.png')
+let diagIdentifyImg = require('./../images/jianb.png')
+let labAndPacsImg = require('./../images/inspect.png')
+let physiExamImg = require('./../images/tgjc.png')
+let medicalIndicationsImg = require('./../images/tips.png')
+
+
+const $ = require("jquery");
+const { post,config,getUrlArgObject,openNewWin } = require('./promise.js');
+const { transConf } = require('./util.js');
+const {renderWrapper, renderCaseStandard,renderWarning,renderRecommendInfo,renderMultRecommendInfo,renderRecommendConditTips} = require('./cdssDom.js');
+const { render } = require('less');
+
+
+
+let mrId = getUrlArgObject('mrId') 
+const tipsMode = getUrlArgObject('tipsMode') || 1
+let msg;
+
+function getMRInfo() {
+   return post(config.getMr2,{mrId:mrId})
+}
+$('.loading').css("display","block")
+$('.empty').css("display","none")
+getMRInfo().then(res =>{
+    if(res.data.code == '0'){
+        msg = res.data.data
+        window.msg = msg
+        getConf().then(res =>{
+          if(res.data.code == '0'){
+            console.log('data',res.data.data)
+            // const configArr = res.data.data.pushSetList || []
+            // getPageInfo(configArr)
+            const data = res.data.data&&res.data.data[0]
+            renderPage(data)
+          }
+        })
+        // getAnalyse().then(res =>{
+        //   renderCaseStandard('CaseStandard', '病例书写规范', res.data.data.warning)
+        // })
+        // getHosptDeptUsal().then(res =>{
+        //   console.log('ressss', res)
+        //   const diagCommon = res.data.data
+        //   renderRecommendInfo(5,'diagCommon', '常见症状', diagCommon, true,7,2);
+        // })
+      
+    }
+}).catch(function (err) {
+    console.log(err);
+})
+
+// var msg = {
+//     age: getUrlArgObject('age'),
+//     sex: getUrlArgObject('sex') == '男'?1:(getUrlArgObject('sex') == '女'?2:(getUrlArgObject('sex') == '通用'?3:getUrlArgObject('sex'))),
+//     symptom: getUrlArgObject('symptomJson'),
+//     vital: getUrlArgObject('vitalJson'),
+//     lis: getUrlArgObject('lisJson')? JSON.parse(getUrlArgObject('lisJson')) : [],
+//     pacs: getUrlArgObject('pacsJson'),
+//     diag: getUrlArgObject('diagJson'),
+//     diseaseName: getUrlArgObject('diseaseName'),
+//     other: getUrlArgObject('otherJson') + getUrlArgObject('pastJson'),
+//     hosCode:getUrlArgObject('hospitalCode') || '',
+//     plan:getUrlArgObject('plan') || '0',
+// }//推送相关信息
+// //   http://localhost:8082/indexVert.html?age=28&diseaseId=280&lisJson=&diagJson=%E6%80%A5%E6%80%A7%E8%83%B0%E8%85%BA%E7%82%8E&pastJson=%E6%97%A0%E5%BF%83%E8%84%8F%E7%97%85&otherJson=%E6%97%A0%E9%AB%98%E8%A1%80%E5%8E%8B&pacsJson=%E8%85%B9%E9%83%A8B%E8%B6%85:%E6%97%A0%E5%BC%82%E5%B8%B8,%20%E6%8A%A5%E5%91%8A%E6%97%A5%E6%9C%9F:2019-05-07&sex=%E7%94%B7&symptomJson=%E6%81%B6%E5%BF%83%E5%91%95%E5%90%90%E8%85%B0%E7%97%9B&vitalJson=%E8%A1%80%E5%8E%8B%E5%B7%A6%E4%B8%8A%E8%82%A213/12mmHg
+// window.msg = msg
+// window.pushMessage = {}
+function getConf() {
+  var msg = window.msg 
+  return post(config.getPushSet,{hospitalId: 0,planCode: ""})
+}
+
+function getPushInfo() {
+  return  post(config.pushInner,Object.assign({featureType: '1,4,5,6,7,22',ruleType:config.ruleTypeMap['22']},msg))
+  
+}
+
+function getAnalyse() {
+  const param = getAnalyseParam()
+  return  post(config.analyse,param)
+  
+}
+function getHosptDeptUsal(){
+  var msg = window.msg
+  const param ={ 
+    age: msg.age, 
+    deptName: msg.deptName,
+    hospitalCode: msg.hosCode,
+    sexType: msg.sex,
+    type: 1,
+  }
+  return  post(config.getHosptDeptUsal,param)
+}
+
+
+// function getPageInfo(configArr) {
+//   let {confArr, showLabsNum, showPacsNum, labsAndPacMode} = transConf(configArr),
+ 
+//     diagWaring = [{clientNames: null, conceptId: 531694,libType: 18,name: "糖尿病肾病",type: 7},{clientNames: null, conceptId: 531694,libType: 18,name: "糖尿病肾病",type: 7},{clientNames: null, conceptId: 531694,libType: 18,name: "糖尿病肾病",type: 7},{clientNames: null, conceptId: 531694,libType: 18,name: "糖尿病肾病",type: 7},{clientNames: null, conceptId: 531694,libType: 18,name: "糖尿病肾病",type: 7}]
+//     // diagWaring = [],
+//     diagFirst = [],
+//     diagPossible = [],
+//     diagIdentify = [],
+//     labRecommend = [],
+//     pacsRecommend = [],
+//     physiExamRecommend = [],
+//     symptomRecommend = [],
+//     medicalIndications = [],
+//     diagCommon = [],
+//     CaseStandard = [],
+//     labAndPacsRecommend = [],
+//     disName=""
+//     const hasCaseStandard = confArr.findIndex(item => item.code == 'specification_show') > -1
+//     const hasCommon = confArr.findIndex(item => item.code == 'comsympto_show') > -1
+//     if(hasCommon){
+//       if(hasCaseStandard){
+//         Promise.all([getHosptDeptUsal(),getPushInfo(),getAnalyse()]).then(([res1, res2, res3]) =>{
+//           diagCommon = res1&&res.data&&res.data.data&&res.data.data || []
+//           diagWaring = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['警惕'] || []
+//           diagFirst = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['拟诊'] || []
+//           diagDetermine = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['确诊'] || []
+//           diagFirst = diagDetermine.concat (diagFirst)
+//           diagPossible = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['可能诊断'] || []
+//           diagIdentify = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['鉴别诊断'] || []
+//           labRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.lab || []
+//           pacsRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.pacs || []
+//           physiExamRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.vital || []
+//           symptomRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.symptom || []
+//           medicalIndications = res2&&res2.data&&res2.data.data&&res2.data.data.medicalIndications || []
+//           CaseStandard = res3&&res3.data&&res3.data.data&&res3.data.data.warning || []
+//           labAndPacsRecommend = [
+//             {
+//                 title: '化验',
+//                 className: 'labRecommend',
+//                 data:  labRecommend,
+//                 showNum: showLabsNum
+//             },
+//             {
+//                 title: '辅检',
+//                 className: 'pacsRecommend',
+//                 data:  pacsRecommend,
+//                 showNum: showPacsNum
+//             }
+//           ]
+//           window.pushMessage = medicalIndications;//计算的需要的相关数据
+//           renderPageData(confArr,diagWaring,diagFirst,diagPossible,diagIdentify,labAndPacsRecommend,physiExamRecommend,symptomRecommend,medicalIndications,diagCommon,CaseStandard);
+
+//         }).catch(function (err) {
+//           console.log(err);
+//         })
+//       } else{
+//         Promise.all([getHosptDeptUsal(),getPushInfo()]).then(([res1, res2]) =>{
+//           diagCommon = res1&&res1.data&&res1.data.data&&res1.data.data || []
+//           // diagWaring = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['警惕'] || []
+//           diagFirst = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['拟诊'] || []
+//           diagDetermine = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['确诊'] || []
+//           diagFirst = diagDetermine.concat (diagFirst)
+//           diagPossible = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['可能诊断'] || []
+//           diagIdentify = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['鉴别诊断'] || []
+//           labRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.lab || []
+//           pacsRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.pacs || []
+//           physiExamRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.vital || []
+//           symptomRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.symptom || []
+//           medicalIndications = res2&&res2.data&&res2.data.data&&res2.data.data.medicalIndications || []
+//           labAndPacsRecommend = [
+//             {
+//                 title: '化验',
+//                 className: 'labRecommend',
+//                 data:  labRecommend,
+//                 showNum: showLabsNum
+//             },
+//             {
+//                 title: '辅检',
+//                 className: 'pacsRecommend',
+//                 data:  pacsRecommend,
+//                 showNum: showPacsNum
+//             }
+//           ]
+//           window.pushMessage = medicalIndications;//计算的需要的相关数据
+//           renderPageData(confArr,diagWaring,diagFirst,diagPossible,diagIdentify,labAndPacsRecommend,physiExamRecommend,symptomRecommend,medicalIndications,diagCommon,CaseStandard);
+
+//         }).catch(function (err) {
+//           console.log(err);
+//         })
+//       }
+//     }else{
+//       if(hasCaseStandard){
+//         Promise.all([getAnalyse(), getPushInfo()]).then(([res1, res2]) =>{
+//           getPushData(res2)
+//           diagWaring = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['警惕'] || []
+//           diagFirst = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['拟诊'] || []
+//           diagDetermine = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['确诊'] || []
+//           diagFirst = diagDetermine.concat (diagFirst)
+//           diagPossible = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['可能诊断'] || []
+//           diagIdentify = res2&&res2.data&&res2.data.data&&res2.data.data.dis&&res2.data.data.dis['鉴别诊断'] || []
+//           labRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.lab || []
+//           pacsRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.pacs || []
+//           physiExamRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.vital || []
+//           symptomRecommend = res2&&res2.data&&res2.data.data&&res2.data.data.symptom || []
+//           medicalIndications = res2&&res2.data&&res2.data.data&&res2.data.data.medicalIndications || []
+//           CaseStandard = res1&&res1.data&&res1.data.data&&res1.data.data.warning || []
+//           labAndPacsRecommend = [
+//             {
+//                 title: '化验',
+//                 className: 'labRecommend',
+//                 data:  labRecommend,
+//                 showNum: showLabsNum
+//             },
+//             {
+//                 title: '辅检',
+//                 className: 'pacsRecommend',
+//                 data:  pacsRecommend,
+//                 showNum: showPacsNum
+//             }
+//           ]
+//           window.pushMessage = medicalIndications;//计算的需要的相关数据
+//           renderPageData(confArr,diagWaring,diagFirst,diagPossible,diagIdentify,labAndPacsRecommend,physiExamRecommend,symptomRecommend,medicalIndications,diagCommon,CaseStandard);
+
+//         }).catch(function (err) {
+//           console.log(err);
+//         })
+//       } else{
+     
+//         getPushInfo().then(res =>{
+//           diagWaring = res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis['警惕'] || []
+//           diagFirst = res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis['拟诊'] || []
+//           diagDetermine = res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis['确诊'] || []
+//           diagFirst = diagDetermine.concat (diagFirst)
+//           diagPossible = res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis['可能诊断'] || []
+//           diagIdentify = res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis['鉴别诊断'] || []
+//           labRecommend = res&&res.data&&res.data.data&&res.data.data.lab || []
+//           pacsRecommend = res&&res.data&&res.data.data&&res.data.data.pacs || []
+//           physiExamRecommend = res&&res.data&&res.data.data&&res.data.data.vital || []
+//           symptomRecommend = res&&res.data&&res.data.data&&res.data.data.symptom || []
+//           medicalIndications = res&&res.data&&res.data.data&&res.data.data.medicalIndications || []
+//           labAndPacsRecommend = [
+//             {
+//                 title: '化验',
+//                 className: 'labRecommend',
+//                 data:  labRecommend,
+//                 showNum: showLabsNum
+//             },
+//             {
+//                 title: '辅检',
+//                 className: 'pacsRecommend',
+//                 data:  pacsRecommend,
+//                 showNum: showPacsNum
+//             }
+//           ]
+//           window.pushMessage = medicalIndications;//计算的需要的相关数据
+//           renderPageData(confArr,diagWaring,diagFirst,diagPossible,diagIdentify,labAndPacsRecommend,physiExamRecommend,symptomRecommend,medicalIndications,diagCommon,CaseStandard);
+//         }).catch(function (err) {
+//           console.log(err);
+//         })
+//       }
+//     }
+
+// }
+
+function getPushData(res){
+  if(res&&res.data&&res.data.data&&res.data.data.dis&&res.data.data.dis){
+    let dis = res.data.data.dis;
+    //急诊显示规则,主诊断有急诊优先显示,没有则显示推送的,推送也没有就不显示
+    if(dis&&dis['页面急诊']&&(dis['页面急诊'].length>0)){
+      let name = dis['页面急诊'][0].name || ''
+      $(".allDis .disName").html(name)
+      disName = name
+      if(name){
+        $(".singleDis").css("display","block")
+      }
+    }else if(dis&&dis['急诊']&&dis['急诊'].length>0){
+      let name = dis['急诊'][0].name || ''
+      $(".allDis .disName").html(name)
+      disName = name
+      if(name){
+        $(".singleDis").css("display","block")
+      }
+    }
+  }
+}
+let disName=""
+function handleShow(){
+  const newinConf = {
+    width: '600',   //窗口的文档显示区的宽度。以像素计。
+    height: '826',  //窗口文档显示区的高度。以像素计。
+    left: '0',  //窗口的 x 坐标。以像素计。
+    top: '0',    //窗口的 y 坐标。以像素计。
+    openMode: "_blank"  //每次都是新窗口打开为_blank,打开同一窗口填写任意字符串
+  }
+  const newWindowLocation = `width=${newinConf.width}, height=${newinConf.height}, left=${newinConf.left}, top=${newinConf.top} scrollbars=yes`
+  window.open('./emergency.html?disName='+disName, newinConf.openMode, newWindowLocation)
+}
+$(document).on('click',".allDis .allName",function(){
+  handleShow()
+})
+$(document).on('click',".singleDis",function(){
+  $(this).next().css("display","block")
+  $(this).css("display","none")
+})
+$(document).on('click',".allDis .right,.allDis .secDis",function(){
+  $(".allDis").css("display","none")
+  $(".singleDis").css("display","block")
+})
+// function renderPageData(confArr,diagWaring,diagFirst,diagPossible,diagIdentify,labAndPacsRecommend,physiExamRecommend,symptomRecommend,medicalIndications,diagCommon,CaseStandard){
+
+//   let renderNum = 0
+//     for(let i = 0; i < confArr.length; i++) {
+   
+//       switch(confArr[i].code) {
+//         case "symptoms_show":  //问诊症状
+//           symptomRecommend.length > 0 && renderRecommendInfo(confArr[i].showNum,'symptomRecommend', '问诊症状', symptomRecommend, false)
+//            $('.symptomRecommend h4 img').attr('src',diagFirstImg)
+//           symptomRecommend.length > 0 && renderNum++
+//           break; 
+//         case "physical_show": //体格检查
+//           physiExamRecommend.length > 0 &&  renderRecommendInfo(5,'physiExamRecommend', '体格检查', physiExamRecommend, false)
+//              $('.physiExamRecommend h4 img').attr('src',physiExamImg)
+//           physiExamRecommend.length > 0 && renderNum++
+//           break;
+//         case "illness_show": //病情提示
+//           medicalIndications.length > 0 && renderRecommendConditTips('conditTips','病情提示', medicalIndications || []);
+//           medicalIndications.length > 0 && renderNum++;
+//           break;
+//         case "vigilant_show": //警惕诊断
+//           diagWaring.length > 0 && renderWarning(confArr[i].showNum,'warning', '警惕诊断', diagWaring, true,7,2);
+//           diagWaring.length > 0 &&  renderNum++;
+//           break;
+//         case "comsympto_show": //常见症状
+//           diagCommon.length > 0 && renderRecommendInfo(confArr[i].showNum,'commonSymp', '常见症状', diagCommon, true,7,2);
+//           diagCommon.length > 0 && renderNum++;
+//           break;
+//         case "specification_show": //病例书写规范
+//           CaseStandard.length > 0 &&  renderCaseStandard('CaseStandard', '病历书写规范提示', CaseStandard);
+//           CaseStandard.length > 0 && renderNum++;
+//           break;
+//         case "Inspush_show": //检验检查
+//           (labRecommend.length > 0 || pacsRecommend.length >0) && renderMultRecommendInfo('labAndPacsRecommend', '检验检查', labAndPacsRecommend, false);
+//           (labRecommend.length > 0 || pacsRecommend.length >0) && renderNum++
+//           break;
+//         case "diapush_show": //推荐诊断
+//           diagFirst.length>0 && renderRecommendInfo(5,'diagFirst', '初步诊断', diagFirst, true,7,2);
+//           diagFirst.length>0 && renderNum++
+//           diagPossible.length>0 && renderRecommendInfo(5,'diagPossible', '可能诊断', diagPossible, true,7,2);
+//           diagPossible.length>0 && renderNum++
+//           diagIdentify.length>0 && renderRecommendInfo(5,'diagIdentify', '鉴别诊断', diagIdentify, true,7,2);
+//           diagIdentify.length>0 && renderNum++;
+//            $('.diagFirst h4 img').attr('src',diagFirstImg);
+//            $('.diagPossible h4 img').attr('src',diagPossibleImg);
+//            $('.diagIdentify h4 img').attr('src',diagIdentifyImg);
+//           break;
+//         default:
+//           break;
+//       } 
+//     }
+//     $('.loading').css("display","none")
+//     if(renderNum > 0 || diagWaring.length > 0){
+//       $(".empty").css("display","none")
+//     }else{
+//       $(".empty").css("display","block")
+//     }
+// }
+
+
+
+function moreInfo() {
+  $('.moreInfo').click(function(){
+    const name = $(this).attr('data-name')
+    const type = $(this).attr('data-type')
+    openNewWin(`information.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}`)
+  })
+}
+
+function getVersion() {
+  post(config.getVersion, 'confArr').then((res) => {
+    const data = res.data.data;
+    const ver = localStorage.getItem('versionTime');
+    const time = data.refreshTime;
+    if(!ver||ver===time+"=new"||time!==ver.replace("=new","")){       //判断版本是否更新
+      $(".version-tip").addClass('new-icon');
+      localStorage.setItem('versionTime',time+"=new");     //保存版本更新时间
+    }else{
+      $(".version-tip").removeClass('new-icon');
+    }
+  })
+}
+function getDisclaimer() {
+    post(config.disclaimer, '').then((res) => {
+        const data = res.data.data.find(item => item.disclaimerCode == '2');
+        $(".responsibility").html(data.description);
+        $('.iframeWrap').css({height: $(window).height()-115-$(".responsibility").height()+'px'})
+
+    })
+}
+
+function renderPage(pageSet){
+    renderTab(pageSet.sysSetInfo)
+    renderContent(pageSet.sysSetInfo)
+}
+
+function renderTab(tabList){
+    let str = ''
+    for(let i = 0; i < tabList.length; i++){
+        str += `<span class="${i === 0 ? 'activeTab':''}">${tabList.name}</span>`
+    }
+}
+function renderContent(){
+   
+}
+
+
+$(function(){
+  getDisclaimer(); //获取免责声明
+  getVersion();   //获取版本信息
+  $(".disclaimerInfo").on("click", function(){
+    openNewWin("disclaimer.html")
+  });
+  $(".version-tip").on("click", function(){
+    const ver = localStorage.getItem('versionTime');
+    $(".version-tip").removeClass('new-icon');
+    localStorage.setItem('versionTime',ver.replace("=new",""));
+    openNewWin("version.html");
+  });
+});

+ 362 - 0
src/js/cdssDom.js

@@ -0,0 +1,362 @@
+const $ = require("jquery");
+const { openNewWin,imageUrlPrefix } = require('./promise.js');
+const { bindTipsEvent } = require('./popupEdit.js');
+
+function renderRecommendInfo(showNum,className,title,data, hasInfo, type, position) {
+    let showNumCopy = showNum || 5
+    const dataLen = data.length
+    const str = `<div class="recommendInfoWrapper ${className}">
+                    <h4><img class="titleIcon" src="./images/knzd.png" alt="icon" />${title}</h4>
+                    <div class="recommendInfoBox">
+                        <div class="clearfix recommendInfoItemBox ${className + 'box'}">
+                        </div>
+                    </div>
+                </div>`
+    $('.recommendWrap').append(str)
+    let dataShort
+    if(showNumCopy&& dataLen > showNumCopy) {
+        dataShort = data.slice(0, showNumCopy)
+    } else {
+        dataShort = data
+    }
+    let childrenNodeStrShort = ''
+    let childrenNodeStrLong = ''
+    if(hasInfo) {
+        for (let i = 0; i < dataShort.length; i++) {
+            childrenNodeStrShort += `<span class="recommendInfoItem recommendInfoItemHasInfo">
+                                    ${dataShort[i].name}
+                                    <span  title="点击i图标可查看详细说明" class="infoMsg" data-name=${dataShort[i].name}></span>
+                                </span>`
+        }
+        for (let i = 0; i < data.length; i++) {
+            childrenNodeStrLong += `<span class="recommendInfoItem recommendInfoItemHasInfo">
+                                    ${data[i].name}
+                                    <span  title="点击i图标可查看详细说明" class="infoMsg" data-name=${data[i].name}></span>
+                                </span>`
+        }
+    } else {
+        for (let i = 0; i < dataShort.length; i++) {
+            childrenNodeStrShort += `<span class="recommendInfoItem" data-name="${dataShort[i].name}">
+                                    ${dataShort[i].name}
+                                </span>`
+        }
+        for (let i = 0; i < data.length; i++) {
+            childrenNodeStrLong += `<span class="recommendInfoItem" data-name="${data[i].name}">
+                                    ${data[i].name}
+                                </span>`
+        }
+    }
+    if(!childrenNodeStrShort) {
+        childrenNodeStrShort='<span class="recommendNull">暂无推荐</span>'
+    }
+    
+    $('.'+className + 'box').append(childrenNodeStrShort)
+    $('.'+className + 'box' +' .infoMsg').on('click', function(){
+        const infoMsgName = $(this).attr('data-name')
+        openNewWin(`information.html?type=${encodeURIComponent(type)}&position=${encodeURIComponent(position)}&name=${encodeURIComponent(infoMsgName)}`)
+    })
+    if(dataLen > showNumCopy) {
+        slideToggle($("."+className+"box"), childrenNodeStrShort,childrenNodeStrLong)
+    }
+}
+
+function renderMultRecommendInfo(className,title,data, hasInfo, type, position) {
+    const str = `<div class="recommendInfoWrapper ${className}">
+                    <h4><img class="titleIcon" src="./images/inspect.png" alt="icon" />${title}</h4>
+                    <div class="recommendInfoBox ${className + 'box'}"></div>
+                </div>`
+    $('.recommendWrap').append(str)
+    let hasDataNum = 0
+    for(let i = 0; i < data.length; i++) {
+        const showNum = data[i].showNum || 5
+        const dataLen = data[i].data.length
+        if(dataLen === 0) {
+            continue
+        }
+        hasDataNum++
+        if(hasDataNum > 1) {
+            $('.'+className + 'box').append('<div class="line"></div>')
+        }
+        let childrenNodeBoxStr  = `<div class="labAndPacsBox ${data[i].className} clearfix"> </div>`
+        let childrenNodeStrShort =  `<span class="labAndPacsTitle">${data[i].title}<i></i></span>`
+        let childrenNodeStrLong =  `<span class="labAndPacsTitle">${data[i].title}<i></i></span>`
+        let dataShort
+        if(showNum&& dataLen > showNum) {
+            dataShort = data[i].data.slice(0, showNum)
+        } else {
+            dataShort = data[i].data
+        }
+        for(let j = 0; j < dataShort.length; j++) {
+            childrenNodeStrShort += `<span class="labAndPacsItem">${dataShort[j].name}</span>`
+        }
+        for(let j = 0; j < data[i].data.length; j++) {
+            childrenNodeStrLong += `<span class="labAndPacsItem">${data[i].data[j].name}</span>`
+        }
+        if(data[i].data.length == 0) {
+            childrenNodeStrShort +='<span class="recommendNull">暂无推荐</span>'
+        }
+        $('.'+className + 'box').append(childrenNodeBoxStr)
+        $('.'+data[i].className).append(childrenNodeStrShort)
+        if(dataLen > showNum) {
+            slideToggle($("."+data[i].className), childrenNodeStrShort,childrenNodeStrLong)
+        }
+    }
+
+}
+
+function renderRecommendConditTips(className,title,data) {
+    const str = `<div class="recommendInfoWrapper ${className}">
+                    <h4><img class="titleIcon" src="./images/tips.png" alt="icon" />${title}</h4>
+                    <div class="recommendInfoBox  ${className + 'box'}"></div>
+                </div>`
+    $('.recommendWrap').append(str)
+    if(data.length == 0) {
+        $("."+className+"box").append('<span class="recommendNull">暂无推荐</span>')
+    };
+    //let names = [];
+    for(var k = 0;k < data.length;k++){
+        let tmpBq = data[k];
+        let hasSritical = false
+        let tmpBqStr;
+        if(tmpBq.details) {
+            for(let i = 0; i < tmpBq.details.length; i++) {
+                if(tmpBq.details[i].type == 4) {
+                    hasSritical= true
+                }
+            }
+        }
+        if(hasSritical) {
+            /*if(names.includes(tmpBq.name)){    //name相同去重
+              tmpBqStr='';
+            }else{
+              names.push(tmpBq.name);*/
+              tmpBqStr = `<p class="mayIllness">
+              <span class="sriticalNameBox"><span class="sriticalName">${tmpBq.name}</span>
+                </span>
+            </span></p>`
+            //}
+        } else {
+            tmpBqStr = `<p class="mayIllness">
+                            患者可能有 <span class="diagNameBox"><span class="diagName">${tmpBq.name}:</span>
+                                <span title="点击该名称可看详细说明" class="infoMsg" data-name=${tmpBq.name}></span>
+                            </span>
+                        </span></p>`
+        }
+         
+        var tmpBqDetailStr = ''
+        for(var m = 0;m < tmpBq.details.length;m++){
+          var tmpBqDetail = tmpBq.details[m]
+          if(tmpBqDetail.type == 1){
+            tmpBqDetailStr+=`<span data-scaleName=${tmpBqDetail.content.name} class="illnessTable">【${tmpBqDetail.content.name}】</span>`
+          }
+          if(tmpBqDetail.type == 2){
+            var deepDetailName = `<div class="modalTitle">${tmpBqDetail.content.name}<i class="closeModal"></i></div>`
+            var deepDetailStr = ''
+            var deepDetailResultStr = ''
+            for(var n = 0;n < tmpBqDetail.content.details.length;n++){
+              var deepDetail = tmpBqDetail.content.details[n]
+              if(deepDetail.controlType == 2){//0-radio,1-checkbox,2-text,3-dropdownlist
+                if(deepDetail.isShow == 0) {
+                    deepDetailStr+=`<li class="radioCheck"><span class="modalMaintltle">${deepDetail.name}: </span>${deepDetail.value} ${deepDetail.uint}</li>`
+                } else {
+                    deepDetailStr+=`<li class="radioCheck"><span class="modalMaintltle">请输入${deepDetail.name}: </span><input type="text" class="${tmpBqDetail.content.name+deepDetail.name}" ${deepDetail.isShow=='0' ? 'readonly':''} placeholder="请输入" value=${deepDetail.value}><i class="uint">${deepDetail.uint}</i></li>`
+                }
+              }
+              if(deepDetail.controlType == 0){
+                let tooDeepDetailStr = ''
+                for(var f = 0;f<deepDetail.details.length;f++){
+                  var tooDeepDetail = deepDetail.details[f]
+                  if(deepDetail.isShow == '0'){
+                    if(tooDeepDetail.state == 1) {
+                      tooDeepDetailStr+='<li class="radioChecks" data-select="'+(tooDeepDetail.state == 1?"select":"")+'"><span>'+tooDeepDetail.detailName+'</span></li>'
+                    }
+                  }else{
+                    tooDeepDetailStr+='<li class="radioChecks"><i></i><span>'+tooDeepDetail.detailName+'</span>'+(tooDeepDetail.state == 1?"<a>(智能推荐)</a>":"")+'</li>'
+                  }
+                }
+                
+                
+                deepDetailStr+=`<li class="radioCheck"><span class="modalMaintltle">${deepDetail.name}: </span>
+                                <ul class="clearfix caculateLis" data-isShow = ${deepDetail.isShow}>
+                                    ${tooDeepDetailStr}
+                                </ul>
+                            </li>`
+                  
+              }
+            }
+            for(var v = 0;v < tmpBqDetail.content.result.length;v++){
+              deepDetailResultStr+='<p class="result"><span class="calculateName">'+tmpBqDetail.content.result[v].name+':</span><span class="calculateResult"></span></p>'
+            }
+            tmpBqDetailStr+=`<div class="mayResult">
+                计算公式结果:
+                <span class="mayResultSelect" data-num="${k}">
+                    <span class="makesureResult">请选择</span>
+                    <span class="sanjiao"></span>
+                    <div class="popupModal">
+                        ${deepDetailName}
+                        <div class="modalMainTwo">
+                            <ul class="clearfix">
+                                ${deepDetailStr}
+                            </ul>
+                            <div class="calculate" data-num="${k}">计算</div>
+                            <p class="calculateError">请填写计算公式内容</p>
+                            <div class="resultLis">
+                                ${deepDetailResultStr}
+                            </div>
+                        </div>
+                        <div class="btnWrap clearfix">
+                            <div class="sureScore" data-type="2">关闭</div>
+                        </div>
+                    </div>
+                </span>
+            </div>`
+            
+          }
+          if(tmpBqDetail.type == 3){
+            var deepDetailName = '<span class="modalMaintltle">'+tmpBqDetail.content.name+': </span>'
+            var deepDetailStr = ''
+            for(var n = 0;n < tmpBqDetail.content.details.length;n++){
+              var deepDetail = tmpBqDetail.content.details[n]
+              deepDetailStr+='<li class="radioChecks"><i></i><span>'+deepDetail.detailName+'</span>'+(deepDetail.state == 1?"<a>(智能推荐)</a>":"")+'</li>'
+            }
+
+              tmpBqDetailStr+=`<div class="mayResult">
+                可能结果:
+                <span class="mayResultSelect" data-num="${k}"><span class="makesureResult">请选择</span><i class="sanjiao"></i>
+                    <div class="popupModal">
+                    <div class="modalTitle">
+                        结果选择<i class="closeModal"></i>
+                    </div>
+                    <div class="modalMainOne">
+                        ${deepDetailName}
+                        <ul class="clearfix">
+                            ${deepDetailStr}
+                        </ul>
+                    </div>
+                    <div class="btnWrap clearfix">
+                        <div class="sureScore" data-type="3" data-num="${k}">确定</div>
+                    </div>
+                </div>
+                </span>
+            </div>`
+          }
+          if(tmpBqDetail.type == 4){
+            // tmpBqDetailStr+=`<div class="sriticalinfo">诊断要点:${tmpBqDetail.content.name}</div>`
+          }
+        }
+        if(tmpBqStr != '' || tmpBqDetailStr != ''){
+          $(".conditionHintTipsNull").css("display","none")
+        }
+        // $(".conditionHintTips").append('<div class="conditionMain clearfix">'+tmpBqStr+'<div class="alertModal">'+tmpBqDetailStr+'</div></div>')
+        $("."+className+"box").append('<div class="conditionMain clearfix">'+tmpBqStr+'<div class="alertModal">'+tmpBqDetailStr+'</div></div>')
+      }
+      $('.mayIllness .infoMsg').on('click', function(){
+        const infoMsgName = $(this).attr('data-name')
+        openNewWin(`information.html?type=22&position=2&name=${encodeURIComponent(infoMsgName)}`)
+      })
+      $('.alertModal .illnessTable').on('click', function(){
+        const msg1 = JSON.parse(JSON.stringify(msg))
+        msg1.scaleName = $(this).attr('data-scaleName')
+        msg1.featureType = 21
+        openNewWin(`scale.html?msg=${encodeURIComponent(JSON.stringify(msg1))}`)
+      })
+      bindTipsEvent()
+}
+
+
+
+function renderCaseStandard(className,title,data){
+    const str = `<div class="recommendInfoWrapper ${className}">
+        <h4><img class="titleIcon" src="./images/knzd.png" alt="icon" />${title}</h4>
+        <div class="recommendInfoBox">
+            <div class="clearfix recommendInfoItemBox ${className + 'box'}">
+            </div>
+        </div>
+    </div>`
+    let childStr = ""
+    for(let i = 0; i < data.length; i++){
+        childStr += `<p>${data[i]}</p>`
+    }
+    $('.recommendWrap').append(str)
+    $(`.${className}box`).html(childStr)
+}
+function renderWarning(showNum,className,title,data, hasInfo, type, position){
+    let showNumCopy = showNum || 5
+    const dataLen = data.length
+    const str = `<div class="recommendInfoWrapper ${className}">
+                    
+                    <div class="recommendInfoBox">
+                       
+                        <div class="clearfix recommendInfoItemBox ${className + 'box'}">
+                        <h4><img class="titleIcon" src="./images/warings.png" alt="icon" />${title}</h4>
+                        </div>
+                    </div>
+                </div>`
+    $('.recommendWrap').append(str)
+    let dataShort
+    if(showNumCopy&& dataLen > showNumCopy) {
+        dataShort = data.slice(0, showNumCopy)
+    } else {
+        dataShort = data
+    }
+    let childrenNodeStrShort = ''
+    let childrenNodeStrLong = ''
+    if(hasInfo) {
+        for (let i = 0; i < dataShort.length; i++) {
+            childrenNodeStrShort += `<span class="recommendInfoItem recommendInfoItemHasInfo">
+                                    ${dataShort[i].name}
+                                    <span  title="点击i图标可查看详细说明" class="infoMsg" data-name=${dataShort[i].name}></span>
+                                </span>`
+        }
+        for (let i = 0; i < data.length; i++) {
+            childrenNodeStrLong += `<span class="recommendInfoItem recommendInfoItemHasInfo">
+                                    ${data[i].name}
+                                    <span  title="点击i图标可查看详细说明" class="infoMsg" data-name=${data[i].name}></span>
+                                </span>`
+        }
+    } else {
+        for (let i = 0; i < dataShort.length; i++) {
+            childrenNodeStrShort += `<span class="recommendInfoItem" data-name="${dataShort[i].name}">
+                                    ${dataShort[i].name}
+                                </span>`
+        }
+        for (let i = 0; i < data.length; i++) {
+            childrenNodeStrLong += `<span class="recommendInfoItem" data-name="${data[i].name}">
+                                    ${data[i].name}
+                                </span>`
+        }
+    }
+    if(!childrenNodeStrShort) {
+        childrenNodeStrShort='<span class="recommendNull">暂无推荐</span>'
+    }
+    
+    $('.'+className + 'box').append(childrenNodeStrShort)
+    $('.'+className + 'box' +' .infoMsg').on('click', function(){
+        const infoMsgName = $(this).attr('data-name')
+        openNewWin(`information.html?type=${encodeURIComponent(type)}&position=${encodeURIComponent(position)}&name=${encodeURIComponent(infoMsgName)}`)
+    })
+    if(dataLen > showNumCopy) {
+        slideToggle($("."+className+"box"), childrenNodeStrShort,childrenNodeStrLong)
+    }
+}
+
+function slideToggle(domName,childrenNodeStrShort,childrenNodeStrLong){//展开收起
+    domName.append('<span class="slideDown">更多 <i></i></span>')
+    domName.on('click',".slideDown",function(){
+        domName.html(childrenNodeStrLong)
+        domName.append('<span class="slideup">收起 <i></i></span>')
+        $(this).remove()
+    })
+    domName.on('click',".slideup",function(){
+        domName.html(childrenNodeStrShort)
+        domName.append('<span class="slideDown">更多 <i></i></span>')
+        $(this).remove()
+    })
+}
+module.exports ={
+    renderCaseStandard,
+    renderWarning,
+    renderRecommendInfo,
+    renderMultRecommendInfo,
+    renderRecommendConditTips,
+}

+ 6 - 6
src/js/promise.js

@@ -33,18 +33,18 @@ window.console = window.console || (function () {
 const config = {
   pushInner: '/api/data/push/push',
   calculate: '/api/data/calc/calculate',
-  disclaimer: '/api/data/disclaimerInformation/getDisclaimerInformations',
+  disclaimer: '/sys/disclaimerInfo/getDisclaimerInfo',
   information: '/api/data/conceptDetail/getConceptDetail',
   informationMore: '/api/data/conceptDetail/getConceptDetails',
   pushScale: '/api/data/push/pushScale',
-  getSysSetInfoDatas: '/api/data/sysSet/getSysSetInfoDatas',
-  getMr: '/api/data/mr/getMr', //页面推送患者信息
-  getMr2: '/api/data/mrv2/getMr', //icss推送患者信息
-  getVersion: '/api/data/versionInfo/getVersionInfoAlls',
+  getSysSetInfoDatas: '/sys/plan/getSysPlanInfoDatas',
+  getMr: '/sys/mr/getMr', //页面推送患者信息
+  getMr2: '/sys/mr/getMr', //icss推送患者信息
+  getVersion: '/sys/versionInfo/getVersionInfoAlls',
   getStaticKnowledge: '/api/data/search/getStaticKnowledge',
   getStaticScale: '/api/data/search/getScale',
   dictionaryInfo: '/api/data/dictionaryInfo/getList', //字典信息
-  getPushSet:'/api/data/pushSet/getPushSet', //获取推送配置
+  getPushSet:'/sys/plan/getSysPlanInfoDatas', //获取推送配置
   analyse:'/api/data/mrqc/analyse',
   getHosptDeptUsal:'/api/data/concept/getHosptDeptUsal', //获取科室常用标签
   ruleTypeMap:{     //大数据推送参数featureType对应

+ 16 - 2
webpack.config.js

@@ -4,7 +4,7 @@ const CleanWebpackPlugin = require('clean-webpack-plugin') // 清空打包目录
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
-const proxyHost = "http://192.168.2.241:5050";
+const proxyHost = "http://192.168.2.236:6060";
 module.exports = {
   entry: {
     index: path.resolve(__dirname, 'src/js', 'index.js'),
@@ -20,6 +20,7 @@ module.exports = {
     emergency: path.resolve(__dirname, 'src/js', 'emergency.js'),
     icssIndex: path.resolve(__dirname, 'src/js', 'icssIndex.js'),
     view: path.resolve(__dirname, 'src/js', 'view.js'),
+    cdss: path.resolve(__dirname, 'src/js', 'cdss.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -201,6 +202,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: 'cdss',
+      template: path.resolve(__dirname, 'src/html', 'cdss.html'),
+      filename: 'cdss.html',
+      chunks: ['cdss', 'vendor', 'common'],
+      inject: true,
+      hash: true, //防止缓存
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: 'view',
       template: path.resolve(__dirname, 'src/html', 'view.html'),
@@ -305,7 +319,7 @@ module.exports = {
   devServer: {
     contentBase: "./dist", //静态文件根目录
     proxy: {
-      '/api': proxyHost
+      '*': proxyHost
     },
     hot: true,
     // openPage:'index.html?age=28&tipsName=血常规&tipsType=12&diseaseId=280&lisJson=&diagJson=急性胰腺炎&diseaseName=糖尿病&pastJson=无心脏病&otherJson=无高血压&pacsJson=腹部B超:无异常,%20报告日期:2019-05-07&sex=男&symptomJson=恶心呕吐腰痛&vitalJson=血压左上肢13/12mmHg&hospitalCode=A001',