diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index e567bb6c..ba52ad2f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -243,18 +243,18 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp MedicationRequest medicationRequest; for (AdviceSaveDto adviceSaveDto : medicineList) { medicationRequest = new MedicationRequest(); - medicationRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 8)); - medicationRequest.setPrescriptionNo(prescriptionNo); - medicationRequest.setQuantity(adviceSaveDto.getQuantity()); - medicationRequest.setExecuteNum(adviceSaveDto.getExecuteNum()); - medicationRequest.setUnitCode(adviceSaveDto.getUnitCode()); - medicationRequest.setLotNumber(adviceSaveDto.getLotNumber()); - medicationRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); - medicationRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + medicationRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 10)); + medicationRequest.setPrescriptionNo(prescriptionNo); // 处方号 + medicationRequest.setQuantity(adviceSaveDto.getQuantity()); // 请求数量 + medicationRequest.setExecuteNum(adviceSaveDto.getExecuteNum()); // 执行次数 + medicationRequest.setUnitCode(adviceSaveDto.getUnitCode()); // 请求单位编码 + medicationRequest.setLotNumber(adviceSaveDto.getLotNumber()); // 产品批号 + medicationRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); // 请求状态,默认-待发送 + medicationRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); // 请求类型,默认-门诊 medicationRequest.setMedicationId(adviceSaveDto.getAdviceDefinitionId());// 医嘱定义id - medicationRequest.setPatientId(adviceSaveDto.getPatientId()); - medicationRequest.setPractitionerId(adviceSaveDto.getPractitionerId()); - medicationRequest.setOrgId(adviceSaveDto.getOrgId()); + medicationRequest.setPatientId(adviceSaveDto.getPatientId()); // 患者 + medicationRequest.setPractitionerId(adviceSaveDto.getPractitionerId()); // 开方医生 + medicationRequest.setOrgId(adviceSaveDto.getOrgId()); // 开方人科室 // 查询机构位置关系 OrganizationLocation orgLocByOrgIdAndCategoryCode = iOrganizationLocationService .getOrgLocByOrgIdAndCategoryCode(adviceSaveDto.getOrgId(), adviceSaveDto.getCategoryCode()); @@ -263,13 +263,13 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp medicationRequest.setPerformLocation(orgLocByOrgIdAndCategoryCode.getDefLocationId()); } // medicationRequest.setLocationId(adviceSaveDto.getLocationId()); // 请求发起的位置 - medicationRequest.setEncounterId(adviceSaveDto.getEncounterId()); + medicationRequest.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id medicationRequest.setConditionId(adviceSaveDto.getConditionId()); // 诊断id - medicationRequest.setTherapyEnum(adviceSaveDto.getTherapyEnum()); - medicationRequest.setMethodCode(adviceSaveDto.getMethodCode()); - medicationRequest.setRateCode(adviceSaveDto.getRateCode()); - medicationRequest.setDose(adviceSaveDto.getDose()); - medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode()); + medicationRequest.setTherapyEnum(adviceSaveDto.getTherapyEnum()); // 治疗类型,默认-临时 + medicationRequest.setMethodCode(adviceSaveDto.getMethodCode()); // 用法 + medicationRequest.setRateCode(adviceSaveDto.getRateCode()); // 用药频次 + medicationRequest.setDose(adviceSaveDto.getDose()); // 单次剂量 + medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode()); // 剂量单位 medicationRequest.setSkinTestFlag(adviceSaveDto.getSkinTestFlag()); // 皮试标记 medicationRequest.setGroupId(adviceSaveDto.getGroupId());// 分组id // medicationRequest.setPackageId(adviceSaveDto.getPackageId()); @@ -283,17 +283,17 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp DeviceRequest deviceRequest; for (AdviceSaveDto adviceSaveDto : deviceList) { deviceRequest = new DeviceRequest(); - deviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.DEVICE_RES_NO.getPrefix(), 8)); + deviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.DEVICE_RES_NO.getPrefix(), 10)); // deviceRequest.setPrescriptionNo(prescriptionNo); // 耗材不需要处方号 - deviceRequest.setQuantity(adviceSaveDto.getQuantity()); - deviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); - deviceRequest.setLotNumber(adviceSaveDto.getLotNumber()); - deviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); - deviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + deviceRequest.setQuantity(adviceSaveDto.getQuantity()); // 请求数量 + deviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); // 请求单位编码 + deviceRequest.setLotNumber(adviceSaveDto.getLotNumber());// 产品批号 + deviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); // 请求状态,默认-待发送 + deviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); // 请求类型,默认-门诊 deviceRequest.setDeviceDefId(adviceSaveDto.getAdviceDefinitionId());// 耗材定义id - deviceRequest.setPatientId(adviceSaveDto.getPatientId()); - deviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); - deviceRequest.setOrgId(adviceSaveDto.getOrgId()); + deviceRequest.setPatientId(adviceSaveDto.getPatientId()); // 患者 + deviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); // 开方医生 + deviceRequest.setOrgId(adviceSaveDto.getOrgId());// 开方人科室 // 查询机构位置关系 OrganizationLocation orgLocByOrgIdAndCategoryCode = iOrganizationLocationService .getOrgLocByOrgIdAndCategoryCode(adviceSaveDto.getOrgId(), adviceSaveDto.getCategoryCode()); @@ -302,7 +302,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp deviceRequest.setPerformLocation(orgLocByOrgIdAndCategoryCode.getDefLocationId()); } // deviceRequest.setLocationId(adviceSaveDto.getLocationId()); 请求发起的位置 - deviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); + deviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id // deviceRequest.setPackageId(adviceSaveDto.getPackageId()); // deviceRequest.setActivityId(adviceSaveDto.getActivityId()); @@ -315,19 +315,18 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp ServiceRequest serviceRequest; for (AdviceSaveDto adviceSaveDto : activityList) { serviceRequest = new ServiceRequest(); - serviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 8)); + serviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 10)); // serviceRequest.setPrescriptionNo(prescriptionNo); // 诊疗不需要处方号 serviceRequest.setBasedOnTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION); serviceRequest.setBasedOnId(adviceSaveDto.getAdviceDefinitionId()); - serviceRequest.setQuantity(adviceSaveDto.getQuantity()); - serviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); - serviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); - serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); - serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + serviceRequest.setQuantity(adviceSaveDto.getQuantity()); // 请求数量 + serviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); // 请求单位编码 + serviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum());// 请求状态,默认-待发送 + serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); // 请求类型,默认-门诊 serviceRequest.setActivityId(adviceSaveDto.getAdviceDefinitionId());// 诊疗定义id - serviceRequest.setPatientId(adviceSaveDto.getPatientId()); - serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); - serviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); + serviceRequest.setPatientId(adviceSaveDto.getPatientId()); // 患者 + serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); // 开方医生 + serviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); // 就诊id serviceRequestList.add(serviceRequest); } @@ -338,20 +337,22 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp ChargeItem chargeItem; for (AdviceSaveDto adviceSaveDto : adviceSaveList) { chargeItem = new ChargeItem(); - chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); - chargeItem.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 8)); - chargeItem.setPrescriptionNo(prescriptionNo); - chargeItem.setPatientId(adviceSaveDto.getPatientId()); - chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); - chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); + chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); // 默认-代收费 + chargeItem.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 10)); + chargeItem.setPrescriptionNo(prescriptionNo); // 处方号 + chargeItem.setPatientId(adviceSaveDto.getPatientId()); // 患者 + chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); // 类型 + chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); // 诊疗定义id + chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量 chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位 chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价 chargeItem .setTotalPrice((new BigDecimal(adviceSaveDto.getQuantity()).multiply(adviceSaveDto.getUnitPrice())) .setScale(4, RoundingMode.HALF_UP)); // 总价 - chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); - chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); + + chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); // 费用定价ID + chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); // 定价子表主键 chargeItemList.add(chargeItem); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java index 43424d69..6b103f31 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java @@ -143,7 +143,7 @@ public class AdviceSaveDto { this.categoryEnum = EncounterClass.AMB.getValue(); this.therapyEnum = TherapyTimeType.TEMPORARY.getValue(); this.practitionerId = SecurityUtils.getLoginUser().getPractitionerId(); - this.orgId = SecurityUtils.getLoginUser().getOrgId(); // 开发人科室 + this.orgId = SecurityUtils.getLoginUser().getOrgId(); // 开方人科室 } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java index d6d17bd4..2ba9374b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java @@ -3,15 +3,12 @@ package com.openhis.web.pharmacymanage.appservice.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; -import com.core.common.utils.DateUtils; -import com.core.common.utils.MessageUtils; -import com.core.common.utils.SecurityUtils; +import com.core.common.utils.*; import com.openhis.administration.domain.Organization; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.enums.DispenseStatus; -import com.openhis.common.enums.NotPerformedReasonEnum; -import com.openhis.common.enums.OrganizationClass; +import com.openhis.common.enums.*; +import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.medication.domain.MedicationDispense; import com.openhis.medication.service.IMedicationDispenseService; @@ -27,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -97,7 +95,7 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 查询条件设定 String condition = encounterInfoSearchParam.getCondition(); - if (!condition.isEmpty()){ + if (StringUtils.isNotEmpty(condition)){ Pattern pattern = Pattern.compile(".*\\d.*"); Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition()); encounterInfoSearchParam.setIdCard(matcher.find() ? condition:""); @@ -126,11 +124,19 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 患者基本信息查询 PrescriptionPatientInfoDto prescriptionPatientInfoDto = westernMedicineDispenseMapper. selectPrescriptionPatientInfo(encounterId); - + // 年龄 + prescriptionPatientInfoDto.setAge(AgeCalculatorUtil.getAge(prescriptionPatientInfoDto.getBirth_date())); + // 性别 + prescriptionPatientInfoDto.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, + prescriptionPatientInfoDto.getGenderEnum())); + // 合同类型 + if (StringUtils.isNull(prescriptionPatientInfoDto.getCategoryEnum())){ + prescriptionPatientInfoDto.setCategoryEnum_enumText(EnumUtils.getInfoByValue(FinCategory.class, + prescriptionPatientInfoDto.getCategoryEnum())); + } // 处方单信息查询 List prescriptionMedicineInfoList = westernMedicineDispenseMapper. selectPrescriptionMedicineInfoList(encounterId); - // 计算合计金额 if(!prescriptionMedicineInfoList.isEmpty()) { BigDecimal totalPrice = new BigDecimal(0); @@ -139,11 +145,9 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD } prescriptionPatientInfoDto.setTotalPrice(totalPrice); } - PrescriptionInfoDto prescriptionInfoDto = new PrescriptionInfoDto(); prescriptionInfoDto.setPrescriptionPatientInfoDto(prescriptionPatientInfoDto); prescriptionInfoDto.setPrescriptionMedicineInfoDtoList(prescriptionMedicineInfoList); - return R.ok(prescriptionInfoDto); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java index e22cdea8..3ee74c4e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java @@ -48,9 +48,6 @@ public class PrescriptionPatientInfoDto implements Serializable { /** 就诊日期 */ private String encounterDate; - /** 门诊诊断 */ - private String diagnoseName; - /** 总金额 */ private BigDecimal totalPrice; } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml index 78be848a..4dd1a866 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml @@ -4,132 +4,116 @@ diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/FinCategory.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/FinCategory.java new file mode 100644 index 00000000..b127e8e3 --- /dev/null +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/FinCategory.java @@ -0,0 +1,41 @@ +package com.openhis.common.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum FinCategory implements HisEnumInterface { + + /** + * 自费 + */ + SELF_PAY(1, "1", "自费"), + + /** + * 省医保 + */ + PROVINCIAL_MEDICAL_INSURANCE(2, "2", "省医保"), + + /** + * 市医保 + */ + MUNICIPAL_MEDICAL_INSURANCE(3, "3", "市医保"); + + private Integer value; + private String code; + private String info; + + public static FinCategory getByValue(Integer value) { + if (value == null) { + return null; + } + for (FinCategory val : values()) { + if (val.getValue().equals(value)) { + return val; + } + } + return null; + } +} diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationRequest.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationRequest.java index 23a6706e..f41714ef 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationRequest.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationRequest.java @@ -90,7 +90,7 @@ public class MedicationRequest extends HisBaseEntity { */ private Long performLocation; - /** 发放科室 */ + /** 开方人科室 */ private Long orgId; /** 就诊id */