修改患者填写缺少字段至医生,同步修改问诊病例

This commit is contained in:
wucongxing 2023-12-05 13:44:42 +08:00
parent e609e05ca6
commit 11bf031bd4

View File

@ -16,6 +16,7 @@ use App\Model\PatientFamilyHealth;
use App\Model\PatientFamilyPersonal;
use App\Model\User;
use App\Model\UserDoctor;
use Hyperf\DbConnection\Db;
use Hyperf\Redis\Redis;
/**
@ -473,6 +474,16 @@ class PatientCaseService extends BaseService
return fail();
}
// 获取病例信息
$params = array();
$params['order_inquiry_id'] = $order_inquiry_id;
$order_inquiry_case = OrderInquiryCase::getOne($params);
if (empty($order_inquiry_case)) {
return fail();
}
$order_inquiry_case = $order_inquiry_case->toArray();
// 初始字段定义
$fields = [
"relation", // 与患者关系1:本人 2:父母 3:爱人 4:子女 5:亲戚 6:其他
@ -505,6 +516,8 @@ class PatientCaseService extends BaseService
"chemical_compound_describe", // 化合物描述
];
Db::beginTransaction();
try {
$redis = $this->container->get(Redis::class);
$redis_key = "patient_family_inquiry_case_unfilled_fields_" . $order_inquiry_id;
@ -515,19 +528,46 @@ class PatientCaseService extends BaseService
// 患者病例字段
$case_fields = [];
// 修改字段
$order_inquiry_case_data = [];
foreach ($request_params['fields'] as $key => $value){
if (!in_array($key,$fields)){
if ($key != "order_inquiry_id"){
Db::rollBack();
return fail(HttpEnumCode::HTTP_ERROR,"存在非法数据");
}
}
if ($value === ""){
continue;
}
// 判断修改数据
if (array_key_exists($key,$order_inquiry_case)){
if ($order_inquiry_case[$key] == null){
$order_inquiry_case_data[$key] = $value;
}
}
$case_fields[$key] = $value;
}
$case_fields = json_encode($case_fields,JSON_UNESCAPED_UNICODE);
// 存储至问诊病例中
if (!empty($order_inquiry_case_data)){
$params = array();
$params['inquiry_case_id'] = $order_inquiry_case['inquiry_case_id'];
$res = OrderInquiryCase::edit($params,$order_inquiry_case_data);
if (!$res){
Db::rollBack();
return fail();
}
}
// 发送im消息
$case_fields = json_encode($case_fields,JSON_UNESCAPED_UNICODE);
$imService = new ImService();
$imService->CaseUnfilledFieldsToDoctor($order_inquiry,$doctor['user_id'],$user_info['user_id'],$case_fields);
@ -545,7 +585,10 @@ class PatientCaseService extends BaseService
}else{
$redis->del($redis_key);
}
Db::commit();
}catch (\Throwable $e){
Db::rollBack();
return fail();
}