diff --git a/Laravel/app/Http/Controllers/API/His/DrugController.php b/Laravel/app/Http/Controllers/API/His/DrugController.php new file mode 100644 index 0000000..a640a36 --- /dev/null +++ b/Laravel/app/Http/Controllers/API/His/DrugController.php @@ -0,0 +1,181 @@ +truncate(); + + $pageSize = 1000; + $pageNum = 1; + $total = 0; + + while (true) { + $res = HisController::Get('查询药品列表', [ + 'pageSize' => $pageSize, + 'pageNum' => $pageNum, + 'pageFlag' => 1, + ]); + + if ($res['code'] != 200) { + return \Yz::JsonError('同步失败:' . $res['message']); + } + + $list = $res['data']['list'] ?? []; + if (empty($list)) { + break; + } + + $insertData = []; + foreach ($list as $item) { + $insertData[] = [ + 'drugtermId' => $item['drugtermId'] ?? null, + 'tradeName' => $item['tradeName'] ?? null, + 'spellCode' => $item['spellCode'] ?? null, + 'wbCode' => $item['wbCode'] ?? null, + 'englishName' => $item['englishName'] ?? null, + 'regularName' => $item['regularName'] ?? null, + 'regularSpellCode' => $item['regularSpellCode'] ?? null, + 'regularWbCode' => $item['regularWbCode'] ?? null, + 'englishFormal' => $item['englishFormal'] ?? null, + 'englishRegular' => $item['englishRegular'] ?? null, + 'gbCode' => $item['gbCode'] ?? null, + 'internationalCode' => $item['internationalCode'] ?? null, + 'producerName' => $item['producerName'] ?? null, + 'drugQuality' => $item['drugQuality'] ?? null, + 'specs' => $item['specs'] ?? null, + 'priceRef' => $item['priceRef'] ?? null, + 'doseModel' => $item['doseModel'] ?? null, + 'doseModelName' => $item['doseModelName'] ?? null, + 'hypoTestFlag' => $item['hypoTestFlag'] ?? null, + 'hypoReagentFlag' => $item['hypoReagentFlag'] ?? null, + 'reagentCode' => $item['reagentCode'] ?? null, + 'hypoKindCode' => $item['hypoKindCode'] ?? null, + 'hypoKindName' => $item['hypoKindName'] ?? null, + 'useTip' => $item['useTip'] ?? null, + 'antibioticsFlag' => $item['antibioticsFlag'] ?? null, + 'antibioticsLv' => $item['antibioticsLv'] ?? null, + 'weightFactor' => $item['weightFactor'] ?? null, + 'surfaceFactor' => $item['surfaceFactor'] ?? null, + 'doseUnit' => $item['doseUnit'] ?? null, + 'baseDose' => $item['baseDose'] ?? null, + 'bakDoseUnit' => $item['bakDoseUnit'] ?? null, + 'bakBaseDose' => $item['bakBaseDose'] ?? null, + 'minUnit' => $item['minUnit'] ?? null, + 'midUnit' => $item['midUnit'] ?? null, + 'midQty' => $item['midQty'] ?? null, + 'packUnit' => $item['packUnit'] ?? null, + 'packQty' => $item['packQty'] ?? null, + 'pefDoseUnitLv' => $item['pefDoseUnitLv'] ?? null, + 'putDrugUnitLv' => $item['putDrugUnitLv'] ?? null, + 'inDrugUnitLv' => $item['inDrugUnitLv'] ?? null, + 'herbProcCode' => $item['herbProcCode'] ?? null, + 'herbProcName' => $item['herbProcName'] ?? null, + 'defUsageCode' => $item['defUsageCode'] ?? null, + 'defUsageName' => $item['defUsageName'] ?? null, + 'defFreqCode' => $item['defFreqCode'] ?? null, + 'phaFunCode' => $item['phaFunCode'] ?? null, + 'phaFunPath' => $item['phaFunPath'] ?? null, + 'termClassId' => $item['termClassId'] ?? null, + 'termClassName' => $item['termClassName'] ?? null, + 'defOnceDose' => $item['defOnceDose'] ?? null, + 'maxOnceDose' => $item['maxOnceDose'] ?? null, + 'maxDays' => $item['maxDays'] ?? null, + 'additiveDays' => $item['additiveDays'] ?? null, + 'additiveQty' => $item['additiveQty'] ?? null, + 'maxDayDose' => $item['maxDayDose'] ?? null, + 'maxFrequency' => $item['maxFrequency'] ?? null, + 'splitType' => $item['splitType'] ?? null, + 'siGrade' => $item['siGrade'] ?? null, + 'siMark' => $item['siMark'] ?? null, + 'importFlag' => $item['importFlag'] ?? null, + 'nostrumFlag' => $item['nostrumFlag'] ?? null, + 'gmpFlag' => $item['gmpFlag'] ?? null, + 'otcFlag' => $item['otcFlag'] ?? null, + 'liquidFlag' => $item['liquidFlag'] ?? null, + 'preciousFlag' => $item['preciousFlag'] ?? null, + 'dangerFlag' => $item['dangerFlag'] ?? null, + 'stimulantFlag' => $item['stimulantFlag'] ?? null, + 'sexClass' => $item['sexClass'] ?? null, + 'childFlag' => $item['childFlag'] ?? null, + 'familyplanFlag' => $item['familyplanFlag'] ?? null, + 'defFreqName' => $item['defFreqName'] ?? null, + ]; + } + + foreach (array_chunk($insertData, 200) as $chunk) { + DB::table('s_drug_list')->insert($chunk); + } + $total += count($list); + + if (count($list) < $pageSize) { + break; + } + $pageNum++; + } + + return \Yz::JsonReturn(true, '同步完成', ['total' => $total]); + } + + public function SyncUndrugList() + { + set_time_limit(0); + DB::table('s_undrug_list')->truncate(); + + $res = HisController::Get('查询非药品列表', []); + if ($res['code'] != 200) { + return \Yz::JsonError('同步失败:' . $res['message']); + } + + $list = $res['data']['list'] ?? $res['data'] ?? []; + if (empty($list)) { + return \Yz::JsonReturn(true, '无数据', ['total' => 0]); + } + + $insertData = []; + foreach ($list as $item) { + $insertData[] = [ + 'undrugId' => $item['undrugId'] ?? null, + 'termClassId' => $item['termClassId'] ?? null, + 'termName' => $item['termName'] ?? null, + 'englishName' => $item['englishName'] ?? null, + 'visitType' => $item['visitType'] ?? null, + 'spellCode' => $item['spellCode'] ?? null, + 'wbCode' => $item['wbCode'] ?? null, + 'customCode' => $item['customCode'] ?? null, + 'specs' => $item['specs'] ?? null, + 'nurseGrade' => $item['nurseGrade'] ?? null, + 'criticalState' => $item['criticalState'] ?? null, + 'sexLimit' => $item['sexLimit'] ?? null, + 'priceRef' => $item['priceRef'] ?? null, + 'execDepts' => isset($item['execDepts']) ? json_encode($item['execDepts'], JSON_UNESCAPED_UNICODE) : null, + 'labSpecimens' => isset($item['labSpecimens']) ? json_encode($item['labSpecimens'], JSON_UNESCAPED_UNICODE) : null, + 'mappingCode' => $item['mappingCode'] ?? null, + 'memo' => $item['memo'] ?? null, + 'chargeFlag' => $item['chargeFlag'] ?? null, + 'pricingFlag' => $item['pricingFlag'] ?? null, + 'confirmFlag' => $item['confirmFlag'] ?? null, + 'fincheckFlag' => $item['fincheckFlag'] ?? null, + 'consentFlag' => $item['consentFlag'] ?? null, + 'sheetType' => $item['sheetType'] ?? null, + 'examClass' => $item['examClass'] ?? null, + 'examMethod' => $item['examMethod'] ?? null, + 'examPart' => $item['examPart'] ?? null, + 'defaultExecDepts' => $item['defaultExecDepts'] ?? null, + 'docmoTip' => $item['docmoTip'] ?? null, + ]; + } + + foreach (array_chunk($insertData, 200) as $chunk) { + DB::table('s_undrug_list')->insert($chunk); + } + + return \Yz::JsonReturn(true, '同步完成', ['total' => count($list)]); + } +} diff --git a/Laravel/app/Http/Controllers/API/His/HisController.php b/Laravel/app/Http/Controllers/API/His/HisController.php index 10844ff..43765fd 100644 --- a/Laravel/app/Http/Controllers/API/His/HisController.php +++ b/Laravel/app/Http/Controllers/API/His/HisController.php @@ -23,6 +23,7 @@ public static function Api($url_code) $api['查询非药品列表'] = "/roc/order-service/api/v1/order/order-term/undrug/query"; $api['查询所有检查项目分类'] = "/roc/order-service/api/v1/order/order-term/dawn-code/query?consTypeId=EXAMSHEETTYPE"; $api['查询医生有权限的科室'] = "/roc/curr-web/api/v1/common/dept/doctdept/query"; + $api['查询药品列表'] = "/roc/order-service/api/v1/order/order-term/drug/query"; return $api["{$url_code}"] ?? $url_code; } diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 170afac..23d4ed2 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -136,6 +136,8 @@ Route::post('admin/UpdateItemClass','App\Http\Controllers\API\His\CheckItemController@UpdateItemClass');//调用his更新检查项目分类 Route::post('admin/HisGetDepartmentList','App\Http\Controllers\API\His\DepartmentController@GetDepartmentList');//获取his科室列表 Route::post('admin/HisGetUserList','App\Http\Controllers\API\His\UserController@GetUserList');//获取his用户列表 + Route::post('admin/SyncDrugList','App\Http\Controllers\API\His\DrugController@SyncDrugList');//同步药品列表 + Route::post('admin/SyncUndrugList','App\Http\Controllers\API\His\DrugController@SyncUndrugList');//同步非药品列表 Route::post('admin/HisAutoLogin','App\Http\Controllers\API\His\UserController@AutoLogin' ); Route::any('CreateJianChaShenQingDanPdf','App\Http\Controllers\API\PdfController@CreateJianChaShenQingDanPdf' ); Route::post('BatchGenerateByDateRange','App\Http\Controllers\API\Admin\YeWu\PlanListController@BatchGenerateByDateRange');//根据日期批量生成全部号源 diff --git a/YiJi-admin/.env.production b/YiJi-admin/.env.production index 332a397..cbe4c49 100644 --- a/YiJi-admin/.env.production +++ b/YiJi-admin/.env.production @@ -1,10 +1,10 @@ ENV = 'production' -VITE_APP_API_5555 = 'http://192.168.80.76/api/' -VITE_APP_FILE_5555 = 'http://192.168.80.76/' +VITE_APP_API = 'http://192.168.80.76/api/' +VITE_APP_FILE = 'http://192.168.80.76/' VITE_APP_API_66666666 = 'http://yiji-qhdzhongyiyuan/api/' VITE_APP_FILE_66666666 = 'http://yiji-qhdzhongyiyuan/' -VITE_APP_API = 'https://qhdzyyyiji.cjy.net.cn/api/' -VITE_APP_FILE = 'https://qhdzyyyiji.cjy.net.cn/' \ No newline at end of file +VITE_APP_API_aa = 'https://qhdzyyyiji.cjy.net.cn/api/' +VITE_APP_FILE_aa = 'https://qhdzyyyiji.cjy.net.cn/' \ No newline at end of file