|
|
|
|
@ -3,11 +3,13 @@
|
|
|
|
|
namespace App\Services\Xml;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
|
|
|
|
class ShenQingDanService
|
|
|
|
|
{
|
|
|
|
|
public function Save($result, $jsonData)
|
|
|
|
|
{
|
|
|
|
|
date_default_timezone_set('PRC');
|
|
|
|
|
$Body = $result['message']['Request']["Body"];
|
|
|
|
|
$Header = $result['message']['Request']["Header"];
|
|
|
|
|
$orderList = isset($Body['AddRisAppBillRt']['OrderList']) ? $Body['AddRisAppBillRt']['OrderList'] : [];
|
|
|
|
|
@ -52,7 +54,7 @@ class ShenQingDanService
|
|
|
|
|
$requiredFields = [
|
|
|
|
|
'reg_num', 'user_name', 'user_sex', 'entrust', 'is_pay',
|
|
|
|
|
'reservation_department', 'entrust_date', 'entrust_time',
|
|
|
|
|
'user_brithday', 'docotr', 'patient_type',
|
|
|
|
|
'user_brithday', 'patient_type',
|
|
|
|
|
'implement_department', 'entrust_id', 'episodeid', 'RISRAcceptDeptCode'
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
@ -98,6 +100,130 @@ class ShenQingDanService
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//更新申请单状态 P缴费 D、U、C作废
|
|
|
|
|
public function UpdateStatus($result, $jsonData)
|
|
|
|
|
{
|
|
|
|
|
date_default_timezone_set('PRC');
|
|
|
|
|
$Body = $result['message']['Request']["Body"];
|
|
|
|
|
$Header = $result['message']['Request']["Header"];
|
|
|
|
|
$orderList = isset($Body['UpdateOrdersRt']['OEORIInfoList']['OEORIInfo']) ? $Body['UpdateOrdersRt']['OEORIInfoList']['OEORIInfo'] : [];
|
|
|
|
|
|
|
|
|
|
if (!empty($orderList) && !isset($orderList[0])) {
|
|
|
|
|
// 如果OrderList当前不是数组的数组,则将其转换为单元素数组
|
|
|
|
|
$orderList = array($orderList);
|
|
|
|
|
}
|
|
|
|
|
//dd($orderList);
|
|
|
|
|
$u_count = 0;//循环的数量
|
|
|
|
|
try {
|
|
|
|
|
$msg='';
|
|
|
|
|
DB::beginTransaction();
|
|
|
|
|
$data=[];
|
|
|
|
|
$zuofei=['D','U','C'];
|
|
|
|
|
$jiaofei=['P'];
|
|
|
|
|
foreach ($orderList as $key => $order) {
|
|
|
|
|
$mainInfo=DB::table('s_list')->where(['reg_num'=>$Body['UpdateOrdersRt']['PATPatientID'],'entrust_id'=>$order['OEORIOrderItemID'],'RISRAcceptDeptCode'=>$order['AcceptDeptCode']])->first();
|
|
|
|
|
if(!!$mainInfo){
|
|
|
|
|
if(in_array($order['OEORIStatusCode'],$zuofei)){ //如果是作废
|
|
|
|
|
$data=[
|
|
|
|
|
'is_nullify'=>1,
|
|
|
|
|
'updated_at'=>date('Y-m-d H:i:s')
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
if(in_array($order['OEORIStatusCode'],$jiaofei)){ //如果是完成
|
|
|
|
|
$data=[
|
|
|
|
|
'is_pay'=>1,
|
|
|
|
|
'updated_at'=>date('Y-m-d H:i:s')
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
$update=DB::table('s_list')->where('id',$mainInfo->id)->update($data);
|
|
|
|
|
}else{
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, '更新失败:'.$order['OEORIOrderItemID'].'未找到此医嘱');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if($update){
|
|
|
|
|
$u_count++;
|
|
|
|
|
}else{
|
|
|
|
|
$msg=$msg.$order['OEORIOrderItemID'].' 无更新;';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (count($orderList) == $u_count) {
|
|
|
|
|
DB::commit();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], 0, '成功');
|
|
|
|
|
} else {
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, '更新失败:'.$msg);
|
|
|
|
|
}
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
// 处理异常
|
|
|
|
|
Log::error('发生错误: ' . $e->getMessage(), [
|
|
|
|
|
'exception' => $e
|
|
|
|
|
]);
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, $e->getMessage());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//检查完成
|
|
|
|
|
public function CheckFinish($result, $jsonData)
|
|
|
|
|
{
|
|
|
|
|
date_default_timezone_set('PRC');
|
|
|
|
|
$Body = $result['message']['Request']["Body"];
|
|
|
|
|
$Header = $result['message']['Request']["Header"];
|
|
|
|
|
$orderList = isset($Body['RisCompleteRt']['OEORIOrderItemIDList']) ? $Body['RisCompleteRt']['OEORIOrderItemIDList'] : [];
|
|
|
|
|
|
|
|
|
|
// if (!empty($orderList) && !isset($orderList[0])) {
|
|
|
|
|
// // 如果OrderList当前不是数组的数组,则将其转换为单元素数组
|
|
|
|
|
// $orderList = array($orderList);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//dd($orderList);
|
|
|
|
|
$u_count = 0;//循环的数量
|
|
|
|
|
try {
|
|
|
|
|
$msg='';
|
|
|
|
|
DB::beginTransaction();
|
|
|
|
|
foreach ($orderList as $key => $order) {
|
|
|
|
|
$mainInfo=DB::table('s_list')->where(['reg_num'=>$Body['RisCompleteRt']['PATPatientID'],'entrust_id'=>$order['OEORIOrderItemID'],'RISRExamID'=>$Body['RisCompleteRt']['RISRExamID']])->first();
|
|
|
|
|
if(!!$mainInfo){
|
|
|
|
|
$data=[
|
|
|
|
|
'list_status'=>3,
|
|
|
|
|
'updated_at'=>date('Y-m-d H:i:s')
|
|
|
|
|
];
|
|
|
|
|
$update=DB::table('s_list')->where('id',$mainInfo->id)->update($data);
|
|
|
|
|
if($update){
|
|
|
|
|
$u_count++;
|
|
|
|
|
}else{
|
|
|
|
|
$msg=$msg.$order['OEORIOrderItemID'].' 无更新;';
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, '更新失败:'.$order['OEORIOrderItemID'].'未找到此医嘱');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (count($orderList) == $u_count) {
|
|
|
|
|
DB::commit();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], 0, '成功');
|
|
|
|
|
} else {
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, '更新失败:'.$msg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
DB::rollBack();
|
|
|
|
|
// 处理异常
|
|
|
|
|
Log::error('发生错误: ' . $e->getMessage(), [
|
|
|
|
|
'exception' => $e
|
|
|
|
|
]);
|
|
|
|
|
return \Yz::XMLReturn($Header['SourceSystem'], $Header['MessageID'], -1, $e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|