liucf 6 anni fa
parent
commit
b0ace23657

+ 63 - 0
src/common/components/CheckBtn/index.jsx

@@ -0,0 +1,63 @@
+import React from 'react';
+/*import PropTypes from 'prop-types';*/
+import on from '@common/images/checked.png';
+import style from './index.less';
+
+/**
+ * 多选按钮
+ * handleClick:点击触发按键 会将输入的props信息作为参数传入
+ * isSelect:是否选中
+ * label:右侧显示文字
+ */
+class CheckBtn extends React.Component {
+  constructor(props){
+    super(props);
+    this.handleClick = this.handleClick.bind(this);
+  }
+
+  handleClick(id){
+    this.props.handleClick(id);
+  }
+
+  getStyle(){
+    if(this.props.display=='block'){
+      return {
+        display:'block',
+        // marginBottom:'10px'
+      }
+    }
+    return {
+      display:'inline-block',
+      /*marginLeft:'10px'*/
+    }
+  }
+
+  render() {
+    const {id,label,isSelect,disabled} = this.props;
+    /*if(disabled){
+        return (
+            <div className={style['check-box']}
+                 style={this.getStyle()}>
+                <span className={style['img']}></span>
+                <span style={{color:'#aaa'}}>{label}</span>
+            </div>
+        )
+    }*/
+    return (
+      <div className={style['check-box']}
+           onClick={() =>this.handleClick(id)}
+           style={this.getStyle()}>
+        <span className={isSelect?style['on']:style['img']}></span>
+        <span>{label}</span>
+      </div>
+    )
+  }
+}
+
+/*Radio.propTypes = {
+    handleClick:PropTypes.func,
+    isSelect:PropTypes.bool,
+    name:PropTypes.string
+};*/
+
+export default CheckBtn;

+ 24 - 0
src/common/components/CheckBtn/index.less

@@ -0,0 +1,24 @@
+.check-box{
+  max-width: 120px;
+  height: 35px;
+  line-height: 35px;
+  cursor: pointer;
+  .img{
+    display: inline-block;
+    width: 14px;
+    height: 14px;
+    vertical-align: middle;
+    margin-right: 4px;
+    background: #fff;
+    -webkit-appearance: none;
+    border: 1px solid #c9c9c9;
+    border-radius: 4px;
+    outline: none;
+    cursor: pointer;
+  }
+  .on{
+    .img;
+    background: url("../../images/first.png") no-repeat;
+    background-size: 93% 100%;
+  }
+}

+ 5 - 0
src/common/components/ComplexModal/index.less

@@ -14,6 +14,11 @@
     bottom:30px;
     text-align: right;
   }
+  /*@media print {
+    .shade{
+      display: none;
+    }
+  }*/
   .shade {
     position: fixed;
     left: 0;

+ 0 - 65
src/common/components/Radio/index.js

@@ -1,65 +0,0 @@
-import React from 'react';
-/*import PropTypes from 'prop-types';*/
-import on from '@common/images/icon-radio-active.png';
-import off from '@common/images/icon-radio-default.png';
-import disable from './img/disable.png';
-import style from './index.less';
-
-/**
- * 单选按钮
- * handleClick:点击触发按键 会将输入的props信息作为参数传入
- * isSelect:是否选中
- * name:右侧显示文字
- */
-class Radio extends React.Component {
-    constructor(props){
-        super(props);
-        this.handleClick = this.handleClick.bind(this);
-    }
-
-    handleClick(id){
-        this.props.handleClick(id);
-    }
-
-    getStyle(){
-        if(this.props.display=='block'){
-            return {
-                display:'block',
-                // marginBottom:'10px'
-            }
-        }
-        return {
-            display:'inline-block',
-            /*marginLeft:'10px'*/
-        }
-    }
-
-    render() {
-        const {id,name,isSelect,disabled} = this.props;
-        if(disabled){
-            return (
-                <div className={style['radio']}
-                     style={this.getStyle()}>
-                    <img src={isSelect?disable:off}/>
-                    <span style={{color:'#aaa'}}>{name}</span>
-                </div>
-            )
-        }
-        return (
-            <div className={style['radio']}
-                 onClick={() =>this.handleClick(id)}
-                 style={this.getStyle()}>
-                <img src={isSelect?on:off}/>
-                <span>{name}</span>
-            </div>
-        )
-    }
-}
-
-/*Radio.propTypes = {
-    handleClick:PropTypes.func,
-    isSelect:PropTypes.bool,
-    name:PropTypes.string
-};*/
-
-export default Radio;

+ 65 - 0
src/common/components/Radio/index.jsx

@@ -0,0 +1,65 @@
+import React from 'react';
+/*import PropTypes from 'prop-types';*/
+import on from '@common/images/icon-radio-active.png';
+import off from '@common/images/icon-radio-default.png';
+import disable from './img/disable.png';
+import style from './index.less';
+
+/**
+ * 单选按钮
+ * handleClick:点击触发按键 会将输入的props信息作为参数传入
+ * isSelect:是否选中
+ * label:右侧显示文字
+ */
+class Radio extends React.Component {
+  constructor(props){
+    super(props);
+    this.handleClick = this.handleClick.bind(this);
+  }
+
+  handleClick(id){
+    this.props.handleClick(id);
+  }
+
+  getStyle(){
+    if(this.props.display=='block'){
+      return {
+        display:'block',
+        // marginBottom:'10px'
+      }
+    }
+    return {
+      display:'inline-block',
+      /*marginLeft:'10px'*/
+    }
+  }
+
+  render() {
+    const {id,label,isSelect,disabled} = this.props;
+    if(disabled){
+      return (
+        <div className={style['radio']}
+             style={this.getStyle()}>
+          <img src={isSelect?disable:off}/>
+          <span style={{color:'#aaa'}}>{label}</span>
+        </div>
+      )
+    }
+    return (
+      <div className={style['radio']}
+           onClick={() =>this.handleClick(id)}
+           style={this.getStyle()}>
+        <img src={isSelect?on:off}/>
+        <span>{label}</span>
+      </div>
+    )
+  }
+}
+
+/*Radio.propTypes = {
+    handleClick:PropTypes.func,
+    isSelect:PropTypes.bool,
+    name:PropTypes.string
+};*/
+
+export default Radio;

+ 3 - 1
src/common/components/index.js

@@ -3,7 +3,8 @@ import Button from "./Button";
 import Loading from "./Loading";
 import Message from "./Message";
 import Modal from "./Modal";
-import Radio from "./Radio";
+import Radio from "./Radio/index";
+import CheckBtn from './CheckBtn';
 import InlineTag from './InlineTag';
 import ItemBox from './ItemBox';
 import Tab from './Tab';
@@ -26,6 +27,7 @@ module.exports = {
     Banner,
     Modal,
     Radio,
+    CheckBtn,
     Loading,
     Button,
     Message,

+ 1 - 1
src/common/js/func.js

@@ -22,7 +22,7 @@ export function dateParser(timestamp,link = '-'){
     let hour = time.getHours().toString().padStart(2,'0');
     let minute = time.getMinutes().toString().padStart(2,'0');
     // let result = year+link+month+link+date;
-    let result = year+link+month+link+date+' '+hour+':'+minute;
+    let result = year+link+(month<10?"0"+month:month)+link+(date<10?"0"+date:date)+' '+hour+':'+minute;
     return result;
 }
 

+ 21 - 4
src/components/AssessResult/ChartItem/index.jsx

@@ -14,7 +14,7 @@ class ChartItem extends Component {
     this.state={
       weekArr:[],
       oneMonthArr:[],
-      threeMonthArr:[],
+      sixMonthArr:[],
       yearMonthArr:[]
     };
     this.getContainers = this.getContainers.bind(this);
@@ -25,7 +25,7 @@ class ChartItem extends Component {
     for(let i=0;i<7;i++){
       temp=i*1000*60*60*24;
       arr.unshift(...this.getDayHours(now-temp));
-    }console.log(arr)
+    }
     return arr;
   }
   getDayHours(time){
@@ -41,7 +41,7 @@ class ChartItem extends Component {
     return arr;
   }
   getContainers(){
-    const {nameObj,obj} = this.props.data;
+    const obj = this.props.data;
     const {weekArr} = this.state;
     let arr = [];
     for(let i in obj){
@@ -73,6 +73,9 @@ class ChartItem extends Component {
 class Chart extends Component{
   constructor(props) {
     super(props);
+    this.state={
+      timeRange:'week'
+    };
     this.drawChart = this.drawChart.bind(this);
   }
   drawChart(){
@@ -144,11 +147,25 @@ class Chart extends Component{
     // 使用刚指定的配置项和数据显示图表。
     myChart.setOption(option);
   }
+  timeSwitch(type){
+    this.setState({
+      timeRange:type
+    });
+  }
   componentDidMount(){
     this.drawChart();
   }
   render(){
-    return <div className={style["chart-box"]} id={'chart'+this.props.index}></div>
+    const {timeRange} = this.state;
+    return <div className={style['cont']}>
+              <div className={style['time-range']}>
+                <span className={timeRange=='year'?style['range']+" "+style['on']:style['range']} onClick={()=>this.timeSwitch("year")}>近一年</span>
+                <span className={timeRange=='6month'?style['range']+" "+style['on']:style['range']} onClick={()=>this.timeSwitch("6month")}>近六个月</span>
+                <span className={timeRange=='month'?style['range']+" "+style['on']:style['range']} onClick={()=>this.timeSwitch("month")}>近一个月</span>
+                <span className={timeRange=='week'?style['range']+" "+style['on']:style['range']} onClick={()=>this.timeSwitch("week")}>近一周</span>
+              </div>
+              <div className={style["chart-box"]} id={'chart'+this.props.index}></div>
+            </div>;
   }
 }
 

+ 61 - 9
src/components/AssessResult/ChooseItem/index.jsx

@@ -1,6 +1,6 @@
 import React, { Component } from "react";
 import style from "../index.less";
-import { Radio} from '@commonComp';
+import { Radio,CheckBtn } from '@commonComp';
 /****
  * 大数据推送出的类型
  * 要素:名称、选项、推荐选择
@@ -8,10 +8,53 @@ import { Radio} from '@commonComp';
  * ****/
 class ChooseItem extends Component {
   constructor(props) {
-    super(props)
+    super(props);
+    this.state = {
+      saveData:null,
+      selecteds:{},
+    };
+    //this.setInitState = this.setInitState.bind(this);
+  }
+  /*setInitState(){
+    if(this.state.saveData){
+      this.setState({
+        saveData:this.props.data
+      });
+    }
+  }*/
+  handleRadio(name,value){
+    const {selecteds} = this.state;
+    const {handleChange} = this.props;
+    this.setState({
+      selecteds:Object.assign({},selecteds,{[name]:value})
+    });
+    handleChange&&handleChange(Object.assign({},selecteds,{[name]:value}));     //不能用this.state.selecteds,因为state更新不是即时的
+    /*const list = item.details.map((it)=>{
+      if(it.detailName==value){
+        return Object.assign(it,{isSelected:true});
+      }else{
+        return Object.assign(it,{isSelected:false});
+      }
+    });*/
+  }
+  handleCheckbox(name,value){
+    let {selecteds} = this.state;
+    const {handleChange} = this.props;
+    selecteds[name]?selecteds[name]:selecteds[name]=[];
+    const index = selecteds[name].findIndex((i)=>i==value);
+    if(index!=-1){
+      selecteds[name].splice(index,1);
+    }else{
+      selecteds[name].push(value);
+    }
+    this.setState({
+      selecteds:selecteds
+    });
+    handleChange&&handleChange(selecteds);
   }
   render() {
-    const {title,data  } = this.props;
+    const {title,data} = this.props;
+    const {selecteds} = this.state;
     return <div className={style['assess-item']}>
         <h2>{title}</h2>
         <div className={style['item-content']}>
@@ -21,14 +64,23 @@ class ChooseItem extends Component {
                 <span>{it.name}:</span>
                 <div className={style['row']}>
                   {it.details&&it.details.map((i)=> {
-                    if(it.controltype ==1){
-                      return <div className={style['choose-item']}><Radio name={i.detailName} value={i.detailName} handleClick={null}></Radio>{i.state?<i>(智能推荐)</i>:''}</div>;
+                    if(it.controltype ==0){
+                      return <div className={style['choose-item']}>
+                                <Radio label={i.detailName}
+                                       value={i.detailName}
+                                       isSelect={selecteds[it.name]==i.detailName}
+                                       handleClick={this.handleRadio.bind(this,it.name,i.detailName)}></Radio>
+                                {i.state?<i>(智能推荐)</i>:''}
+                              </div>;
                     }else{
-                      return <span className={style['choose-item']}>
-                                <input id={i.detailName} value={i.detailName} name={it.name} type="checkbox" />
-                                <label htmlFor={i.detailName}>{i.detailName}</label>
+                      return <div className={style['choose-item']}>
+                                <CheckBtn id={i.detailName}
+                                          value={i.detailName}
+                                          label={i.detailName}
+                                          isSelect={selecteds[it.name]&&selecteds[it.name].includes(i.detailName)}
+                                          handleClick={this.handleCheckbox.bind(this,it.name,i.detailName)}/>
                                 {i.state?<i>(智能推荐)</i>:''}
-                              </span>;
+                              </div>;
                     }
                   })}
                 </div>

+ 3 - 0
src/components/AssessResult/ScaleItem/index.jsx

@@ -32,6 +32,9 @@ class ScaleItem extends Component {
               <img src={deleteIcon} />
             </div>
           </li>
+          <li>
+            <textarea className={style['edit-row']} name="supplement" id="" rows="6" placeholder='评估描述'></textarea>
+          </li>
         </ul>
       </div>
     </div>;

+ 26 - 27
src/components/AssessResult/index.jsx

@@ -6,45 +6,44 @@ import ChooseItem from "./ChooseItem";
 import ScaleItem from "./ScaleItem";
 import ChartItem from "./ChartItem";
 
-
 class AssessResult extends Component {
   constructor(props) {
-    super(props)
+    super(props);
+    this.state={
+      chooseSelecteds:{}
+    }
+    //this.handleChooseChange = this.handleChooseChange.bind(this);
   }
   componentWillMount(){
     //获取评估
     this.props.getAssess();
   }
-  parseChartData(){
-    const {indexData}=this.props;
-    let arr=[],obj={},temp={};
-    let nameArr=[],nameObj={};
-    if(!indexData){
-      return [];
-    }
-    indexData.indexConfigData.map((it)=>{
-      arr=obj[it.orderNo]||[];
-      nameArr=nameObj[it.orderNo]||[];
-      temp=indexData.itemIndexData.find((i)=>{return i.itemName==it.indexUnique});
-      obj[it.orderNo]=[...arr,temp];
-      nameObj[it.orderNo]=[...nameArr,it.indexUnique];
+  handleScaleDel(){
+
+  }
+  handleChooseChange(i,selects){
+    const {chooseSelecteds} = this.state;
+    this.setState({
+      chooseSelecteds: Object.assign(chooseSelecteds,{[i]:selects})
     });
-    //nameObj,obj;
-    return {nameObj,obj};
+    console.log(this.state.chooseSelecteds)
+  }
+  handleChartChange(){
+
   }
-  handoutTypes(item){
+  handoutTypes(item,i){
     const {getIndexData,indexData} =this.props;
     //console.log(indexData)
-    const chartData = this.parseChartData();
+    const chartData = indexData;
     const name = item.regionName+":";
     const list = item.data&&item.data.rows;
     switch (+item.regionType){
-      case 0:
-        return <ScaleItem title={name} data={list}></ScaleItem>;
-      case 1:
-        return <ChooseItem title={name} data={list}></ChooseItem>;
-      case 10:
-        return <ChartItem title={name} data={chartData} initFn={getIndexData}></ChartItem>;
+      case 0:     //数据来源与右侧手动添加
+        return <ScaleItem title={name} data={list} handleChange={this.handleScaleDel}></ScaleItem>;
+      case 1:     //数据来源于大数据
+        return <ChooseItem title={name} data={list} handleChange={this.handleChooseChange.bind(this,i)}></ChooseItem>;
+      case 10:    //数据来源于后台
+        return <ChartItem title={name} data={chartData||{}} initFn={getIndexData} handleChange={this.handleChartChange}></ChartItem>;
       default:
         return '';
     }
@@ -52,8 +51,8 @@ class AssessResult extends Component {
   render() {
     const { onClose,data } = this.props;
     return <div className={style['assess-cont']}>
-      {data&&data.map((it)=>{
-        return this.handoutTypes(it);
+      {data&&data.map((it,i)=>{
+        return this.handoutTypes(it,i);
       })}
     </div>;
   }

+ 36 - 3
src/components/AssessResult/index.less

@@ -43,12 +43,45 @@
       color: #929292;
     }
   }
-  .chart-box{
+  .edit-row{
+    width: 100%;
+    border:1px @placeholder-color solid;
+    border-radius: 4px;
+    padding: 5px;
+  }
+  .cont{
     display: inline-block;
     width: 49%;
-    height: 225px;
+    height: 250px;
+    margin-bottom: 20px;
+    position: relative;
+    .chart-box{
+      width: 100%;
+      height: 100%;
+    }
   }
-  .chart-box:nth-child(odd){
+  .cont:nth-child(odd){
     margin-right: 2%;
   }
+  .time-range{
+    position: absolute;
+    top: 26px;
+    z-index: 2;
+    margin-left: 18px;
+    .range{
+      display: inline-block;
+      border:1px #DFDFDF solid;
+      border-radius: 10px;
+      background: #fff;
+      padding: 5px 10px;
+      margin-right: 15px;
+      font-size: 12px;
+      cursor: pointer;
+      &.on{
+        background: @blue;
+        color: #fff;
+        border-color: @blue;
+      }
+    }
+  }
 }

+ 5 - 0
src/components/BodyContainer/index.less

@@ -1,3 +1,8 @@
+/*@media print{
+  .container{
+    display: none;
+  }
+}*/
 .container{
   padding: 50px 10px 0 10px;
   position: relative;

+ 37 - 3
src/containers/AssessResult.js

@@ -5,17 +5,30 @@ import {ISREAD} from '@store/types/homePage.js';
 import {billing} from '@store/async-actions/pushMessage';
 import {getAssessData,getIndexData} from '@store/async-actions/fetchModules';
 import {SET_ASSESS_DATA,SET_INDEX_DATA} from '@types/assessResult';
+import store from '@store';
+
+/***
+ * 管理评估逻辑:
+ * 根据推送弹窗显示“智能推荐”,首次无选中项
+ * 评估内容项接口返回,其中整体评估为右侧操作加入
+ * 点确定等同于页面病例保存按钮(同时保存页面数据和评估结果)
+ * 点确定后再次打开,保留上次操作结果(页面清空,引用除外),
+ * 但推荐选项按最新推送显示
+ *
+ * ***/
 
 function mapStateToProps(state) {
   //console.log(state)
   const {assessResult} = state;
   return {
     data:assessResult.data,
-    indexData:assessResult.indexData
+    indexData:assessResult.indexData,
+    saveIndexData:assessResult.saveIndexData,
+    saveData:assessResult.saveData
   }
 }
 
-function mapDispatchToProps(dispatch, store) {
+function mapDispatchToProps(dispatch) {
   return {
     getAssess(){
       dispatch(getAssessData()).then((res)=>{
@@ -30,11 +43,16 @@ function mapDispatchToProps(dispatch, store) {
       });
     },
     getIndexData(){
+      const state=store.getState();
+      const indexData = state.assessResult.indexData;
+      if(Object.keys(indexData).length!=0){
+        return ;
+      }
       dispatch(getIndexData()).then((res)=>{
         if(res.data.code=='0'){
           dispatch({
             type:SET_INDEX_DATA,
-            data:res.data.data
+            data:parseChartData(res.data.data)
           })
         }
       }).catch(error=>{
@@ -44,6 +62,22 @@ function mapDispatchToProps(dispatch, store) {
   }
 }
 
+function parseChartData(indexData){
+  let arr=[],obj={},temp={};
+  let nameArr=[],nameObj={};  //暂弃
+  if(!indexData){
+    return [];
+  }
+  indexData.indexConfigData.map((it)=>{
+    arr=obj[it.orderNo]||[];
+    nameArr=nameObj[it.orderNo]||[];
+    temp=indexData.itemIndexData.find((i)=>{return i.itemName==it.indexUnique});
+    obj[it.orderNo]=[...arr,temp];
+    nameObj[it.orderNo]=[...nameArr,it.indexUnique];
+  });
+  //nameObj,obj;
+  return obj;
+}
 const AssessResultContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResult);
 
 export default AssessResultContainer;

+ 1 - 1
src/store/actions/checkBody.js

@@ -496,7 +496,7 @@ export function delSingleLable(state,action){
   return res;
 }
 //查体推送高亮标签
-export function setImportCheckbodyLabel(state,action) {console.log(action)
+export function setImportCheckbodyLabel(state,action) {
   let res = Object.assign({},state);
   res.importLabel = action.labels;
   res.update = Math.random();

+ 2 - 1
src/store/actions/treat.js

@@ -61,7 +61,8 @@ export const setDrugInfo = (state, action) => {
 
 export const clearDrugInfo = (state, action) => {
     const res = JSON.parse(JSON.stringify(state));
-    res.drugInfo.drugDesc = [];
+    // res.drugInfo.drugDesc = [];
+    if (res.drugInfo && res.drugInfo.drugDesc) { res.drugInfo.drugDesc = [];}
     return res
 }
 

+ 20 - 1
src/store/async-actions/print.js

@@ -16,14 +16,17 @@ export const saveMessage = (bool) => {
     let whichSign = baseList.typeConfig.typeConfig;
     let jsonStr = getAllDataStringList(baseList);
     let jsonData = getAllDataList(baseList);
+    const lisData = baseList.inspect.pushItem;
+    const lisArr = transferIndexData(lisData);
+    //transferIndexData(lisData);
     // console.log(jsonStr.diag,'保存历史病历')
-    
     json('/inquiryInfo/saveInquiry', {
         "doctorId": state.doctorId,
         "hospitalDeptId": state.hospitalDeptId,
         "hospitalId": state.hospitalId,
         "patientId": state.patientId,         //患者id              
         "dataJson": JSON.stringify(getAllDataList(baseList)),
+        "indexData":lisArr,
         "detailList": [{
             "content": jsonStr.chief,
             "contentValue":filterDataArr(JSON.parse(jsonStr.chief)),
@@ -103,6 +106,22 @@ export const saveMessage = (bool) => {
     }
 };
 
+//转换化验指标保存需要的数据
+function transferIndexData(data) {
+    const arr=[];
+   data.map((it)=>{
+       if(it.uniqueName&&it.value!=''){
+           arr.push({
+             creatTime:it.time,
+             indexUnique:it.uniqueName,
+             indexUnit:it.units,
+             indexValue:it.value,
+             isAbnormal:(it.maxValue||it.minValue)?(it.value<it.minValue||it.value>it.maxValue?1:0):0
+           });
+       }
+   });
+   return arr;
+}
 
 export const clearMessages = () => {
     let baseList = store.getState();

+ 8 - 3
src/store/async-actions/pushMessage.js

@@ -1,5 +1,5 @@
 import { get, post, json } from "@utils/ajax";
-import { BILLING_ADVICE, SET_TIPS, SET_TIPS_DETAILS ,SET_CHRONIC_TABLELIST,SET_SCALE_INFO} from '../types/pushMessage';
+import { BILLING_ADVICE, SET_TIPS, SET_TIPS_DETAILS ,SET_CHRONIC_TABLELIST,SET_SCALE_INFO,SET_CHRONIC_PUSHS} from '../types/pushMessage';
 import { SET_CLICK_DIAG } from '../types/diagnosticList';
 import {storageLocal,getEMRParams} from '@utils/tools';
 import {SET_IMPORT_CHECKBODY_LABEL} from "../types/checkBody";
@@ -21,7 +21,7 @@ export const billing = (mdata) => {
   const emrData = getEMRParams();
   const params = {
     age: emrData.age,
-    featureType: "4,5,6,7",
+    featureType: "4,5,6,7,22",
     diag: emrData.dis,
     lis: emrData.lis,
     other: emrData.other,
@@ -32,7 +32,7 @@ export const billing = (mdata) => {
   };
   storageLocal.set('emrParam',params);      //推送数据存储,用作推送前对比是否有变,有变才推送
     json(url, params).then((data) => {
-        let {dis, lab, pacs,markedVitalIds} = data.data.data||{};console.log(markedVitalIds)
+        let {dis, lab, pacs,markedVitalIds,medicalIndications} = data.data.data||{};
         lab = lab||[];
         pacs = pacs||[];
         // console.log('推送数据', data.data.data);
@@ -63,6 +63,11 @@ export const billing = (mdata) => {
             lab: lab||[],
             pacs: pacs||[],
         });
+        //慢病推送模块数据
+        dispatch({
+          type:SET_CHRONIC_PUSHS,
+          data:medicalIndications
+        });
         //查体高亮标签
         dispatch({
           type:SET_IMPORT_CHECKBODY_LABEL,

+ 11 - 2
src/store/reducers/assessResult.js

@@ -1,6 +1,11 @@
-import {SET_ASSESS_DATA,SET_INDEX_DATA} from '@types/assessResult';
+import {SET_ASSESS_DATA,SET_INDEX_DATA,SET_SAVE_ASSESS_DATA} from '@types/assessResult';
 
-const init = {};
+const init = {
+  data:[],        //评估模块数据
+  indexData:{},     //评估图表数据
+  saveData:[],      //保存的评估数据-点确定时保存
+  saveIndexData:{}    //保存的评估图表数据-点确定时保存
+};
 export default (state=init,action)=>{
   const res = Object.assign({},state);
   switch (action.type){
@@ -10,6 +15,10 @@ export default (state=init,action)=>{
     case SET_INDEX_DATA:
       res.indexData = action.data;
       return res;
+    case SET_SAVE_ASSESS_DATA:
+      res.saveData = action.data;
+      res.saveIndexData = action.indexData;
+      return res;
     default:
       return res;
   }

+ 5 - 0
src/store/reducers/inspect.js

@@ -12,6 +12,8 @@ import {
     ADD_LABEL
 } from '../types/inspect';
 import store from '@store'
+import {dateParser} from '@common/js/func';
+
 const initSearchList = {
     list: [], //搜索的结果
     labelList: [], //选中的结果,也是需要保存的数据
@@ -265,6 +267,7 @@ function getPushList(data1,data2){     //推送数据
     let tmpArr1 = [];
     let tmpArr2 = [];
     let totalTmpArr = [];
+    const now = dateParser(new Date());
     data1.length>0 && data1.map((items)=>{    //excel导入的数据拼接
         items.lisExcelRes.map((item)=>{
             item.lisExcelItem.map((part)=>{
@@ -275,6 +278,7 @@ function getPushList(data1,data2){     //推送数据
                 tmpObj.source = '1';//数据来源
                 tmpObj.maxValue = part.max || ''; 
                 tmpObj.minValue = part.min || '';
+                tmpObj.time = part.time ||now;
                 tmpObj.units = part.unit || '';//单位
                 tmpObj.value = (part.value-0) === (part.value-0) ? part.value:'';//值
                 tmpObj.otherValue = (part.value-0) === (part.value-0) ?'':part.value; //阴性阳性
@@ -292,6 +296,7 @@ function getPushList(data1,data2){     //推送数据
                 tmpObj.source = '0';     //数据来源
                 tmpObj.maxValue = val.maxValue ? val.maxValue : '';
                 tmpObj.minValue = val.minValue ? val.minValue : '';
+                tmpObj.time = val.time || now;
                 tmpObj.units = val.labelSuffix || '';
                 tmpObj.value = (val.value-0) === (val.value-0) ? val.value:'';
                 tmpObj.otherValue = (val.value-0) === (val.value-0) ?'':val.value;

+ 4 - 1
src/store/reducers/pushMessage.js

@@ -1,4 +1,4 @@
-import {CHANGE_ASSAY, CHANGE_CHECK, BILLING_ADVICE, ADD_SCHEME, SET_TIPS,  SET_TIPS_DETAILS, SET_CHANGE_ADVICE_TREATMENT, SET_CHANGE_ADVICE_ASSAY, SET_CHANGE_ADVICE_CHECK, ADD_BILLING,CLEAR_ALL_PUSH_MESSAGE,SHOW_TIPS_DETAILS, HIDE_TIPS_DETAILS, SET_COMMONTREATMENT, IS_FIRST_MAIN_DIAG, SET_ADVICE_INPUT ,SET_CHRONIC_TABLELIST,SHOW_TABLE_LIST,HIDE_TABLE_LIST,SET_SCALE_INFO} from '../types/pushMessage';
+import {CHANGE_ASSAY, CHANGE_CHECK, BILLING_ADVICE, ADD_SCHEME, SET_TIPS,  SET_TIPS_DETAILS, SET_CHANGE_ADVICE_TREATMENT, SET_CHANGE_ADVICE_ASSAY, SET_CHANGE_ADVICE_CHECK, ADD_BILLING,CLEAR_ALL_PUSH_MESSAGE,SHOW_TIPS_DETAILS, HIDE_TIPS_DETAILS, SET_COMMONTREATMENT, IS_FIRST_MAIN_DIAG, SET_ADVICE_INPUT ,SET_CHRONIC_TABLELIST,SHOW_TABLE_LIST,HIDE_TABLE_LIST,SET_SCALE_INFO,SET_CHRONIC_PUSHS} from '../types/pushMessage';
 import {changeAssay, changeCheck, setAdvice, addScheme, setTips, setTipsDetails, setChangeAdviceTreatment, setChangeAdviceAssay, setChangeAdviceCheck, addBilling, clearAllPushMessage, showTipsDetails, hideTipsDetails, setCommontreatment, isFirstMainDiag, setAdviceInput } from '../actions/pushMessage';
 
 const initState = {
@@ -64,6 +64,9 @@ export default function(state = initState, action) {
     case HIDE_TABLE_LIST://隐藏量表列表数据
       res.showList = false;
       return res;
+    case SET_CHRONIC_PUSHS:
+      res.chronicPushItems = action.data;
+      return res;
     case SET_SCALE_INFO://量表明细
       res.scaleInfo = action.data;
       return res;

+ 3 - 2
src/store/types/assessResult.js

@@ -1,2 +1,3 @@
-export const SET_ASSESS_DATA = 'SET_ASSESS_DATA';
-export const SET_INDEX_DATA = 'SET_INDEX_DATA';
+export const SET_ASSESS_DATA = 'SET_ASSESS_DATA';     //推送的评估弹窗内容
+export const SET_INDEX_DATA = 'SET_INDEX_DATA';       //评估图表数据
+export const SET_SAVE_ASSESS_DATA = 'SET_SAVE_ASSESS_DATA';  //保存的评估弹窗数据

+ 1 - 0
src/store/types/pushMessage.js

@@ -18,6 +18,7 @@ export const SET_ADVICE_INPUT = 'SET_ADVICE_INPUT' ; //设置医嘱自由输入
 export const SET_CHRONIC_TABLELIST = 'SET_CHRONIC_TABLELIST' ; //设置量表列表
 export const SHOW_TABLE_LIST = 'SHOW_TABLE_LIST' ; //显示量表列表
 export const HIDE_TABLE_LIST = 'HIDE_TABLE_LIST' ; //隐藏量表列表
+export const SET_CHRONIC_PUSHS ='SET_CHRONIC_PUSHS'; //右侧慢病量表评估推送模块数据
 export const SET_SCALE_INFO = 'SET_SCALE_INFO' ; //量表明细
 
 

+ 1 - 1
src/utils/tools.js

@@ -655,7 +655,7 @@ function didPushParamChange(){
   const oldParams = storageLocal.get('emrParam');
   const newParams = JSON.stringify({
     age: emrData.age,
-    featureType: "4,5,6,7",
+    featureType: "4,5,6,7,22",
     diag: emrData.dis,
     lis: emrData.lis,
     other: emrData.other,