فهرست منبع

量表计算接口联调

liucf 6 سال پیش
والد
کامیت
d6fe7da7e7

+ 26 - 24
src/components/ChronicInfo/index.jsx

@@ -38,10 +38,10 @@ class ChronicInfo extends React.Component{
       tableName:'' , //点击的量表名称
       tableId:null ,//点击的量表id
       parentId:null ,
+      parentIndex:null,
       radioVal:{},  //可能结果选择内容
       possible:{},  //可能结果
     };
-    this.$content = React.createRef();
 
     this.showInfo = this.showInfo.bind(this);
     this.closeInfo = this.closeInfo.bind(this);
@@ -68,13 +68,9 @@ class ChronicInfo extends React.Component{
       operaSupport: false,
     });
   }
-  componentWillReceiveProps() {
-    $(this.$content.current)[0].scrollIntoView(true);
-  }
   
   showTableList(id){//量表按钮
-    const {getTableList,questionId} = this.props;
-    // getTableList(questionId&&questionId.id);
+    const {getTableList} = this.props;
     if(id){
       getTableList(id);
     }
@@ -88,12 +84,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);
@@ -108,7 +104,8 @@ class ChronicInfo extends React.Component{
   }
   showOption(id){
     this.setState({
-      optionId:id
+      optionId:id,
+      formulaId:null //关闭计算公式
     })
   }
   closeOption(){
@@ -116,9 +113,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
@@ -133,7 +130,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(){
@@ -153,7 +153,8 @@ class ChronicInfo extends React.Component{
   
   showFormula(id){//计算公式
     this.setState({
-      formulaId:id
+      formulaId:id,
+      optionId:null  //关闭可能结果
     })
   }
   closeFormula(){
@@ -201,11 +202,11 @@ class ChronicInfo extends React.Component{
     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}
@@ -215,9 +216,9 @@ 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"]}>
@@ -357,7 +358,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"]}>
@@ -386,7 +387,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>
                         })}
@@ -398,7 +400,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='管理和评估'

+ 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});

+ 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>

+ 0 - 1
src/containers/ChronicInfo.js

@@ -9,7 +9,6 @@ import {saveClickNum} from '@store/async-actions/homePage';
 function mapStateToProps(state){
   return{
     chronicMagItem: state.diagnosticList.chronicMagItem,
-    questionId: state.diagnosticList.clickDiag,
     tableList: state.pushMessage.tableList,
     showList: state.pushMessage.showList,
     showHide: state.pushMessage.showHide,

+ 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){//计算公式
+
+        }
+        
       }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,
+            // 慢病现病史没有空模板
           });
         }