Commit 0743f6c9 by lujunyi

打印处方

parent f7b95d85
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
namespace App\Admin\Controllers; namespace App\Admin\Controllers;
use App\Models\PatientModel; use App\Models\PatientModel;
use App\Models\PharmacyDrugModel;
use App\Models\PrescriptionModel; use App\Models\PrescriptionModel;
use Dcat\Admin\Admin; use Dcat\Admin\Admin;
use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Http\Controllers\AdminController;
...@@ -40,6 +39,8 @@ public function search() ...@@ -40,6 +39,8 @@ public function search()
]); ]);
} }
$prescriptionNo = request('prescription_no'); $prescriptionNo = request('prescription_no');
$dosageData = request('dosage_custom'); // [{"pharmacy_drug_id":6,"dosage_desc":"一天3次1111"},{"pharmacy_drug_id":7,"dosage_desc":"2222每天一次"}]
$dosageData = json_decode($dosageData, true);
$isEseal = request('is_eseal', 0); // 是否打印电子印章,实时生成 $isEseal = request('is_eseal', 0); // 是否打印电子印章,实时生成
if (empty($prescriptionNo)) { if (empty($prescriptionNo)) {
...@@ -56,21 +57,23 @@ public function search() ...@@ -56,21 +57,23 @@ public function search()
return response()->json(['status' => false, 'message' => '未找到该处方']); return response()->json(['status' => false, 'message' => '未找到该处方']);
} }
// 检查处方图片是否已经生成 // 检查处方图片是否已经生成
if ($isEseal && $prescription->prescription_pic_eseal) { // if ($isEseal && $prescription->prescription_pic_eseal) {
return response()->json([ // return response()->json([
'status' => true, // 'status' => true,
'data' => [ // 'data' => [
'img_url' => $prescription->prescription_pic_eseal, // 'img_url' => $prescription->prescription_pic_eseal,
], // 'drug_info' => $prescription->drug_info,
]); // ],
} elseif ($prescription->prescription_pic) { // ]);
return response()->json([ // } elseif ($prescription->prescription_pic) {
'status' => true, // return response()->json([
'data' => [ // 'status' => true,
'img_url' => $prescription->prescription_pic, // 'data' => [
], // 'img_url' => $prescription->prescription_pic,
]); // 'drug_info' => $prescription->drug_info,
} // ],
// ]);
// }
// 创建处方图片 // 创建处方图片
// 处方背景图宽1653,高2339 // 处方背景图宽1653,高2339
...@@ -126,17 +129,22 @@ public function search() ...@@ -126,17 +129,22 @@ public function search()
}); });
$medicines = $prescription->drug_info; // 每个元素包含 'pharmacy_drug', 'num' $medicines = $prescription->drug_info; // 每个元素包含 'pharmacy_drug', 'num'
// $medicines = []; // 根据传过来的用法用量进行修改替换
// foreach ($drugInfo as $v) { if ($dosageData) {
// $pharmacyDrug = PharmacyDrugModel::with(['drug', 'dosage'])->find($v['pharmacy_drug']); $dosageMap = [];
// $medicines[] = [ foreach ($dosageData as $dosage) {
// 'drug_name' => $v['drug_name'], $dosageMap[$dosage['pharmacy_drug_id']] = $dosage['dosage_desc'];
// 'spec' => $v['spec'], }
// 'num' => $v['num'], // 更新 drug_info 中的 dosage_desc
// 'dosage_desc' => $v['dosage_desc'], foreach ($medicines as &$medicine) {
// 'unit' => $v['unit'], if (isset($dosageMap[$medicine['pharmacy_drug_id']])) {
// ]; $medicine['dosage_desc'] = $dosageMap[$medicine['pharmacy_drug_id']];
// } }
}
// 重新保存处方信息
$prescription->drug_info = $medicines; // 更新药品信息
$prescription->save(); // 保存更新后的处方
}
// 初始 Y 坐标 // 初始 Y 坐标
$yCoordinate = 650; // 根据需要调整初始 Y 坐标 $yCoordinate = 650; // 根据需要调整初始 Y 坐标
...@@ -234,6 +242,7 @@ public function search() ...@@ -234,6 +242,7 @@ public function search()
'status' => true, 'status' => true,
'data' => [ 'data' => [
'img_url' => $imgUrl, 'img_url' => $imgUrl,
'drug_info' => $prescription->drug_info,
], ],
]); ]);
} catch (\Exception $e) { } catch (\Exception $e) {
......
...@@ -79,7 +79,8 @@ ...@@ -79,7 +79,8 @@
data: { data: {
prescription_no: prescriptionNo, prescription_no: prescriptionNo,
is_eseal: isEseal, is_eseal: isEseal,
_token: '{{ csrf_token() }}' _token: '{{ csrf_token() }}',
dosage_custom: this.getDosageData()
}, },
success: (response) => { success: (response) => {
console.log('请求成功:', response); console.log('请求成功:', response);
...@@ -89,6 +90,8 @@ ...@@ -89,6 +90,8 @@
$('#prescription-image').attr('src', response.data.img_url); $('#prescription-image').attr('src', response.data.img_url);
$('#download-btn').data('url', response.data.img_url); $('#download-btn').data('url', response.data.img_url);
$('#prescription-container').show(); $('#prescription-container').show();
this.showEditableForm(response.data.drug_info);
} else { } else {
Dcat.error(response.message || '获取处方失败'); Dcat.error(response.message || '获取处方失败');
} }
...@@ -124,6 +127,40 @@ ...@@ -124,6 +127,40 @@
window.open(printUrl, '_blank'); window.open(printUrl, '_blank');
} }
// 新增:展示可编辑的药品信息表单
showEditableForm(drugs) {
// 仅在 drugs 有值时生成表单
// 清空现有的药品信息表单
$('#editable-drug-list').remove();
let formHtml = '<div id="editable-drug-list" class="mt-3" style="max-width:30%">';
drugs.forEach(drug => {
formHtml += `
<div class="drug-item input-group mb-2">
<input type="hidden" name="pharmacy_drug_id[]" value="${drug.pharmacy_drug_id}">
<label class="input-group-text">${drug.drug_name} || ${drug.spec} || ${drug.num}${drug.unit}</label>
<input type="text" class="form-control" name="dosage_desc[]" value="${drug.dosage_desc}" placeholder="请输入剂量">
</div>
`;
});
formHtml += '</div>';
// 将表单添加到搜索表单下方
$('.search-form').after(formHtml);
}
// 新增:获取剂量数据的方法
getDosageData() {
let dosageData = [];
$('#editable-drug-list .drug-item').each(function() {
let drugId = $(this).find('input[name="pharmacy_drug_id[]"]').val();
let dosageDesc = $(this).find('input[name="dosage_desc[]"]').val();
dosageData.push({
pharmacy_drug_id: parseInt(drugId),
dosage_desc: dosageDesc
});
});
return JSON.stringify(dosageData);
}
}(); // 注意这里立即实例化类 }(); // 注意这里立即实例化类
}); });
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment