hospital-applets-api/app/Controller/TestController.php
2024-04-25 16:42:15 +08:00

472 lines
17 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Controller;
use App\Amqp\Producer\AssignDoctorDelayDirectProducer;
use App\Amqp\Producer\AutoCompleteInquiryDelayDirectProducer;
use App\Amqp\Producer\AutoFinishInquiryDelayDirectProducer;
use App\Amqp\Producer\CancelUnpayOrdersDelayDirectProducer;
use App\Amqp\Producer\SendSmsMessageProducer;
use App\Amqp\Producer\UserCouponExpiredDelayDirectProducer;
use App\Constants\DoctorTitleCode;
use App\Constants\HttpEnumCode;
use App\Exception\BusinessException;
use App\Factory\CacheFactory;
use App\Factory\ProdRedisFactory;
use App\Model\DoctorAccountDay;
use App\Model\DoctorConfigFollowPackage;
use App\Model\DoctorConfigFollowPackageItem;
use App\Model\DoctorConfigHealthPackage;
use App\Model\DoctorInquiryTime;
use App\Model\HospitalDepartmentCustom;
use App\Model\Order;
use App\Model\OrderInquiryCase;
use App\Model\OrderInquiryRefund;
use App\Model\OrderPrescriptionProduct;
use App\Model\OrderProduct;
use App\Model\OrderProductItem;
use App\Model\OrderServicePackageRefund;
use App\Model\PatientFamily;
use App\Model\ReportRegulatory;
use App\Model\User;
use App\Model\UserCaCert;
use App\Model\OrderInquiry;
use App\Model\OrderPrescription;
use App\Model\OrderPrescriptionIcd;
use App\Model\UserDoctor;
use App\Model\UserDoctorInfo;
use App\Services\CouponService;
use App\Services\ImService;
use App\Services\InquiryService;
use App\Services\MessagePush;
use App\Services\OrderPrescriptionService;
use App\Services\OrderProductService;
use App\Services\OrderServicePackageService;
use App\Services\PatientOrderService;
use App\Services\UserDoctorService;
use App\Utils\Data;
use App\Utils\Jwt;
use App\Utils\Log;
use App\Utils\Mask;
use Extend\Alibaba\Oss;
use Extend\Ca\Ca;
use Extend\Ca\CaOnline;
use Extend\Kuaidi100\Kuaidi;
use Extend\Prescription\Prescription;
use Extend\RegulatoryPlatform\regulatoryPlatform;
use Extend\TencentIm\RecentContact;
use Extend\Wechat\Wechat;
use GuzzleHttp\Client;
use Hyperf\Amqp\Producer;
use Hyperf\Cache\Cache;
use Hyperf\DbConnection\Db;
use Hyperf\Redis\Redis;
use Hyperf\Utils\ApplicationContext;
use Hyperf\Utils\Coroutine\Concurrent;
use Intervention\Image\ImageManager;
use Psr\SimpleCache\CacheInterface;
use Swoole\Coroutine;
use Swoole\Coroutine\Channel;
use Swoole\Coroutine\WaitGroup;
use TCPDF;
class TestController extends AbstractController
{
// 疾病名称
protected string $icd_name;
public function test(){
// $this->test_8();
// $this->test_3();
// $this->test_4();
// $this->test_6();
// $this->test_9();
// $this->test_10();
// $this->test_11();
// $this->test_5();
// $this->test_1();
// $this->test_11();
// $this->test_12();
// $this->test_13();
// $this->test_14();
$this->test_17();
}
// 获取未接诊的医生
public function uninquiry(){
$datas = array();
$params = array();
$params['inquiry_status'] = 3;// 待接诊
$order_inquirys = OrderInquiry::getList($params);
$order_inquirys = $order_inquirys->toArray();
if (!empty($order_inquirys)){
foreach ($order_inquirys as $row) {
// 获取医生数据
$params = array();
$params['doctor_id'] = $row['doctor_id'];
$user_doctor = UserDoctor::getOne($params);
if ($row['inquiry_type'] == 1){
$inquiry_type = "专家问诊";
}elseif ($row['inquiry_type'] == 2){
$inquiry_type = "快速问诊";
}elseif ($row['inquiry_type'] == 3){
$inquiry_type = "公益问诊";
}elseif ($row['inquiry_type'] == 4){
$inquiry_type = "问诊购药";
}
$data = array();
$data['user_name'] = $user_doctor['user_name'];
$data['inquiry_type'] = $inquiry_type;
$data['patient_name'] = $row['patient_name'];
$data['pay_time'] = $row['pay_time'];
$datas[] = $data;
}
}
return $this->response->json(success($datas));
}
// 处方上报处方平台
public function test_11(){
$order_prescription_id = "501751534291394561";
// 获取处方数据
$params = array();
$params['order_prescription_id'] = $order_prescription_id;
$order_prescription = OrderPrescription::getOne($params);
if (empty($order_prescription)) {
throw new BusinessException("处方数据错误");
}
// 获取处方关联商品数据
$params = array();
$params['order_prescription_id'] = $order_prescription_id;
$order_prescription_product = OrderPrescriptionProduct::getList($params);
if (empty($order_prescription_product)) {
throw new BusinessException("处方药品数据错误1");
}
// 获取问诊订单数据
$params = array();
$params['order_inquiry_id'] = $order_prescription['order_inquiry_id'];
$order_inquiry = OrderInquiry::getOne($params);
if (empty($order_inquiry)) {
throw new BusinessException("处方药品数据错误2");
}
// 获取商品订单数据
$params = array();
$params['order_inquiry_id'] = $order_prescription['order_inquiry_id'];
$order_product = OrderProduct::getOne($params);
if (empty($order_product)) {
throw new BusinessException("处方药品数据错误3");
}
// 获取商品订单数据
$params = array();
$params['order_inquiry_id'] = $order_prescription['order_inquiry_id'];
$order_product_item = OrderProductItem::getList($params);
if (empty($order_product_item)) {
throw new BusinessException("处方药品数据错误4");
}
$OrderPrescriptionService = new OrderPrescriptionService();
$result = $OrderPrescriptionService->reportPrescription(
$order_inquiry->toArray(),
$order_prescription->toArray(),
$order_prescription_product->toArray(),
$order_product->toArray()
);
dump($result);
}
// 上报监管平台
public function test_12(){
$regulatoryPlatform = new regulatoryPlatform();
$order_inquiry_id = "502434942043090944";
// 获取问诊订单数据
$params = array();
$params['order_inquiry_id'] = $order_inquiry_id;
$order_inquiry = OrderInquiry::getOne($params);
if (empty($order_inquiry)) {
throw new BusinessException("处方药品数据错误");
}
$order_inquiry = $order_inquiry->toArray();
// 获取医生数据
$params = array();
$params['doctor_id'] = $order_inquiry['doctor_id'];
$user_doctor = UserDoctor::getOne($params);
if (empty($user_doctor)) {
throw new BusinessException("医生数据错误");
}
$params = array();
$params['doctor_id'] = $order_inquiry['doctor_id'];
$user_doctor_info = UserDoctorInfo::getOne($params);
if (empty($user_doctor_info)) {
throw new BusinessException("医生数据错误");
}
// 获取医生自定义科室数据
$params = array();
$params['department_custom_id'] = $user_doctor['department_custom_id'];
$hospital_department_custom = HospitalDepartmentCustom::getOne($params);
if (empty($hospital_department_custom)) {
throw new BusinessException("医生自定义数据错误");
}
// 获取问诊患者数据
$params = array();
$params['family_id'] = $order_inquiry['family_id'];
$patient_family = PatientFamily::getOne($params);
if (empty($patient_family)){
throw new BusinessException("医生自定义数据错误");
}
// 获取患者问诊病例
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$params['status'] = 1;
$order_inquiry_case = OrderInquiryCase::getOne($params);
if (empty($order_inquiry_case)){
throw new BusinessException("医生自定义数据错误");
}
// 获取问诊处方数据
$params = array();
$params['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$params['pharmacist_audit_status'] = 1;
$params['platform_audit_status'] = 1;
$order_prescription = OrderPrescription::getOne($params);
// 网络咨询(网络门诊)服务
$arg = array();
$arg['thirdUniqueid'] = $order_inquiry['order_inquiry_id']; // 唯一标识
$arg['orgName'] = "成都金牛欣欣相照互联网医院"; // 机构名称
$arg['orgCode'] = "MA6CGUDA251010619D2112"; // 机构编码
$arg['channelName'] = "成都金牛欣欣相照互联网医院";//平台名称
$arg['section'] = $hospital_department_custom['department_name'];//科室名称
$arg['sectionCode'] = $hospital_department_custom['department_code'];//科室编码
$arg['docName'] = $user_doctor['user_name'];// 姓名(医师、护师、技师)
$arg['certificateNum'] = $user_doctor_info['qualification_cert_num']; // 执业资格证号
$arg['patientName'] = $order_inquiry['patient_name']; // 患者姓名
$arg['patientAge'] = $order_inquiry['patient_age']; // 患者年龄
$arg['patientSex'] = $order_inquiry['patient_sex'] == 0 ?: 1; // 患者性别
$arg['patientIdcardType'] = 1; // 证件类型
$arg['patientIdcardNum'] = $patient_family['id_number']; // 患者证件号码
$arg['serviceType'] = 1; // 服务类型 1网络咨询 2网络门诊
$arg['consultNo'] = $order_inquiry['inquiry_no']; // 网络咨询或网络门诊编号 订单编号
$arg['consultType'] = 1; // 咨询类别 1、图文咨询 2语音咨询3、视频咨询
$arg['consultApplyTime'] = $order_inquiry['created_at']; // 咨询申请时间
$arg['consultStartTime'] = $order_inquiry['reception_time']; // 咨询开始时间
$arg['consultEndTime'] = $order_inquiry['complete_time']; // 咨询结束时间
$arg['feeType'] = 1; // 费别 1自费 2医保
$arg['price'] = $order_inquiry['payment_amount_total']; // 咨询价格 元
$arg['isReply'] = 1; //咨询是否回复 0未回复 1已回复
$arg['patientEvaluate'] = 1; //患者满意度 1-5 1代表非常满意 5代表非常不满意
$arg['complainInfo'] = ""; //投诉举报信息
$arg['disposeResult'] = ""; //处理结果信息
$arg['isRiskWarn'] = 1; //是否进行诊前风险提示 0否 1是
$arg['isPatientSign'] = 1; //是否确认患者为签约对象 0否 1是
$arg['uploadTime'] = date('Y-m-d H:i:s',time()); //上传时间
$arg['medicalHistory'] = $order_inquiry_case['disease_desc']; //患者病史描述
$arg['docAdvice'] = $order_prescription['doctor_advice'] ?? ""; // 医生建议描述 医嘱
$arg['isMark'] = 1;//是否留痕 1代表留痕0代表未留痕
$result = $regulatoryPlatform->uploadConsult($arg);
//上报 网络复诊服务
// $arg = array();
// $arg['thirdUniqueid'] =
//
// $result = $regulatoryPlatform->uploadFurtherConsult($arg);
dump($result);
}
// 获取云证书-线上
public function test_14(){
$CaOnline = new CaOnline();
// 测试医生
// $data = array();
// $data['user_id'] = "491925054435950592";
// $data['mobile'] = "13028643897";
// $data['card_name'] = "郝明明";
// $data['card_num'] = "130582199202032038";
// $data['orgDept'] = "科室名称";
// $data['org_name'] = "成都金牛欣欣相照互联网医院有限公司";
// $data['org_number'] = "91510106MABTJY4K9R";
// $result = $CaOnline->getCloudCert($data);
//
// $data = array();
// $data['user_id'] = "491925054435950592";
// $data['type'] = 2;
// $data['cert_base64'] = $result['certBase64'];
// $data['cert_chain_p7'] = $result['certP7'];
// $data['cert_serial_number'] = $result['certSerialnumber'];
// $data['ca_pin'] = "491925054435950592";
// $doctor_pharmacist_cert = UserCaCert::addUserCaCert($data);
// if (empty($doctor_pharmacist_cert)){
// return fail();
// }
// dump(111);
// // 测试药师
// $data = array();
// $data['user_id'] = "534534546";
// $data['mobile'] = "18812345678";
// $data['card_name'] = "仝成亮";
// $data['card_num'] = "411322199212122054";
// $data['orgDept'] = "科室名称";
// $data['org_name'] = "成都金牛欣欣相照互联网医院有限公司";
// $data['org_number'] = "91510106MABTJY4K9R";
// $result = $CaOnline->getCloudCert($data);
//
// $data = array();
// $data['user_id'] = "534534546";
// $data['type'] = 2;
// $data['cert_base64'] = $result['certBase64'];
// $data['cert_chain_p7'] = $result['certP7'];
// $data['cert_serial_number'] = $result['certSerialnumber'];
// $data['ca_pin'] = "534534546";
// $doctor_pharmacist_cert = UserCaCert::addUserCaCert($data);
// if (empty($doctor_pharmacist_cert)){
// return fail();
// }
// 测试医院
$data = array();
$data['user_id'] = "5345345461";
$data['mobile'] = "18221234167";
$data['org_name'] = "成都金牛欣欣相照互联网医院有限公司";
$data['org_number'] = "91510106MABTJY4K9R";
$result = $CaOnline->getCloudCert($data,'Organizational');
$data = array();
$data['is_system'] = 1;
$data['type'] = 2;
$data['cert_base64'] = $result['certBase64'];
$data['cert_chain_p7'] = $result['certP7'];
$data['cert_serial_number'] = $result['certSerialnumber'];
$data['ca_pin'] = "5345345461";
$doctor_pharmacist_cert = UserCaCert::addUserCaCert($data);
if (empty($doctor_pharmacist_cert)){
return fail();
}
return 111;
}
public function test_15(){
$CaOnline = new CaOnline();
$a = array(
"user_id" => 5345345461
);
$data = $CaOnline->removeCloudCert($a);
dump($data);
}
// 更新云证书-线上
public function test_16(){
$CaOnline = new CaOnline();
// 测试医生
$data = array();
$data['user_id'] = "491925054435950592";
$data['mobile'] = "13028643897";
$data['card_name'] = "郝明明";
$data['card_num'] = "130582199202032038";
$data['orgDept'] = "科室名称";
$data['org_name'] = "成都金牛欣欣相照互联网医院有限公司";
$data['org_number'] = "91510106MABTJY4K9R";
$result = $CaOnline->getCloudCert($data);
$data = array();
$data['user_id'] = "491925054435950592";
$data['type'] = 2;
$data['cert_base64'] = $result['certBase64'];
$data['cert_chain_p7'] = $result['certP7'];
$data['cert_serial_number'] = $result['certSerialnumber'];
$data['ca_pin'] = "491925054435950592";
$doctor_pharmacist_cert = UserCaCert::addUserCaCert($data);
if (empty($doctor_pharmacist_cert)){
return fail();
}
dump(111);
// // 测试药师
// $data = array();
// $data['user_id'] = "534534546";
// $data['mobile'] = "18812345678";
// $data['card_name'] = "仝成亮";
// $data['card_num'] = "411322199212122054";
// $data['orgDept'] = "科室名称";
// $data['org_name'] = "成都金牛欣欣相照互联网医院有限公司";
// $data['org_number'] = "91510106MABTJY4K9R";
// $result = $CaOnline->getCloudCert($data);
//
// $data = array();
// $data['user_id'] = "534534546";
// $data['type'] = 2;
// $data['cert_base64'] = $result['certBase64'];
// $data['cert_chain_p7'] = $result['certP7'];
// $data['cert_serial_number'] = $result['certSerialnumber'];
// $data['ca_pin'] = "534534546";
// $doctor_pharmacist_cert = UserCaCert::addUserCaCert($data);
// if (empty($doctor_pharmacist_cert)){
// return fail();
// }
//
// $params = array();
// $params['ca_pin'] = "491925054435950592";
// $params['type'] = "2";
// $user_ca_cert = UserCaCert::getOne($params);
// if (empty($user_ca_cert)){
// return fail();
// }
return 122;
// // 测试医院
// $data = array();
// $data['user_id'] = "491925054435950592";
// $result = $CaOnline->renewCloudCert($data);
//
// dump($result);
//
// $data = array();
// $data['cert_base64'] = $result['certBase64'];
// $data['cert_chain_p7'] = $result['certP7'];
// $data['cert_serial_number'] = $result['certSerialnumber'];
// $data['ca_pin'] = "491925054435950592";
//
// $params = array();
// $params['cert_id'] = $user_ca_cert['cert_id'];
// $res = UserCaCert::edit($params,$data);
// if (empty($res)){
// return fail();
// }
}
public function test_17(){
$OrderServicePackageService = new OrderServicePackageService();
$result = $OrderServicePackageService->getImServicePackageCloudCustomData("I642033922058559488");
dump($result);
}
// 退款
public function refund(){
}
}