浏览代码

Merge remote-tracking branch 'origin/ChronicMag' into ChronicMag

zhouna 6 年之前
父节点
当前提交
c435199c6d

+ 2 - 2
src/components/Advice/index.jsx

@@ -66,7 +66,7 @@ class Advice extends Component{
 
   render(){
     const {advice} = this.props.pushMessage;
-    const {isRead, isFirstMainDiag, followUp, hasFollowUp, setFollowUp} = this.props
+    const {isRead, isFirstMainDiag, followUp, hasFollowUp, saveFollowUp} = this.props
     let scheme = advice.scheme && advice.scheme.map((item, index) => {
       return <p>{item.treatment.map((it,ii) =>{
         return(it.treatmentStr && it.treatmentStr.length > 0 ? 
@@ -93,7 +93,7 @@ class Advice extends Component{
             {/* {advice.commontreatment && <div className={style['treat-input']}  onInput={this.handleComTreatInput}  contentEditable={true} style = {{outline: 'none'}}></div>} */}
             {<Textarea value={advice.commontreatment} isRead={isRead} handleChangeAssistValue={this.handleComTreatInput} ></Textarea>}
         </div>}
-        {!isFirstMainDiag && <FollowUp  noTitle="true"   setFollowUp={setFollowUp} followUp = {followUp} isRead={isRead}></FollowUp>}
+        {!isFirstMainDiag && <FollowUp  noTitle="true"   setFollowUp={saveFollowUp} followUp = {followUp} isRead={isRead}></FollowUp>}
         {advice.scheme && advice.scheme.length > 0 &&<div contentEditable='false' className={style['scheme']}>
           {advice.scheme && advice.scheme.length > 0  && <h1>治疗方案</h1>}
           {scheme}

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

@@ -182,7 +182,7 @@ class ScaleItem extends Component {
           <span>{item.name}:</span>
           <div className={style['row']}>{temp}</div>
           <div className={style["recommend"]} onClick={()=>this.props.handleRemove(i,j)}>
-            <img src={deleteIcon} />
+            <img className={style["deleteIcon"]} src={deleteIcon} />
           </div>
         </li>);
       }

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

@@ -5,6 +5,8 @@ import ChooseItem from "./ChooseItem";
 import ScaleItem from "./ScaleItem";
 import Information from '../Information'
 import ChartItem from "./ChartItem";
+import Notify from '@commonComp/Notify';
+import {readyKeepHistory} from '@utils/tools';
 
 class AssessResult extends Component {
   constructor(props) {
@@ -64,7 +66,12 @@ class AssessResult extends Component {
     //点确定关闭弹窗时把参数传到父组件去
     const {handleSave,isAssessConfirm,clearChartData} = this.props;
     clearChartData&&clearChartData();
-    isAssessConfirm&&handleSave(this.state);
+    if(isAssessConfirm && readyKeepHistory() == 1){
+      Notify.error("主诉不能为空");
+    }else if(isAssessConfirm && readyKeepHistory() == 2){
+      Notify.info('诊断不能为空');
+    }
+    isAssessConfirm&&handleSave(this.state,readyKeepHistory());
   }
   handoutTypes(item,i){
     const {getIndexData,indexData,timeTypes,wholeAssessData,closeAssess,showScaleFn} =this.props;

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

@@ -150,4 +150,7 @@
   .printShow {
     display: block;
   }
+  .deleteIcon {
+    display: none;
+  }
 }

+ 104 - 31
src/components/ChronicInfo/index.jsx

@@ -13,6 +13,7 @@ import checkIcon from '@common/images/check.png';
 import {ComplexModal,ConfirmModal,MiniToast, Radio,CheckBtn} from '@commonComp';
 import AssessResult from '@containers/AssessResult';
 import ScaleTable from '@containers/ScaleTable';
+import Notify from '@commonComp/Notify';
 import $ from 'jquery';
 
 /***
@@ -38,10 +39,11 @@ class ChronicInfo extends React.Component{
       tableName:'' , //点击的量表名称
       tableId:null ,//点击的量表id
       parentId:null ,
+      parentIndex:null,
       radioVal:{},  //可能结果选择内容
       possible:{},  //可能结果
+      formulaParam: {}, //量表计算公式计算入参
     };
-    this.$content = React.createRef();
 
     this.showInfo = this.showInfo.bind(this);
     this.closeInfo = this.closeInfo.bind(this);
@@ -70,8 +72,7 @@ class ChronicInfo extends React.Component{
   }
   
   showTableList(id){//量表按钮
-    const {getTableList,questionId} = this.props;
-    // getTableList(questionId&&questionId.id);
+    const {getTableList} = this.props;
     if(id){
       getTableList(id);
     }
@@ -85,12 +86,12 @@ class ChronicInfo extends React.Component{
     this.close()
   }
 
-  showInfo(id){//显示静态知识
+  showInfo(id){
     // 静态知识显示在提示信息里(4-18)
     const {getInfomation} = this.props;
     const param = {
-      // id:id,
-      id:40738,
+      id:id,
+      // id:40738, //目前只有“肾功能不全”有数据
       type:22,
     }
     getInfomation&&getInfomation(param);
@@ -105,7 +106,8 @@ class ChronicInfo extends React.Component{
   }
   showOption(id){
     this.setState({
-      optionId:id
+      optionId:id,
+      formulaId:null //关闭计算公式
     })
   }
   closeOption(){
@@ -113,9 +115,9 @@ class ChronicInfo extends React.Component{
       optionId:null
     })
   }
-  showTable(it,parentId){
+  showTable(it,parentId,parentIndex){
     const {formulaResult,scaleInfo} = this.props;
-    // 密西根糖尿病周围神经病评分(MDNS) 为例 id:40744
+    // 密西根糖尿病周围神经病评分(MDNS), id:40744
     const item = {
       id:it.id,
       name:it.name
@@ -130,7 +132,10 @@ class ChronicInfo extends React.Component{
     this.setState({
       tableName:it.name,
       tableId:it.id,
-      parentId:parentId
+      parentId:parentId,
+      parentIndex:parentIndex,
+      formulaId:null, //关闭计算公式和可能结果弹窗
+      optionId:null
     })
   }
   closeTable(){
@@ -150,7 +155,8 @@ class ChronicInfo extends React.Component{
 
   showFormula(id){//计算公式
     this.setState({
-      formulaId:id
+      formulaId:id,
+      optionId:null  //关闭可能结果
     })
   }
   closeFormula(){
@@ -170,10 +176,29 @@ class ChronicInfo extends React.Component{
     setTimeout(()=>{
       that.showAssessFn();
     });
-
   }
-  handleForRadio(item,parent,pIndex){//计算公式
-
+  handleInputformula(v,i, j,idd,  e) {
+    const { data, setChronicPush } = this.props
+    const text = e.target.value
+    if (data[i].details) {
+      data[i].details[j].content.details[idd].value = text
+    } 
+    
+    const data1 = JSON.parse(JSON.stringify(data))
+    
+    setChronicPush(data1)
+  }
+  handleForRadio(ii,v,i, j,idd, ind){//计算公式
+    const { data, setChronicPush } = this.props
+    if (data[i].details) {
+      for(let z = 0; z <  data[i].details[j].content.details[idd].details.length; z++) {
+        data[i].details[j].content.details[idd].details[z].state = 0
+      }
+      data[i].details[j].content.details[idd].details[ind].state = 1
+    } 
+    
+    const data1 = JSON.parse(JSON.stringify(data))
+    setChronicPush(data1)
   }
   confirmFormula(){//计算公式确定
 
@@ -193,16 +218,49 @@ class ChronicInfo extends React.Component{
     })
     
   }
+  calcuFormula(it, j, v) { //计算公式计算
+    const { calcuFormula } = this.props
+    let allHasInfo = true
+    for (let i = 0; i < it.content.details.length; i++) {
+      if(it.content.details[i].controlType == 2) {  //输入框类型的有没有填值
+        if(!it.content.details[i].value) {
+          allHasInfo = false
+        }
+      } else if(it.content.details[i].controlType == 1) {
+        let hasSelect = false
+        for( let z = 0; z <it.content.details[i].details.length; z++) {
+          if(it.content.details[i].details[z].state = 1) {
+            hasSelect= true
+          }
+        }
+        if(!hasSelect) {
+          allHasInfo = false
+        }
+      }
+
+    }
+    if(allHasInfo) { //所有都有值,则计算
+      delete it.content['result']
+      let param = {
+        type: 2,
+        data: it,
+        disId: v.id
+      }
+      calcuFormula(param)
+    } else {  //不是所有值都填过了
+      Notify.info('请填写计算公式内容')
+    }
+  }
   getDetail(){
     const {data,indexs,scaleInfo,formulaResult} = this.props;
     const {showInfo,showOption,infoId,formulaId,optionId,possible,radioVal} = this.state;
     let list = data&&data.map((v,i)=>{
                     return <div className={style["list"]}>
-                      <p ref={this.$content}>
-                        <span>{'患者可能有'+v.name}</span>
-                        <img src={infoPic} className={style["infoPic"]} onClick={this.showInfo.bind(this,v.id)}/>
-                        :
-                      </p>
+                      {v.name?<p>
+                                <span>{'患者可能有'+v.name}</span>
+                                <img src={infoPic} className={style["infoPic"]} onClick={this.showInfo.bind(this,v.id)}/>
+                                
+                              </p>:''}
                       {/*<MiniToast title='静态知识'
                                 icon={allTableIcon}
                                 show={infoId&&infoId==v.id?true:false}
@@ -212,10 +270,10 @@ class ChronicInfo extends React.Component{
                       {v.details&&v.details.map((it,j)=>{
                         if(it.type==1){
                           return <p>
-                                <span className={style["listName"]} onClick={this.showTable.bind(this,it.content,v.id)}>
+                                <span className={style["listName"]} onClick={this.showTable.bind(this,it.content,v.id,i)}>
                                   {'【'+it.content.name+'】'}
-                                  {formulaResult&&formulaResult[it.content.id]?<i>{'结果:'+ formulaResult[it.content.id].text}</i>:''}
-
+                                  {formulaResult&&formulaResult[it.content.id]&&formulaResult[it.content.id].pIndex==i?<i>{'结果:'}{formulaResult[it.content.id].calcalculate&&formulaResult[it.content.id].calcalculate.result.text}</i>:''}
+                                  
                                 </span>
                                 {indexs[i]&&indexs[i].includes(j)?<span className={style["addResult"]}>
                                   <img src={added} />
@@ -249,7 +307,7 @@ class ChronicInfo extends React.Component{
                                 footer="true">
                                 <table>
                                 {it.content.details.map((item,idd)=>{
-                                    if(item.controlType==0){//单选
+                                    if(item.controlType==1){//单选
                                       return <tr>
                                         <td>
                                           <span>{'请选择'+item.name+':'}</span>
@@ -258,8 +316,8 @@ class ChronicInfo extends React.Component{
                                           {item.details.map((ii,ind)=>{
                                             return <div className={style["chooseItem"]}>
                                                     <Radio label={ii.detailName}
-                                                             isSelect={radioVal[i]==ii.detailName}
-                                                             handleClick={this.handleForRadio.bind(this,ii,v,i)}>
+                                                             isSelect={ii.state == 1}
+                                                             handleClick={this.handleForRadio.bind(this,ii,v,i, j,idd, ind)}>
                                                       </Radio>
                                                   </div>
                                           })}
@@ -273,7 +331,7 @@ class ChronicInfo extends React.Component{
                                           <span>{'请输入'+item.name+':'}</span>
                                         </td>
                                         <td>
-                                          <input type="text" placeholder="请输入" value={item.value}/>
+                                          <input type="text" placeholder="请输入"  value={item.value} onInput={this.handleInputformula.bind(this,v,i, j,idd)}/>
                                         </td>
                                         <td>
                                           <span>{item.uint}</span>
@@ -289,7 +347,8 @@ class ChronicInfo extends React.Component{
                                           {item.details.map((ii,ind)=>{
                                             return <div className={style["chooseItem"]}>
                                                     <Radio label={ii.detailName}
-                                                            isSelect={radioVal[i]==ii.detailName}
+                                                            // isSelect={radioVal[i]==ii.detailName}
+                                                            isSelect={ii.state == 1}
                                                             handleClick={this.handleForRadio.bind(this,ii,v,i)}>
                                                     </Radio>
                                                   </div>
@@ -300,7 +359,20 @@ class ChronicInfo extends React.Component{
                                     }
                                 })}
                                 </table>
-                                <div className={style["forMulBtn"]}>计算</div>
+                                <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,it,j, v)}>计算</div>
+                                <table>
+                                  {/* {it.content.result &&it.content.result.map((itemResult, resultIndex) => {
+                                    return <tr>
+                                        <td>
+                                            <span>{itemResult.name+':'}</span>
+                                        </td>
+                                        <td>
+                                            <span>{itemResult.value}</span>
+                                        </td>
+                                    </tr>
+                                  })} */}
+                                </table>
+                                
                             </MiniToast>
                           </div>
                         }else if(it.type==3){
@@ -354,7 +426,7 @@ class ChronicInfo extends React.Component{
       <span className={style['okBtn']} onClick={()=>this.closeTable()}>确定</span>
     </div>;
     const {chronicMagItem,showList,tableList,scaleInfo,data,saveAssessInfos,chronicDesease,formulaResult,showHide} = this.props;
-    const {showInfo,showOption,showAssess,isAssessConfirm,tableName,tableId,parentId,possible,radioVal} = this.state;
+    const {showInfo,showOption,showAssess,isAssessConfirm,tableName,tableId,parentId,possible,radioVal,parentIndex} = this.state;
     return <div className={style["tips"]} style={{marginBottom:'15px'}}>
               <div className={`${style["tips-title"]} ${style["chronic"]}`}>
                 <div className={style["tips-name"]}>
@@ -383,7 +455,8 @@ class ChronicInfo extends React.Component{
                           return <li onClick={this.handleListClick.bind(this,v)}>
                           <span>
                             {'【'+v.name+'】'}
-                            {formulaResult&&formulaResult[v.id]?<i>{'结果:'+formulaResult[v.id].text}</i>:''}
+                            {/*{formulaResult&&formulaResult[v.id]?<i>{'结果:'+formulaResult[v.id].text}</i>:''}*/}
+                            {formulaResult&&formulaResult[v.id]?<i>{'结果:'}{formulaResult[v.id].calcalculate&&formulaResult[v.id].calcalculate.result.text}</i>:''}
                           </span>
                           </li>
                         })}
@@ -396,7 +469,7 @@ class ChronicInfo extends React.Component{
                       top={20}
                       bottom={20}
                       width={820}>
-                <ScaleTable title={tableName} tableId={tableId} parentId={parentId}></ScaleTable>
+                <ScaleTable title={tableName} tableId={tableId} parentId={parentId} parentIndex={parentIndex}></ScaleTable>
               </ComplexModal>:''}
               {showAssess?<ComplexModal onclose={this.showAssessFn} footer={footer}
                       title='管理和评估'

+ 2 - 1
src/components/ChronicInfo/index.less

@@ -265,7 +265,8 @@
     line-height: 32px;
     text-align: center;
     color: #fff;
-    background: #DBDBDB;
+    // background: #DBDBDB;
+    background: #DFEAFE;
     border-radius: 4px;
     cursor: auto;
     margin-top: 15px;

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

@@ -128,7 +128,7 @@ class CurrentIll extends Component{
   }
 
   getInlineTag(){  
-    const {data,showArr,selecteds,processModuleName,saveText,insertProcess,symptomIds,allModules} = this.props;
+    const {data,showArr,selecteds,saveText,insertProcess,symptomIds,allModules} = this.props;
     const boxMark = '2';
 
     let list = data&&data.map((item,i)=>{

+ 1 - 2
src/components/MainSuit/index.jsx

@@ -62,11 +62,10 @@ class MainSuit extends Component{
 
 
   getInlineTag(){
-    const {datas,showArr,handleTailClick,selecteds,saveText,addModuleName,mainIds,allModules} = this.props;
+    const {datas,showArr,handleTailClick,selecteds,saveText,mainIds,allModules} = this.props;
     const boxMark = '1';
     let list = datas&&datas.map((item,i)=>{
       if(item.flag && item.flag==3){
-        /*return <TailInlineTag {...item} showText={addModuleName} handleTailClick={(obj)=>{handleTailClick(obj,saveText)}}></TailInlineTag>*/
         return <TailInlineTag {...item} showText={item.relationModuleName} handleTailClick={(obj)=>{handleTailClick(obj,saveText,allModules)}}></TailInlineTag>
       }else {
         return chooseType({item,boxMark,i,hideTag:false,showArr,selecteds,saveText,mainIds});

+ 9 - 17
src/components/Operation/index.jsx

@@ -8,7 +8,7 @@ import PreviewContainer from '@containers/PreviewContainer';
 import { ConfirmModal, Notify } from '@commonComp';
 import check_circle from './img/check-circle.png';
 import check_right from './img/check-right.png';
-import {getAllDataList,getAllDataStringList,isAllClear,filterDataArr} from '@utils/tools';
+import {getAllDataList,getAllDataStringList,isAllClear,filterDataArr,readyKeepHistory} from '@utils/tools';
 import store from '@store';
 import $ from 'jquery';
 
@@ -67,8 +67,14 @@ class Operation extends Component {
   }
 
   saveAll(type) {
-    let flg = this.keepHistory();
-    if(flg){
+    let keepState = readyKeepHistory();
+    if(keepState == 1){
+        Notify.info('主诉不能为空');
+        return;
+    }else if(keepState == 2){
+        Notify.info('诊断不能为空');
+        return;
+    }else{
       this.setState({
         type: type,
         okText: '保存',
@@ -81,20 +87,6 @@ class Operation extends Component {
       this.props.diagShowTmp(true)
     }
   }
-  keepHistory(){
-    let baseList = store.getState();
-    let jsonStr = getAllDataStringList(baseList);
-    // console.log(jsonStr)
-    if(filterDataArr(JSON.parse(jsonStr.chief)) == ''){
-        Notify.info('主诉不能为空');
-        return false;
-    }else if(!jsonStr.diag || jsonStr.diag.trim().length < 1){
-        Notify.info('诊断不能为空');
-        return false;
-    }else{
-      return true;
-    }
-  }
   clearAll(type) {
     let baseList = store.getState();
     let jsonData = getAllDataList(baseList);

+ 0 - 12
src/components/PrintPreview/index.jsx

@@ -11,18 +11,6 @@ class PrintPreview extends Component {
     constructor(props) {
         super(props)
     }
-    surePrint(jsonStr){
-        if(filterDataArr(JSON.parse(jsonStr.chief)) == ''){
-          Notify.info('主诉不能为空');
-            return false;
-        }else if(!jsonStr.diag || jsonStr.diag.trim().length < 1){
-            Notify.info('诊断不能为空');
-            return false;
-        }else{
-            this.onPrint();
-            this.props.save(true)
-        }
-    }
     render() {
         const { onClose, visible, preInfo,save } = this.props;
         let baseList = store.getState();

+ 7 - 5
src/components/ScaleTable/index.jsx

@@ -115,7 +115,7 @@ class ScaleTable extends React.Component{
   }
 
   handleFormula(data){//得分计算
-    const {tableId,getResult,parentId,scaleInfo} = this.props; 
+    const {tableId,getResult,parentId,scaleInfo,parentIndex} = this.props; 
     const {valueData,score} = this.state; 
     this.setState({
       start:true
@@ -160,9 +160,11 @@ class ScaleTable extends React.Component{
 
     const params = {
       type:1,
-      content:JSON.stringify(valueData), //选择后的数据--字符串形式
-      id:parentId,
-      scaleId:tableId,
+      // data:JSON.stringify(valueData), //选择后的数据--字符串形式
+      data:valueData,
+      pId:parentId,
+      id:tableId,
+      pIndex:parentIndex
     } 
     // 替换表格内容
     let allDatas = JSON.parse(JSON.stringify(scaleInfo[tableId])) ;
@@ -260,7 +262,7 @@ class ScaleTable extends React.Component{
               {this.getContent()}
               <div className={style['total']}>
                 <span>总分:</span>
-                <span>{scaleResult&&scaleResult.score||totalScore||''}</span>
+                <span>{scaleResult&&scaleResult.calcalculate.result&&scaleResult.calcalculate.result.value||totalScore||''}</span>
                 <span className={style['totalBtn']} onClick={this.handleFormula.bind(this)}>得分</span>
               </div>
             </div>

+ 3 - 4
src/containers/AdviceContainer.js

@@ -1,8 +1,7 @@
 import React from 'react';
 import {connect} from 'react-redux';
 import Advice from '../components/Advice'
-import { SET_CHANGE_ADVICE_TREATMENT, SET_CHANGE_ADVICE_ASSAY, SET_CHANGE_ADVICE_CHECK, SET_COMMONTREATMENT ,SET_ADVICE_INPUT} from '@store/types/pushMessage';
-import { SET_FOLLOW_UP } from '@store/types/treat.js';
+import { SET_CHANGE_ADVICE_TREATMENT, SET_CHANGE_ADVICE_ASSAY, SET_CHANGE_ADVICE_CHECK, SET_COMMONTREATMENT ,SET_ADVICE_INPUT, SAVE_FOLLOW_UP} from '@store/types/pushMessage';
 
 function mapStateToProps(state) {
     return ({
@@ -49,9 +48,9 @@ function mapDispatchToProps(dispatch) {
                 adviceInput: text,
             })
         },
-        setFollowUp: (followUp) => {
+        saveFollowUp: (followUp) => {
             dispatch({
-                type: SET_FOLLOW_UP,
+                type: SAVE_FOLLOW_UP,
                 followUp: followUp
             })
         },

+ 17 - 4
src/containers/ChronicInfo.js

@@ -1,15 +1,15 @@
 import {connect} from 'react-redux';
 import ChronicInfo from '../components/ChronicInfo';
-import {SHOW_TABLE_LIST} from '@store/types/pushMessage';
+import {SHOW_TABLE_LIST,HIDE_TABLE_LIST, SET_CHRONIC_PUSHS} from '@store/types/pushMessage';
 import {getTableList,getScaleInfo,getTips} from '../store/async-actions/pushMessage';
 import {ADD_ASSESS_ITEMS,SET_SAVE_ASSESS_DATA} from "@types/assessResult";
 import {saveMessage} from "../store/async-actions/print";
 import {saveClickNum} from '@store/async-actions/homePage';
+import { getFormulaResult } from '@store/async-actions/fetchModules'
 
 function mapStateToProps(state){
   return{
     chronicMagItem: state.diagnosticList.chronicMagItem,
-    questionId: state.diagnosticList.clickDiag,
     tableList: state.pushMessage.tableList,
     showList: state.pushMessage.showList,
     showHide: state.pushMessage.showHide,
@@ -48,10 +48,23 @@ function mapDispatchToProps(dispatch){
       })
     },
     //保存管理评估
-    saveAssessInfos(obj){
+    saveAssessInfos(obj,flg){
       dispatch(Object.assign({},obj,{type:SET_SAVE_ASSESS_DATA}));
       dispatch(saveClickNum);
-      dispatch(() => saveMessage())
+      if(flg != 1 && flg != 2){
+        dispatch(() => saveMessage())
+      }
+    },
+    //设置量表推送内容
+    setChronicPush(data) {
+      dispatch({
+        type: SET_CHRONIC_PUSHS,
+        data: data
+      })
+    },
+    // 计算公式计算
+    calcuFormula(item) {
+      dispatch(getFormulaResult(item))
     },
     // 获取量表静态知识
     getInfomation(item){

+ 0 - 1
src/containers/CurrentIll.js

@@ -20,7 +20,6 @@ function mapStateToProps(state) { //console.log(111,state);
         searchData:state.currentIll.searchDatas,//搜索结果
         focusIndex:state.currentIll.focusIndex,
         processModule:state.currentIll.processModule,//病程变化模板
-        processModuleName:state.currentIll.processModuleName,//病程变化模板名称
         showArr:homePage.showDrop,
         span:state.currentIll.span,
         update:state.currentIll.update,//用于更新

+ 0 - 1
src/containers/MainSuit.js

@@ -31,7 +31,6 @@ function mapStateToProps(state) {//console.log(11,state);
     focusIndex:state.mainSuit.focusIndex,
     fuzhen:state.diagnosticList.mainSuitStr,//诊断第一个复诊值
     span:state.mainSuit.span,
-    addModuleName:state.mainSuit.addModuleName,//添加病情变化模板名称
     editClear:state.mainSuit.editClear,
     clearAction:state.mainSuit.clearAction,//清除
     mainIds:state.mainSuit.mainIds,//选中症状的id,搜索去重用

+ 5 - 4
src/containers/ScaleTable.js

@@ -14,19 +14,20 @@ function mapDispatchToProps (dispatch){
   return {
     getResult(obj){//计算结果
       const {params,allDatas,result} = obj;
-      // dispatch(getFormulaResult(obj.params));
+      dispatch(getFormulaResult(params));
       dispatch({
         type:SET_SCALE_INFO,
         data:allDatas,
-        id:params.scaleId //量表id
+        id:params.id //量表id
       })
-      if(result&&result.text){
+      // 前端计算的值
+      /*if(result&&result.text){
         dispatch({
           type:SAVE_TABLE_RESULT,
           id:params.scaleId,  
           data:result
         })
-      }
+      }*/
     }
   }
 }

+ 1 - 12
src/store/actions/currentIll.js

@@ -48,7 +48,6 @@ export const setModule = (state,action)=>{
   // res.processModule = action.processModule;//病程变化模板
   res.moduleData = spreadLabels;
   res.processModule = sonSpreadLabels;//病程变化模板
-  res.processModuleName = action.processModuleName;//模板名称
   res.emptyData = action.emptyData;//空模板
   let data = action.data;
   let sliceIdx;
@@ -133,16 +132,6 @@ export const setData = (state,action) =>{
     return item.questionMapping.length>0;
   })*/
   
-
-  // 是慢病,暂且使用现病史慢病模板,不区分空模板
-  /*if(isChronic){
-    res.data = fullfillText(moduleData).newArr;
-    res.saveText = fullfillText(res.data).saveText;
-    res.update=Math.random();
-    return res;
-  }*/
-
-  /****************************************/
   // 是否使用空模板:num=0时判断mainIds,num>=1,截取第一病程遍历是否有症状exist
   if(num==0){
     useEmpty = mainIds.length>0 ? false:true;
@@ -164,7 +153,7 @@ export const setData = (state,action) =>{
   
   if (useEmpty) {
     // res.data = res.emptyData;
-    res.data = JSON.parse(JSON.stringify(res.emptyData));
+    res.data = res.emptyData&&res.emptyData.length>0?JSON.parse(JSON.stringify(res.emptyData)):moduleData;
   } else {
     if(mainData&&mainData.length>0){//主诉使用模板
       // 目前只需要将第一个主诉病程移植到现病史

+ 0 - 1
src/store/actions/mainSuit.js

@@ -52,7 +52,6 @@ export const setMainMoudle = (state,action) => {
   // res.saveText = res.save||[];
   res.saveText = res.save||res.saveText;//慢病
   res.addSmoduleData = sonSpreadLabels;
-  res.addModuleName = action.addModuleName;
   res.update=Math.random();
   return res;
 }

+ 16 - 24
src/store/async-actions/fetchModules.js

@@ -20,7 +20,8 @@ const api={
   getSymptomFeature:'/feature/getSymptomFeature',
   getAssess:'/evaluationModuleMapping/getEvaluationModules',    //获取管理评估-慢病
   getIndexData:'/indexData/getIndexDatas',    //获取指标数据-图表-慢病
-  getFormulaResult:'/push/calculate',  // 计算接口
+  // getFormulaResult:'/push/calculate',  // 计算接口
+  getFormulaResult:'/calc/calculate',  // 计算接口
   getAssessHis:'/inquiryInfo/getEvaluations',   //历史评估记录
 };
 
@@ -265,35 +266,26 @@ export function getIndexData(range){
 
 // 计算接口
 export const getFormulaResult = (item)=>{
-  // type:1-量表 11-计算公式
+  // type:1-量表 2-计算公式
   const type = item.type;
-  const id = item.id;//计算量表的id
-  let param;
-  if(type==1){
-    param = {
+  let param = {
       type:type,
-      scale:item.content
+      data:item.data
     }
-  }else if(type==11){
-    param = {
-      type:type,
-      formula:item.content
-    }
-  }
   return (dispatch) => {
     json(api.getFormulaResult,param).then((res)=>{
       if(+res.data.code==0){
-        dispatch({
-          type:SAVE_TABLE_RESULT,
-          // id:id, //外层疾病id
-          id:item.scaleId,  //量表id
-          data:{
-            data:item.content, //量表内容
-            // id:item.scaleId,  //量表id
-            type:type,
-            result:res.data.data, //计算结果
-          }
-        })
+        if(type==1){//量表
+          dispatch({
+            type:SAVE_TABLE_RESULT,
+            // id:item.pId, //外层疾病id
+            id:item.id,  //量表id
+            data:Object.assign({},res.data.data,{pIndex:item.pIndex})
+          })
+        }else if(type==2){//计算公式
+          console.log('resss', res)
+        }
+        
       }else{
         console.log(res.msg)
       }

+ 5 - 7
src/store/async-actions/homePage.js

@@ -32,10 +32,10 @@ export const getInitModules= (dispatch,getStore)=>{
   const state = getStore();
   const {message} = state.patInfo;
   const {allModules} = state.homePage;
-  // const chronicMagItem = state.diagnosticList.chronicMagItem;
-  // const chronicId = chronicMagItem?chronicMagItem.id:'';//诊断为慢病复诊时储存慢病信息到store
-  const chronicMagItem = state.mainSuit.chronicDesease;
-  const chronicId = chronicMagItem?chronicMagItem.id:'';//诊断为慢病复诊时储存慢病信息到store
+  const chronicMagItem = state.diagnosticList.chronicMagItem;//诊断入口
+  // const chronicId = chronicMagItem?chronicMagItem.id:'';
+  const chronicDesease = state.mainSuit.chronicDesease; //主诉入口
+  const chronicId = chronicDesease&&chronicDesease.id||chronicMagItem&&chronicMagItem.id||'';
   const param = {
     age:message.patientAge,
     sexType:message.sex,
@@ -65,7 +65,6 @@ export const getInitModules= (dispatch,getStore)=>{
             type:SET_MAINSUIT,
             data:fullfillText(initData.mainSuit).newArr,
             addSymptom:fullfillText(initData.addSymptom).newArr,
-            // addModuleName:initModuleName.addSymptom,//模板名称
             save:initSaveText.mainSuit
           });
           dispatch({
@@ -73,7 +72,6 @@ export const getInitModules= (dispatch,getStore)=>{
             data:formatContinueDots(initData.current),
             save:initSaveText.current,
             processModule:formatContinueDots(initData.process),//病程变化
-            processModuleName:initModuleName.process,//病程变化模板名称
             saveProcess:initSaveText.process,
             emptyData:formatContinueDots(initData.currentEmpty),//现病史空模板
             saveEmpty:initSaveText.currentEmpty,
@@ -84,8 +82,8 @@ export const getInitModules= (dispatch,getStore)=>{
             data:formatContinueDots(initData.current),
             save:initSaveText.current,
             processModule:formatContinueDots(initData.process),//病程变化
-            processModuleName:initModuleName.process,//病程变化模板名称
             // saveProcess:initSaveText.process,
+            // 慢病现病史没有空模板
           });
         }
 

+ 13 - 1
src/utils/tools.js

@@ -908,6 +908,17 @@ function inspectAndAssist(){
     store.dispatch(addAssistLabel(checkArr))
   }
 }
+function readyKeepHistory(){
+  let baseList = store.getState();
+  let jsonStr = getAllDataStringList(baseList);
+  if(filterDataArr(JSON.parse(jsonStr.chief)) == ''){
+      return 1;//主诉不能为空
+  }else if(!jsonStr.diag || jsonStr.diag.trim().length < 1){
+      return 2;//诊断不能为空
+  }else{
+    return 3;
+  }
+}
 module.exports = {
     checkType: Type.checkType,
     regexp,
@@ -941,5 +952,6 @@ module.exports = {
     formatContinueDots,
     inspectAndAssist,
     getCurrentDate,
-    ifOtherClear
+    ifOtherClear,
+    readyKeepHistory,
 };