Ver código fonte

推送页修改

zhouna 6 anos atrás
pai
commit
9e3b0ebe72
2 arquivos alterados com 224 adições e 300 exclusões
  1. 119 78
      static/pages/diag_push.html
  2. 105 222
      static/pages/hisLib/diag_push.js

+ 119 - 78
static/pages/diag_push.html

@@ -32,15 +32,19 @@
         tr{
             height: 30px;
         }
+        td{
+            vertical-align: top;
+        }
         .container label{
             display: inline-block;
             width: 80px;
             margin-left: 5px;
         }
-        .container a{
+        a{
             margin-right: 10px;
             color: blue;
             cursor: default;
+            cursor: pointer;
             text-decoration: underline;
         }
         a.info{
@@ -55,29 +59,6 @@
             text-decoration: none;
             margin-left: 3px;
         }
-
-        .origin td[rowspan="5"]{
-            width: 45px;
-            /*background: #deecfd;*/
-        }
-        .origin td:first-child{
-            border-right: 1px #828790 solid;
-            word-break: break-all;
-        }
-        .origin span{
-            float: left;
-        }
-        td:last-child{
-           /* width:560px;*/
-        }
-        .origin span:first-child{
-            margin-left:5px;
-        }
-        .origin .little{
-            font-size: 10px;
-            line-height: 12px;
-            margin-left: 5px;
-        }
         .hide{
             display: none!important;
         }
@@ -93,7 +74,9 @@
             border-radius: 3px;
             cursor: pointer;
         }
-
+        .item-box{
+            display: none;
+        }
         .clearfix{
             zoom: 1;
         }
@@ -104,60 +87,118 @@
             overflow: hidden;
             visibility: hidden;
         }
+        .vertical,.horizontal{
+            display: none;
+        }
+        .vertical .item-box{
+            margin-top:20px;
+        }
+        .vertical .title{
+            font-size: 14px;
+        }
+        .vertical .item-title{
+            font-weight: bold;
+            font-size: 14px;
+            line-height: 30px;
+            border-bottom: 1px #ccc solid;
+        }
+        .vertical .item-content{
+            font-size: 13px;
+            line-height: 30px;
+
+        }
     </style>
 </head>
 <body>
-    <table class="container" cellspacing="0">
-        <tbody>
-        <tr class="origin">
-            <td rowspan="5">
-                <div class="clearfix">
-                    <span>智<br/>能<br/>推<br/>送</span>
-                    <span class="little">︵<br/>仅<br/>供<br/>参<br/>考<br/>︶</span>
-                </div>
-            </td>
-            <td>
-                <label>>初步诊断:</label>
-            </td>
-            <td class="main-suit">
-            </td>
-        </tr>
-        <tr class="test">
-            <td>
-                <label>>建议化验:</label>
-            </td>
-            <td>
-                <div class="test-item item">
-                </div>
-            </td>
-        </tr>
-        <tr class="suggest">
-            <td>
-                <label>>建议辅检:</label>
-            </td>
-            <td>
-                <div class="sug-item item">
-                </div>
-            </td>
-        </tr>
-        <tr class="treat">
-            <td>
-                <label>>治疗建议:</label>
-            </td>
-            <td>
-                <div class="treatment item">
-                </div>
-            </td>
-        </tr>
-        <tr>
-            <td></td>
-            <td>
-                <p></p>
-            </td>
-        </tr>
-        </tbody>
-    </table>
-
-    <script src="./hisLib/jquery-1.9.1.min.js"></script>
-    <script  src="./hisLib/diag_push.js"></script>
+<table class="container horizontal" cellspacing="0">
+    <tbody>
+    <tr class="item-box box1">
+        <td rowspan="7">
+            <div class="clearfix">
+                <span>智<br/>能<br/>推<br/>送</span>
+                <span class="little">︵<br/>仅<br/>供<br/>参<br/>考<br/>︶</span>
+            </div>
+        </td>
+        <td>
+            <label>>伴随症状:</label>
+        </td>
+        <td class="item-content">
+        </td>
+    </tr>
+    <tr class="item-box box4">
+        <td>
+            <label>>查&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;体:</label>
+        </td>
+        <td>
+            <div class="item-content">
+            </div>
+        </td>
+    </tr>
+    <tr class="item-box box7">
+        <td>
+            <label>>初步诊断:</label>
+        </td>
+        <td>
+            <div class="item-content">
+            </div>
+        </td>
+    </tr>
+    <tr class="item-box box5">
+        <td>
+            <label>>建议化验:</label>
+        </td>
+        <td>
+            <div class="item-content">
+            </div>
+        </td>
+    </tr>
+    <tr class="item-box box6">
+        <td>
+            <label>>建议辅检:</label>
+        </td>
+        <td>
+            <div class="item-content">
+            </div>
+        </td>
+    </tr>
+    <tr class="item-box box">
+        <td style="vertical-align: text-bottom;">
+            <label>>治疗建议:</label>
+        </td>
+        <td>
+            <div class="item-content box">
+            </div>
+        </td>
+    </tr>
+    </tbody>
+</table>
+<div class="vertical">
+    <div class="title">智能推送(仅供参考)</div>
+    <div class="item-box box1">
+        <div class="item-title">伴随症状</div>
+        <div class="item-content"></div>
+    </div>
+    <div class="item-box box4">
+        <div class="item-title">查体</div>
+        <div class="item-content"></div>
+    </div>
+    <div class="item-box box7">
+        <div class="item-title">初步诊断</div>
+        <div class="item-content"></div>
+    </div>
+    <div class="item-box box5">
+        <div class="item-title">建议化验</div>
+        <div class="item-content"></div>
+    </div>
+    <div class="item-box box6">
+        <div class="item-title">建议辅检</div>
+        <div class="item-content"></div>
+    </div>
+    <div class="item-box box">
+        <div class="item-title">治疗建议</div>
+        <div class="item-content"></div>
+    </div>
+</div>
+<script src="./hisLib/jquery-1.3.1.js"></script>
+<script  src="./hisLib/diag_push.js"></script>
 </body>

+ 105 - 222
static/pages/hisLib/diag_push.js

@@ -1,228 +1,111 @@
 (function ($) {
-        var urls = {
-            url:{
-                'host':"/icss-web",
-                'start_drug': '/rule_controller/start_drug_title',
-                //His推送接口
-                'get_push_data':'/kl/diseaseinfo/get_data',
-                'recovery_index': '/at/inquiry_info/recover',
-                'get_patient_from_his': '/at/patientinfo/get_patient_from_his'
-            }
-        };
-        var urlSearch = parseUrl();
-        var isRecover = urlSearch.recover;
-        if(isRecover){
-            getRecover();
-        }else{
-            getPushData();
-        }
-        function parseUrl() {
-            var r = window.location.search.substr(1).split("&"),
-                obj = {};
-            $.each(r, function (i, v) {
-                if (v) {
-                    var arr = v.split("=");
-                    obj[arr[0]] = encodeURI(arr[1]);
-                }
-            });
-            return obj;
-        };
-        function getPushData(){
-            var url = urls.url.host + urls.url.get_push_data;
-            var code = urlSearch.diagnosis;
-            var hospitalCode = urlSearch.hospitalCode;
-            ajaxJsonGet(url,{code:code,hospitalCode:hospitalCode},function(response){
-                var data = response.data;
-                if(response.status=='OK'){
-                    fillPushData(data);
-                }
-            });
-        }
-        //获取历史数据
-        function getRecover(){
-            var patientNo = urlSearch.patientId;
-            var recordId = urlSearch.recordId;
-            var hospitalCode = urlSearch.hospitalId;//urls.url.host
-            var url =  urls.url.host + urls.url.recovery_index;
-            var pUrl = urls.url.host + urls.url.get_patient_from_his;
-            ajaxJsonGet(pUrl,{hospitalCode:hospitalCode,hisCode:patientNo},function(response){
-                var data = response.data;
-                if(data){
-                    $.get(url,{patientId:data.id,hospitalCode:hospitalCode,hisCode:recordId},function(response){
-                        var data = response.data;
-                        if(response.status=='OK'){
-                            parseRecoverData(data);
-                        }
-                    });
-                }else{
-                    console.warn("获取患者信息为空");
-                }
-            });
-
-        }
+  var urls = {
+    'host':"/icss-web",
+    //His推送接口
+    'get_push':'http://192.168.2.234:5008/push-web/algorithm/neural'
+  };
+  $.support.cors = true;
+  var config = {
+    width:'560px',      //推送内容显示的宽度
+    num:'11',         //每行显示的最大个数
+    mode:'horizontal',  //布局模式水平horizontal,垂直vertical,
+    models:[5,6,7]       //需要显示的推送模块,主诉-诊断1-7
+  };
+  var urlSearch = parseUrl();
+  handleConfig();
+  getPushData();
 
-        //解析recover数据
-        function parseTextRecoverData(data){
-            var json = JSON.parse(data[0].dataJson);
-            var items = json.structuredText.items;
-            var test = items[5].symptoms&&items[5].symptoms.split(",");
-            var sug = items[6].symptoms&&items[6].symptoms.split(",");
-            var treat = items[7].symptoms.split(",");
-            var drug = items[8].symptoms.split(",");
-            var treatStr='';
-            if(test.length==0){
-                test = json.hisPush.test.map((it) =>{
-                   return it.name;
-                });
-            }
-            if(sug.length==0){
-                sug = json.hisPush.assist.map((it) =>{
-                    return it.name;
-                });
-            }
-            for(var i=0; i<treat.length;i++){
-                if(i>3){
-                    treatStr += '<b class="hide">'+treat[i]+'</b>';
-                }else{
-                    treatStr += '<b>'+treat[i]+'</b>';
-                }
-            }
-            $(".main-suit").html(treatStr);
-            mapRecoverData(".test-item",test,true);
-            mapRecoverData(".sug-item",sug,true);
-            mapRecoverData(".treatment",drug,true);
-            var hide = $(".main-suit .hide")[0];
-            if(hide){
-                $("<a class='more'>...</a>").insertBefore(hide);
-                $(".more").click(function(e){
-                    $(e.target).siblings(".hide").removeClass("hide");
-                    $(e.target).hide();
-                })
-            }
-        }
-        function parseRecoverData(data){
-            if(!data[0]){
-                console.warn("获取的recover数据为空");
-                return ;
-            }
-            var json = JSON.parse(data[0].dataJson);
-            if(json.mode==2){
-                parseTextRecoverData(data);
-                return;
-            }
-            var items = json.structured.originalItems;
-            var test = items[5][''];
-            var sug = items[6][''];
-            var treat = items[7][''];
-            var drug = items[8][''];
-            var treatStr='',infoUrl;
-            test = test.length==0?json.hisPush.test:test;
-            sug = sug.length==0?json.hisPush.assist:sug;
-            //console.log(json)
-            for(var i=0; i<treat.length;i++){
-                infoUrl = "./case_info.html?diseaseId="+treat[i].id;   //文本模式保存的没有id
-                if(i>3){
-                    treatStr += '<b class="hide">'+treat[i].title+'</b><a class="info hide" href="'+infoUrl+'" target="_blank">i</a>';
-                }else{
-                    treatStr += '<b>'+treat[i].title+'</b><a class="info" href="'+infoUrl+'" target="_blank">i</a>';
-                }
-            }
-            $(".main-suit").html(treatStr);
-            mapRecoverData(".test-item",test);
-            mapRecoverData(".sug-item",sug);
-            mapRecoverData(".treatment",drug);
-            var hide = $(".main-suit .hide")[0];
-            if(hide){
-                $("<a class='more'>...</a>").insertBefore(hide);
-                $(".more").click(function(e){
-                    $(e.target).siblings(".hide").removeClass("hide");
-                    $(e.target).hide();
-                })
-            }
+  function parseUrl() {
+    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]?decodeURI(arr[1]):'';
+      }
+    });
+    return obj;
+  };
 
-        }
+  function handleConfig(){
+    $("tr td:last-child,.item-box").css({width:config.width});
+    $('.'+config.mode).show();
+    $('.item-box:visible:first td:first').attr('rowspan',config.models.length);
+    //显示对应项目
+    config.models.map((it)=>{
+      $('.'+config.mode+" .box"+it).show();
+    });
+  }
+  function getPushData(){
+    var url = urls.get_push;
+    var myParam = {
+      symptom: urlSearch.symptomJson||"",
+      past: urlSearch.pastJson||"",
+      other: urlSearch.otherJson||"",
+      vital: urlSearch.vitalsJson||"",
+      lis: urlSearch.labsJson||"",
+      pacs: urlSearch.pacsJson||"",
+      diag: urlSearch.disJson||"",
+      featureType: config.models.join(",")
+    };
 
-        function mapRecoverData(dom,data,isText){
-            var itemDom = "",item = data,temp;
-            if(!data.length>0){
-                console.warn("获取数据失败");
-                return ;
-            }
-            for(var i=0;i<item.length;i++){
-                if(isText){
-                    temp = item[i];
-                }else{
-                    temp = item[i].title||item[i].name;
-                }
-                if(i>7){
-                    itemDom += '<a href="##" class="hide">'+temp+'</a>';
-                }else{
-                    itemDom += '<a href="##">'+temp+'</a>';
-                }
-            }
-            $(dom).html(itemDom||"无");
-            var hide = $(dom).find(".hide")[0];
-            if(hide){
-                $("<a class='more'>...</a>").insertBefore(hide);
-                $(".more").click(function(e){
-                    $(e.target).siblings(".hide").removeClass("hide");
-                    $(e.target).hide();
-                })
-            }
-        }
-        //填入推送信息
-        function fillPushData(data){
-            if(!data||JSON.stringify(data)=='{}'){
-                console.warn("获取推送数据为空!");
-                return ;
-            }
-            var lis = data.lis;
-            var pacs = data.pacs;
-            var drug = data.drug;
-            var disease = data.disease;
-            var infoUrl,str='';
-
-            for(var i=0;i<disease.length;i++){
-                infoUrl="./case_info.html?diseaseId="+disease[i].id;
-                str += '<b>'+disease[i].name+'</b><a class="info" href="'+infoUrl+'" target="_blank">i</a>';
-            }
-            $(".main-suit").html(str);
-            mapItem(".test-item", lis);
-            mapItem(".sug-item", pacs);
-            mapItem(".drug-item", drug);
-
-        }
-        //遍历数据
-        function mapItem(dom,item){
-            var itemDom = '';
-            for(var i=0;i<item.length;i++){
-                if(i>5){
-                    itemDom += '<a href="##" class="hide">'+item[i]+'</a>';
-                }else{
-                    itemDom += '<a href="##">'+item[i]+'</a>';
-                }
-            }
-            $(dom).html(itemDom||"无");
-            var hide = $(dom).find(".hide")[0];
-            if(hide){
-                $("<a class='more'>...</a>").insertBefore(hide);
-                $(".more").click(function(e){
-                    $(e.target).siblings(".hide").removeClass("hide");
-                    $(e.target).hide();
-                })
-            }
-        }
-        function ajaxJsonGet(url, param, callback){
-            $.ajax({
-                url: url,
-                data:param,
-                contentType: 'application/json',
-                type:'get',
-                cache:false,
-                success:function(response){
-                    callback(response);
-                }
-            });
+    $.ajax({
+      url: url,
+      type:'post',
+      dataType: "json",
+      contentType:"application/json",
+      data:JSON.stringify(myParam),
+      success:function(response){
+        var data = response.data;
+        if(response.ret=='0'){
+          fillPushData(data);
         }
+      },
+      error:function(error){
+        console.log("error:"+error);
+      },
+      complete:function(){
+        console.log("complete")
+      }
+    });
+  }
 
-    })(jQuery);
+  //填入推送信息
+  function fillPushData(data){
+    var maps = {1:'symptom',4:'vitals',5:'labs',6:'pacs',7:'dis',};
+    if(!data||JSON.stringify(data)=='{}'){
+      console.warn("获取推送数据为空!");
+      return ;
+    }
+    var key='',modeClass='.'+config.mode;
+    config.models.map((it)=>{
+        key = maps[it];
+        var arr = [];
+      for(var n = 0;n <data[key].length; n++){
+        arr.push(data[key][n].featureName);
+      }
+      mapItem(modeClass+" .box"+it+' .item-content', arr);
+    });
+    //$(modeClass+" .box .item-content").html(str);         //治疗建议
+  }
+  //遍历数据
+  function mapItem(dom,item){
+    var itemDom = '';
+    for(var i=0;i<item.length;i++){
+      if(i>config.num-1){
+        itemDom += '<a href="##" class="hide">'+item[i]+'</a>';
+      }else{
+        itemDom += '<a href="##">'+item[i]+'</a>';
+      }
+    }
+    $(dom).html(itemDom||"无");
+    var hide = $(dom).find(".hide")[0];
+    if(hide){
+      $("<a class='more'>...</a>").insertBefore(hide);
+      $(".more").click(function(e){
+        $(e.target).siblings(".hide").removeClass("hide");
+        $(e.target).hide();
+      })
+    }
+  }
+})(jQuery);