香洲二院小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
mini_xzey/app/Http/Controllers/Message/TriggerController.php

160 lines
5.8 KiB

<?php
declare(strict_types = 1);
namespace App\Http\Controllers\Message;
use App\Http\Controllers\Controller;
use App\Http\Logics\Message\TriggerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpFoundation\Response;
class TriggerController extends Controller
{
protected TriggerLogic $trigger_logic;
/**
* Patient Construct.
*/
public function __construct()
{
$this->trigger_logic = new TriggerLogic();
}
/**
* 挂号停诊消息
* @param Request $request
* @return JsonResponse
*/
public function registerStopRemind(Request $request): JsonResponse
{
$validated = Validator::make($request->all(), [
'patient_id' => 'required',
'reg_date' => 'required|date_format:Y-m-d',
'begin_time' => 'required|date_format:H:i',
'end_time' => 'required|date_format:H:i',
'dept_name' => 'required',
'doctor_name' => 'required',
'tips' => 'required|max:20',
],[
'patient_id.required' => '请传入患者ID',
'reg_date.required' => '请传入看诊日期',
'reg_date.date_format' => '请传入正确的看诊日期',
'begin_time.required' => '请传入看诊开始时间段',
'begin_time.date_format' => '请传入正确的看诊开始时间段',
'end_time.required' => '请传入看诊结束时间段',
'end_time.date_format' => '请传入正确的看诊结束时间段',
'dept_name.required' => '请传入科室名称',
'doctor_name.required' => '请传入医生名称',
'tips.required' => '请传入提示信息',
'tips.max' => '提示信息长度不得超过20',
]);
if ($validated->fails()) {
return jsonResponseToHis(Response::HTTP_OK, 1, $validated->errors()->first());
}
$validated = $request->safe()->only(['patient_id', 'reg_date', 'begin_time', 'end_time', 'dept_name', 'doctor_name', 'tips']);
[$result, $message] = $this->trigger_logic->registerStopRemind(
$validated['patient_id'],
$validated['reg_date'],
$validated['begin_time'],
$validated['end_time'],
$validated['dept_name'],
$validated['doctor_name'],
$validated['tips'],
);
return jsonResponseToHis(Response::HTTP_OK, $result, $message);
}
/**
* 待缴费提醒
* @param Request $request
* @return JsonResponse
*/
public function pendingPaymentRemind(Request $request): JsonResponse
{
$validated = Validator::make($request->all(), [
'patient_id' => 'required',
'dept_name' => 'required',
'fee' => 'required|numeric',
'fee_type' => 'required',
'tips_message' => 'required|max:20',
],[
'patient_id.required' => '请传入患者ID',
'dept_name.required' => '请传入科室名称',
'fee.required' => '请传入待缴纳处方费用',
'fee.numeric' => '待缴纳处方费用必须传入数字',
'fee_type.required' => '请传入待缴纳处方类型',
'tips_message.required' => '请传入提示信息',
'tips.max' => '提示信息长度不得超过20',
]);
if ($validated->fails()) {
return jsonResponseToHis(Response::HTTP_OK, 1, $validated->errors()->first());
}
$validated = $request->safe()->only(['patient_id', 'dept_name', 'fee', 'fee_type', 'tips_message']);
[$result, $message] = $this->trigger_logic->pendingPaymentRemind(
$validated['patient_id'],
$validated['dept_name'],
$validated['fee'],
$validated['fee_type'],
$validated['tips'],
);
return jsonResponseToHis(Response::HTTP_OK, $result, $message);
}
/**
* 报告发布提醒
* @param Request $request
* @return JsonResponse
*/
public function reportReleaseRemind(Request $request): JsonResponse
{
$validated = Validator::make($request->all(), [
'patient_id' => 'required',
'report_type' => 'required|in:1,2',
'item_name' => 'required',
'report_time' => 'required|date_format:Y-m-d H:i:s',
'report_serial_no' => 'required',
'dept_name' => 'required',
'remark' => 'required|max:20',
],[
'patient_id.required' => '请传入患者ID',
'report_type.required' => '请传入报告类型',
'report_type.in' => '请传入正确的报告类型',
'item_name.required' => '请传入报告名称',
'report_time.required' => '请传入报告时间',
'report_time.date_format' => '报告时间格式错误',
'report_serial_no.required' => '请传入报告流水号',
'remark.required' => '请传入备注信息',
'remark.max' => '备注信息长度不得超过20',
]);
if ($validated->fails()) {
return jsonResponseToHis(Response::HTTP_OK, 1, $validated->errors()->first());
}
$validated = $request->safe()->only(['patient_id', 'report_type', 'item_name', 'report_time', 'report_serial_no', 'dept_name', 'remark']);
[$result, $message] = $this->trigger_logic->reportReleaseRemind(
$validated['patient_id'],
$validated['report_type'],
$validated['item_name'],
$validated['report_time'],
$validated['report_serial_no'],
$validated['dept_name'],
$validated['remark']
);
return jsonResponseToHis(Response::HTTP_OK, $result, $message);
}
}