68 lines
3.1 KiB
PHP
68 lines
3.1 KiB
PHP
<?php
|
|
/*
|
|
* @author: liudiao1992
|
|
* @Date: 2023-09-14 22:42:57
|
|
* @Description:
|
|
*/
|
|
namespace common\services;
|
|
|
|
use common\models\DoctorInfo;
|
|
use common\models\PharmacistIdentity;
|
|
use common\models\Prescription;
|
|
use common\models\ProductOrder;
|
|
use common\models\Store;
|
|
use common\modelsgii\DoctorIdentity;
|
|
use Exception;
|
|
use yii\helpers\Json;
|
|
|
|
class PrescriptionService{
|
|
|
|
/**
|
|
* 处方详情
|
|
*/
|
|
public function detail($prescriptionNo = '', $presciptionId = 0){
|
|
try {
|
|
if(!$presciptionId&&!$prescriptionNo){
|
|
throw new Exception("Error Processing Request");
|
|
}
|
|
|
|
if($prescriptionNo){
|
|
$prescription = Prescription::find()->select('id,store_id,prescription_no,online_prescription_no,is_online,prescription_type,type,is_dispense,valid_hours,content,doctor_order,status,pharmacist_id,su_id,process_rule_id,process_rule,process_rule_note,doctor_second_sign')->where([
|
|
'prescription_no' => $prescriptionNo
|
|
])->with('pharmacistInfo')->asArray()->one();
|
|
} else {
|
|
$prescription = Prescription::find()->select('id,store_id,prescription_no,online_prescription_no,is_online,prescription_type,type,is_dispense,valid_hours,content,doctor_order,status,pharmacist_id,su_id,process_rule_id,process_rule,process_rule_note,doctor_second_sign')->where([
|
|
'id' => $presciptionId
|
|
])->with('pharmacistInfo')->asArray()->one();
|
|
}
|
|
if(!$prescription){
|
|
throw new Exception('处方不存在');
|
|
}
|
|
$store = Store::find()->select('name, offical_seal')->where(['id' => $prescription['store_id']])->one();
|
|
if(!$store) throw new Exception('门店不存在');
|
|
$productOrder = ProductOrder::find()->where(['p_id' => $prescription['id']])->one();
|
|
$content = Json::decode($prescription['content']);
|
|
foreach($content['repice'] as $k=>$v){
|
|
$content['repice'][$k]['content'] = Json::decode($v['content']);
|
|
}
|
|
$prescription['content'] = $content;
|
|
$prescription['doctor_order'] = explode('|',$prescription['doctor_order']);
|
|
$prescription['is_pay'] = $productOrder->is_pay;
|
|
$prescription['cancel_status'] = $productOrder->cancel_status;
|
|
$prescription['refund_status'] = $productOrder->refund_status;
|
|
$prescription['store'] = $store;
|
|
|
|
$DoctorIdentity= DoctorIdentity::find()->where(['su_id'=>$prescription['su_id']])->asArray()->one();
|
|
$PharmacistIdentity= PharmacistIdentity::find()->where(['su_id'=>$prescription['pharmacist_id']])->asArray()->one();
|
|
$prescription['doctor_sign_image']=$DoctorIdentity['sign_image'];
|
|
$prescription['doctor_sign_type']=$DoctorIdentity['sign_type'];
|
|
$prescription['Pharmacist_sign_image']=$PharmacistIdentity['sign_image'];
|
|
$prescription['Pharmacist_sign_type']=$PharmacistIdentity['sign_type'];
|
|
|
|
return $prescription;
|
|
} catch (Exception $e) {
|
|
throw new Exception($e->getMessage(). json_encode($e->getLine()));
|
|
}
|
|
}
|
|
|
|
} |