'白细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'wbc' ], [ 'entity' => '中性粒细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'meut' ], [ 'entity' => '中性粒细胞百分比', 'company' => ['10^9/L','10^9/l'], 'code' => 'meut%' ], [ 'entity' => '淋巴细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'lymph' ], [ 'entity' => '单核细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'monocytes' ], [ 'entity' => '嗜酸粒细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'eos' ], [ 'entity' => '嗜碱性粒细胞', 'company' => ['10^9/L','10^9/l'], 'code' => 'basophil' ], [ 'entity' => '红细胞', 'company' => ['10^12/L','10^12/l'], 'code' => 'rbc' ], [ 'entity' => '血红蛋白', 'company' => ['10^12/L','10^12/l'], 'code' => 'hgb' ], [ 'entity' => '红细胞比容/红细胞压积', 'company' => ['L/L'], 'code' => '红细胞比容/红细胞压积' ], [ 'entity' => '红细胞平均体积', 'company' => ['fL','fl'], 'code' => 'mcv' ], [ 'entity' => '平均血红蛋白含量', 'company' => ['g/L','g/l'], 'code' => 'mch' ], [ 'entity' => '平均血红蛋白浓度', 'company' => ['g/L','g/l'], 'code' => 'mchc' ], [ 'entity' => '红细胞分布宽度变异系数', 'company' => ['%'], 'code' => '红细胞分布宽度变异系数' ], [ 'entity' => '红细胞分布宽度标准差', 'company' => ['fL','fl'], 'code' => '红细胞分布宽度标准差' ], [ 'entity' => '血小板', 'company' => ['10^9/L','10^9/l'], 'code' => 'plt' ], [ 'entity' => '平均血小板体积', 'company' => ['fL','fl'], 'code' => 'mpv' ], [ 'entity' => '血小板体积分布宽度', 'company' => ['fL','fl'], 'code' => 'pdw' ], [ 'entity' => '血小板压积', 'company' => ['%'], 'code' => 'pct' ], [ 'entity' => '丙氨酸转氨酶(谷丙)', 'company' => ['U/L'], 'code' => 'alt' ], [ 'entity' => '天门冬氨酸氨基转移酶', 'company' => ['U/L'], 'code' => 'ast' ], [ 'entity' => '碱性磷酸酶', 'company' => ['U/L'], 'code' => 'alp' ], [ 'entity' => 'γ-谷氨酰基转移酶', 'company' => ['U/L'], 'code' => 'ggt' ], [ 'entity' => '胆碱酯酶', 'company' => ['U/L'], 'code' => 'che' ], [ 'entity' => '总蛋白', 'company' => ['g/L','g/l'], 'code' => 'tp' ], [ 'entity' => '白蛋白', 'company' => ['g/L','g/l'], 'code' => 'alb' ], [ 'entity' => '球蛋白', 'company' => ['g/L','g/l'], 'code' => 'glb' ], [ 'entity' => '白/球蛋白比值', 'company' => ['%'], 'code' => 'a:g' ], [ 'entity' => '总胆红素', 'company' => ['umol/L','umol/l'], 'code' => 'tbil' ], [ 'entity' => '直接胆红素', 'company' => ['umol/L','umol/l'], 'code' => 'dbil' ], [ 'entity' => '间接胆红素', 'company' => ['umol/L','umol/l'], 'code' => 'ibil' ], [ 'entity' => '岩藻糖苷酶', 'company' => ['umol/L','umol/l'], 'code' => '岩藻糖苷酶' ], [ 'entity' => '尿素', 'company' => ['umol/L','umol/l'], 'code' => '尿素' ], [ 'entity' => '尿酸', 'company' => ['umol/L','umol/l'], 'code' => 'uric' ], [ 'entity' => '肌酐', 'company' => ['umol/L','umol/l'], 'code' => 'crea' ], [ 'entity' => '葡萄糖', 'company' => ['umol/L','umol/l'], 'code' => 'glu' ], [ 'entity' => '总胆固醇', 'company' => ['umol/L','umol/l'], 'code' => 'chol' ], [ 'entity' => '甘油三酯', 'company' => ['umol/L','umol/l'], 'code' => 'tg' ], [ 'entity' => '高密度脂蛋白', 'company' => ['umol/L','umol/l'], 'code' => 'hdl' ], [ 'entity' => '低密度脂蛋白', 'company' => ['umol/L','umol/l'], 'code' => 'ldl' ], [ 'entity' => '小而密低密度脂蛋白', 'company' => ['umol/L','umol/l'], 'code' => 'sdldl' ], [ 'entity' => '载脂蛋白A1', 'company' => ['g/L','g/l'], 'code' => 'apoa1' ], [ 'entity' => '载脂蛋白B', 'company' => ['g/L','g/l'], 'code' => 'apob' ], [ 'entity' => '肌酸激酶', 'company' => ['U/L'], 'code' => 'ck' ], [ 'entity' => '肌酸激酶同工酶', 'company' => ['U/L'], 'code' => 'ckmb' ], [ 'entity' => 'α羟基丁酸脱氢酶', 'company' => ['U/L'], 'code' => 'α羟基丁酸脱氢酶' ], [ 'entity' => '乳酸脱氢酶', 'company' => ['U/L'], 'code' => 'ldh' ], [ 'entity' => '同型半胱氨酸', 'company' => ['μmol/L','μmol/l'], 'code' => 'hcy' ], [ 'entity' => '钙', 'company' => ['mmol/L','mmol/l'], 'code' => 'ca' ], [ 'entity' => '钾', 'company' => ['mmol/L','mmol/l'], 'code' => 'k' ], [ 'entity' => '钠', 'company' => ['mmol/L','mmol/l'], 'code' => 'na' ], [ 'entity' => '氯', 'company' => ['mmol/L','mmol/l'], 'code' => 'c1' ], [ 'entity' => '铁', 'company' => ['mmol/L','mmol/l'], 'code' => 'fe' ], [ 'entity' => '镁', 'company' => ['mmol/L','mmol/l'], 'code' => 'mg' ], [ 'entity' => '总胆汁酸', 'company' => ['μmol/L','μmol/l','umol/l','umol/L'], 'code' => 'tba' ], [ 'entity' => '超敏C反应蛋白', 'company' => ['mg/L'], 'code' => '超敏C反应蛋白' ], ]; public function ocr(Request $request) { $file = $request->file('file'); if ($file->getSize() > (4 * 1024 * 1024)) { return ToolsServices::error('文件大小超过限制'); } // $rtn = self::run($file->getRealPath()); // $content = json_decode($rtn, true); // dd($content); $rtn = self::callOcr($file); $word = self::formatTestSheet($rtn); $file = $file->store('image'); // $content = json_decode($rtn, true); // $items = $content['words_result']; $result = []; $serCodes = []; foreach ($word as $key => $val) { //0参考区间 //1单位 //2参考区间 //4 结果 //6代号 //7名称 if (stripos($val['range'], '--') !== false) { $fanwei = explode('--', $val['range']); } else { $fanwei = explode('-', $val['range']); } if (!isset($fanwei[1]) || in_array($val['entity'], ['超敏肌钙蛋白I'])) { continue; } if (stripos($val['entity'], ')') !== false) { preg_match('/\((.*?)\)/', $val['entity'], $matches); if (!isset($matches[1])) { continue; } $val['code'] = $matches[1]; } if (!empty($val['value']) && !empty($val['entity']) && empty($val['code'])) { $val['code'] = $this->getCode($val['entity'], $serCodes); $serCodes[] = $val['code']; } $fanwei = $this->fanwei($val['code'], $val['entity'], $val['value'], $fanwei); if (empty($fanwei)) { continue; } $result[] = $fanwei; } $qingxu = self::jisuan($result); $absQx = []; if (empty($qingxu)) { return ToolsServices::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; } $insert = [ 'image'=>json_encode([$file]), 'ocr' => '1111', 'result' => json_encode($data) ]; OcrLog::insertData($insert); return ToolsServices::success($data); } public function fanwei($xmdm, $name, $jieguo, $fanwei) { $fanwei[0] = (float)$fanwei[0]; $fanwei[1] = (float)$fanwei[1]; $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]); $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']) { 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']) { 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; } } return $reslut; } public static 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; } } } public static function callOcr($file){ $appId = 'd33412c0'; $apiKey = '5289860fd8cda40a979823dfb641610f'; $apiSecret = 'YmIxZTEyYzcwZmEzZjMzMDg5NzZkZGUz'; $url = 'https://api.xf-yun.com/v1/private/sf8e6aca1'; $date = gmstrftime("%a, %d %b %Y %T %Z",time()); $host = 'api.xf-yun.com'; $signature = "host: api.xf-yun.com\ndate: $date\nPOST /v1/private/sf8e6aca1 HTTP/1.1"; $signature = hash_hmac('sha256',$signature,$apiSecret,true); $signature = base64_encode($signature); $authorization = 'api_key="'.$apiKey.'",algorithm="hmac-sha256",headers="host date request-line",signature="'.$signature.'"'; $authorization = base64_encode($authorization); $url = $url .'?authorization='.$authorization.'&host='.$host.'&date='.urlencode($date); $image = base64_encode(file_get_contents($file->getRealPath())); $data = [ "header" => [ "app_id"=> $appId, "status"=> 3 ], 'parameter' => [ 'sf8e6aca1' => [ 'category' => 'ch_en_public_cloud', 'result' => [ 'encoding' => 'utf8', 'compress' => 'raw', 'format' => 'json' ] ] ], 'payload' => [ 'sf8e6aca1_data_1' => [ 'encoding' => $file->getClientOriginalExtension(), 'status' => 3, 'image' => $image ] ] ]; $strlen = strlen($image); if (strlen(base64_encode(file_get_contents($file->getRealPath()))) > 10485760){ return ''; } $data = json_encode($data); $result = self::sendPost($url,$data); if ($result['header']['code'] == 0){ return $result['payload']['result']['text']; }else{ return ''; } } public static function sendPost($url,$data){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','host: api.xf-yun.com', 'app_id: 645ee768')); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); return $output; } public static function formatTestSheet($text){ $text = str_replace( [" ","\n","★","*"], ['','','',''], base64_decode($text)); $text = json_decode($text,true); $wordArray = array_column($text['pages'][0]['lines'],'words'); foreach ($wordArray as $item){ $word[] = $item[0]; } $word = array_values(array_filter(array_column($word,'content'))); $data = []; $count = count($word); for ($i = 0 ; $i < $count ; $i++){ $value = $word[$i]; //跳过没用的数据 if (strpos($value,'.') !== false){ continue; } if (strpos($value,'/') !== false){ continue; } if (in_array($value,['序号','项目名称','英文缩写','检查结果','单位','采集时间'])){ continue; } if (strpos($value,'-') !== false){ continue; } $value = preg_replace("/\\d+/",'', $value); $value = preg_replace("/\s*(\w+#?)/i",'', $value); foreach (self::$mustExtractEntity as $item){ //匹配实体 if (empty($value)){ continue; } $valueCount = mb_strpos($value,$item['entity']); if ($valueCount !== false){ $temp = array_slice($word,$i,6); if (count($temp) < 6){ $temp = array_pad($temp,6,''); } $tempValue = ''; $tempRange = ''; if (preg_match('/\d+$/',$temp[1]) && preg_match("/-|~/",$temp[1]) == 0){ $tempValue = $temp[1]; }elseif (preg_match('/\d+$/',$temp[2]) && preg_match("/-|~/",$temp[2]) == 0){ $tempValue = $temp[2]; }elseif (preg_match('/\d+$/',$temp[3]) && preg_match("/-|~/",$temp[3]) == 0){ $tempValue = $temp[3]; }elseif (preg_match('/\d+$/',$temp[4]) && preg_match("/-|~/",$temp[4]) == 0){ $tempValue = $temp[4]; }elseif (preg_match('/\d+$/',$temp[5]) && preg_match("/-|~/",$temp[5]) == 0){ $tempValue = $temp[5]; } if (preg_match('/\d+-|~+\d+/',$temp[2])){ $tempRange = $temp[2]; }elseif (preg_match('/\d+-|~+\d+/',$temp[3])){ $tempRange = $temp[3]; }elseif (preg_match('/\d+-|~+\d+/',$temp[4])){ $tempRange = $temp[4]; }elseif (preg_match('/\d+-|~+\d+/',$temp[5])){ $tempRange = $temp[5]; } if (empty($tempValue) || empty($tempRange)){ continue; }else{ $tempRange = preg_replace("/[a-z]*\/[a-z]*/i",'', $tempRange); if(!is_numeric($tempValue)){ continue; } if (!isset($data[$item['code']])){ $data[$item['code']] = [ 'entity' => $item['entity'], 'value' => $tempValue, 'range' => $tempRange, 'code' => $item['code'] ]; } } }else{ continue; } } } return $data; // $ocr['calculation'] = json_encode($data); // $array = array_column($data,'symptom'); // $tem = []; // foreach ($array as $item){ // $tem = array_merge($item,$tem); // } // $tem = array_count_values($tem); // $symptom = ''; // foreach ($tem as $key=>$value){ // $symptom .= $key." + ".$value.'; '; // } // Ocr::query()->insert($ocr); // return ['list'=>$data,'symptom'=>$symptom]; } public static function run($filePath) { //10.jpg 18.png w1.jpeg w2.jpeg w3.png w66.jpeg w77.png w222.jpeg WechatIMG6.jpeg $image = file_get_contents($filePath);/// $image = base64_encode($image); $token = self::getAccessToken(); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://aip.baidubce.com/rest/2.0/ocr/v1/medical_report_detection?access_token=$token", CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => true, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => http_build_query(array( 'location' => 'false', 'probability' => 'false', 'image' => $image )), CURLOPT_HTTPHEADER => array( 'Content-Type: application/x-www-form-urlencoded', 'Accept: application/json' ), )); $response = curl_exec($curl); curl_close($curl); return $response; } /** * 使用 AK,SK 生成鉴权签名(Access Token) * @return string 鉴权签名信息(Access Token) */ private static function getAccessToken() { $curl = curl_init(); $postData = array( 'grant_type' => 'client_credentials', 'client_id' => env('API_KEY'), 'client_secret' => env('SECRET_KEY') ); curl_setopt_array($curl, array( CURLOPT_URL => 'https://aip.baidubce.com/oauth/2.0/token', CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => http_build_query($postData) )); $response = curl_exec($curl); curl_close($curl); $rtn = json_decode($response); return $rtn->access_token; } }