Jelajahi Sumber

治疗方案慢病

zhangxc 5 tahun lalu
induk
melakukan
64c62661a5
2 mengubah file dengan 151 tambahan dan 44 penghapusan
  1. 26 12
      src/components/Advice/index.jsx
  2. 125 32
      src/store/actions/pushMessage.js

+ 26 - 12
src/components/Advice/index.jsx

@@ -67,19 +67,33 @@ class Advice extends Component{
   render(){
     const {advice} = this.props.pushMessage;
     const {isRead, isFirstMainDiag, followUp, hasFollowUp, saveFollowUp, typeConfig} = 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 ? 
-          <div>
-            { it.treatmentStr }
-            {/* <input className={style['treat-input']} ref={this.treatInput} onInput={(e)=>{this.handleTreatInput(e, index, ii)}} type='text' value={ it.treatmentStr }/>  */}
-          </div>: '') 
-
-        // return <div>{it.drugs.length > 0 ? it.name : ''}: {it.drugs.map((drug, drugIndex) =>{
-        //   return(<span>{drug.selected ? (drugIndex === 0 ? drug.name : '  ' + drug.name) : ''}</span>)
-        // })}</div>
-      })}</p>
+    let scheme = advice.scheme && advice.scheme.map((item0, index0) => {
+      return <p>
+        {item0.treatment.map((item1, index1) => {
+          return item1.meditionDetails.map((item2, index2) => {
+              return item2.treatment.map((item3, index3) => {
+                return(item3.treatmentStr && item3.treatmentStr.length > 0 ?
+                  <div>
+                    { item3.treatmentStr }
+                  </div>: '')
+              })
+          })
+        })}
+      </p>
     })
+    // let scheme = advice.scheme && advice.scheme.map((item, index) => {
+    //   return <p>{item.treatment.map((it,ii) =>{
+    //     return(it.treatmentStr && it.treatmentStr.length > 0 ? 
+    //       <div>
+    //         { it.treatmentStr }
+    //         {/* <input className={style['treat-input']} ref={this.treatInput} onInput={(e)=>{this.handleTreatInput(e, index, ii)}} type='text' value={ it.treatmentStr }/>  */}
+    //       </div>: '') 
+
+    //     // return <div>{it.drugs.length > 0 ? it.name : ''}: {it.drugs.map((drug, drugIndex) =>{
+    //     //   return(<span>{drug.selected ? (drugIndex === 0 ? drug.name : '  ' + drug.name) : ''}</span>)
+    //     // })}</div>
+    //   })}</p>
+    // })
 
     return  <div id="adviceBox" className={`${'mainsuit-box'} ${style['main-suit']}`}>
       <ItemBox title='医嘱' editable={false} border={true} marginTop="10px">

+ 125 - 32
src/store/actions/pushMessage.js

@@ -45,7 +45,6 @@ function getAdviceStr(advice) {
 	const check = advice.check || '';
 	const followUp = advice.followUp || '';
 	let AdviceStr = advice.AdviceStr || '';
-
 	if(assay || check) {
 		AdviceStr = assay + check  +'; ' + AdviceStr;
 	}
@@ -56,13 +55,35 @@ function getAdviceStr(advice) {
 		AdviceStr = AdviceStr + '回访时间:'+followUp + '后回访,不适随诊' + ';';
 	}
 	for (let i = 0; i < scheme.length; i++) {
-		for (let j = 0; j < scheme[i].treatment.length; j++) {
-			if(scheme[i].treatment[j].treatmentStr === '') {
-				AdviceStr = AdviceStr + scheme[i].treatment[j].treatmentStr
-			} else {
-				AdviceStr = AdviceStr  + scheme[i].treatment[j].treatmentStr + ', '
+		for(let j = 0; j < scheme[i].treatment.length; j++){
+			for(let k = 0; k < scheme[i].treatment[j].meditionDetails.length; k++) {
+				for(let l = 0; l < scheme[i].treatment[j].meditionDetails[k].treatment.length; l++) {
+					const treatmentItem = scheme[i].treatment[j].meditionDetails[k].treatment[l]
+					if(treatmentItem.treatmentStr === '') {
+						AdviceStr += treatmentItem.treatmentStr
+					}else {
+						AdviceStr += treatmentItem.treatmentStr + ', '
+					}
+				}
 			}
+
 		}
+
+
+
+
+
+
+
+		// for (let j = 0; j < scheme[i].treatment.length; j++) {
+		// 	if(scheme[i].treatment[j].treatmentStr === '') {
+		// 		AdviceStr = AdviceStr + scheme[i].treatment[j].treatmentStr
+		// 	} else {
+		// 		AdviceStr = AdviceStr  + scheme[i].treatment[j].treatmentStr + ', '
+		// 	}
+		// }
+
+
 	}
 	if(AdviceStr.slice(AdviceStr.length-2) == ', ') {
 		AdviceStr = AdviceStr.slice(0, AdviceStr.length-2)
@@ -84,22 +105,29 @@ export const addScheme = (state, action) => {
   const treatment = action.treatment;
   const treatItem = {};
   treatItem.name = action.title;
-  const scheme = res.advice.scheme || [];
+  let scheme = res.advice.scheme || [];
   let isRepeat = false; 
   let RepeatIndex;
   let SelectedDrugNum = 0 	//选中的药品数量
   for (let i = 0; i < treatment.length; i++) {
-		let treatmentStr = '';
-		let drugList = []
-    for (let j = 0; j < treatment[i].medicitionsList.length; j++) {
-      if(treatment[i].medicitionsList[j].selected) {
-				treatmentStr = treatmentStr + treatment[i].medicitionsList[j].medicitionName + ', '
-				drugList.push({conceptId: treatment[i].medicitionsList[j].conceptId, conceptName: treatment[i].medicitionsList[j].medicitionName })
-				SelectedDrugNum++
+		for(let j = 0; j < treatment[i].meditionDetails.length; j++) {
+			for(let k = 0; k < treatment[i].meditionDetails[j].treatment.length; k++) {
+				let treatmentStr = '';
+				let drugList = []
+				for(let l = 0; l < treatment[i].meditionDetails[j].treatment[k].medicitionsList.length; l++) {
+					const drugItem = treatment[i].meditionDetails[j].treatment[k].medicitionsList[l]
+					if(drugItem.selected) {
+						treatmentStr = treatmentStr + drugItem.medicitionName + ', '
+						drugList.push({conceptId: drugItem.conceptId, conceptName: drugItem.medicitionName })
+						SelectedDrugNum++
+					}
+					
+				}
+				treatment[i].meditionDetails[j].treatment[k].treatmentStr = treatmentStr.substring(0,treatmentStr.length-2)
+				treatment[i].meditionDetails[j].treatment[k].drugList = drugList
 			}
-	}
-	treatment[i].treatmentStr = treatmentStr.substring(0,treatmentStr.length-2)
-	treatment[i].drugList = drugList
+		}
+	
   }
   if(SelectedDrugNum > 0) { //如果有选中的药品,滚动到医嘱框
 	document.getElementById("adviceBox").scrollIntoView(true)
@@ -119,22 +147,76 @@ export const addScheme = (state, action) => {
   })
   if (isRepeat) {
 	 //将同类药添加到一起
-	for (let i = 0; i < scheme[RepeatIndex].treatment.length; i++) {
-		for (let j = 0; j < treatment.length; j++) {
-			if (scheme[RepeatIndex].treatment[i].id === treatment[j].id && scheme[RepeatIndex].treatment[i].bigdrugsName === treatment[j].bigdrugsName && scheme[RepeatIndex].treatment[i].subdrugsName === treatment[j].subdrugsName) {
-				for(let z = 0; z < treatment[j].medicitionsList.length; z++) {
-					if(treatment[j].medicitionsList[z].selected) {
-						if(scheme[RepeatIndex].treatment[i].treatmentStr !== '') {
-							scheme[RepeatIndex].treatment[i].treatmentStr = scheme[RepeatIndex].treatment[i].treatmentStr + ', ' + treatment[j].medicitionsList[z].medicitionName 
-						} else {
-							scheme[RepeatIndex].treatment[i].treatmentStr = scheme[RepeatIndex].treatment[i].treatmentStr + '' + treatment[j].medicitionsList[z].medicitionName
+	const schemeTreatmentCopy = scheme[RepeatIndex].treatment.slice()
+	 for (let i = 0; i < scheme[RepeatIndex].treatment.length; i++) {
+		for(let x = 0; x < treatment.length; x++) {
+			const hasNoCont = scheme[RepeatIndex].treatment.findIndex(item => item.title === treatment[x].title) 
+			if(hasNoCont === -1) {
+				if(treatment[x].title != scheme[RepeatIndex].treatment[i].title) {
+					const treatmentCopy = JSON.parse(JSON.stringify(treatment[x]))
+					for(let o = 0; o < treatmentCopy.meditionDetails.length; o++) {
+						for(let p = 0; p < treatmentCopy.meditionDetails[o].treatment.length; p++) {
+							treatmentCopy.meditionDetails[o].treatment[p].treatmentStr = ""
+						}
+
+					}
+					schemeTreatmentCopy.splice(x, 0, treatmentCopy)
+				}
+			}
+		}
+			
+	 }
+	 scheme[RepeatIndex].treatment = schemeTreatmentCopy
+	 for (let i = 0; i < scheme[RepeatIndex].treatment.length; i++) {
+		const schemeTreatmentCopy2 = scheme[RepeatIndex].treatment[i].meditionDetails.slice()
+
+			for(let x = 0; x < treatment.length; x++) {
+				if(treatment[x].title === scheme[RepeatIndex].treatment[i].title) {
+				for(let j = 0; j < scheme[RepeatIndex].treatment[i].meditionDetails.length; j++) {
+					for(let y = 0; y < treatment[x].meditionDetails.length;y++) {
+							const hasNoCont =  scheme[RepeatIndex].treatment[i].meditionDetails.findIndex(item => item.description === treatment[x].meditionDetails[y].description)  
+							if(hasNoCont === -1) {
+								schemeTreatmentCopy2.splice(y, 0, treatment[x].meditionDetails[y])
+							}
 						}
-						scheme[RepeatIndex].treatment[i].drugList.push({conceptId: treatment[j].medicitionsList[z].conceptId, conceptName: treatment[j].medicitionsList[z].medicitionName })
+				}
 
+			}
+		}
+		scheme[RepeatIndex].treatment[i].meditionDetails = schemeTreatmentCopy2
+
+	 }
+	for (let i = 0; i < scheme[RepeatIndex].treatment.length; i++) {
+		for(let j = 0; j < scheme[RepeatIndex].treatment[i].meditionDetails.length; j++) {
+			for(let k = 0; k < scheme[RepeatIndex].treatment[i].meditionDetails[j].treatment.length; k++) {
+				const schemeItem = scheme[RepeatIndex].treatment[i].meditionDetails[j].treatment[k]
+
+				for(let x = 0; x < treatment.length; x++) {
+					for(let y = 0; y < treatment[x].meditionDetails.length;y++) {
+						for(let z = 0; z < treatment[x].meditionDetails[y].treatment.length; z++) {
+							let treatItem = treatment[x].meditionDetails[y].treatment[z]
+							if(schemeItem.id === treatItem.id && schemeItem.bigdrugsName === treatItem.bigdrugsName && schemeItem.subdrugsName === treatItem.subdrugsName) {
+								for(let w = 0; w < treatItem.medicitionsList.length; w++) {
+									const medicitionsItem = treatItem.medicitionsList[w]
+									if(medicitionsItem.selected) {
+										if(schemeItem.treatmentStr !== '') {
+											schemeItem.treatmentStr += ', ' +medicitionsItem.medicitionName
+										} else {
+											schemeItem.treatmentStr += '' +medicitionsItem.medicitionName
+										}
+										schemeItem.drugList.push({conceptId: medicitionsItem.conceptId, conceptName: medicitionsItem.medicitionName })
+									}
+								}
+							}
+						}
 					}
 				}
+
+
+				
 			}
 		}
+
 	}
 
 //    let repeatDiag = res.advice.scheme[RepeatIndex].treatment
@@ -147,10 +229,16 @@ export const addScheme = (state, action) => {
 //    }
 //    repeatDiag = repeatDiag.concat(action.treatment)
   } else {
+	  	loop: 
 		for (let i = 0; i < treatItem.treatment.length; i++) {
-			for (let j = 0; j < treatItem.treatment[i].medicitionsList.length; j++) {
-				if(treatItem.treatment[i].medicitionsList[j].selected) {
-					res.advice.scheme = scheme.concat(treatItem)
+			for(let j = 0; j < treatItem.treatment[i].meditionDetails.length; j++) {
+				for(let k = 0; k < treatItem.treatment[i].meditionDetails[j].treatment.length; k++) {
+					for(let l = 0; l < treatItem.treatment[i].meditionDetails[j].treatment[k].medicitionsList.length; l++) {
+						if(treatItem.treatment[i].meditionDetails[j].treatment[k].medicitionsList[l].selected) {
+							res.advice.scheme = scheme.concat(treatItem)
+							break loop;
+						}
+					}
 				}
 			}
 		}
@@ -164,13 +252,18 @@ export const addScheme = (state, action) => {
   return res;
 }
 
+
 //获取开单到医嘱的药品列表
 function getDrugList(scheme) {
 	const drugList = [];
 	for(let i = 0 ;  i < scheme.length; i++) {
 		for(let j = 0; j <scheme[i].treatment.length; j++ ) {
-			for (let z = 0; z < scheme[i].treatment[j].drugList.length; z++) {
-				drugList.push(scheme[i].treatment[j].drugList[z]);
+			for(let k = 0; k < scheme[i].treatment[j].meditionDetails.length; k++) {
+				for(let l = 0; l < scheme[i].treatment[j].meditionDetails[k].treatment.length; l++) {
+					for (let m = 0; m < scheme[i].treatment[j].meditionDetails[k].treatment[l].drugList.length; m++) {
+						drugList.push(scheme[i].treatment[j].meditionDetails[k].treatment[l].drugList[m]);
+					}
+				}
 			}
 		}
 	}