新增处方详情接口
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Model\InquiryCaseProduct;
|
||||
|
||||
/**
|
||||
* 病例
|
||||
*/
|
||||
class CaseService extends BaseService
|
||||
{
|
||||
/**
|
||||
* 获取病例商品列表
|
||||
* @param string|int $inquiry_case_id
|
||||
* @return array
|
||||
*/
|
||||
public function getCaseProductlist(string|int $inquiry_case_id): array
|
||||
{
|
||||
if (empty($inquiry_case_id)){
|
||||
return [];
|
||||
}
|
||||
|
||||
$params = array();
|
||||
$params['inquiry_case_id'] = $inquiry_case_id;
|
||||
$inquiry_case_products = InquiryCaseProduct::getWithProductList($params);
|
||||
if (empty($inquiry_case_products)){
|
||||
return [];
|
||||
}
|
||||
|
||||
$result = [];
|
||||
foreach ($inquiry_case_products as $inquiry_case_product){
|
||||
if (!empty($inquiry_case_product['Product'])){
|
||||
$data = array();
|
||||
$data['product_id'] = $inquiry_case_product['product_id'];
|
||||
$data['case_product_num'] = $inquiry_case_product['case_product_num'];
|
||||
$data['product_name'] = $inquiry_case_product['Product']['product_name'];
|
||||
$data['product_price'] = $inquiry_case_product['Product']['product_price'];
|
||||
$data['product_type'] = $inquiry_case_product['Product']['product_type'];
|
||||
$data['product_cover_img'] = addAliyunOssWebsite($inquiry_case_product['Product']['product_cover_img']);
|
||||
$data['product_spec'] = $inquiry_case_product['Product']['product_spec'];
|
||||
$data['license_number'] = $inquiry_case_product['Product']['license_number'];
|
||||
$data['manufacturer'] = $inquiry_case_product['Product']['manufacturer'];
|
||||
$data['packaging_unit'] = $inquiry_case_product['Product']['packaging_unit'];
|
||||
|
||||
$result[] = $data;
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Services;
|
||||
|
||||
use App\Model\OrderPrescription;
|
||||
use App\Model\OrderProductItem;
|
||||
use Hyperf\Contract\LengthAwarePaginatorInterface;
|
||||
|
||||
class OrderPrescriptionService extends BaseService
|
||||
@@ -57,4 +58,40 @@ class OrderPrescriptionService extends BaseService
|
||||
return OrderPrescription::getPage($params, $fields);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取处方订单中开方商品数据
|
||||
* @param string|int $order_inquiry_id
|
||||
* @param string|int $order_prescription_id
|
||||
* @return array
|
||||
*/
|
||||
public function getproductList(string|int $order_inquiry_id ,string|int $order_prescription_id): array
|
||||
{
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||
$params['order_prescription_id'] = $order_prescription_id;
|
||||
$order_product_items = OrderProductItem::getWithProductList($params);
|
||||
if(empty($order_product_items)){
|
||||
return [];
|
||||
}
|
||||
|
||||
$result = [];
|
||||
|
||||
foreach ($order_product_items as $order_product_item){
|
||||
$data = array();
|
||||
$data['product_item_id'] = $order_product_item['product_item_id'];
|
||||
$data['product_id'] = $order_product_item['product_id'];
|
||||
$data['amount'] = $order_product_item['amount'];
|
||||
$data['product_cover_img'] = addAliyunOssWebsite($order_product_item['product_cover_img']);
|
||||
$data['single_unit'] = $order_product_item['Product']['single_unit'];
|
||||
$data['single_use'] = $order_product_item['Product']['single_use'];
|
||||
$data['packaging_unit'] = $order_product_item['Product']['packaging_unit'];
|
||||
$data['frequency_use'] = $order_product_item['Product']['frequency_use'];
|
||||
|
||||
$result[] = $data;
|
||||
}
|
||||
|
||||
unset($order_product_items);
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
@@ -44,25 +44,8 @@ class PatientCaseService extends BaseService
|
||||
if (!empty($order_inquiry_case['order_inquiry'])){
|
||||
if ($order_inquiry_case['order_inquiry']['inquiry_type'] == 4){
|
||||
// 问诊购药存在用药意向
|
||||
$params = array();
|
||||
$params['inquiry_case_id'] = $order_inquiry_case['inquiry_case_id'];
|
||||
$inquiry_case_product = InquiryCaseProduct::getWithProductList($params);
|
||||
if (!empty($inquiry_case_product)){
|
||||
foreach ($inquiry_case_product as &$item){
|
||||
if (!empty($item['Product'])){
|
||||
$item['product_name'] = $item['Product']['product_name'];
|
||||
$item['product_price'] = $item['Product']['product_price'];
|
||||
$item['product_type'] = $item['Product']['product_type'];
|
||||
$item['product_cover_img'] = addAliyunOssWebsite($item['Product']['product_cover_img']);
|
||||
$item['product_spec'] = $item['Product']['product_spec'];
|
||||
$item['license_number'] = $item['Product']['license_number'];
|
||||
$item['manufacturer'] = $item['Product']['manufacturer'];
|
||||
$item['packaging_unit'] = $item['Product']['packaging_unit'];
|
||||
|
||||
unset($item['Product']);
|
||||
}
|
||||
}
|
||||
}
|
||||
$CaseService = new CaseService();
|
||||
$inquiry_case_product = $CaseService->getCaseProductlist($order_inquiry_case['inquiry_case_id']);
|
||||
}
|
||||
unset($order_inquiry_case['order_inquiry']);
|
||||
}
|
||||
|
||||
@@ -13,10 +13,12 @@ use App\Model\DoctorBankCard;
|
||||
use App\Model\DoctorExpertise;
|
||||
use App\Model\DoctorInquiryConfig;
|
||||
use App\Model\DoctorWord;
|
||||
use App\Model\InquiryCaseProduct;
|
||||
use App\Model\OrderEvaluation;
|
||||
use App\Model\OrderInquiry;
|
||||
use App\Model\OrderInquiryCase;
|
||||
use App\Model\OrderPrescription;
|
||||
use App\Model\OrderProductItem;
|
||||
use App\Model\User;
|
||||
use App\Model\UserDoctor;
|
||||
use App\Model\UserDoctorInfo;
|
||||
@@ -791,17 +793,82 @@ class UserDoctorService extends BaseService
|
||||
{
|
||||
$user_info = $this->request->getAttribute("userInfo") ?? [];
|
||||
|
||||
$order_prescription_id = $this->request->route('order_prescription_id');
|
||||
$order_inquiry_id = $this->request->input('order_inquiry_id');
|
||||
$order_prescription_id = $this->request->input('order_prescription_id');
|
||||
|
||||
// 获取医生信息
|
||||
$params = array();
|
||||
$params['doctor_id'] = $user_info['client_user_id'];
|
||||
|
||||
$fields = [
|
||||
'doctor_id',
|
||||
'iden_auth_status',
|
||||
'idcard_status',
|
||||
'multi_point_status',
|
||||
];
|
||||
$user_doctor = UserDoctor::getOne($params, $fields);
|
||||
if (empty($user_doctor)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法医生");
|
||||
}
|
||||
|
||||
$res = $this->checkDoctorAuth($user_doctor);
|
||||
if ($res !== true) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, $res);
|
||||
}
|
||||
|
||||
// 获取患者病例表
|
||||
$fields = [
|
||||
'inquiry_case_id',
|
||||
'name',
|
||||
'sex',
|
||||
'age',
|
||||
'disease_desc',
|
||||
];
|
||||
|
||||
$params = array();
|
||||
$params['order_inquiry_id'] = $order_inquiry_id;
|
||||
$params['status'] = 1;
|
||||
$order_inquiry_case = OrderInquiryCase::getOne($params,$fields);
|
||||
if (empty($order_inquiry_case)){
|
||||
return fail(HttpEnumCode::HTTP_ERROR,"患者病例信息错误");
|
||||
}
|
||||
|
||||
// 获取用药意向
|
||||
$CaseService = new CaseService();
|
||||
$inquiry_case_product = $CaseService->getCaseProductlist($order_inquiry_case['inquiry_case_id']);
|
||||
|
||||
if (!empty($order_prescription_id)){
|
||||
// 获取处方数据
|
||||
$params = array();
|
||||
$params['order_prescription_id'] = $order_prescription_id;
|
||||
$order_prescription = OrderPrescription::getOne($params);
|
||||
if (empty($order_prescription)){
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 订单-商品订单列表
|
||||
$OrderPrescriptionService = new OrderPrescriptionService();
|
||||
$order_product_items = $OrderPrescriptionService->getproductList($order_inquiry_id,$order_prescription_id);
|
||||
}
|
||||
|
||||
$result = array();
|
||||
$result['inquiry_case_product'] = $inquiry_case_product;// 用药意向
|
||||
$result['order_product_items'] = $order_product_items ?? [];// 开方药品
|
||||
$result['case'] = $order_inquiry_case;// 病例数据
|
||||
$result['prescription']['doctor_advice'] = $order_prescription['doctor_advice'] ?? "";// 医嘱
|
||||
|
||||
return success($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测医生身份认证
|
||||
* @param object|array $user_doctor 医生表数据
|
||||
* @param bool $is_iden_auth 是否检测身份认证
|
||||
* @param bool $is_idcard 是否检测实名认证
|
||||
* @param bool $is_multi_point 是否检测多点执业认证
|
||||
* @return bool|string string:错误信息 bool:通过
|
||||
*/
|
||||
public function checkDoctorAuth(object|array $user_doctor): bool|string
|
||||
public function checkDoctorAuth(object|array $user_doctor,bool $is_iden_auth = true,bool $is_idcard = true,bool $is_multi_point = true): bool|string
|
||||
{
|
||||
if (empty($user_doctor)){
|
||||
throw new BusinessException();
|
||||
|
||||
Reference in New Issue
Block a user