diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java index 870dc787..36c21c1d 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationDiagnosisAppServiceImpl.java @@ -353,8 +353,6 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setLongTermFlag(saveDiagnosisChildParam.getLongTermFlag()); encounterDiagnosis.setOnsetDate(saveDiagnosisChildParam.getOnsetDate()); encounterDiagnosis.setDiagnosisTime(saveDiagnosisChildParam.getDiagnosisTime()); - encounterDiagnosis.setOnsetDate(saveDiagnosisChildParam.getOnsetDate()); - encounterDiagnosis.setDiagnosisTime(saveDiagnosisChildParam.getDiagnosisTime()); if(encounterDiagnosis.getCreateBy() == null){ encounterDiagnosis.setCreateBy(username); } @@ -383,8 +381,6 @@ public class DoctorStationDiagnosisAppServiceImpl implements IDoctorStationDiagn encounterDiagnosis.setLongTermFlag(saveDiagnosisChildParam.getLongTermFlag()); encounterDiagnosis.setOnsetDate(saveDiagnosisChildParam.getOnsetDate()); encounterDiagnosis.setDiagnosisTime(saveDiagnosisChildParam.getDiagnosisTime()); - encounterDiagnosis.setOnsetDate(saveDiagnosisChildParam.getOnsetDate()); - encounterDiagnosis.setDiagnosisTime(saveDiagnosisChildParam.getDiagnosisTime()); if(encounterDiagnosis.getCreateBy() == null){ encounterDiagnosis.setCreateBy(username); } diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionAppServiceImpl.java index e67c38d0..e12a5bd2 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionAppServiceImpl.java @@ -62,10 +62,10 @@ public class OutpatientInfusionAppServiceImpl implements IOutpatientInfusionAppS OutpatientStationInitDto initDto = new OutpatientStationInitDto(); // 执行状态 List serviceStatusOptions = new ArrayList<>(); + serviceStatusOptions.add(new OutpatientStationInitDto.ServiceStatus(RequestStatus.ACTIVE.getValue(), + "待执行")); serviceStatusOptions.add(new OutpatientStationInitDto.ServiceStatus(RequestStatus.COMPLETED.getValue(), RequestStatus.COMPLETED.getInfo())); - // serviceStatusOptions.add(new OutpatientStationInitDto.ServiceStatus(RequestStatus.IN_PROGRESS.getValue(), - // RequestStatus.IN_PROGRESS.getInfo())); serviceStatusOptions.add(new OutpatientStationInitDto.ServiceStatus(RequestStatus.CANCELLED.getValue(), RequestStatus.CANCELLED.getInfo())); initDto.setServiceStatusOptions(serviceStatusOptions); diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java index 308e0b3e..46302d2f 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/paymentmanage/appservice/impl/PaymentRecServiceImpl.java @@ -622,6 +622,37 @@ public class PaymentRecServiceImpl implements IPaymentRecService { }); if (!medicationRequestIdList.isEmpty()) { + // 获取药品请求信息,为输液类药品生成服务请求 + List medicationRequests = medicationRequestService.listByIds(medicationRequestIdList); + + // 为输液类药品生成 wor_service_request 记录 + for (MedicationRequest medReq : medicationRequests) { + if (medReq.getInfusionFlag() != null && medReq.getInfusionFlag() == 1) { + ServiceRequest serviceRequest = new ServiceRequest(); + serviceRequest.setBasedOnId(medReq.getId()) + .setBasedOnTable(CommonConstants.TableName.MED_MEDICATION_REQUEST) + .setEncounterId(medReq.getEncounterId()) + .setPatientId(medReq.getPatientId()) + .setActivityId(medReq.getMedicationId()) + .setStatusEnum(RequestStatus.ACTIVE.getValue()) // 状态设为已发送 (2),这样门诊输液页面才能查到 + .setGroupId(medReq.getGroupId()) + .setOrgId(medReq.getOrgId()) + .setRequesterId(medReq.getPractitionerId()) + .setAuthoredTime(new Date()) + .setEncounterDiagnosisId(medReq.getEncounterDiagnosisId()) + .setConditionId(medReq.getConditionId()) + .setQuantity(medReq.getQuantity()) + .setUnitCode(medReq.getUnitCode()) + .setPriorityEnum(medReq.getPriorityEnum()) + .setPerformFlag(Whether.NO.getValue()) + .setIntentEnum(medReq.getIntentEnum()) + .setCategoryEnum(medReq.getCategoryEnum()) + .setYbClassEnum(medReq.getYbClassEnum()) + .setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 4)); + serviceRequestService.save(serviceRequest); + } + } + // 更新请求状态为已完成 medicationRequestService.updateCompletedStatusBatch(medicationRequestIdList, null, null); // 更新药品发放状态为待配药 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml index e51a2174..84267b0d 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/outpatientmanage/OutpatientInfusionAppMapper.xml @@ -34,14 +34,16 @@ ON e.id = sr.encounter_id AND sr.refund_service_id IS NULL AND sr.delete_flag = '0' + INNER JOIN med_medication_request mmr + ON mmr.id = sr.based_on_id + AND mmr.delete_flag = '0' + AND mmr.infusion_flag = 1 LEFT JOIN adm_patient pt ON pt.id = sr.patient_id AND pt.delete_flag = '0' - LEFT JOIN wor_activity_definition ad - ON ad.id = sr.activity_id - AND ad.delete_flag = '0' WHERE e.delete_flag = '0' AND sr.status_enum IN (#{inProgress}, #{completed}, #{cancelled}) + AND sr.based_on_table = #{medMedicationRequest} GROUP BY sr.status_enum, sr.encounter_id, e.bus_no, @@ -106,7 +108,7 @@ mmr.performer_id, dis.status_enum AS dispense_status, mmd."name" AS medication_name, - ad."name" AS service_name, + mmd."name" AS service_name, ap."name" AS practitioner_name, o."name" AS dept_name, -- 新增子查询:查询配药人 @@ -128,15 +130,12 @@ AND wsr.delete_flag = '0' AND wsr.refund_service_id IS NULL LEFT JOIN med_medication_request mmr - ON mmr.group_id = wsr.group_id + ON mmr.id = wsr.based_on_id AND mmr.delete_flag = '0' AND mmr.infusion_flag = 1 LEFT JOIN med_medication_dispense dis ON dis.med_req_id = mmr.id AND dis.delete_flag = '0' - LEFT JOIN wor_activity_definition ad - ON ad.id = wsr.activity_id - AND ad.delete_flag = '0' LEFT JOIN med_medication_definition mmd ON mmr.medication_id = mmd.id AND mmd.delete_flag = '0' @@ -147,7 +146,6 @@ ON o.id = wsr.org_id AND o.delete_flag = '0' WHERE ae.id = #{encounterId} - AND ad.category_code = '21' AND wsr.based_on_table = #{medMedicationRequest} AND ae.delete_flag = '0') AS pr ${ew.customSqlSegment} @@ -173,13 +171,16 @@ wsr.occurrence_end_time, wsr.id AS service_id, wsr.tenant_id, - ad."name" AS service_name, + mmd."name" AS service_name, ap."name" AS performer_name, al."name" AS org_name FROM wor_service_request wsr - LEFT JOIN wor_activity_definition ad - ON ad.id = wsr.activity_id - AND ad.delete_flag = '0' + LEFT JOIN med_medication_request mmr + ON wsr.based_on_id = mmr.id + AND mmr.delete_flag = '0' + LEFT JOIN med_medication_definition mmd + ON mmr.medication_id = mmd.id + AND mmd.delete_flag = '0' LEFT JOIN adm_practitioner ap ON wsr.performer_id = ap.id AND ap.delete_flag = '0' diff --git a/openhis-ui-vue3/src/utils/medicalConstants.js b/openhis-ui-vue3/src/utils/medicalConstants.js index d3416870..9dad29fe 100644 --- a/openhis-ui-vue3/src/utils/medicalConstants.js +++ b/openhis-ui-vue3/src/utils/medicalConstants.js @@ -1,10 +1,11 @@ /** * 医疗常量配置 * 从字典动态获取常量值,避免硬编码 - * + * * 使用方式: - * import { DIAG_TYPE } from '@/utils/medicalConstants'; + * import { DIAG_TYPE, RequestStatus } from '@/utils/medicalConstants'; * medTypeCode: DIAG_TYPE.WESTERN_MEDICINE + * serviceStatus: RequestStatus.ACTIVE */ import { getDicts } from '@/api/system/dict/data'; @@ -12,6 +13,52 @@ import { getDicts } from '@/api/system/dict/data'; // 诊断类型字典缓存 let diagTypeCache = null; +/** + * 请求状态枚举(与后端 RequestStatus.java 保持一致) + * 用于服务申请、医嘱执行等状态管理 + */ +export const RequestStatus = { + /** 待发送 */ + DRAFT: 1, + /** 已发送/待执行 */ + ACTIVE: 2, + /** 已完成 */ + COMPLETED: 3, + /** 暂停 */ + ON_HOLD: 4, + /** 取消/待退 */ + CANCELLED: 5, + /** 停嘱 */ + STOPPED: 6, + /** 不执行 */ + ENDED: 7, + /** 未知 */ + UNKNOWN: 9, +}; + +/** + * 请求状态枚举的说明信息 + */ +export const RequestStatusDescriptions = { + 1: '待发送', + 2: '已发送/待执行', + 3: '已完成', + 4: '暂停', + 5: '取消/待退', + 6: '停嘱', + 7: '不执行', + 9: '未知', +}; + +/** + * 获取请求状态的说明 + * @param {number} value - 请求状态值 + * @returns {string} - 说明信息 + */ +export function getRequestStatusDescription(value) { + return RequestStatusDescriptions[value] || '未知状态'; +} + /** * 获取诊断类型字典(异步初始化) */ diff --git a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue index adee7b24..bf522d1e 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue +++ b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue @@ -175,6 +175,7 @@ import { } from './component/api'; import AdviceListDialog from './component/adviceListDialog.vue'; import {formatDate, formatDateStr} from '@/utils/index'; +import { RequestStatus } from '@/utils/medicalConstants'; const showSearch = ref(true); const total = ref(1); @@ -210,7 +211,7 @@ const data = reactive({ pageNo: 1, pageSize: 10, searchKey: undefined, - serviceStatus: 3, // 默认值为已完成 (对应 RequestStatus.COMPLETED) + serviceStatus: RequestStatus.ACTIVE, // 默认值为待执行 }, }); const { queryParams } = toRefs(data); diff --git a/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/index.vue index 17bf09ee..e9deacfa 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/drugDistribution/index.vue @@ -107,6 +107,7 @@ import PatientList from '../components/patientList.vue'; import PrescriptionList from './components/prescriptionList.vue'; import SummaryMedicineList from './components/summaryMedicineList.vue'; import {inpatientNurseNavs} from '../constants/navigation'; +import { RequestStatus } from '@/utils/medicalConstants'; const { proxy } = getCurrentInstance(); const router = useRouter(); @@ -115,7 +116,7 @@ const activeName = ref('preparation'); const active = ref('first'); const exeStatus = ref(1); const deadline = ref(proxy.formatDateStr(new Date(), 'YYYY-MM-DD') + ' 23:59:59'); -const requestStatus = ref(3); +const requestStatus = ref(RequestStatus.COMPLETED); const chooseAll = ref(false); const drugType = ref('1'); const isDetails = ref('1'); diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue index e704c536..54c36670 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderExecution/index.vue @@ -54,11 +54,12 @@ import {getCurrentInstance} from 'vue'; import PatientList from '../components/patientList.vue'; import PrescriptionList from './components/prescriptionList.vue'; +import { RequestStatus } from '@/utils/medicalConstants'; const activeName = ref('preparation'); const active = ref('first'); const exeStatus = ref(1); -const requestStatus = ref(3); +const requestStatus = ref(RequestStatus.COMPLETED); const { proxy } = getCurrentInstance(); // 存储子组件引用的对象 diff --git a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/index.vue b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/index.vue index 63532eda..f27c4e73 100644 --- a/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/index.vue +++ b/openhis-ui-vue3/src/views/inpatientNurse/medicalOrderProofread/index.vue @@ -52,10 +52,11 @@