From 6e9a528efed85433d80ea61a41234da39e89e47d Mon Sep 17 00:00:00 2001 From: yanzai Date: Tue, 24 Sep 2024 21:47:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E5=91=8A=E5=88=97=E8=A1=A8=E8=AF=A6?= =?UTF-8?q?=E6=83=85=20=E8=BF=94=E5=9B=9E=204=E4=B8=AA=E8=8C=83=E5=9B=B4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/API/H5/ReportController.php | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/H5/ReportController.php b/Laravel/app/Http/Controllers/API/H5/ReportController.php index 298ab95..c67ed47 100644 --- a/Laravel/app/Http/Controllers/API/H5/ReportController.php +++ b/Laravel/app/Http/Controllers/API/H5/ReportController.php @@ -20,11 +20,11 @@ class ReportController extends Controller $persons = DB::table('web_user_person')->where(['user_id' => $user->id, 'is_del' => 0])->pluck('id_number')->toArray(); $list = DB::table('report_l1_records')->select('姓名', '性别', '登记时间', '套餐名称', '体检号', '体检状态', 'is_read')->whereIn('证件号码', $persons); - if(isset($tj_status)){ - if($tj_status===0){ + if(isset($tj_status) and $tj_status!==0){ + if($tj_status===1){ $tj_status='报告未出'; } - if($tj_status===1){ + if($tj_status===2){ $tj_status='报告已出'; } $list=$list->where('体检状态', $tj_status); @@ -141,6 +141,20 @@ class ReportController extends Controller } $error_items[] = $item->基础项目名称 . $m; } + if($item->结果类型=='数值'){ + $range = $this->convertToArray($item->结果值范围); + $item->结果值范围=$range; + $item->最大范围=[]; + if(count($range)>1){ + $kuadu=$range[1]-$range[0]; + if(($item->结果值-$range[1])/$kuadu<=1){ + $max=$range[1]+$kuadu; + }else{ + $max=$item->结果值; + } + $item->最大范围=[0,$max]; + } + } } if (count($items) > 0) { return \Yz::Return(true, "查询完成", ['is_pacs'=>false,'list' => $items, 'error_items' => $error_items]); @@ -151,5 +165,25 @@ class ReportController extends Controller } + function convertToArray($input) { + // 检查是否是范围表示法 + if (preg_match('/^(\d*\.?\d*)-(\d*\.?\d*)$/', $input, $matches)) { + return [(float)$matches[1], (float)$matches[2]]; + } + + // 检查是否是小于符号 + if (preg_match('/^<(\d*\.?\d*)$/', $input, $matches)) { + return [0, (float)$matches[1]]; + } + + // 检查是否是小于等于符号 + if (preg_match('/^<=(\d*\.?\d*)$/', $input, $matches)) { + return [0, (float)$matches[1]]; + } + + // 如果没有匹配,返回原始输入 + return $input; + } + }