public function indexAction() { echo '<pre>'; $tTime = time(); $tH = date('H', $tTime); $tWhere = ' and PUNCTURE_NURSE is not NULL'; if ($tH >= 22 && $tH <= 23) { $tWhere = ''; } $tTRMO = new BqetreatmentrecordModel(); $tUAMO = new UserassessmentModel(); $tDWLMO = new DryweightlogModel(); $tUMO = new UserModel(); $tOci = new Orm_Oci(); $tHSql = 'select patient_id,treatment_times,fluid_volume,dialyzer,dialysis_mach,volume_na,volume_ca,volume_hc,volume_quantity,vascular_access,body_weight,bodyweight_bef,bodyweight_increase,ultrafilt_quantity,ufr,treat_time,blood_quantity,first_agent,maitain,additional,total_quantity,t,p,r,bp1,bp2,actual_treat_time,bodyweight_after,actual_ultrafilt_quantity,t_after,p_after,bp1_after,bp2_after,treate_summary,puncture_nurse,treate_nurse,doctor_user,to_char(treate_date,\'YYYY-mm-dd\') treate_date,treate_mode,dfz,vein_puncture,artery_puncture,kidney_solidification,dialyze_allergy,takeoff_needle from treatment_record where to_char(TREATE_DATE,\'YYYY-mm-dd\') = \'' . date('Y-m-d', $tTime) . '\' ' . $tWhere; #$tHSql = 'select patient_id,treatment_times,fluid_volume,dialyzer,dialysis_mach,volume_na,volume_ca,volume_hc,volume_quantity,vascular_access,body_weight,bodyweight_bef,bodyweight_increase,ultrafilt_quantity,ufr,treat_time,blood_quantity,first_agent,maitain,additional,total_quantity,t,p,r,bp1,bp2,actual_treat_time,bodyweight_after,actual_ultrafilt_quantity,t_after,p_after,bp1_after,bp2_after,treate_summary,puncture_nurse,treate_nurse,doctor_user,to_char(treate_date,\'YYYY-mm-dd\') treate_date,treate_mode,dfz,vein_puncture,artery_puncture,kidney_solidification,dialyze_allergy,takeoff_needle from treatment_record where to_char(TREATE_DATE,\'YYYY-mm-dd\') between \'2015-10-08\' and \'2015-12-08\''; $tDatas = $tOci->getAll($tHSql); foreach ($tDatas as $tRow) { $tTRRow = $tTRMO->field('count(0) c')->where('patient_id = \'' . $tRow['PATIENT_ID'] . '\' and treate_date = \'' . $tRow['TREATE_DATE'] . '\'')->fRow(); if (!empty($tTRRow['c'])) { continue; } foreach ($tRow as $k => $v) { $k = strtolower($k); $tData[$k] = $v; } $tUARow = $tUAMO->field('uid')->where('patient_id = \'' . $tRow['PATIENT_ID'] . '\'')->fRow(); $tData['uid'] = empty($tUARow['uid']) ? 0 : $tUARow['uid']; echo $tTRMO->insert($tData); echo "\r\n"; if (empty($tRow['BODY_WEIGHT'])) { continue; } if (!empty($tUid) && date('Y-m-d', $tTime) == $tRow['TREATE_DATE']) { #用户存在 并且干体重记录日期是今日 的话更新用户信息表 $tData = array('id' => $tUid, 'dry_weight' => $tRow['BODY_WEIGHT']); $tUMO->update($tData); } $tDWLRow = $tDWLMO->field('id')->where('patient_id = \'' . $tRow['PATIENT_ID'] . '\' and date = \'' . $tRow['TREATE_DATE'] . '\'')->fRow(); if (!empty($tDWLRow['id'])) { $tData = array('id' => $tDWLRow['id'], 'weight' => $tRow['BODY_WEIGHT'], 'updated' => $tTime); $tDWLMO->update($tData); } else { #干体重log $tData = array('weight' => $tRow['BODY_WEIGHT'], 'created' => $tTime, 'date' => $tRow['TREATE_DATE'], 'month' => date('Y-m', strtotime($tRow['TREATE_DATE'])), 'year' => date('Y', strtotime($tRow['TREATE_DATE'])), 'patient_id' => $tRow['PATIENT_ID']); $tDWLMO->insert($tData); } } exit; }
public function yearAction() { $p = $_REQUEST; $pDate = empty($p['date']) ? '' : trim($p['date']); $pOpt = empty($p['opt']) ? 'left' : Tool_Fnc::safe_string($p['opt']); if (!empty($pDate) && !Tool_Validate::is_date($pDate)) { Tool_Fnc::ajaxMsg('日期不正确'); } $tWhere = ''; $tTime = strtotime($pDate); if ($pOpt == 'left') { if (!empty($pDate)) { $tEnd = date('Y-m-d', $tTime - 86400); } else { $tTime = time(); $tEnd = date('Y-m-d'); } $tStart = date('Y-m-d', $tTime - 86400 * 364); } else { if (!empty($pDate)) { $tStart = date('Y-m-d', $tTime + 86400); } else { $tTime = time(); $tStart = date('Y-m-d'); } $tEnd = date('Y-m-d', $tTime + 86400 * 364); } $tTRMO = new BqetreatmentrecordModel(); $tTRDatas = $tTRMO->field('bodyweight_bef,bodyweight_after,treate_date')->where('uid = ' . $this->tUid . ' and treate_date between \'' . $tStart . '\' and \'' . $tEnd . '\'')->order('treate_date asc')->fList(); $tDWLMO = new DryweightlogModel(); $tDWLDatas = $tDWLMO->field('weight,date')->where('uid = ' . $this->tUid . ' and date between \'' . $tStart . '\' and \'' . $tEnd . '\'')->fList(); //最开始日期 $tSql = 'select treate_date from ' . $tTRMO->table . ' where uid = ' . $this->tUid . ' order by treate_date asc limit 1'; $tTRMOList = $tTRMO->query($tSql); #用户最新干体重 $tUMO = new UserModel(); $tURow = $tUMO->field('dry_weight')->where('id = ' . $this->tUid)->fRow(); //如果没有干体重 初始化 $tDatearr = array(); for ($i = 0; $i < 364; $i++) { $tDatearr[] = date('Y-m-d', strtotime($tStart) + 86400 * $i); } $tDWLDate = array(); foreach ($tDWLDatas as $tRow) { $tDWLDate[] = $tRow['date']; } $tDatediff = array_diff($tDatearr, $tDWLDate); $tDiffarr = array(); foreach ($tDatediff as $tDate) { break; #判断该日期之前的干体重 $tDWLRow = $tDWLMO->field('weight')->where('uid = ' . $this->tUid . ' and date < ' . $tDate)->order('date desc')->limit('1')->fRow(); if (count($tDWLRow)) { $tDWLDatas[] = $tDiffarr[] = array('date' => $tDate, 'weight' => $tDWLRow['weight']); continue; } #判断该日期之后临近的干体重 $tDWLRow = $tDWLMO->field('weight')->where('uid = ' . $this->tUid . ' and date > ' . $tDate)->order('date desc')->limit('1')->fRow(); if (count($tDWLRow)) { $tDWLDatas[] = $tDiffarr[] = array('date' => $tDate, 'weight' => $tDWLRow['weight']); continue; } #当前用户干体重 $tDWLDatas[] = $tDiffarr[] = array('date' => $tDate, 'weight' => $tURow['dry_weight']); } #将没有干体重的天入库 foreach ($tDiffarr as $tRow) { break; if ($tDWLMO->in_weight($this->tUid, $tRow['date'])) { continue; } $tData = array('weight' => $tRow['weight'], 'uid' => $this->tUid, 'created' => $tTime, 'date' => $tRow['date'], 'month' => date('Y-m', strtotime($tRow['date'])), 'year' => date('Y-m', strtotime($tRow['date']))); $tDWLMO->insert($tData); } #排除 只要有体重的 干体重╮(╯▽╰)╭ $tTRDate = array(); foreach ($tTRDatas as $tRow) { $tTRDate[] = $tRow['treate_date']; } foreach ($tDWLDatas as $tKey => $tRow) { if (!in_array($tRow['date'], $tTRDate)) { unset($tDWLDatas[$tKey]); } } $tDWLDatas = Tool_Fnc::arraySort($tDWLDatas, 'date', 'asc'); Tool_Fnc::ajaxMsg('', 1, array('dry_weight' => $tDWLDatas, 'weight' => $tTRDatas, 'start_treate_date' => $tTRMOList[0]['treate_date'])); }