file('file'); if ($file->getSize() > (4 * 1024 * 1024)) { return $this->_json_error('文件大小超过限制'); //$this->error(1, '文件大小超过限制'); } $rtn = (new Sample())->run($file->getRealPath()); $content = json_decode($rtn, true); $items = $content['words_result']; // var_dump($items);exit; $result = []; $serCodes = []; foreach ($items['Item'] as $key => $val) { //0参考区间 //1单位 //2参考区间 //4 结果 //6代号 //7名称 if (stripos($val[2]['word'], '--') !== false) { $fanwei = explode('--', $val[2]['word']); } else { $fanwei = explode('-', $val[2]['word']); } if (!isset($fanwei[1]) || in_array($val[7]['word'], ['超敏肌钙蛋白I'])) { continue; } if (stripos($val[7]['word'], ')') !== false) { preg_match('/\((.*?)\)/', $val[7]['word'], $matches); if (!isset($matches[1])) { continue; } $val[6]['word'] = $matches[1]; } if (!empty($val[4]['word']) && !empty($val[7]['word']) && empty($val[6]['word'])) { $val[6]['word'] = $this->getCode($val[7]['word'], $serCodes); $serCodes[] = $val[6]['word']; } // var_dump($val[6]['word'], $val[7]['word'], $val[4]['word']); // var_dump('-------------'); $fanwei = $this->fanwei($val[6]['word'], $val[7]['word'], $val[4]['word'], $fanwei); if (empty($fanwei)) { continue; } $result[] = $fanwei; //exit; } $qingxu = $this->jisuan($result); $absQx = []; if (empty($qingxu)) { return $this->_json_succ('success'); //return $this->success(); } foreach ($qingxu as $qxK => $qxV) { $absQx[$qxK] = abs($qxV); } arsort($absQx); $maxValues = array_slice($absQx, 0, 2); $sortData = []; foreach ($maxValues as $keys => $vals) { $sortData[] = [$keys, $vals]; } if (count($sortData) == 2) { $one = $sortData[0]; $two = $sortData[1]; if ($one[1] > $two[1]) { $data[] = $sortData[0]; } elseif ($one[1] == $two[1]) { $data = $sortData; } else { $data[] = $sortData[1]; } } else { $data = $sortData; } return $this->_json_succ($data); //return $this->success($data); } public function fanwei($xmdm, $name, $jieguo, $fanwei) { $average = ($fanwei[1] - $fanwei[0]) / 5; $averageArr = []; $levels = [3, 2, 1, 0, -1, -2, -3]; $averageArr[0] = ['max' => $fanwei[1], 'level' => 3]; for ($i = 1; $i <= 5; $i++) { if ($i == 1) { $max = $fanwei[1]; $min = number_format($fanwei[1] - $average * $i, 1); } else { $max = number_format($fanwei[1] - $average * ($i - 1), 1); $min = number_format($fanwei[1] - $average * $i, 1); } $averageArr[$i] = ['max' => $max, 'min' => $min, 'level' => $levels[$i]]; } array_push($averageArr, ['max' => $fanwei[0], 'level' => -3]); //var_dump($name, $averageArr); $rangeArr = [ //1. 身体元素 //铁 'fe' => ['3' => ['焦虑(中)'], '2' => ['焦虑(中)'], '1' => ['焦虑(轻)'], '-1' => ['抑郁(轻)', '愤怒(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //钙 'ca' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)', '愤怒(轻)'], '-2' => ['焦虑(中)', '易激惹(中)'], '-3' => ['焦虑(中)', '易激惹(中)']], //镁 'mg' => ['-2' => ['焦虑(中)', '易怒(中)', '抑郁(中)'], '-3' => ['焦虑(中)', '易怒(中)', '抑郁(中)']], //钾 'k' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //钠 'na' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //氯 'c1' => ['3' => ['愤怒(中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['抑郁(轻)', '焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)']], //2. 心肝肾代谢 //丙氨酸转氨酶(谷丙) 'alt' => ['3' => ['愤怒)中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //天门冬氨酸氨基转移酶(谷草) 'ast' => ['3' => ['愤怒)中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //碱性磷酸酶 'alp' => ['3' => ['愤怒)中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //γ-谷氨酰基转移酶 'ggt' => ['3' => ['愤怒)中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //胆碱酯酶 'che' => ['3' => ['愤怒)中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //3. 胆功代谢 //总胆红素 'tbil' => ['3' => ['愤怒(中)', '抑郁(中)'], '2' => ['愤怒(中)', '抑郁(中)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //直接胆红素 'dbil' => ['3' => ['愤怒(中)', '抑郁(中)', '焦虑)中)'], '2' => ['愤怒(中)', '抑郁(中)', '焦虑(中)'], '1' => ['愤怒)轻)', '抑郁(轻)', '焦虑)轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)']], //间接胆红素 'ibil' => ['3' => ['抑郁(中)', '焦虑)中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['抑郁(轻)', '焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //4. 糖、脂肪、蛋白质代谢 //同型半胱氨酸 'hcy' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //葡萄糖 'glu' => ['3' => ['愤怒(中)', '抑郁(中)', '焦虑(中)'], '2' => ['恐惧(中)', '委屈(轻)', '抑郁(轻)', '焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //总胆汁酸 'tba' => ['3' => ['焦虑(中)'], '2' => ['焦虑(中)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '愤怒(中)'], '-3' => ['抑郁(中)', '愤怒(中)']], //甘油三酯 'tg' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)'], '-2' => ['抑郁(中)']], //总胆固醇 'chol' => ['3' => ['愤怒(中)', '抑郁(中)', '焦虑(中)', '恐惧(中)'], '2' => ['愤怒(中)', '抑郁(中)', '焦虑(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '抑郁(轻)', '焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['焦虑(中)', '抑郁(中)'], '-3' => ['焦虑(中)', '抑郁(中)']], //高密度脂蛋白 'hdl' => ['3' => ['愤怒(中)', '焦虑(中)'], '2' => ['愤怒(中)', '焦虑(中)'], '1' => ['抑郁(轻)', '焦虑(轻)'], '-1' => ['愤怒(轻)', '焦虑(轻)'], '-2' => ['愤怒(中)', '焦虑(中)'], '-3' => ['愤怒(中)', '焦虑(中)']], //低密度脂蛋白 'ldl' => ['3' => ['抑郁(中)', '焦虑(中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['抑郁(轻)', '焦虑(轻)'], '-1' => ['愤怒(轻)', '焦虑(轻)'], '-2' => ['愤怒(中)', '焦虑(中)'], '-3' => ['愤怒(中)', '焦虑(中)']], //小而密低密度脂蛋白 'sdldl' => ['3' => ['抑郁(中)', '焦虑(中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['抑郁(轻)', '焦虑(轻)'], '-1' => ['愤怒(轻)', '焦虑(轻)'], '-2' => ['愤怒(中)', '焦虑(中)'], '-3' => ['愤怒(中)', '焦虑(中)']], //载脂蛋白A1 'apoa1' => ['3' => ['抑郁(中)', '焦虑(中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['抑郁(轻)', '焦虑(轻)'], '-1' => ['愤怒(轻)', '焦虑(轻)'], '-2' => ['愤怒(中)', '焦虑(中)'], '-3' => ['愤怒(中)', '焦虑(中)']], //载脂蛋白B 'apob' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)']], //尿酸 'uric' => ['3' => ['焦虑(中)', '恐惧(中)'], '2' => ['焦虑(中)', '恐惧(中)'], '1' => ['焦虑(轻)']], // '尿素' => [], //5. 免疫 //总蛋白 'tp' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '-2' => ['焦虑(中)', '恐惧(中)'], '-3' => ['焦虑(中)', '恐惧(中)']], //白蛋白 'alb' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['焦虑(中)', '恐惧(中)'], '-3' => ['焦虑(中)', '恐惧(中)']], //球蛋白 'glb' => ['3' => ['焦虑(中)', '恐惧(中)'], '2' => ['恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['焦虑(中)', '恐惧(中)'], '-3' => ['焦虑(中)', '恐惧(中)']], //白(中)球蛋白比值 'a:g' => ['3' => ['愤怒(中)', '易怒(中)'], '2' => ['愤怒(中)', '易怒(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(中)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //6. 肌肉代谢 //肌酐 'crea' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '-2' => ['焦虑(中)', '恐惧(中)'], '-3' => ['焦虑(中)', '恐惧(中)']], //肌酸激酶 'ck' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['焦虑(中)', '恐惧(中)'], '-3' => ['焦虑(中)', '恐惧(中)']], //肌酸激酶同工酶 'ckmb' => ['3' => ['焦虑(中)', '恐惧(中)'], '2' => ['恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //乳酸脱氢酶 'ldh' => ['3' => ['焦虑(中)', '恐惧(中)'], '2' => ['恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //7. 血常规免疫 //白细胞 'wbc' => ['3' => ['抑郁(中)', '恐惧(中)'], '2' => ['抑郁(中)', '恐惧(中)'], '1' => ['焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //中性粒细胞 'meut' => ['3' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '2' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1' => ['愤怒(轻)', '焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)']], 'meut%' => ['3' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '2' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1' => ['愤怒(轻)', '焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)']], //淋巴细胞 'lymph' => ['3' => ['焦虑(中)', '愤怒(中)'], '2' => ['焦虑(中)', '愤怒(中)'], '1' => ['焦虑(轻)', '愤怒(轻)'], '-1' => ['愤怒(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //单核细胞 'monocytes' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //嗜酸粒细胞 'eos' => ['3' => ['焦虑(中)', '恐惧(中)'], '2' => ['恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)']], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)'], //嗜碱性粒细胞 'basophil' => ['3' => ['愤怒(中)', '焦虑(中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)']], //8. 贫血 //红细胞 'rbc' => ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '-1' => ['抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //血红蛋白 'hgb' => ['3' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '2' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1' => ['愤怒(轻)', '焦虑(轻)'], '-1' => ['抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], '红细胞比容/红细胞压积' => ['3' => ['愤怒(中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)'], '1' => ['愤怒(轻)', '焦虑(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //红细胞平均体积 'mcv' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)']], //平均血红蛋白含量 'mch' => ['3' => ['抑郁(中)'], '2' => ['抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)']], //平均血红蛋白浓度 'mchc' => ['3' => ['愤怒(中)', '恐惧(中)'], '2' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1' => ['焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)', '抑郁(轻)']], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)', '焦虑(中)'], //红细胞分布宽度 'rdw-cv' => ['3' => ['抑郁(中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //血小板 'plt' => ['3' => ['焦虑(中)', '愤怒(中)', '抑郁(中)'], '2' => ['抑郁(中)'], '1' => ['焦虑(轻)', '愤怒(轻)'], '-1' => ['愤怒(轻)', '抑郁(轻)'], '-2' => ['抑郁(中)'], '-3' => ['抑郁(中)']], //平均血小板体积 'mpv' => ['3' => ['焦虑(中)', '抑郁(中)'], '2' => ['焦虑(中)', '抑郁(中)'], '1' => ['焦虑(轻)', '抑郁(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], //血小板体积分布宽度 'pdw' => ['3' => ['抑郁(中)'], '2' => ['抑郁(中)'], '1' => ['焦虑(轻)', '恐惧(轻)']], //血小板压积 'pct' => ['3' => ['抑郁(中)'], '2' => ['抑郁(中)', '焦虑(中)'], '1' => ['焦虑(轻)', '恐惧(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']], ]; $reslut = []; $xmdm = strtolower($xmdm); if (!isset($rangeArr[$xmdm])) { return $reslut; } $ra = $rangeArr[$xmdm]; //范围 foreach ($averageArr as $akey => $aval) { if ($jieguo > $averageArr[0]['max']) { //var_dump($averageArr[0]['level'], $ra[$averageArr[0]['level']]); if (!isset($ra[$averageArr[0]['level']])) { break; } $reslut[$xmdm] = ['name' => $name] + ['status' => $ra[$averageArr[0]['level']]] + ['level' => 3] + ['result' => $jieguo] + ['reference' => $fanwei[1] . '-' . $fanwei[0]] + ['range' => json_encode($averageArr)]; break; } elseif (isset($aval['min']) && $jieguo > $aval['min'] && $jieguo < $aval['max']) { if (!isset($ra[$aval['level']])) { break; } $reslut[$xmdm] = ['name' => $name] + ['status' => $ra[$aval['level']]] + ['level' => $aval['level']] + ['result' => $jieguo] + ['reference' => $fanwei[1] . '-' . $fanwei[0]] + ['range' => json_encode($averageArr)]; break; } elseif ($jieguo < $averageArr[6]['max']) { //var_dump($name, $averageArr[6]['level']); if (!isset($ra[$averageArr[6]['level']])) { break; } $reslut[$xmdm] = ['name' => $name] + ['status' => $ra[$averageArr[6]['level']]] + ['level' => -3] + ['result' => $jieguo] + ['reference' => $fanwei[1] . '-' . $fanwei[0]] + ['range' => json_encode($averageArr)]; break; } } //var_dump($name, $jieguo, $reslut);exit; return $reslut; } public function jisuan($data) { //身体元素 钾钠氯铁钙镁 $shenti = ['k', 'na', 'c1', 'fe', 'ca', 'mg']; // $fe = ['-2' => -2 * 99, '-3' => -3 * 99]; // $na = ['-3' => -3 * 99]; $re = []; $xiangmuArr = []; $shentiRes = []; foreach ($data as $key => $item) { foreach ($item as $dm => $val) { if (in_array($dm, $shenti)) { if ($dm == 'fe') { if ($val['level'] == -2) { $val['level'] = -2 * 99; } if ($val['level'] == -3) { $val['level'] = -3 * 99; } } if ($dm == 'na') { if ($val['level'] == -3) { $val['level'] = -3 * 99; } } //var_dump($val['status'], $dm); foreach ($val['status'] as $sts) { if (!isset($shentiRes[$sts])) { $shentiRes[$sts] = $val['level']; } else { $shentiRes[$sts] += $val['level']; } } } $xiangmuArr[$dm] = $val; } } $re['shenti'] = $shentiRes; //【肝】 γ-谷氨酰基转移酶 --ggt $ganVal = []; $gxsRes = []; if (isset($xiangmuArr['ggt'])) { $ganFanWeiArr = ['3' => ['愤怒(中)'], '2' => ['愤怒(中)'], '1' => ['愤怒(轻)'], '-1' => ['焦虑(轻)'], '-2' => ['抑郁(中)', '焦虑(中)'], '-3' => ['抑郁(中)']]; if (isset($ganFanWeiArr[$xiangmuArr['ggt']['level']])) { $ganVal = ['status' => $ganFanWeiArr[$xiangmuArr['ggt']['level']], 'val' => $xiangmuArr['ggt']['level']]; foreach ($ganFanWeiArr[$xiangmuArr['ggt']['level']] as $gan) { if (!isset($gxsRes[$gan])) { $gxsRes[$gan] = $xiangmuArr['ggt']['level']; } else { $gxsRes[$gan] += $xiangmuArr['ggt']['level']; } } } } //【心】[丙氨基转移酶alt]*2-[γ-谷氨酰基转移酶ggt]=[心] $xinVal = []; if (isset($xiangmuArr['alt']) && isset($xiangmuArr['ggt'])) { $xinDiff = $xiangmuArr['alt']['level'] * 2 - $xiangmuArr['ggt']['level'] * 1; $xinFanWeiArr = ['6~9' => ['愤怒(中)', '恐惧(中)'], '3~5' => ['愤怒(中)', '恐惧(中)'], '1~2' => ['愤怒(轻)', '恐惧(轻)', '焦虑(轻)'], '-2~-1' => ['焦虑(轻)'], '-5~-3' => ['抑郁(中)', '焦虑(中)'], '-9~-6' => ['抑郁(中)']]; foreach ($xinFanWeiArr as $xinKey => $xStatus) { $xnum = explode('~', $xinKey); if ($xinDiff > $xnum[0] && $xinDiff < $xnum[1]) { $xinVal = ['status' => $xStatus, 'val' => $xinDiff]; foreach ($xStatus as $xin) { if (!isset($gxsRes[$xin])) { $gxsRes[$xin] = $xinDiff; } else { $gxsRes[$xin] += $xinDiff; } } } } } //【肾】[丙氨基转移酶]*3-[天门冬氨酸氨基转移酶]*2 --ast $shenVal = []; if (isset($xiangmuArr['alt']) && isset($xiangmuArr['ast'])) { $shenDiff = $xiangmuArr['alt']['level'] * 3 - $xiangmuArr['ast']['level'] * 1; $shenFanWeiArr = ['10~15' => ['愤怒(中)', '恐惧(中)'], '5~9' => ['愤怒(中)', '恐惧(中)', '焦虑(中)'], '1~4' => ['焦虑(轻)'], '-4~-1' => ['焦虑(轻)'], '-9~-5' => ['抑郁(中)', '焦虑(中)'], '-15~-10' => ['抑郁(中)', '焦虑(中)']]; foreach ($shenFanWeiArr as $senKey => $senStatus) { $sennum = explode('~', $senKey); if ($shenDiff > $sennum[0] && $shenDiff < $sennum[1]) { $shenVal = ['status' => $senStatus, 'val' => $shenDiff]; foreach ($senStatus as $sen) { if (!isset($gxsRes[$sen])) { $gxsRes[$sen] = $shenDiff; } else { $gxsRes[$sen] += $shenDiff; } } } } } //var_dump($ganVal,$xinVal,$shenVal); $re['xgs'] = $gxsRes; //3. 胆功代谢 $zjdhs = [];//直接、间接胆红素 $dhsjl = [];//胆红素结论 if (isset($xiangmuArr['dbil']) && isset($xiangmuArr['ibil'])) { $dbilArr = []; $ibilArr = []; $dbVal = 0; $ibVal = 0; foreach ($xiangmuArr['dbil']['status'] as $dbil) { $dbVal += $xiangmuArr['dbil']['level']; if (isset($dbilArr[$dbil])) { $dbilArr[$dbil] += $xiangmuArr['dbil']['level']; } else { $dbilArr[$dbil] = $xiangmuArr['dbil']['level']; } } foreach ($xiangmuArr['ibil']['status'] as $ibil) { $ibVal += $xiangmuArr['ibil']['level']; if (isset($ibilArr[$ibil])) { $ibilArr[$ibil] += $xiangmuArr['ibil']['level']; } else { $ibilArr[$ibil] = $xiangmuArr['ibil']['level']; } } if (abs($dbVal) > abs($ibVal)) { $zjdhs = $dbilArr; } else { $zjdhs = $ibilArr; } //$re['dan'] = ['0' => $zjdhs]; } if (isset($xiangmuArr['tbil']) && !empty($zjdhs)) { foreach ($xiangmuArr['tbil']['status'] as $tbil) { if (isset($dhsjl[$tbil])) { $dhsjl[$tbil] += $xiangmuArr['tbil']['level']; } else { $dhsjl[$tbil] = $xiangmuArr['tbil']['level']; } } foreach ($zjdhs as $zjdhKey => $zjdhVal) { if (isset($dhsjl[$zjdhKey])) { $dhsjl[$zjdhKey] += $zjdhVal; } else { $dhsjl[$zjdhKey] = $zjdhVal; } } } $re['dan'] = $dhsjl; //4. 糖、脂肪、蛋白质代谢 //[同型半胱氨酸]+[葡萄糖]+[总胆汁酸]+[甘油三酯]+[总胆固醇]+[高密度脂蛋白]+[低密度脂蛋白]+[小而密低密度脂蛋白]+[载脂蛋白A1]+[载脂蛋白bB]+[尿酸] $dxie = ['hcy', 'glu', 'tba', 'tg', 'chol', 'hdl', 'hdl', 'ldl', 'sdldl', 'uric']; $dxieRes = []; foreach ($data as $key => $item) { foreach ($item as $dm => $val) { if (in_array($dm, $dxie)) { foreach ($val['status'] as $sts) { if (!isset($dxieRes[$sts])) { $dxieRes[$sts] = $val['level']; } else { $dxieRes[$sts] += $val['level']; } } } } } $re['daixie'] = $dxieRes; //5. 免疫 //[总蛋白tp]+[白蛋白alb]+[球蛋白glb]+[白(中)][球蛋白比值a:g] $mianyiRes = []; $baiQiuArr = []; $qiuDanBaiArr = []; $qiuMaxArr = []; $albVal = 0; $glbVal = 0; if (isset($xiangmuArr['alb']) && isset($xiangmuArr['glb'])) { foreach ($xiangmuArr['alb']['status'] as $sts) { $albVal += $xiangmuArr['alb']['level']; if (isset($baiQiuArr[$sts])) { $baiQiuArr[$sts] += $xiangmuArr['alb']['level']; } else { $baiQiuArr[$sts] = $xiangmuArr['alb']['level']; } } foreach ($xiangmuArr['glb']['status'] as $sts) { $glbVal += $xiangmuArr['glb']['level']; if (isset($qiuDanBaiArr[$sts])) { $qiuDanBaiArr[$sts] += $xiangmuArr['glb']['level']; } else { $qiuDanBaiArr[$sts] = $xiangmuArr['glb']['level']; } } if (abs($albVal) > abs($glbVal)) { $qiuMaxArr = $baiQiuArr; } else { $qiuMaxArr = $qiuDanBaiArr; } } if (isset($xiangmuArr['tp']) && isset($xiangmuArr['a:g']) && !empty($biZhiArr)) { foreach ($xiangmuArr['tp']['status'] as $tpSts) { if (isset($mianyiRes[$tpSts])) { $mianyiRes[$tpSts] += $xiangmuArr['tp']['level']; } else { $mianyiRes[$tpSts] = $xiangmuArr['tp']['level']; } } foreach ($xiangmuArr['a:g']['status'] as $agSts) { if (isset($mianyiRes[$agSts])) { $mianyiRes[$agSts] += $xiangmuArr['a:g']['level']; } else { $mianyiRes[$agSts] = $xiangmuArr['a:g']['level']; } } foreach ($qiuMaxArr as $maxKey => $maxVal) { if (isset($mianyiRes[$maxKey])) { $mianyiRes[$maxKey] += $maxVal; } else { $mianyiRes[$maxKey] = $maxVal; } } } $re['mianyi'] = $mianyiRes; //6. 肌肉代谢 //[肌酐][肌酸激酶][肌酸激酶同工酶][乳酸脱氢酶] $jirouDxie = ['crea', 'ckmb', 'ckmb', 'ldh']; $jrdxieRes = []; foreach ($data as $key => $item) { foreach ($item as $dm => $val) { if (in_array($dm, $jirouDxie)) { foreach ($val['status'] as $sts) { if (!isset($jrdxieRes[$sts])) { $jrdxieRes[$sts] = $val['level']; } else { $jrdxieRes[$sts] += $val['level']; } } } } } $re['jiroudx'] = $jrdxieRes; //7. 血常规免疫 //[白细胞][中性粒细胞][中性粒细胞百分比][淋巴细胞][单核细胞][嗜酸粒细胞][嗜碱性粒细胞] $xue = ['wbc', 'meut', 'lymph', 'lymph', 'monocytes', 'eos', 'basophil']; $xueRes = []; foreach ($data as $key => $item) { foreach ($item as $dm => $val) { if (in_array($dm, $xue)) { foreach ($val['status'] as $sts) { if (!isset($xueRes[$sts])) { $xueRes[$sts] = $val['level']; } else { $xueRes[$sts] += $val['level']; } } } } } $re['xue'] = $xueRes; //8. 贫血 //[红细胞][血红蛋白][红细胞比容/红细胞压积][红细胞平均体积][平均血红蛋白含量][平均血红蛋白浓度][红细胞分布宽度][血小板][平均血小板体积][血小板体积分布宽度][血小板压积] $pinXue = ['rbc', 'hgb', 'mcv', 'mch', 'mchc', 'rdw-cv', 'plt', 'mpv', 'pdw']; $pinXueRes = []; $pinXlevel = [ 'rbc' => ['-2' => -198, '-3' => 287], 'hgb' => ['-2' => -198, '-3' => 287], 'mcv' => ['-2' => -198, '-3' => -287], 'rdw-cv' => ['-1' => -99, '-3' => -287], ]; foreach ($data as $key => $item) { foreach ($item as $dm => $val) { if (in_array($dm, $pinXue)) { if (isset($pinXlevel[$dm][$val['level']])) { $level = $pinXlevel[$dm][$val['level']]; } else { $level = $val['level']; } foreach ($val['status'] as $sts) { if (!isset($pinXueRes[$sts])) { $pinXueRes[$sts] = $level; } else { $pinXueRes[$sts] += $level; } } } } } $re['pinxue'] = $pinXueRes; $jieguo = []; foreach ($re as $rr) { if (!empty($rr)) { foreach ($rr as $st => $stVal) { if (isset($jieguo[$st])) { $jieguo[$st] += $stVal; } else { $jieguo[$st] = $stVal; } } } } return $jieguo; } public function getCode($name, $check) { $code = [ 'fe' => '铁', //钙 'ca' => '钙', //镁 'mg' => '镁', //钾 'k' => '钾', //钠 'na' => '钠', //氯 'c1' => '氯', //2. 心肝肾代谢 //丙氨酸转氨酶(谷丙) 'alt' => '丙氨酸转氨酶', //天门冬氨酸氨基转移酶(谷草) 'ast' => '天门冬氨酸氨基转移酶', //碱性磷酸酶 'alp' => '碱性磷酸酶', //γ-谷氨酰基转移酶 'ggt' => 'γ-谷氨酰基转移酶', //胆碱酯酶 'che' => '胆碱酯酶', //3. 胆功代谢 //总胆红素 'tbil' => '总胆红素', //直接胆红素 'dbil' => '直接胆红素', //间接胆红素 'ibil' => '间接胆红素', //4. 糖、脂肪、蛋白质代谢 //同型半胱氨酸 'hcy' => '同型半胱氨酸', //葡萄糖 'glu' => '葡萄糖', //总胆汁酸 'tba' => '总胆汁酸', //甘油三酯 'tg' => '甘油三酯', //总胆固醇 'chol' => '总胆固醇', //高密度脂蛋白 'hdl' => '高密度脂蛋白', //低密度脂蛋白 'ldl' => '低密度脂蛋白', //小而密低密度脂蛋白 'sdldl' => '小而密低密度脂蛋白', 'apoa1' => '载脂蛋白A1', 'apob' => '载脂蛋白B', //尿酸 'uric' => '尿酸', // '尿素' => [], //5. 免疫 //总蛋白 'tp' => '总蛋白', //白蛋白 'alb' => '白蛋白', //球蛋白 'glb' => '球蛋白', //白(中)球蛋白比值 'a:g' => '白(中)球蛋白比值', //6. 肌肉代谢 //肌酐 'crea' => '肌酐', //肌酸激酶 'ck' => '肌酸激酶', //肌酸激酶同工酶 'ckmb' => '肌酸激酶同工酶', //乳酸脱氢酶 'ldh' => '乳酸脱氢酶', //7. 血常规免疫 //白细胞 'wbc' => '白细胞', //中性粒细胞 'meut' => '中性粒细胞', 'meut%' => '中性粒细胞百分比', //淋巴细胞 'lymph' => '淋巴细胞', 'monocytes' => '单核细胞', 'eos' => '嗜酸粒细胞', 'basophil' => '嗜碱性粒细胞', //8. 贫血 //红细胞 'rbc' => '红细胞', //血红蛋白 'hgb' => '血红蛋白', '红细胞比容/红细胞压积' => '红细胞比容/红细胞压积', //红细胞平均体积 'mcv' => '红细胞平均体积', //平均血红蛋白含量 'mch' => '平均血红蛋白含量', //平均血红蛋白浓度 'mchc' => '平均血红蛋白浓度', //红细胞分布宽度 'rdw-cv' => '红细胞分布宽度', //血小板 'plt' => '血小板', //平均血小板体积 'mpv' => '平均血小板体积', //血小板体积分布宽度 'pdw' => '血小板体积分布宽度', 'pct' => '血小板压积', ]; foreach ($code as $k => $v) { if (stripos($name, $v) !== false && !in_array($k, $check)) { return $k; } } } }