瀏覽代碼

Merge branch 'CDSS6.0.0' into testNew

luolei 4 年之前
父節點
當前提交
52242fd09c

+ 3 - 2
src/css/cdss.less

@@ -24,12 +24,13 @@ body{
     text-align: center;
     font-size: 12px;
     color: #979797;
-    padding-top: 15px;
+    padding-bottom: 5px;
     position: fixed;
     left: 0;
     width: 100%;
-    bottom: 28px;
+    bottom: 23px;
     background-color: #fff;
+    z-index: 1;
 }
 .disclaimer {
     height: 24px;

+ 77 - 0
src/css/cdssHorizontal.less

@@ -336,4 +336,81 @@
     color: #1E1E1E;
     margin: 10px 0;
     font-weight: 600;
+}
+.followUpWrap {
+    position: absolute;
+    height: 100%;
+    padding: 10px;
+    box-sizing: border-box;
+}
+.operaNameBox {
+    background-color: #EFF1F6;
+    height: 27px;
+    line-height: 27px;
+    color: #777777;
+    padding-left: 10px;
+}
+.operaNameBold {
+    color: #333;
+    font-weight: bold;
+}
+.infoWrap {
+    max-height: 207px;
+    overflow: auto;
+    padding-top: 8px;
+    box-sizing: border-box;
+    .infoBox {
+        padding-left: 10px;
+        &:hover {
+            background-color: #fff;
+        }
+    }
+    .infoBox p {
+        color: #1E1E1E;
+        font-weight: bold;
+        margin-bottom: 10px;
+    }
+} 
+.readMorePlan {
+    height: 30px;
+    line-height: 30px;
+    padding-left: 10px;
+    a {
+        display: inline-block;
+        cursor: pointer;
+        color: #3B9ED0;
+        text-decoration: underline;
+    }
+}
+.checkFront {
+    position: relative;
+    padding-left: 65px;
+    margin: 5px 0;
+    .lisStrFront,.pacsStrFront {
+        position: absolute;
+        left: 0;
+        top: 0px;
+        width: 38px;
+        height: 18px;
+        line-height: 18px;
+        border-radius: 9px;
+        color: #3B9ED0;
+        border: 1px solid #3B9ED0;
+        text-align: center;
+        font-size: 12px;
+    }
+}
+.circle {
+    display: inline-block;
+    width: 5px;
+    height: 5px;
+    background: #89C5E3;
+    border-radius: 50%;
+    position: absolute;
+    left: -10px;
+    top: 7px;
+}
+.lisBox {
+    // position: absolute;
+    // left: 50px;
 }

+ 429 - 0
src/css/cdssPlan.less

@@ -0,0 +1,429 @@
+@import './common.less';
+body{
+    overflow: hidden;
+    position: relative;
+    background: #fff;
+}
+.bodyWrap{
+    position: fixed;
+    width: 100%;
+    height: 100%;
+}
+.operaNameBox {
+    padding: 5px 14px;
+}
+.iframeWrap {
+    margin: 0 auto 50px;
+    // padding: 0 20px 20px 20px;
+    min-width: 340px;
+    overflow-y: hidden;
+}
+.contentWrapper{
+    position: relative;
+    overflow-y: hidden;
+    // overflow-y: auto;
+}
+.responsibility {
+    text-align: center;
+    font-size: 12px;
+    color: #979797;
+    padding-bottom: 5px;
+    position: fixed;
+    left: 0;
+    width: 100%;
+    bottom: 23px;
+    background-color: #fff;
+    z-index: 1;
+}
+.disclaimer {
+    height: 24px;
+    width: 100%;
+    line-height: 24px;
+    position: fixed;
+    bottom: 0;
+    background-color: #EFF1F6;
+    left: 0;
+    z-index: 98;
+    .version-tip{
+        margin-left: 20px;
+        display: inline-block;
+        font-size: 12px;
+        line-height: 12px;
+        padding-right: 34px;
+        cursor: pointer;
+        &.new-icon{
+            // background: url(../images/new.png) 100% 0px no-repeat;
+            // background-size: 27px;
+        }
+    }
+    .version-txt,.disclaimerInfoTxt{
+        font-size: 12px;
+        color: #777;
+    }
+    .version-txt:hover{
+        border-bottom: 1px solid #000;
+        font-size: 12px;
+    }
+    .logo {
+        // float: left;
+        font-size: 12px;
+        margin-left: 15px;
+        color:#333;
+    }
+    .disclaimerInfo {
+        float: right;
+        font-size: 12px;
+        margin-right: 20px;
+    }
+}
+
+
+
+.disclaimerInfo {
+    cursor: pointer;
+    font-size: 12px;
+}
+.disclaimerInfoTxt:hover{
+    border-bottom: 1px solid #000;
+    font-size: 12px;
+}
+.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;
+}
+
+
+.staticWin {
+    color: #040428;
+    text-decoration: underline;
+    cursor: pointer;
+}
+.line {
+    width: 100%;
+    height: 1px;
+    background: #D1D1D1;
+}
+
+
+.empty{
+    position: relative;
+    top: 100px;
+}
+.emptyImg{
+    width: 120px;
+    position: relative;
+    left: 50%;
+    margin-left: -60px;
+}
+.emptyImgSearch{
+    width: 100px;
+}
+.emptyTxt{
+    text-align: center;
+    color: #AAA;
+    font-size: 12px;
+    margin-top: 15px;
+}
+// .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;
+        }
+    }
+}
+
+
+// CDSS6.0
+.tab{
+    color: @tabColor;
+    margin-right: 20px;
+    display: inline-block;
+}
+.moduleItem{
+    border: 1px solid #EAEDF1;
+    margin: 0 0 0px 0;
+}
+.longBox,.shortBox{
+    padding: 4px 10px;
+}
+.diag{
+    .longBox,.shortBox{
+        padding: 0 10px;
+    }
+}
+.longBox{
+    display: none;
+}
+.pushItemBox{
+    position: relative;
+    display: inline-block;
+    padding-right: 18px;
+}
+.pushItemName{
+    position: relative;
+    display: inline-block;
+   
+}
+.infoImg{
+    width: 15px;
+    position: absolute;
+    top: 2px;
+    cursor: pointer;
+    display: none;
+    right: 2px;
+}
+.pushItemBox:hover{
+    .infoImg{
+        display: block;
+    }
+}
+.showMore,.showLess{
+    display: inline-block;
+    cursor: pointer;
+    float: right;
+    color: #3B9ED0;
+}
+.moduleTitle{
+    height: 30px;
+    line-height: 30px;
+    font-size: 14px;
+    font-weight: 600;
+    .titleIcon{
+        width: 20px;
+        position: relative;
+        top: 5px;
+        margin: 0 8px;
+    }
+}
+.casewriting .titleIcon{
+    width:14px;
+}
+.iconArrowImg{
+    width: 14px;
+}
+.moduleBox{
+    padding: 5px 0;
+}
+.moduleBoxTitle{
+    padding: 0 10px;
+    line-height: 27px;
+    font-weight: 600;
+}
+.iconMark{
+    width: 4px;
+    position: absolute;
+    left: 20px;
+    top: 3px;
+}
+.billingPushItem{
+    padding: 0 10px 0 30px;
+    position: relative;
+}
+.moduleItem{
+    border-radius: 4px;
+    .moduleBox{
+        border-bottom: 1px solid #EAEDF1;
+    }
+    .moduleBox:last-child{
+        border-bottom: 0;
+    }
+}
+.tabList{
+    line-height: 39px;
+    margin-bottom: 4px;
+    padding: 0 20px 0 20px;
+    box-sizing: border-box;
+}
+.tab{
+    font-size:14px;
+    color: #777777;
+    position: relative;
+    cursor: pointer;
+}
+.activeTab{
+    color:#3B9ED0;
+    font-weight: 600;
+    font-size:16px;
+    .activeLine{
+        display: inline-block;
+        width: 34%;
+        height: 3px;
+        left: 32%;
+        background: #3B9ED0;
+        position: absolute;
+        bottom: 0;
+    }
+}
+.recommendWrap{
+    position: absolute;
+    box-sizing: border-box;
+    width: 100%;
+    height: 100%;
+    overflow-y: auto;
+    padding: 0 15px 50px 15px;
+}
+.staticSearchB ul{
+    position: absolute;
+    height: 480px;
+    // width: 100%;
+    /* right: 30px; */
+    left: 0; 
+    overflow: auto;
+}
+.warning{
+    background: #FF8042;
+    color: #fff;
+    padding: 10px 40px;
+}
+.warningTitImg{
+    width: 24px;
+    position: absolute;
+    left: -28px;
+    top: -3px;
+}
+.warningTitle{
+    position: relative;
+    margin-right: 15px;
+}
+.medicalKonwledgeWrap{
+    padding: 0 30px;
+}
+.titleIcon{
+    width: 20px;
+}
+.newIcon{
+    width: 27px;
+    position: relative;
+    top: 2px;
+    display: none;
+}
+.new-icon .newIcon{
+    display: inline-block;
+}
+
+.generalTreatInfo{
+    padding: 4px 10px;
+    box-sizing: border-box;
+    position: relative;
+}
+.isOverFlow{
+    overflow: hidden;
+    max-height: 65px;
+}
+.showMoreGeneralTreat{
+    position: absolute;
+    cursor: pointer;
+    color: #3B9ED0;
+    right: 10px;
+    bottom: 5px;
+    background: #fff;
+}
+.showLessGeneralTreat{
+    display: inline-block;
+    cursor: pointer;
+    float: right;
+    color: #3B9ED0;
+}
+.shortStrBox,.longStrBox{
+    position: relative;
+    padding: 4px 0;
+}
+.longStrBox{
+    display: none;
+}
+.showMoreCaseWriting,.showLessCaseWriting{
+    display: inline-block;
+    cursor: pointer;
+    float: right;
+    color: #3B9ED0;
+    img{
+        margin-left: 4px;
+    }
+}

+ 101 - 0
src/css/followUpV.less

@@ -0,0 +1,101 @@
+.operaNameBox{
+    background: #EFF1F6;
+    line-height: 22px;
+    padding: 0px 14px;
+    font-size: 12px;
+    color: #777777;
+}
+.operaNameBold{
+    color: #1e1e1e;
+    font-weight: 600;
+}
+.btnBox{
+    text-align: center;
+    padding: 15px 0;
+}
+.btnName{
+    display: inline-block;
+    padding: 4px 10px;
+    background:#E7F3F9;
+    font-size: 12px;    
+    color: #3B9ED0;
+    border-radius: 12px;
+    cursor: pointer;
+}
+.infoWrap{
+    overflow-y: auto;
+    padding: 0 15px;
+}
+.infoBoxTitle{
+    line-height: 40px;
+    color: #1E1E1E;
+    font-size: 14px;
+    position: relative;
+    cursor: pointer;
+}
+.historyBox .infoBoxTitle{
+    color: #AAAAAA;
+}
+.historyWrap{
+    display: none;
+}
+.lisBox,.pacsBox{
+    padding-left: 68px;
+    position: relative;
+}
+.circle{
+    display: inline-block;
+    width: 5px;
+    height: 5px;
+    background: #89C5E3;
+    border-radius: 50%;
+    position: absolute;
+    left: 0;
+    top: 6px;
+}
+.lisItem,.pacsItem{
+    padding: 0 10px;
+    position: relative;
+    line-height: 20px;
+}
+.pacsBox{
+    margin-top: 10px;
+}
+.infoBox:hover{
+    background: #EEEEEE;
+}
+.itemBoxTitle{
+    position: absolute;
+    left: 0;
+    display: inline-block;
+    width: 38px;
+    height: 18px;
+    border-radius: 10px;
+    border: 1px solid #3B9ED0;
+    color: #3B9ED0;
+    text-align: center;
+    line-height: 18px;
+}
+.toggleInfo{
+    width: 10px;
+    position: absolute;
+    right: 10px;
+    top: 15px;
+}
+.childrenBox{
+    display: none;
+}
+.followUpWrap .emptyBox{
+    margin-top: 80px;
+    text-align: center;
+}
+.followUpWrap .emptyImg{
+    width: 110px;
+    position: relative; 
+    left: 0; 
+    margin-left: 0;
+}
+.followUpWrap .emptyTxt{
+    color: #AAAAAA;
+    font-size: 12px;
+}

+ 3 - 0
src/html/cdss.html

@@ -76,6 +76,9 @@
               </div>
             </div>
            
+          </div>
+          <div class="followUpWrap moduleWrapper">
+            
           </div>
           <div class="disclaimer clearfix">
             <span class="version-tip"><span class="version-txt">版本说明 <img class="newIcon" src="./images/new.png"></span></span>

+ 3 - 0
src/html/cdssHorizontal.html

@@ -44,6 +44,9 @@
         </div>
         <div class="qcWrap moduleWrapper">
         
+        </div>
+        <div class="followUpWrap moduleWrapper">
+            
         </div>
         <div class="medicalKonwledgeWrap moduleWrapper">
          <div class="searchBox">

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


+ 26 - 10
src/js/cdss.js

@@ -9,6 +9,7 @@ if(!Promise){
 require('./../css/reset.css');
 require('./../css/cdss.less');
 require('./../css/popup.css');
+require('./../css/followUpV.less');
 require('./../css/staticSearch.css')
 require('./../js/staticSearch.js')
 require('./../images/empty.png').replace(/^undefined/g, '')
@@ -30,6 +31,8 @@ let warnImg = require('./../images/icon_warning.png').replace(/^undefined/g, '')
 
 const $ = require("jquery");
 const { post,config,getUrlArgObject,openNewWin,titleConfig } = require('./promise.js');
+const { renderFollowUp } = require('./followUp.js');
+
 const { transConf } = require('./util.js');
 
 
@@ -45,7 +48,8 @@ const { transConf } = require('./util.js');
 let moduleConfig={
   auxiliary:"recommendWrap",
   qc:"qcWrap",
-  medical:"medicalKonwledgeWrap"
+  medical:"medicalKonwledgeWrap",
+  followup:"followUpWrap"
 }
 let allInterface = 0
 let hasCompleteTnterface = 0
@@ -208,11 +212,10 @@ function renderPage(pageSet){
     return
   }
   renderTab(pageSet.sysSetInfo)
-  const iframeHei = $(".bodyWrap").height()
-  const tabHei = $(".tabList").height()
-  $(".contentWrapper").css("height",iframeHei-tabHei-20-30+3+'px')
+  adjustHei()
   const hasAuxiliary = hasTab("辅助信息",pageSet.sysSetInfo)
   const hasMedical = hasTab("医学知识",pageSet.sysSetInfo)
+  const hasFollowUp = hasTab("随访计划",pageSet.sysSetInfo)
   if(!mrId){
     empty()
     return
@@ -235,6 +238,9 @@ function renderPage(pageSet){
       allInterface++
     }
   }
+  if(hasFollowUp){
+    renderFollowUp(msg)
+  }
 }
 
 function renderPushData(){
@@ -273,7 +279,7 @@ function renderPushData(){
       rendergeneraTreatPush(generaTreatPush)
       if(hasCompleteTnterface === allInterface){
         $('.loading').css("display","none")
-        if(moduleNum === 0){ 
+        if(moduleNum === 0){ console.log(1)
           empty()
         }
       }
@@ -283,7 +289,11 @@ function renderPushData(){
     }
   })
 }
-
+function adjustHei(){
+  const iframeHei = $(".bodyWrap").height()
+  const tabHei = $(".tabList").height()
+  $(".contentWrapper").css("height",iframeHei-tabHei-20-30+3+19+'px')
+}
 function isNeedPush(list){
   let pushCode = ["diag","lis","pacs","symptom","vital","treat","medicines"]
   for(let i = 0; i < list.length; i++){
@@ -341,7 +351,7 @@ function renderPushWarning(){
     }
     if(hasCompleteTnterface === allInterface){
       $('.loading').css("display","none")
-      if(moduleNum === 0){
+      if(moduleNum === 0){console.log(2)
         empty()
       }
     }
@@ -358,7 +368,7 @@ function renderWriteStandard(){
     }
     if(hasCompleteTnterface === allInterface){
       $('.loading').css("display","none")
-      if(moduleNum === 0){
+      if(moduleNum === 0){console.log(3)
         empty()
       }
     }
@@ -510,7 +520,6 @@ function rendergeneraTreatPush(list){
     $(".moduleItem.general").append(str)
     $(".moduleItem.general").css("display","block")
     let generaTreatHei = $(".moduleItem .generalTreatInfo")[0].scrollHeight
-    console.log("generaTreatHei",generaTreatHei)
     if(generaTreatHei > 65){
       $(".moduleItem .generalTreatInfo").append(`<span class="showMoreGeneralTreat">更多<img class="iconArrowImg" src="${iconArrowDown}"></span>`)
       $(".moduleItem .generalTreatInfo").append(`<span class="showLessGeneralTreat">收起<img class="iconArrowImg" src="${iconArrowUp}"></span>`)
@@ -731,7 +740,6 @@ $(function(){
             }else{  
                 _this.onmousewheel = function(e){   
                     e = e || window.event;    
-                    console.log( _this.scrollTop,e.wheelDelta)
                     _this.scrollTop += e.wheelDelta > 0 ? -60 : 60;     
                     return false;  
                 };  
@@ -742,5 +750,13 @@ $(function(){
   // $(".iframeWrap").preventScroll();  
   $(".iframeWrap").preventScroll();  
   $(".recommendWrap").preventScroll();  
+  $(".infoWrap").preventScroll();  
   $(".medicalKonwledgeWrap .staticSearchB ul").preventScroll();  
+  $(window).on("resize", function(){
+    $(".iframeWrap").preventScroll();  
+    $(".recommendWrap").preventScroll();  
+ 
+    $(".medicalKonwledgeWrap .staticSearchB ul").preventScroll(); 
+    adjustHei() 
+  })
 });

+ 15 - 5
src/js/cdssHorizontal.js

@@ -24,12 +24,14 @@ let showImg = require('./../images/show2.png').replace(/^undefined/g, '')
 let collapseImg = require('./../images/collapse2.png').replace(/^undefined/g, '')
 let treatDisName
 let generalTreatInfo
+const { renderFollowUp } = require('./followUp.js');
 
 setWidth()
 let moduleConfig={
   auxiliary:"recommendWrap",
   qc:"qcWrap",
-  medical:"medicalKonwledgeWrap"
+  medical:"medicalKonwledgeWrap",
+  followup:'followUpWrap'
 }
 let allInterface = 0
 let hasCompleteTnterface = 0
@@ -91,6 +93,7 @@ function renderPage(pageSet){
   $(".contentWrapper").css("height",iframeHei-tabHei-10-20-30+'px')
   const hasAuxiliary = hasTab("辅助信息",pageSet.sysSetInfo)
   const hasMedical = hasTab("医学知识",pageSet.sysSetInfo)
+  const hasFollowUp = hasTab("随访计划",pageSet.sysSetInfo)
  
   if(hasAuxiliary){
     renderModuleWrapper(hasAuxiliary.planDetails)
@@ -109,6 +112,9 @@ function renderPage(pageSet){
       renderCaseWrite()
       allInterface++
     }
+  if(hasFollowUp){
+    renderFollowUp(msg,1)
+  }
   }
  }
  function renderTab(tabList){
@@ -478,7 +484,7 @@ function renderPushWarning(){
     }
     if(hasCompleteTnterface === allInterface){
       $('.loading').css("display","none")
-      if(moduleNum === 0){
+      if(moduleNum === 0){//console.log(999)
         empty()
       }
     }
@@ -509,10 +515,9 @@ function renderLongStr(name,longStr,location){
     <div class="longStrBox" data-location="${location}">
       <span class="longStrBoxTitle">${name}:</span>
       ${longStr}
-    </div>  
+    </div>
   `
   return str
-
 }
 
 
@@ -657,4 +662,9 @@ $(function(){
     localStorage.setItem('versionTime',ver.replace("=new",""));
     openNewWin("version.html");
   });
-})
+})
+
+function empty(){
+  // $(".responsibility").css("display","none")
+  // $('.recommendWrap .empty').css("display","block")
+}

+ 118 - 0
src/js/cdssPlan.js

@@ -0,0 +1,118 @@
+if(!Promise){
+  var Promise = require("bluebird");
+// Configure
+  Promise.config({
+    longStackTraces: true,
+    warnings: true // note, run node with --trace-warnings to see full stack traces for warnings
+  })
+}
+require('./../css/reset.css');
+require('./../css/cdssPlan.less');
+require('./../css/popup.css');
+require('./../css/followUpV.less');
+require('./../css/staticSearch.css')
+require('./../js/staticSearch.js')
+require('./../images/empty.png').replace(/^undefined/g, '')
+require('./../images/empty2.png').replace(/^undefined/g, '')
+require('./../images/empty3.png').replace(/^undefined/g, '')
+require('./../images/loading.gif').replace(/^undefined/g, '')
+require('./../images/right.png').replace(/^undefined/g, '')
+require('./../images/new.png').replace(/^undefined/g, '')
+
+const $ = require("jquery");
+const { post,config,getUrlArgObject,openNewWin,titleConfig } = require('./promise.js');
+const { renderFollowUp } = require('./followUp.js');
+
+
+//静态知识类型: 1:诊断 2.药品 3.化验套餐 4.化验明细 5.辅检 6.手术和操作
+
+let mrId = getUrlArgObject('mrId') 
+let msg;
+
+function getMRInfo() {
+   return post(config.getMr2,{mrId:mrId})
+}
+// $('.loading').css("display","block")
+$('.empty').css("display","none")
+if(mrId){
+  getMRInfo().then(res =>{
+    if(res.data.code == '0'){
+        msg = res.data.data ||{}
+        window.msg = msg
+        renderFollowUp(msg)
+    }
+  }).catch(function (err) {
+      console.log(err);
+  })
+} else{
+
+}
+
+
+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 adjustHei(){
+  const iframeHei = $(".bodyWrap").height()
+  const tabHei = $(".tabList").height()
+  $(".contentWrapper").css("height",iframeHei-tabHei-20-30+3+19+'px')
+}
+
+
+
+$(function(){
+  $.fn.extend({  
+    "preventScroll":function(){  
+        $(this).each(function(){  
+            var _this = this;  
+            if(navigator.userAgent.indexOf('Firefox') >= 0){   //firefox  
+                _this.addEventListener('DOMMouseScroll',function(e){  
+                    _this.scrollTop += e.detail > 0 ? 60 : -60;     
+                    e.preventDefault();  
+                },false);   
+            }else{  
+                _this.onmousewheel = function(e){   
+                    e = e || window.event;    
+                    _this.scrollTop += e.wheelDelta > 0 ? -60 : 60;     
+                    return false;  
+                };  
+            }  
+        })    
+    }  
+  });  
+  // $(".iframeWrap").preventScroll();  
+  $(".iframeWrap").preventScroll();  
+  $(".recommendWrap").preventScroll();  
+  $(".infoWrap").preventScroll();  
+  $(".medicalKonwledgeWrap .staticSearchB ul").preventScroll();  
+  $(window).on("resize", function(){
+    $(".iframeWrap").preventScroll();  
+    $(".recommendWrap").preventScroll();  
+ 
+    $(".medicalKonwledgeWrap .staticSearchB ul").preventScroll(); 
+    adjustHei() 
+  })
+});

+ 207 - 0
src/js/followUp.js

@@ -0,0 +1,207 @@
+var $ = require("jquery");
+var { post,config,getUrlArgObject,openNewWin,isIe8 ,openNewWin} = require('./promise.js');
+let showImg = require('./../images/show2.png').replace(/^undefined/g, '')
+let collapseImg = require('./../images/collapse2.png').replace(/^undefined/g, '')
+let emptyImg = require('./../images/empty3.png').replace(/^undefined/g, '')
+function getFollowUp(msg){
+    return post(config.followUp, msg)
+}
+let hospitalId = getUrlArgObject('hospitalId') || ''
+let mrId = getUrlArgObject('mrId') 
+function renderFollowUp(msg,type){
+    getFollowUp(msg).then(res =>{
+        if(res.data.code === "0"){
+            const result = res.data.data&&res.data.data.pushPlans || []
+            if(result.length === 0||(result[0]&&result[0].item&&JSON.stringify(result[0].item)==="{}")){
+                empty()
+                return
+            }
+            renderPage(result,type)
+        }else{
+            empty()
+        }
+    })
+}
+function renderPage(data,type){
+    const operaItem = data[0] || {}
+    const operaItemName = operaItem.item || {}
+    let operaItemDetail = operaItem.pushPlanDetails || []
+    renderName(operaItemName) 
+    if(type){
+        operaItemDetail=operaItemDetail.splice(0,1)
+        renderDetailHorizontal(operaItemDetail)
+    }else{
+        renderBtn(operaItemDetail)
+        renderDetail(operaItemDetail)
+        checkDom()
+    }   
+}
+function renderName(data){
+      const operationTime = data.dateValue&&getTime(data.dateValue)
+      const  operationName = data.name || ""
+      const str = `<div class="operaNameWrap" id="operaNameWrap"><div class="operaNameBox">患者于<span class="operaNameBold">${operationTime}</span>进行<span class="operaNameBold">${operationName}</span>。根据临床路径要求,特制订检验检查计划如下。</div></div>`
+      $(".followUpWrap").append(str)
+}
+function renderDetailHorizontal(data){
+   let str = ``
+   for(let i = 0; i < data.length; i++){
+       const item = data[i]
+       const lisArr = item.lis || []
+       const pacsArr = item.pacs || []
+       let lisStr=``
+       let pacsStr=``
+       let title = `<p>${getTime(item.examineDate)}(${item.description&&(item.description)})</p>`
+       for(let i = 0; i < lisArr.length; i++){
+        lisStr += `<div style="position:relative"><span class="circle"></span>${lisArr[i]}</div>`
+       }
+       for(let i = 0; i < pacsArr.length; i++){
+        pacsStr += `<div style="position:relative"><span class="circle"></span>${pacsArr[i]}</div>`
+       }
+       str += `<div class="infoBox">
+            ${title}
+            <div class="checkFront lisBox">
+            <span class="lisStrFront">检验</span>
+            <div>${lisStr}</div>
+           </div>
+           <div class="checkFront pacsBox">
+            <span class="pacsStrFront">检查</span>
+            <div>${pacsStr}</div>
+           </div>
+       </div>`
+   }
+   $(".followUpWrap").append(`<div class="infoWrap">${str}<div class="readMorePlan"><a>查看更多计划</a></div></div>`)
+    showMoreCheck()
+}
+function showMoreCheck(){
+  $(".readMorePlan a").on("click", function(){
+    openNewWin(`cdssPlan.html?mrId=${mrId}&hospitalId=${hospitalId}`)
+  })
+}
+function renderDetail(data){
+   let historyStr = ``
+   let laterStr = ``
+   for(let i = 0; i < data.length; i++){
+       const item = data[i]
+       const lisArr = item.lis || []
+       const pacsArr = item.pacs || []
+       let lisStr=``
+       let pacsStr=``
+       let title = `<p class="infoBoxTitle">${getTime(item.examineDate)}${item.description?'('+item.description+')':''} <img class="toggleInfo" src="${showImg}"/></p>`
+       for(let i = 0; i < lisArr.length; i++){
+        lisStr += `<div class="lisItem"><span class="circle"></span>${lisArr[i]}</div>`
+       }
+       for(let i = 0; i < pacsArr.length; i++){
+        pacsStr += `<div  class="lisItem"><span class="circle"></span>${pacsArr[i]}</div>`
+       }
+       if(item.history === 1){
+        historyStr+=`<div class="infoBox historyBox" >
+            ${title}
+            <div class="childrenBox">
+                ${lisArr.length>0?`<div class="lisBox"><span class="itemBoxTitle">检验</span>${lisStr}</div>`:""}
+                ${pacsArr.length>0?`<div class="pacsBox"><span class="itemBoxTitle">检查</span>${pacsStr}</div>`:""}
+            </div>
+        </div>`
+       }else{
+        laterStr += `<div class="infoBox">
+            ${title}
+            <div class="childrenBox">
+                ${lisArr.length>0?`<div class="lisBox"><span class="itemBoxTitle">检验</span>${lisStr}</div>`:""}
+                ${pacsArr.length>0?`<div class="pacsBox"><span class="itemBoxTitle">检查</span>${pacsStr}</div>`:""}
+            </div>
+        </div>`
+       }
+      
+   }
+   $(".followUpWrap").append(`<div class="infoWrap" id="infoWrap">
+        <div class="historyWrap">${historyStr}</div>
+        <div class="laterWrap">${laterStr}</div>
+    </div>`)
+    // adjustHeight()
+    bindToggleInfo()
+  
+}
+function renderBtn(data){
+    const hasBtn = data[0]&&data[0].history&&data[0].history === 1
+    if(!hasBtn){
+        return
+    }
+    const str = `<div class="btnBox" id="btnBox"><span class="btnName">显示历史计划</span></div>`
+    $(".followUpWrap").append(str)
+    bindToggleHistory()
+  
+}
+function adjustHeight() {
+    var containerHt = $(".contentWrapper").height()
+    var ht1 = $(".operaNameWrap").height()
+    var ht2 = $(".btnBox").height()
+    $(".followUpWrap  .infoWrap").height(containerHt -ht1- ht2-30 + "px");
+    $(".infoWrap").preventScroll();  
+}
+function getTime(date){
+    if(!date){
+        return ``
+    }
+    const year = new Date(date).getFullYear()
+    const month = new Date(date).getMonth()+1
+    const day = new Date(date).getDate()
+    return `${year}年${month}月${day}日`
+}
+
+//  声明定时器
+var cheakDomTimer = null
+//  检查dom是否执行完成
+function checkDom() {
+    let dom1Hei = $("#operaNameWrap").height()
+    let dom2 = document.getElementById('btnBox')
+    let dom3 = document.getElementById('infoWrap')
+    let dom2Hei = $("#btnBox").height()
+    if(dom1Hei!==0&&(dom2&&dom2Hei!=0 || !dom2)&&dom3) {
+         //  执行dom加载完成后的操作
+    
+         adjustHeight()
+        //  清除定时器
+        if(!cheakDomTimer) {
+            clearTimeout(cheakDomTimer)
+        }
+    } else {
+        //  自我调用
+        cheakDomTimer = setTimeout(checkDom, 200)
+    }
+}
+function bindToggleHistory(){
+    $(document).on("click",".btnName",function(){
+        const btnText = $(".btnName").text()
+        if(btnText==="显示历史计划"){
+            $(".btnName").text("隐藏历史计划")
+        }else{
+            $(".btnName").text("显示历史计划")
+        }
+        $(".historyWrap").slideToggle()
+    })
+}
+function bindToggleInfo(){
+    $(document).on("click",".infoBoxTitle",function(){
+        const img =  $(this).parents(".infoBox").find(".toggleInfo").attr("src")
+        if(img === showImg){
+            $(this).parents(".infoBox").find(".toggleInfo").attr("src",collapseImg)
+        }else{
+            $(this).parents(".infoBox").find(".toggleInfo").attr("src",showImg)
+        }
+        $(this).parents(".infoBox").find(".childrenBox").slideToggle()
+    })
+}
+function empty(){
+    let str = `<div class="emptyBox">
+        <img class="emptyImg" src=${emptyImg}>
+        <p class="emptyTxt">暂无随访计划</p>
+    </div>`
+    $(".followUpWrap").append(str)
+}
+
+$(window).on('resize', function(){
+    adjustHeight()
+})
+
+module.exports ={
+    renderFollowUp
+}

+ 1 - 0
src/js/promise.js

@@ -66,6 +66,7 @@ const config = {
   analyse:'/api/data/mrqc/analyse',
   getHosptDeptUsal:'/api/data/concept/getHosptDeptUsal', //获取科室常用标签
   caseWritingPrompt:'/sys/mrqc/caseWritingPrompt',//病历书写规范提示
+  followUp:'/sys/push/pushPlan', //随访计划
   ruleTypeMap:{     //大数据推送参数featureType对应
     '22':'1,2',
     '11':'3',

+ 1 - 1
src/js/staticSearch.js

@@ -147,7 +147,7 @@ function adjustHeight() {
     var ht = window.innerHeight;
     var containerHt = $(".medicalKonwledgeWrap .container").height()
     var ht2 = $(".searchTypeBox").outerHeight(true)
-    $(".staticSearchB ul").height(ht - 120-10-40 - ht2 + "px");
+    $(".staticSearchB ul").height(ht - 120-10-40 +20- ht2 + "px");
 }
 $(window).on('resize', function(){
     adjustHeight()

+ 14 - 0
webpack.config.js

@@ -25,6 +25,7 @@ module.exports = {
     smartAlert: path.resolve(__dirname, 'src/js', 'smartAlert.js'),
     caseWriteStandard: path.resolve(__dirname, 'src/js', 'caseWriteStandard.js'),
     generalTreat:path.resolve(__dirname, 'src/js', 'generalTreat.js'),
+    cdssPlan:path.resolve(__dirname, 'src/js', 'cdssPlan.js'),
     vendor: 'lodash'// 多个页面所需的公共库文件,防止重复打包带入
   },
   output: {
@@ -63,6 +64,19 @@ module.exports = {
         collapseWhitespace: true //删除空白符与换行符
       }
     }),
+    new HtmlWebpackPlugin({
+      title: '随访计划',
+      template: path.resolve(__dirname, 'src/html', 'cdssPlan.html'),
+      filename: 'cdssPlan.html',
+      chunks: ['cdssPlan', 'vendor', 'common'],
+      inject: true,
+      hash: true, //防止缓存
+      minify: {
+        removeAttributeQuotes: true, //压缩 去掉引号
+        removeComments: true, //移除HTML中的注释
+        collapseWhitespace: true //删除空白符与换行符
+      }
+    }),
     new HtmlWebpackPlugin({
       title: '病历书写规范提示',
       template: path.resolve(__dirname, 'src/html', 'caseWriteStandard.html'),