149 门诊管理-》门诊输液查询不到患者已收费注射类的药品信息

This commit is contained in:
HuangXinQuan
2026-03-13 09:44:32 +08:00
parent 2eec988c56
commit 473a5f7f06
9 changed files with 104 additions and 25 deletions

View File

@@ -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);
}

View File

@@ -62,10 +62,10 @@ public class OutpatientInfusionAppServiceImpl implements IOutpatientInfusionAppS
OutpatientStationInitDto initDto = new OutpatientStationInitDto();
// 执行状态
List<OutpatientStationInitDto.ServiceStatus> 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);

View File

@@ -622,6 +622,37 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
});
if (!medicationRequestIdList.isEmpty()) {
// 获取药品请求信息,为输液类药品生成服务请求
List<MedicationRequest> 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);
// 更新药品发放状态为待配药

View File

@@ -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'