You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
9.0 KiB
PHP
182 lines
9.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API\His;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class DrugController extends Controller
|
|
{
|
|
public function SyncDrugList()
|
|
{
|
|
set_time_limit(0);
|
|
DB::table('s_drug_list')->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)]);
|
|
}
|
|
}
|