Compare commits
4 Commits
781582c9d3
...
0daf71f07a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0daf71f07a | ||
|
|
f563713743 | ||
|
|
484c15658b | ||
| c8d729dd07 |
@@ -96,4 +96,9 @@ public class DiagnosisQueryDto {
|
||||
*/
|
||||
private String diagnosisDoctor;
|
||||
|
||||
/**
|
||||
* 是否已有传染病报卡(0-无,1-有)
|
||||
*/
|
||||
private Integer hasInfectiousReport;
|
||||
|
||||
}
|
||||
|
||||
@@ -134,7 +134,11 @@
|
||||
T2.yb_no,
|
||||
T1.onset_date AS onsetDate,
|
||||
T1.diagnosis_time AS diagnosisTime,
|
||||
T1.doctor AS diagnosisDoctor
|
||||
T1.doctor AS diagnosisDoctor,
|
||||
CASE WHEN EXISTS (
|
||||
SELECT 1 FROM infectious_card T4
|
||||
WHERE T4.diag_id = T2.id AND T4.delete_flag = '0' AND T4.status >= 1
|
||||
) THEN 1 ELSE 0 END AS hasInfectiousReport
|
||||
FROM adm_encounter_diagnosis AS T1
|
||||
LEFT JOIN cli_condition AS T2 ON T2.ID = T1.condition_id
|
||||
AND T2.delete_flag = '0' AND T2.tcm_flag = 0
|
||||
|
||||
@@ -692,6 +692,7 @@ async function handleFoodDiseasesCheck() {
|
||||
/**
|
||||
* 传染病报告卡处理
|
||||
* 通过诊断名称自动识别并勾选传染病报告卡中的疾病
|
||||
* 修复 Bug #519:跳过已有已提交报卡的诊断
|
||||
*/
|
||||
function handleInfectiousDiseaseReport() {
|
||||
// 疾病名称到报卡编码的映射(根据传染病报告卡弹窗中的疾病列表)
|
||||
@@ -743,8 +744,9 @@ function handleInfectiousDiseaseReport() {
|
||||
'手足口病': '0311',
|
||||
};
|
||||
|
||||
// 获取所有诊断名称对应的报卡编码
|
||||
// 获取所有诊断名称对应的报卡编码,但跳过已有已提交报卡的诊断
|
||||
const allSelectedDiseases = form.value.diagnosisList
|
||||
.filter(d => d.name && d.hasInfectiousReport !== 1)
|
||||
.map(d => diseaseNameToCode[d.name] || null)
|
||||
.filter(code => code);
|
||||
|
||||
@@ -752,9 +754,9 @@ function handleInfectiousDiseaseReport() {
|
||||
return;
|
||||
}
|
||||
|
||||
// 优先使用主诊断
|
||||
const mainDiagnosis = form.value.diagnosisList.find(d => d.maindiseFlag === 1);
|
||||
const firstDiagnosis = form.value.diagnosisList[0];
|
||||
// 优先使用主诊断(同样跳过已有报卡的)
|
||||
const mainDiagnosis = form.value.diagnosisList.find(d => d.maindiseFlag === 1 && d.hasInfectiousReport !== 1);
|
||||
const firstDiagnosis = form.value.diagnosisList.find(d => d.hasInfectiousReport !== 1) || form.value.diagnosisList[0];
|
||||
|
||||
const diagnosisToShow = {
|
||||
...(mainDiagnosis || firstDiagnosis),
|
||||
|
||||
@@ -1034,6 +1034,17 @@ function normalizeSex(value) {
|
||||
return '未知';
|
||||
}
|
||||
|
||||
function normalizeSexFromPatientInfo(patientInfo) {
|
||||
// 优先使用文本字段
|
||||
if (patientInfo.genderEnum_enumText) return patientInfo.genderEnum_enumText;
|
||||
if (patientInfo.genderName) return patientInfo.genderName;
|
||||
if (patientInfo.sex) return normalizeSex(patientInfo.sex);
|
||||
// 使用数字枚举字段
|
||||
if (patientInfo.genderEnum === 1) return '男';
|
||||
if (patientInfo.genderEnum === 2) return '女';
|
||||
return '未知';
|
||||
}
|
||||
|
||||
function normalizeAgeUnit(value) {
|
||||
const ageUnitMap = {
|
||||
1: '岁',
|
||||
@@ -1295,7 +1306,7 @@ async function show(diagnosisData) {
|
||||
patName: patientInfo.patientName || patientInfo.name || '', // 患者姓名
|
||||
parentName: '', // 家长姓名(14岁以下患者必填)
|
||||
idNo: patientInfo.idCard, // 身份证号
|
||||
sex: patientInfo.sex || patientInfo.genderName || '男', // 性别
|
||||
sex: normalizeSexFromPatientInfo(patientInfo), // 性别
|
||||
|
||||
// 出生日期信息
|
||||
birthYear: birthInfo.year, // 出生年份
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
</div>
|
||||
</el-dialog>
|
||||
<!-- 划价组套选择对话框 -->
|
||||
<el-dialog v-model="groupSetDialogVisible" title="划价组套选择" width="600px" :close-on-click-modal="false" append-to-body>
|
||||
<el-dialog v-model="groupSetDialogVisible" title="划价组套选择" width="600px" :close-on-click-modal="false" append-to-body :z-index="3000">
|
||||
<div style="margin-bottom: 15px; display: flex; align-items: center; gap: 10px">
|
||||
<el-input
|
||||
v-model="groupSetSearchText"
|
||||
|
||||
@@ -534,6 +534,7 @@ const userStore = useUserStore();
|
||||
const openTraceNoDialog = ref(false)
|
||||
const rowData = ref({})
|
||||
const ypName = ref('')
|
||||
const currentIndex = ref(-1)
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { warehous_type, category_code, service_type_code, specialty_code, purchase_type } =
|
||||
@@ -1072,13 +1073,6 @@ function onHeaderWarehouseChange() {
|
||||
|
||||
// 选择仓库 / 选药品后拉取该仓库存
|
||||
function handleLocationClick(item, row, index) {
|
||||
getCount({
|
||||
itemId: form.purchaseinventoryList[index].itemId,
|
||||
orgLocationId: form.purchaseinventoryList[index].sourceLocationId,
|
||||
}).then((res) => {
|
||||
if (res.data && res.data.length > 0) {
|
||||
form.purchaseinventoryList[index].itemTable = res.data[0].itemTable || '';
|
||||
form.purchaseinventoryList[index].totalQuantity = res.data[0].orgQuantity || 0;
|
||||
const r = form.purchaseinventoryList[index];
|
||||
let orgLocationId = r.sourceLocationId || receiptHeaderForm.headerLocationId || '';
|
||||
if (!orgLocationId) {
|
||||
@@ -1481,7 +1475,7 @@ function handleScan(row,index){
|
||||
rowData.value = row
|
||||
rowData.value.itemType = receiptHeaderForm.medicationType
|
||||
ypName.value = row.name
|
||||
openTraceNoDialog .value = true;
|
||||
openTraceNoDialog.value = true;
|
||||
currentIndex.value = index
|
||||
}
|
||||
|
||||
@@ -1704,6 +1698,17 @@ const exportRequiredParams = ref({
|
||||
pageSize: 10,
|
||||
busNo: route.query.supplyBusNo
|
||||
});
|
||||
|
||||
// 追溯码对话框提交处理
|
||||
function submit(traceNoData) {
|
||||
if (currentIndex.value >= 0 && form.purchaseinventoryList[currentIndex.value]) {
|
||||
form.purchaseinventoryList[currentIndex.value].traceNo = traceNoData.traceNo;
|
||||
form.purchaseinventoryList[currentIndex.value].ybNo = traceNoData.ybNo;
|
||||
proxy.$message.success('追溯码保存成功');
|
||||
}
|
||||
openTraceNoDialog.value = false;
|
||||
}
|
||||
|
||||
function handleExport() {
|
||||
proxy.downloadGet(
|
||||
'/issue-manage/requisition/excel-out',
|
||||
|
||||
Reference in New Issue
Block a user