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.
160 lines
5.8 KiB
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);
|
|
}
|
|
}
|
|
|