Forráskód Böngészése

历史记录管理评估显示

zhouna 6 éve
szülő
commit
5427ba09ff

+ 16 - 9
src/components/AssessResult/AssessHis/index.jsx

@@ -42,7 +42,7 @@ class AssessResultHis extends Component {
       this.props.getAssessHis(this.props.inquiryId);
     }
   }
-  handoutTypes(obj,item,i){
+  handoutTypes(obj,item,i,id){
     const {wholeAssess,wholeIndexs,chooseSelecteds,scaleResult,wholeResults,wholeAssessText,calcuResult,calcuValues,scaleItems} =obj;
     const {getIndexData,inquiryDate,indexData,timeTypes,indexNames} = this.props;
     const {chartTimeTypes} = this.state;
@@ -61,7 +61,7 @@ class AssessResultHis extends Component {
                           scaleItems={scaleItems}
                           result={wholeResults}
                           disabled={true}
-                          text={wholeAssessText}></ScaleItem>;
+                          text={wholeAssessText[id]}></ScaleItem>;
       case 1:     //数据来源于大数据
         return <ChooseItem title={name} data={list} selecteds={chooseSelecteds&&chooseSelecteds[i]} disabled={true}></ChooseItem>;
       case 10:    //数据来源于后台
@@ -77,19 +77,26 @@ class AssessResultHis extends Component {
         return '';
     }
   }
-  getAssessContent(){
+  getMultAssess(){
     const { list,inquiryId } = this.props;
     const obj = list&&list[inquiryId];
-    const data = obj&&obj.data;
+    const items = obj&&obj.data;
+    let arr = [];
+    for(let name in items){
+      arr.push(<div className={style['dis-item']}><p>{name}:</p>{this.getAssessContent(items[name],obj,name)}</div>)
+    }
+    return arr;
+  }
+  getAssessContent(data,obj,name){
     if(data&&data.length>0){
       return data.map((it,i)=>{
-        return this.handoutTypes(obj,it,i);
+        return this.handoutTypes(obj,it,i,name);
       });
     }else{
       return data===null||(data&&data.length==0)?<p className={style['no-data']}>没有历史评估记录!</p>:'';
     }
   }
-  showScaleFn(item,pid){
+  showScaleFn(item){
     const { list,inquiryId } = this.props;
     const obj = list&&list[inquiryId];
     if(item&&item.id&&!(obj.scaleInfo&&obj.scaleInfo[item.id])){
@@ -126,7 +133,7 @@ class AssessResultHis extends Component {
     }
   }
   render() {
-    const { loading,isChronic, list,inquiryId } = this.props;
+    const { loading, list,inquiryId } = this.props;
     const {tableName,tableId,showScale,showAssess} = this.state;
     const obj = list&&list[inquiryId];
     const scaleFooter = <div className={style['footer']}>
@@ -135,12 +142,12 @@ class AssessResultHis extends Component {
     </div>;
     return <div className={style['assess-cont']}>
       <div className={style['assess-result']}>
-        <p className={style['enter']}>{isChronic?'管理和评估':'推荐'}结果:{showAssess?<a onClick={this.showAssessFn}>收起结果<img src={arrowDown} /></a>:<a onClick={this.showAssessFn}>查看结果<img src={arrow} /></a>}</p>
+        <p className={style['enter']}>管理和评估结果:{showAssess?<a onClick={this.showAssessFn}>收起结果<img src={arrowDown} /></a>:<a onClick={this.showAssessFn}>查看结果<img src={arrow} /></a>}</p>
       </div>
       <div className={style['assess-box']} style={{display:showAssess?'block':'none'}}>
         {loading?<p className={style['loading']}><img src={loadingIcon} alt='loading...'/></p>:''}
         {/*以下必须做判断再执行getAssessContent,否则再次打开评估历史时图表显示有问题,因为提前渲染*/}
-        {showAssess?this.getAssessContent():''}
+        {showAssess?<div className='his-item'>{this.getMultAssess()}</div>:''}
       </div>
       {showScale?<ComplexModal onclose={this.showScaleFn} footer={scaleFooter}
                                           title={tableName}

+ 8 - 0
src/components/AssessResult/AssessHis/index.less

@@ -65,4 +65,12 @@
     float: right;
     margin-right: 20px;
   }
+}
+.dis-item{
+  p{
+    padding-left: 15px;
+    line-height: 30px;
+    background: #e4e4e4;
+    font-weight: bold;
+  }
 }

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

@@ -258,6 +258,7 @@ class ScaleItem extends Component {
                           {it.content.details&&it.content.details.map((lis,ind)=>{
                             return <div className={style["chooseItem"]}>
                               <Radio label={lis.detailName}
+                                     disabled={disabled}
                                      isSelect={radioVal&&radioVal[item.id]==lis.detailName}
                                      handleClick={this.handleRadio.bind(this,lis,item,i)}>
                               </Radio>

+ 8 - 7
src/components/AssessResult/index.jsx

@@ -35,13 +35,14 @@ class AssessResult extends Component {
     this.handleResult = this.handleResult.bind(this);
   }
   componentWillMount(){
+    const {disId,disName,getAssess} = this.props;
     //获取评估
-    this.props.getAssess();
+    getAssess&&getAssess(disId,disName);
   }
   handleScaleText(text){
-    const {disId} = this.props;
+    const {disName} = this.props;
     const obj = Object.assign({},this.state.wholeAssessText);
-    obj[disId] = text;
+    obj[disName] = text;
       this.setState({
         wholeAssessText:obj
       })
@@ -104,7 +105,7 @@ class AssessResult extends Component {
   }
   handoutTypes(item,i){
     const {getIndexData,indexData,timeTypes,wholeIndexs,closeAssess,showScaleFn,chronicPushItems,
-      formulaResult,indexNames,disId} =this.props;
+      formulaResult,indexNames,disName} =this.props;
     let obj = [];
     Object.keys(wholeIndexs).map((i)=>{
       obj[i]=chronicPushItems[i];
@@ -121,7 +122,7 @@ class AssessResult extends Component {
                           handleInp={this.handleScaleText}
                           handleRes={this.handleResult}
                           handleCalcu={this.handleCalcu.bind(this)}
-                          text={wholeAssessText[disId]}
+                          text={wholeAssessText[disName]}
                           indexs={wholeAssessItems}
                           scaleItems ={wholeScaleItems}
                           result={wholeResults}
@@ -149,8 +150,8 @@ class AssessResult extends Component {
     }
   }
   render() {
-    //const {data} =this.props;
-    const data = this.props.data;
+    const {disName} =this.props;
+    const data = this.props.data&&this.props.data[disName];
     return <div className={style['assess-cont']} id="AssistResult">
       <div className={style['printShow']}>
         <Information></Information>

+ 9 - 6
src/components/DiagnosticList/index.jsx

@@ -28,6 +28,7 @@ class DiagnosticList extends Component {
             sign:-1,
             showAssess:false,
             assessId:'',
+            disName:'',
             isAssessConfirm:false,
             radioVal:{},  //可能结果选择内容
             possible:{},  //可能结果
@@ -178,12 +179,13 @@ class DiagnosticList extends Component {
             })}
         </div>)
     }
-    showAssessFn(id){
-        if(typeof id!='object'){         //显示评估弹窗
+    showAssessFn(item){
+        if(item&&item.id){         //显示评估弹窗
           this.setState({
             showAssess:true,
             isAssessConfirm:false,
-            assessId:id
+            assessId:item.id,
+            disName:item.name
           });
         }else{          //关闭评估弹窗
             this.setState({
@@ -222,7 +224,7 @@ class DiagnosticList extends Component {
     }
     render(){
         const { list, treatment, showReferRecord, showHistoryCase ,chronicMagItem} = this.props;
-        const { visible, treatTitle ,showAssess, isAssessConfirm, radioVal, possible,assessId} = this.state;
+        const { visible, treatTitle ,showAssess, isAssessConfirm, radioVal, possible,assessId,disName} = this.state;
         const chronicList = JSON.parse(localStorage.getItem('chronic')||null);
         const chronicLine = chronicMagItem&&chronicMagItem.name;     //当前是否走的慢病流程
         let isChronic = false;      //是否要显示管理评估
@@ -232,7 +234,7 @@ class DiagnosticList extends Component {
         </div>;
         return(
                 <div className={style['diaglist-wrap']}>
-                    {list && (list.length > 0) && list.map((item, index) => {
+                    {list && (list.length > 0) && list.map((item, index) => {console.log(item)
                         const hasTreat = item.treat && (item.treat.commonTreatment.content || item.treat.surgeryTreatment.content || item.treat.treatment.length>0 ||(item.adverseReactions&&item.adverseReactions.length > 0)
                            || (item.drugHistory && item.drugHistory['慢病用药内容'] &&  item.drugHistory['慢病用药内容'].length > 0) || (item.drugHistory &&item.drugHistory['普通病用药内容'] &&  item.drugHistory['普通病用药内容'].length > 0) ||item.follow)
                         isChronic = chronicLine&&item.type==2&&chronicList.findIndex((it)=>it.id==item.id)!=-1;
@@ -248,7 +250,7 @@ class DiagnosticList extends Component {
                                           治疗方案
                                     </span>
                                     {isChronic?<span className={style['assess']}
-                                          onClick={this.showAssessFn.bind(this,item.id)}>
+                                          onClick={this.showAssessFn.bind(this,item)}>
                                         管理评估
                                     </span>:''}
                                     <img className={style['diag-del']} src={del_icon} onClick={()=>{this.handleDeleteItem(item)}}/>
@@ -264,6 +266,7 @@ class DiagnosticList extends Component {
                        <AssessResult handleSavePossible={this.handleSavePossible}
                                      closeAssess={this.showAssessFn.bind(this)}
                                      disId={assessId}
+                                     disName={disName}
                                      radioVal={radioVal}
                                      possible={possible}
                                      isAssessConfirm={isAssessConfirm}

+ 1 - 1
src/components/PreviewBody/index.jsx

@@ -226,7 +226,7 @@ class PreviewBody extends Component {
           </tr>
         </table>
         <p style={{textAlign:'right',marginTop:'15px'}}>医生签名:<span style={{minWidth: '60px',padding: '0 5px 2px 5px',borderBottom: '1px solid #333',}}>{baseObj ? baseObj.doctorName : (noData ? '' : preInfo.doctorName)}</span></p>
-        {showAssessBtn?<AssessResultHis showHistoryCases={showHistoryCases} isChronic={isChronic?true:false} inquiryId={baseObj&&baseObj.id} inquiryDate={baseObj&&baseObj.inquiryDate}></AssessResultHis>:""}
+        {showAssessBtn&&isChronic?<AssessResultHis showHistoryCases={showHistoryCases} inquiryId={baseObj&&baseObj.id} inquiryDate={baseObj&&baseObj.inquiryDate}></AssessResultHis>:""}
         
         <div onClick={() => { this.surePrint(dataStr) }} style={{
           display: show ? 'inline-block' : 'none',

+ 4 - 3
src/containers/AssessResult.js

@@ -46,12 +46,13 @@ function mapStateToProps(state) {
 
 function mapDispatchToProps(dispatch) {
   return {
-    getAssess(){        //获取评估内容数据
-      dispatch(getAssessData()).then((res)=>{
+    getAssess(disId,disName){        //获取评估内容数据
+      dispatch(getAssessData(disId,disName)).then((res)=>{
         if(res.data.code=='0'){
           dispatch({
             type:SET_ASSESS_DATA,
-            data:res.data.data
+            data:res.data.data,
+            name:disName
           })
         }
       }).catch(error=>{

+ 4 - 4
src/store/async-actions/fetchModules.js

@@ -230,14 +230,14 @@ export function saveMode(mode){
 }
 
 //慢病-获取管理评估
-export function getAssessData(){
+export function getAssessData(disId,disName){
   return ()=>{
     const emrData = getEMRParams();
     const param = {
-      diseaseId:21773,
+      diseaseId:disId,
       disType:1,
-      diag:'糖尿病',
-      diseaseName:'糖尿病',
+      diag:disName,
+      diseaseName:disName,
       featureType:11,
       lis:emrData.lis,
       sex:emrData.sex,

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

@@ -3,7 +3,7 @@ import {SET_ASSESS_DATA,SET_INDEX_DATA,SET_SAVE_ASSESS_DATA,SET_INDEX_SUB_TYPE,A
 import config from "@config";
 
 const init = {
-  data:[],        //评估模块数据
+  data:{},        //评估模块数据
   indexData:{},     //评估图表数据
   indexNames:{},
   indexTimeTypes:{},    //单个图表选中的维度
@@ -24,7 +24,8 @@ export default (state=init,action)=>{
   const {data,range,index,rangeType,pindex,getNew} = action;
   switch (action.type){
     case SET_ASSESS_DATA:
-      res.data = action.data;
+      res.data[action.name] = action.data;
+      res.update1 = Math.random();
       return res;
     case SET_INDEX_DATA:
       res.indexData[range[0]+range[1]] = data.obj;