对接检查项目 、医生跳转 中转一下

main
yanzai 6 months ago
parent 4d87ddac51
commit 0c196588cb

@ -0,0 +1,90 @@
<?php
namespace App\Http\Controllers\API\His;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class CheckItemController extends Controller
{
public function UpdateCheckItem(){
$url='http://192.168.80.39:7801/roc/order-service/api/v1/order/order-term/undrug/query';
$termClassId = request('termClassId');
if(!isset($termClassId)){
return \Yz::echoError1('类别id不能为空');
}
$data=[];
$where=[];
if($termClassId<>'all'){
$data=[
'termClassId' => $termClassId,
];
$where=['termClassId'=>$termClassId];
}
$res=\Tools::Get($url,$data,'更新检查项目');
if($res['code']==200){
$res_data=$res['data'];
if(isset($res_data['list']) and !empty($res_data['list'])){
$db_data=DB::table('s_check_item')->where($where)->get();//库里的数据
//根据 接收数据的undrugId和库里的item_code进行比对如果库里存在则更新如果库里没有则添加如果库里有但是接收数据里没有则在库里标记is_del=0
$db_map = [];
foreach ($db_data as $db_item) {
$db_map[$db_item->item_code] = $db_item;
}
// 用于记录接收到的数据中的 item_code方便后面判断哪些需要删除
$received_ids = [];
foreach ($res_data['list'] as $item) {
// 假设远程返回字段是 undrugId 和 undrugName对应数据库字段是 item_code 和 item_name
$item_code = $item['undrugId'];
$item_name = $item['termName'];
// 添加到接收 ID 列表
$received_ids[] = $item_code;
// 快速查找是否已存在该 item_code
if (isset($db_map[$item_code])) {
// 存在则更新
DB::table('s_check_item')
->where('item_code', $item_code)
->update([
'termClassId'=>$item['termClassId'],
'item_name' => $item_name,
'item_desc' => $item_name,
'is_del' => 0, // 取消删除标记
]);
} else {
// 不存在则插入新记录
DB::table('s_check_item')->insert([
'termClassId'=>$item['termClassId'],
'item_code' => $item_code,
'item_name' => $item_name,
'item_desc' => $item_name,
]);
}
}
// 处理数据库中存在但远程没有返回的数据,标记为删除
foreach ($db_map as $item_code => $db_item) {
if (!in_array($item_code, $received_ids)) {
DB::table('s_check_item')
->where('item_code', $item_code)
->update([
'is_del' => 1
]);
}
}
return \Yz::return(true,'更新检查项目成功',[]);
}else{
return \Yz::echoError1('His接口返回数据为空');
}
}else{
return \Yz::echoError1('更新失败');
}
}
}

@ -0,0 +1,15 @@
<?php
namespace App\Http\Controllers\API\His;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class EntrustController extends Controller
{
//查询本地是否有对应医嘱没有则主动查询His
public function ()
{
}
}

@ -0,0 +1,11 @@
<?php
namespace App\Http\Controllers\API\His;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class HisController extends Controller
{
//
}

@ -2,6 +2,7 @@
use App\Services\LogService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class Tools
{
@ -67,6 +68,24 @@ class Tools
return $ageString;
}
public static function Get($url, $data_s,$mark='') {
$data=[
'request_url'=>$url,
'get_data'=>$data_s,
];
$log_id=self::RequestLog($data,0,$mark);
$response = Http::get($url,$data_s);
if ($response->successful()) {
$res = $response->json();
}else{
$res=$response->body();
}
$data=[
'response_data'=>$res
];
self::RequestLog($data,$log_id);
return $res;
}
public static function Post($url, $data_string,$mark='')
{
$data=[

@ -120,6 +120,7 @@ Route::group(['middleware'=>['log']],function () {
Route::post('admin/getMainDetail_duoren','App\Http\Controllers\API\Admin\YeWu\EntrustController@getMainDetail_duoren');//获取医嘱信息(支持多人)
Route::post('admin/AutoYuYue','App\Http\Controllers\API\Admin\YeWu\PlanListController@AutoYuYue');//自动预约
Route::post('admin/updateCheckItem','App\Http\Controllers\API\His\CheckItemController@UpdateCheckItem');//调用his更新检查项目
});
//H5端接口

@ -1,5 +1,6 @@
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
@ -26,3 +27,27 @@ Route::get('/wxLogin/{env}', function ($env) {
//微信登录授权获取openid
Route::get('/wxGetCode','App\Http\Controllers\API\mH5\LoginController@wxGetCode' );
Route::get('/test','App\Http\Controllers\TestController@DBtest' );
//his跳到此路由再跳转到对应的系统页面
Route::get('/yiji', function (Request $request) {
$queryString = $request->server('QUERY_STRING'); // 获取原始查询字符串
return redirect("http://192.168.80.76/jq_page/appointment.html?".$queryString);
//parse_str(urldecode($queryString), $data); // 先 urldecode再 parse_str 解析
// dd($queryString);
// $regnum=$request->query('regnum');
// $entrustid=$request->query('entrustid');
// $episodeid=$request->query('episodeid');
// $dotype=$request->query('dotype');
// $appointment_type=$request->query('appointment_type');
// $data=[
// 'regnum'=>$regnum,
// 'entrustid'=>$entrustid,
// 'episodeid'=>$episodeid,
// 'dotype'=>$dotype,
// 'appointment_type'=>$appointment_type,
// ];
// dd($data);
});

Loading…
Cancel
Save