diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java index 5d46b400..53980f83 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java @@ -4,6 +4,7 @@ import com.openhis.administration.domain.ChargeItemDefinition; import com.openhis.administration.domain.DeviceDefinition; import com.openhis.medication.domain.MedicationDetail; import com.openhis.web.datadictionary.dto.DeviceManageUpDto; +import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto; import com.openhis.web.datadictionary.dto.MedicationManageUpDto; /** @@ -15,12 +16,11 @@ import com.openhis.web.datadictionary.dto.MedicationManageUpDto; public interface IItemDefinitionService { /** - * 添加药品的项目定价 + * 添加药品/器材/诊疗的项目定价 * - * @param medicationManageUpDto 药品目录信息 - * @param medicationDetail 药品信息 + * @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息 */ - boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail); + boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto); // /** @@ -29,8 +29,8 @@ public interface IItemDefinitionService { // * @param deviceManageUpDto 器材目录信息 // * @param deviceDefinition 器材信息 // */ -// boolean addItem(DeviceManageUpDto deviceManageUpDto, DeviceDefinition deviceDefinition); - +// boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto, DeviceDefinition deviceDefinition); +// /** * 修改项目定价表 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java index 109fe38a..8cba66fb 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java @@ -13,10 +13,10 @@ import java.util.stream.Stream; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import com.openhis.web.datadictionary.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -25,8 +25,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; +import com.core.common.core.domain.entity.SysDictData; import com.core.common.utils.MessageUtils; +import com.core.common.utils.SecurityUtils; import com.core.common.utils.bean.BeanUtils; +import com.core.system.service.ISysDictTypeService; import com.openhis.administration.domain.DeviceDefinition; import com.openhis.administration.domain.Organization; import com.openhis.administration.mapper.DeviceDefinitionMapper; @@ -34,20 +37,14 @@ import com.openhis.administration.service.IDeviceDefinitionService; import com.openhis.administration.service.IOrganizationService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; -import com.openhis.common.enums.DeviceCategory; import com.openhis.common.enums.OrganizationType; import com.openhis.common.enums.PublicationStatus; import com.openhis.common.enums.Whether; import com.openhis.common.utils.EnumUtils; -import com.openhis.common.utils.HisPageUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.web.datadictionary.appservice.IDeviceManageAppService; -import com.openhis.web.datadictionary.dto.DeviceManageDto; -import com.openhis.web.datadictionary.dto.DeviceManageInitDto; -import com.openhis.web.datadictionary.dto.DeviceManageSelParam; -import com.openhis.web.datadictionary.dto.DeviceManageUpDto; +import com.openhis.web.datadictionary.appservice.IItemDefinitionService; import com.openhis.web.datadictionary.mapper.DeviceManageMapper; -import com.openhis.web.doctorstation.dto.AdviceBaseDto; /** * 器材目录 impl @@ -70,6 +67,12 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { @Resource DeviceManageMapper deviceManageMapper; + @Autowired + private ISysDictTypeService sysDictTypeService; + + @Autowired + private IItemDefinitionService itemDefinitionServic; + /** * 器材目录初始化 * @@ -77,12 +80,15 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { */ @Override public R getDeviceManageInit() { + DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto(); + // 获取状态 List statusEnumOptions = Stream.of(PublicationStatus.values()) .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) .collect(Collectors.toList()); deviceManageInitDto.setStatusFlagOptions(statusEnumOptions); + // 获取执行科室 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT); @@ -91,11 +97,27 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName())) .collect(Collectors.toList()); deviceManageInitDto.setExeOrganizations(exeOrganizations); - // 获取分类 - List deviceCategories = Stream.of(DeviceCategory.values()) - .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) + // // 从枚举中获取器材分类 + // List deviceCategories = Stream.of(DeviceCategory.values()) + // .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) + // .collect(Collectors.toList()); + // deviceManageInitDto.setDeviceCategories(deviceCategories); + + // 获取器材 + List devicelList = + sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DEVICE_CATEGORY_CODE); + // 从字典中获取器材分类 + List deviceCategories = devicelList.stream() + .map(category -> new DeviceManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel())) .collect(Collectors.toList()); deviceManageInitDto.setDeviceCategories(deviceCategories); + + // 获取医保是否对码 + List statusYBWeatherOption = Stream.of(Whether.values()) + .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + deviceManageInitDto.setStatusYBWeatherOptions(statusYBWeatherOption); + return R.ok(deviceManageInitDto); } @@ -114,22 +136,23 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { -// // 构建查询条件 -// QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, -// new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); -// // 设置排序 -// queryWrapper.orderByAsc("bus_no"); -// -// // 分页查询 -// Page deviceManagePage = -// HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); + // // 构建查询条件 + // QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, + // searchKey, + // new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); + // // 设置排序 + // queryWrapper.orderByAsc("bus_no"); + // + // // 分页查询 + // Page deviceManagePage = + // HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); // 构建查询条件 QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); // 分页查询 - IPage deviceManagePage = + IPage deviceManagePage = deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper); deviceManagePage.getRecords().forEach(e -> { @@ -142,7 +165,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { // 过敏标记枚举类回显赋值 e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAllergenFlag())); // 器材分类 - e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(DeviceCategory.class, e.getCategoryEnum())); + // e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(DeviceCategory.class, e.getCategoryEnum())); // 器材状态 e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum())); }); @@ -176,9 +199,13 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { */ @Override public R getDeviceOne(@RequestParam Long id) { + + // 获取租户ID + Integer tenantId = SecurityUtils.getLoginUser().getTenantId(); // 根据ID查询【器材目录】 - DeviceDefinition byId = deviceDefinitionService.getById(id); - return R.ok(byId); + DeviceManageDto deviceManageDto = deviceManageMapper.getOne(id, tenantId); + + return R.ok(deviceManageDto); } /** @@ -196,7 +223,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { for (Long detail : ids) { DeviceDefinition deviceDefinition = new DeviceDefinition(); deviceDefinition.setId(detail); - deviceDefinition.setStatusEnum(PublicationStatus.RETIRED); + deviceDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue()); DeviceDefinitionList.add(deviceDefinition); } @@ -221,7 +248,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { for (Long detail : ids) { DeviceDefinition DeviceDefinition = new DeviceDefinition(); DeviceDefinition.setId(detail); - DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE); + DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue()); DeviceDefinitionList.add(DeviceDefinition); } @@ -243,9 +270,17 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { BeanUtils.copyProperties(deviceManageUpDto, deviceDefinition); // 新增外来器材目录 - deviceDefinition.setStatusEnum(PublicationStatus.DRAFT); - return deviceDefinitionService.addDevice(deviceDefinition) - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) - : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + deviceDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue()); + + if (deviceDefinitionService.addDevice(deviceDefinition)) { + ItemUpFromDirectoryDto itemUpFromDirectoryDto =new ItemUpFromDirectoryDto(); + BeanUtils.copyProperties(deviceManageUpDto, itemUpFromDirectoryDto); + + return itemDefinitionServic.addItem(itemUpFromDirectoryDto) + ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) + : R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); + } + + return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java index 24520d38..f003054d 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java @@ -4,7 +4,12 @@ import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.core.common.utils.SecurityUtils; +import com.core.common.utils.bean.BeanUtils; +import com.openhis.administration.domain.DeviceDefinition; import com.openhis.common.enums.ConditionCode; +import com.openhis.web.datadictionary.dto.DeviceManageUpDto; +import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -38,55 +43,48 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService { /** - * 添加项目定价 + * 添加药品/器材/诊疗的项目定价 * - * @param medicationManageUpDto 药品目录信息 - * @param medicationDetail 药品信息 + * @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息 */ @Override - public boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail) { + public boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto) { + ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition(); - chargeItemDefinition.setChargeName(medicationDetail.getName()) - .setStatusEnum(PublicationStatus.ACTIVE.getValue()) - .setInstanceTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION) - .setInstanceId(medicationDetail.getMedicationDefId()).setEffectiveStart(DateUtils.getNowDate()) - // 机构ID - // .setOrgId(SecurityUtils.getLoginUser().getOrgId()) - .setOrgId(1l)// todo 没数据先写死 - // 财务类别 - .setTypeCode(medicationManageUpDto.getTypeCode()) - // 医保类别 - .setYbType(medicationManageUpDto.getYbType()).setConditionFlag(Whether.YES.getValue()) - .setPrice(medicationManageUpDto.getRetailPrice()); + BeanUtils.copyProperties(itemUpFromDirectoryDto, chargeItemDefinition); + boolean insertCIDSuccess = chargeItemDefinitionService.save(chargeItemDefinition); if (insertCIDSuccess) { List shargeItemDefDetails = new ArrayList<>(); + //插入购入价 ChargeItemDefDetail chargeItemDefDetail1 = new ChargeItemDefDetail(); chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId()) // 条件:采购 .setConditionCode(ConditionCode.PROCUREMENT.getCode()) // 购入价 - .setAmount(medicationManageUpDto.getPurchasePrice()); - + .setAmount(itemUpFromDirectoryDto.getPurchasePrice()); + shargeItemDefDetails.add(chargeItemDefDetail1); + //插入零售价 ChargeItemDefDetail chargeItemDefDetail2 = new ChargeItemDefDetail(); chargeItemDefDetail2.setDefinitionId(chargeItemDefinition.getId()) // 条件:单位 .setConditionCode(ConditionCode.UNIT.getCode()) //单位枚举 - .setConditionValue(medicationManageUpDto.getUnitCode()) + .setConditionValue(itemUpFromDirectoryDto.getUnitCode()) // 零售价 - .setAmount(medicationManageUpDto.getRetailPrice()); + .setAmount(itemUpFromDirectoryDto.getRetailPrice()); shargeItemDefDetails.add(chargeItemDefDetail2); + //插入最高零售价 ChargeItemDefDetail chargeItemDefDetail3 = new ChargeItemDefDetail(); chargeItemDefDetail3.setDefinitionId(chargeItemDefinition.getId()) // 条件:限制 .setConditionCode(ConditionCode.LIMIT.getCode()) // 最高零售价 - .setAmount(medicationManageUpDto.getMaximumRetailPrice()); + .setAmount(itemUpFromDirectoryDto.getMaximumRetailPrice()); shargeItemDefDetails.add(chargeItemDefDetail3); @@ -96,6 +94,7 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService { return false; } + /** * 修改项目定价表 * diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java index 711c2397..f1087146 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java @@ -13,7 +13,8 @@ import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.openhis.common.enums.*; +import com.core.common.utils.*; +import com.openhis.web.datadictionary.dto.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -25,9 +26,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.core.common.core.domain.entity.SysDictData; -import com.core.common.utils.ChineseConvertUtils; -import com.core.common.utils.MessageUtils; -import com.core.common.utils.SecurityUtils; import com.core.common.utils.bean.BeanUtils; import com.core.common.utils.poi.ExcelUtil; import com.core.system.service.ISysDictTypeService; @@ -36,6 +34,7 @@ import com.openhis.administration.domain.Supplier; import com.openhis.administration.service.ISupplierService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.*; import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.HisQueryUtils; import com.openhis.medication.domain.Medication; @@ -45,10 +44,6 @@ import com.openhis.medication.service.IMedicationDefinitionService; import com.openhis.medication.service.IMedicationService; import com.openhis.web.datadictionary.appservice.IItemDefinitionService; import com.openhis.web.datadictionary.appservice.IMedicationManageAppService; -import com.openhis.web.datadictionary.dto.MedicationManageDto; -import com.openhis.web.datadictionary.dto.MedicationManageInitDto; -import com.openhis.web.datadictionary.dto.MedicationManageUpDto; -import com.openhis.web.datadictionary.dto.MedicationSearchParam; import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper; /** @@ -77,6 +72,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi @Autowired private IItemDefinitionService itemDefinitionServic; + @Autowired(required = false) + AssignSeqUtil assignSeqUtil; + /** * 药品目录初始化 * @@ -120,15 +118,16 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) .collect(Collectors.toList()); - //拆分属性 + // 拆分属性 List partAttributeEnumOptions = Stream.of(SplitPropertyCode.values()) .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) .collect(Collectors.toList()); - //住院临时医嘱拆分属性的枚举 - List tempOrderSplitPropertyOptions = Stream.of(TempOrderSplitPropertyCode.values()) - .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); + // 住院临时医嘱拆分属性的枚举 + List tempOrderSplitPropertyOptions = + Stream.of(TempOrderSplitPropertyCode.values()) + .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); medicationManageInitDto.setStatusFlagOptions(statusEnumOptions); medicationManageInitDto.setDomainFlagOptions(domainEnumOptions); @@ -193,10 +192,12 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi e.setAntibioticFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAntibioticFlag())); // 基药标识 e.setBasicFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getBasicFlag())); - //拆分分属性 - e.setPartAttributeEnum_enumText(EnumUtils.getInfoByValue(SplitPropertyCode.class, e.getPartAttributeEnum())); - //住院临时医嘱拆分属性 - e.setThoPartAttributeEnum_enumText(EnumUtils.getInfoByValue(TempOrderSplitPropertyCode.class, e.getThoPartAttributeEnum())); + // 拆分分属性 + e.setPartAttributeEnum_enumText( + EnumUtils.getInfoByValue(SplitPropertyCode.class, e.getPartAttributeEnum())); + // 住院临时医嘱拆分属性 + e.setThoPartAttributeEnum_enumText( + EnumUtils.getInfoByValue(TempOrderSplitPropertyCode.class, e.getThoPartAttributeEnum())); // // 活动标记 // e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); @@ -323,6 +324,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi MedicationDetail medicationDetail = new MedicationDetail(); BeanUtils.copyProperties(medicationManageUpDto, medicationDetail); + // 使用10位数基础采番 + String code = assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_NUM.getPrefix(),10); + medicationDetail.setBusNo(code); // 拼音码 medicationDetail.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDetail.getName())); medicationDetail @@ -337,8 +341,19 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi // 新增子表外来药品目录 boolean insertMedicationSuccess = medicationService.addMedication(medicationDetail); + ItemUpFromDirectoryDto itemUpFromDirectoryDto = new ItemUpFromDirectoryDto(); + BeanUtils.copyProperties(medicationManageUpDto, itemUpFromDirectoryDto); + itemUpFromDirectoryDto.setInstanceId(medicationDetail.getMedicationDefId()) + .setStatusEnum(PublicationStatus.ACTIVE.getValue()) + .setInstanceTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION) + .setEffectiveStart(DateUtils.getNowDate()) + .setOrgId(SecurityUtils.getLoginUser().getOrgId()) + .setConditionFlag(Whether.YES.getValue()) + .setChargeName(medicationDetail.getName()) + .setPrice(medicationManageUpDto.getRetailPrice()); + // 添加药品成功后,添加相应的条件价格表信息 - boolean insertItemDefinitionSuccess = itemDefinitionServic.addItem(medicationManageUpDto, medicationDetail); + boolean insertItemDefinitionSuccess = itemDefinitionServic.addItem(itemUpFromDirectoryDto); return (insertMedicationSuccess && insertItemDefinitionSuccess) ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java index f38590d8..7d421fb9 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java @@ -37,11 +37,14 @@ public class DeviceManageDto { private String wbStr; /** 器材分类 */ - private Integer categoryEnum; - private String categoryEnum_enumText; + @Dict(dictCode = "device_category_code") + private String categoryCode; + private String categoryCode_dictText; /** 器材种类 */ + @Dict(dictCode = "device_type_code") private String typeCode; + private String typeCode_dictText; /** 包装单位 */ private String unitCode; @@ -55,6 +58,18 @@ public class DeviceManageDto { /** 最小使用单位 */ private String minUnitCode; + /** 所属科室 */ + @Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) + private Long orgId; + private String orgId_dictText; + + /** 所在位置 */ + @Dict(dictTable = "adm_location", dictCode = "id", dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) + private Long locationId; + private String locationId_dictText; + /** 产品型号 */ private String modelNumber; @@ -63,7 +78,9 @@ public class DeviceManageDto { private String hvcmFlag_enumText; /** 销售单位 */ + @Dict(dictCode = "unit_code") private String salesUnitCode; + private String salesUnitCode_dictText; /** 批准文号 */ private String approvalNumber; @@ -84,6 +101,7 @@ public class DeviceManageDto { private String statusEnum_enumText; /** 生产厂家 */ + @JsonSerialize(using = ToStringSerializer.class) private Long manufacturerId; /** 生产厂商文本 */ @@ -101,12 +119,6 @@ public class DeviceManageDto { /** 适用范围 */ private String jurisdiction; - /** 执行科室 */ - @Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name") - @JsonSerialize(using = ToStringSerializer.class) - private Long ruleId; - private String ruleId_dictText; - /** 器材版本 */ private String version; @@ -120,4 +132,10 @@ public class DeviceManageDto { /** 售价 */ private BigDecimal price; + /** 财务类别 */ + private String itemTypeCode; + + /** 医保类别 */ + private String ybType; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageInitDto.java index 36090c28..17d6abea 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageInitDto.java @@ -3,6 +3,8 @@ package com.openhis.web.datadictionary.dto; import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; @@ -16,8 +18,12 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class DeviceManageInitDto { private List statusFlagOptions; - private List deviceCategories; + private List deviceCategories; private List exeOrganizations; + // 供应商 + private List supplierListOptions; + // 是/否 状态 + private List statusYBWeatherOptions; /** * 状态 @@ -48,6 +54,21 @@ public class DeviceManageInitDto { } } + /** + * 器材分类 + */ + @Data + public static class dictCategoryCode { + private String value; + private String info; + private List children = new ArrayList<>(); + + public dictCategoryCode(String value, String info) { + this.value = value; + this.info = info; + } + } + /** * 执行机构 */ @@ -61,4 +82,21 @@ public class DeviceManageInitDto { this.label = label; } } + + /** + * 供应商 + */ + @Data + public static class supplierListOption { + + @JsonSerialize(using = ToStringSerializer.class) + private Long value; + private String label; + + public supplierListOption(Long value, String label) { + this.value = value; + this.label = label; + } + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageSelParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageSelParam.java index a51a2b21..fd0196ed 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageSelParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageSelParam.java @@ -14,7 +14,7 @@ import lombok.experimental.Accessors; public class DeviceManageSelParam { /** 器材分类 */ - private Integer categoryEnum; + private String categoryCode; /** 医保对码标记 */ private Integer ybMatchFlag; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java index 34f3194c..9a916ce4 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java @@ -7,6 +7,7 @@ import javax.validation.constraints.NotNull; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.annotation.Dict; import com.openhis.common.enums.DeviceCategory; import lombok.Data; @@ -43,10 +44,7 @@ public class DeviceManageUpDto { /** 器材分类 */ @NotNull(message = "器材分类不能为空") -// private DeviceCategory categoryEnum; - private Integer categoryEnum; - private String categoryEnum_enumText; - + private String categoryCode; /** 器材种类 */ @NotBlank(message = "器材种类不能为空") @@ -68,12 +66,25 @@ public class DeviceManageUpDto { @NotBlank(message = "最小使用单位不能为空") private String minUnitCode; + /** 所属科室 */ + @NotBlank(message = "所属科室不能为空") + @Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) + private Long orgId; + private String orgId_dictText; + + /** 所在位置 */ + @NotBlank(message = "所在位置不能为空") + @Dict(dictTable = "adm_location", dictCode = "id", dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) + private Long locationId; + private String locationId_dictText; + /** 产品型号 */ @NotBlank(message = "产品型号不能为空") private String modelNumber; /** 高值器材标志 */ - // @NotNull(message = "高值器材标志不能为空") private Integer hvcmFlag; /** 销售单位 */ @@ -85,21 +96,22 @@ public class DeviceManageUpDto { private String approvalNumber; /** 医保标记 */ - // @NotNull(message = "医保标记不能为空") private Integer ybFlag; /** 医保编码 */ private String ybNo; /** 医保对码标记 */ - // @NotNull(message = "医保对码标记不能为空") private Integer ybMatchFlag; /** 生产厂家 */ - @NotNull(message = "生产厂家不能为空") @JsonSerialize(using = ToStringSerializer.class) private Long manufacturerId; + /** 生产厂商文本 */ + @JsonSerialize(using = ToStringSerializer.class) + private Long manufacturerText; + /** 供应商 */ @NotNull(message = "供应商不能为空") @JsonSerialize(using = ToStringSerializer.class) @@ -117,16 +129,6 @@ public class DeviceManageUpDto { @JsonSerialize(using = ToStringSerializer.class) private Long ruleId; - /** 归属科室 */ - @NotNull(message = "归属科室不能为空") - @JsonSerialize(using = ToStringSerializer.class) - private Long orgId; - - /** 所在位置 */ - @NotNull(message = "所在位置不能为空") - @JsonSerialize(using = ToStringSerializer.class) - private Long locationId; - /** 器材版本 */ private String version; @@ -134,7 +136,6 @@ public class DeviceManageUpDto { private String substanceText; /** 过敏标记 */ - // @NotNull(message = "过敏标记不能为空") private Integer allergenFlag; /** 购入价 */ @@ -149,10 +150,13 @@ public class DeviceManageUpDto { @NotNull(message = "最高零售价不能为空") private BigDecimal maximumRetailPrice; - /** 最小费用 */ - private String minimalFee; + /** 财务类别 */ + @NotNull(message = "财务类别不能为空") + private String itemTypeCode; /** 医保类别 */ + @NotNull(message = "财务类别不能为空") private String ybType; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentSelParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentSelParam.java index fd5c2294..48c42698 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentSelParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentSelParam.java @@ -14,11 +14,12 @@ import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class DiagnosisTreatmentSelParam { + /** 目录类别 */ private Integer categoryEnum; /** 类型 */ - private String typeCode; + private Integer typeEnum; /** 医保对码标记 */ private Integer ybMatchFlag; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ItemUpFromDirectoryDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ItemUpFromDirectoryDto.java new file mode 100644 index 00000000..89fce04a --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/ItemUpFromDirectoryDto.java @@ -0,0 +1,74 @@ +package com.openhis.web.datadictionary.dto; + +import java.math.BigDecimal; +import java.util.Date; + +import com.openhis.common.annotation.Dict; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 从目录添加定价表信息用的Dto + * + * @author liuhr + * @date 2025/3/28 + */ +@Data +@Accessors(chain = true) +public class ItemUpFromDirectoryDto { + + /** 药品单位 */ + private String unitCode; + + /** 购入价 */ + private BigDecimal purchasePrice; + + /** 零售价 */ + private BigDecimal retailPrice; + + /** 最高零售价 */ + private BigDecimal maximumRetailPrice; + + /** 名称 */ + private String chargeName; + + /** 状态 */ + private Integer statusEnum; + + /** 机构ID */ + private Long orgId; + + /** 代码 */ + private String instanceTable; + + /** 关联项目 */ + private Long instanceId; + + /** 有效时间开始 */ + private Date effectiveStart; + + /** 财务类别 */ + private String typeCode; + + /** 医保类别 */ + private String ybType; + + /** 是否使用详细价格规则 */ + private Integer conditionFlag; + + /** 基础价格 */ + private BigDecimal price; + + /** 费用定价主键ID */ + private Long definitionId; + + /** 条件 */ + private String conditionCode; + + /** 命中值 */ + private String conditionValue; + + /** 价格 */ + private BigDecimal amount; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java index 97989853..b809a736 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java @@ -86,7 +86,6 @@ public class MedicationManageUpDto { private String definition; /** 药品编号 */ - @NotBlank(message = "药品编号不能为空") private String busNo; /** 药品名称 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java index 39a3d652..3d2153ba 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.openhis.web.datadictionary.dto.DeviceManageDto; +import com.openhis.web.datadictionary.dto.MedicationManageDto; import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto; import org.apache.ibatis.annotations.Param; @@ -27,4 +28,13 @@ public interface DeviceManageMapper { @Param("page") Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + /** + * 器材详情 + * + * @param id 器材ID + * @param tenantId 租户 + * @return + */ + DeviceManageDto getOne(@Param("id") Long id, @Param("tenantId") Integer tenantId); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java similarity index 70% rename from openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java rename to openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java index e49323c3..d6d17bd4 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/WesternMedicineDispenseAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java @@ -1,19 +1,5 @@ package com.openhis.web.pharmacymanage.appservice.impl; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import javax.servlet.http.HttpServletRequest; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; @@ -34,6 +20,18 @@ import com.openhis.web.pharmacymanage.dto.*; import com.openhis.web.pharmacymanage.mapper.WesternMedicineDispenseMapper; import com.openhis.workflow.domain.InventoryItem; import com.openhis.workflow.service.IInventoryItemService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * 西药发放 应用实现类 @@ -42,7 +40,7 @@ import com.openhis.workflow.service.IInventoryItemService; * @date 2025/3/14 */ @Service -public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService { +public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService { @Autowired private IOrganizationService iOrganizationService; @@ -69,15 +67,14 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi // 获取科室下拉选列表 List organizationList = iOrganizationService.getList(OrganizationClass.CLINIC.getValue()); List organizationOptions = organizationList.stream() - .map(organization -> new PageInitDto.DepartmentOption(organization.getId(), organization.getName())) - .collect(Collectors.toList()); + .map(organization -> new PageInitDto.DepartmentOption(organization.getId(), + organization.getName())).collect(Collectors.toList()); // 未发药原因下拉选列表 List notPerformedReasonOptions = - Stream.of(NotPerformedReasonEnum.values()) - .map(notPerformedReason -> new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(), - notPerformedReason.getInfo())) - .collect(Collectors.toList()); + Stream.of(NotPerformedReasonEnum.values()).map(notPerformedReason -> + new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(), + notPerformedReason.getInfo())).collect(Collectors.toList()); initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions); return R.ok(initDto); @@ -93,32 +90,33 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi * @return 就诊病人列表 */ @Override - public R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, Integer pageNo, - Integer pageSize, HttpServletRequest request) { + public R getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, + Integer pageNo, + Integer pageSize, + HttpServletRequest request) { // 查询条件设定 String condition = encounterInfoSearchParam.getCondition(); - if (!condition.isEmpty()) { + if (!condition.isEmpty()){ Pattern pattern = Pattern.compile(".*\\d.*"); Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition()); - encounterInfoSearchParam.setIdCard(matcher.find() ? condition : ""); - encounterInfoSearchParam.setPatientName(!matcher.find() ? condition : ""); + encounterInfoSearchParam.setIdCard(matcher.find() ? condition:""); + encounterInfoSearchParam.setPatientName(!matcher.find() ? condition:""); } // 构建查询条件 QueryWrapper queryWrapper = - HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, null, null, request); + HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam,null,null, request); // 查询就诊病人列表 - Page encounterInfoPageDto = - westernMedicineDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper); + Page encounterInfoPageDto = westernMedicineDispenseMapper.selectEncounterInfoListPage( + new Page<>(pageNo, pageSize), queryWrapper); return R.ok(encounterInfoPageDto); } /** * 查询处方单列表 - * * @param encounterId 就诊号 * @return 处方单列表 */ @@ -126,15 +124,15 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi public R getPrescriptionInfo(Long encounterId) { // 患者基本信息查询 - PrescriptionPatientInfoDto prescriptionPatientInfoDto = - westernMedicineDispenseMapper.selectPrescriptionPatientInfo(encounterId); + PrescriptionPatientInfoDto prescriptionPatientInfoDto = westernMedicineDispenseMapper. + selectPrescriptionPatientInfo(encounterId); // 处方单信息查询 - List prescriptionMedicineInfoList = - westernMedicineDispenseMapper.selectPrescriptionMedicineInfoList(encounterId); + List prescriptionMedicineInfoList = westernMedicineDispenseMapper. + selectPrescriptionMedicineInfoList(encounterId); // 计算合计金额 - if (!prescriptionMedicineInfoList.isEmpty()) { + if(!prescriptionMedicineInfoList.isEmpty()) { BigDecimal totalPrice = new BigDecimal(0); for (PrescriptionMedicineInfoDto item : prescriptionMedicineInfoList) { totalPrice.add(item.getTotal_price()); @@ -151,7 +149,6 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi /** * 处方单核对发药 - * * @param prescriptionNo 处方号 * @return 处理结果 */ @@ -164,9 +161,9 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi boolean iInventoryItemUpdFlg = true; // 获取药品待发放和库存信息 - List dispenseInventoryList = - westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); - if (!dispenseInventoryList.isEmpty()) { + List dispenseInventoryList = westernMedicineDispenseMapper. + selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); + if(!dispenseInventoryList.isEmpty()){ MedicationDispense medicationDispense; InventoryItem inventoryItem; for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { @@ -192,23 +189,28 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi // 库存表项目设定 inventoryItem = new InventoryItem(); // 库存数量 - if (dispenseInventoryDto.getDispenseUnitCode() - .equals(dispenseInventoryDto.getInventoryBaseUnitCode())) { - + if (dispenseInventoryDto.getDispenseUnitCode().equals(dispenseInventoryDto. + getInventoryBaseUnitCode())) { // id inventoryItem.setId(dispenseInventoryDto.getInventoryId()); // 包装数量 - inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())); + inventoryItem.setBaseQuantity(dispenseInventoryDto.getInventoryBaseQuantity(). + min(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); // 拆零数量(拆零比×包装数量) - inventoryItem.setMinQuantity(dispenseInventoryDto.getPartPercent() - .multiply(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); - } else if (dispenseInventoryDto.getDispenseUnitCode() - .equals(dispenseInventoryDto.getInventoryMinUnitCode())) { + inventoryItem.setMinQuantity(dispenseInventoryDto.getInventoryMinQuantity(). + min(dispenseInventoryDto.getPartPercent().multiply( + new BigDecimal(dispenseInventoryDto.getDispenseQuantity())))); + } else if (dispenseInventoryDto.getDispenseUnitCode().equals(dispenseInventoryDto. + getInventoryMinUnitCode())) { + // id + inventoryItem.setId(dispenseInventoryDto.getInventoryId()); // 拆零数量 - inventoryItem.setMinQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())); + inventoryItem.setMinQuantity(dispenseInventoryDto.getInventoryMinQuantity().min( + new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); // 包装数量(拆零数量÷拆零比) - inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()) - .divide(dispenseInventoryDto.getPartPercent(), RoundingMode.HALF_UP)); + inventoryItem.setBaseQuantity(dispenseInventoryDto.getInventoryBaseQuantity().min( + new BigDecimal(dispenseInventoryDto.getDispenseQuantity()). + divide(dispenseInventoryDto.getPartPercent(),RoundingMode.HALF_UP))); } inventoryItemList.add(inventoryItem); } @@ -218,28 +220,28 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi // 库存更新 iInventoryItemUpdFlg = iInventoryItemService.updateBatchById(inventoryItemList); } - return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg - ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) - : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); + return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg ? + R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) + : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } /** * 作废 - * * @param prescriptionNo 处方号 * @param notPerformedReasonEnum 未发药原因 * @return 处理结果 */ @Override - public R medicineCancel(String prescriptionNo, Integer notPerformedReasonEnum) { + public R medicineCancel(String prescriptionNo, + Integer notPerformedReasonEnum) { List medicationDispenseList = new ArrayList<>(); boolean iMedicationDispenseUpdFlg = true; // 获取药品待发放记录 - List dispenseInventoryList = - westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); - if (!dispenseInventoryList.isEmpty()) { + List dispenseInventoryList = westernMedicineDispenseMapper. + selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); + if(!dispenseInventoryList.isEmpty()){ MedicationDispense medicationDispense; for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { @@ -260,7 +262,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi // 药品发放更新 iMedicationDispenseUpdFlg = iMedicationDispenseService.updateBatchById(medicationDispenseList); } - return iMedicationDispenseUpdFlg ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) - : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); + return iMedicationDispenseUpdFlg? + R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) + : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java index c89af2d4..a694d4b8 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java @@ -3,12 +3,12 @@ */ package com.openhis.web.pharmacymanage.dto; -import java.io.Serializable; -import java.math.BigDecimal; - import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serializable; +import java.math.BigDecimal; + /** * 就诊人员列表 * @@ -24,6 +24,9 @@ public class PrescriptionMedicineInfoDto implements Serializable { /** 科室 */ private String departmentName; + /** 项目类型 */ + private String itemType; + /** 开单医生 */ private String doctorName; diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml index a71f2196..1596510c 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml @@ -35,7 +35,11 @@ T3.substance_text, T3.allergen_flag, T3.tenant_id, - T3.price + T3.item_type_code, + T3.yb_type, + T3.retail_price, + T3.purchase_price, + T3.maximum_retail_price FROM ( SELECT @@ -69,7 +73,23 @@ T1.substance_text, T1.allergen_flag, T1.tenant_id, - T2.price + T2.type_code as item_type_code, + T2.yb_type, + T2.price as retail_price,--零售价, + ( SELECT T4.amount + FROM adm_charge_item_definition T5 + LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id + WHERE T4.condition_code = '2'--2:采购价 + AND T5.instance_id = T1.id + AND T5.instance_table = 'adm_device_definition' + ) as purchase_price,--购入价 + ( SELECT T4.amount + FROM adm_charge_item_definition T5 + LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id + WHERE T4.condition_code = '4'--4:限制 + AND T5.instance_id = T1.id + AND T5.instance_table = 'adm_device_definition' + ) as maximum_retail_price--最高零售价 FROM adm_device_definition T1 LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id @@ -81,4 +101,69 @@ ${ew.customSqlSegment} + + + \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml index af993deb..18e5c5da 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml @@ -153,12 +153,16 @@ FROM adm_charge_item_definition T5 LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id WHERE T7.condition_code = '2'--2:采购价 + AND T5.instance_id = T2.medication_def_id + AND T5.instance_table = 'med_medication_definition' ) as purchase_price,--购入价 ( SELECT T7.amount FROM adm_charge_item_definition T5 LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id WHERE T7.condition_code = '4'--4:限制 + AND T5.instance_id = T2.medication_def_id + AND T5.instance_table = 'med_medication_definition' ) as maximum_retail_price--最高零售价 FROM med_medication_definition T1 LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java index bc9f0656..fecb2c50 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/constant/CommonConstants.java @@ -189,9 +189,13 @@ public class CommonConstants { */ public interface DictName { /** - * 药品分类 + * 器材 */ String MED_CATEGORY_CODE = "med_category_code"; + /** + * 药品分类 + */ + String DEVICE_CATEGORY_CODE = "device_category_code"; } diff --git a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java index 69c1576e..e210d902 100644 --- a/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java +++ b/openhis-server/openhis-common/src/main/java/com/openhis/common/enums/AssignSeqEnum.java @@ -49,7 +49,12 @@ public enum AssignSeqEnum { /** * 费用项目编码 */ - CHARGE_ITEM_NO("8", "费用项目编码", "CI"); + CHARGE_ITEM_NO("8", "费用项目编码", "CI"), + + /** + * 药品项目编码 + */ + MEDICATION_NUM("8", "药品项目编码", "MD"); private final String code; private final String info; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java index ea207b6a..ff9b7c27 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/DeviceDefinition.java @@ -87,7 +87,7 @@ public class DeviceDefinition extends HisBaseEntity { private Integer ybMatchFlag; /** 状态 */ - private PublicationStatus statusEnum; + private Integer statusEnum; /** 生产厂家 */ private Long manufacturerId; diff --git a/openhis-ui-vue3/src/views/catalog/device/components/device.js b/openhis-ui-vue3/src/views/catalog/device/components/device.js index 475a2a00..5450c90a 100644 --- a/openhis-ui-vue3/src/views/catalog/device/components/device.js +++ b/openhis-ui-vue3/src/views/catalog/device/components/device.js @@ -1,5 +1,4 @@ import request from '@/utils/request' -import { parseStrEmpty } from "@/utils/openhis"; // 查询器材目录列表 export function getDeviceList(query) { @@ -14,8 +13,9 @@ export function getDeviceList(query) { // 查询器材目录详细 export function getDeviceOne(id) { return request({ - url: '/data-dictionary/device/information-one/' + parseStrEmpty(id), - method: 'get' + url: '/data-dictionary/device/information-one', + method: 'get', + params: { id } // 确保参数正确传递 }) } diff --git a/openhis-ui-vue3/src/views/catalog/device/index.vue b/openhis-ui-vue3/src/views/catalog/device/index.vue index 964435f1..ee427f4b 100644 --- a/openhis-ui-vue3/src/views/catalog/device/index.vue +++ b/openhis-ui-vue3/src/views/catalog/device/index.vue @@ -449,7 +449,7 @@ const filterNode = (value, data) => { function getDiseaseTreatmentList() { getDiseaseTreatmentInit().then((response) => { console.log(response, "response器材目录分类查询下拉树结构"); - deviceCategories.value = response.data.deviceCategories; + deviceCategories.value = response.data.deviceCategories.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) }); statusFlagOptions.value = response.data.statusFlagOptions; exeOrganizations.value = response.data.exeOrganizations; }); diff --git a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/components/diagnosistreatment.js b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/components/diagnosistreatment.js index e442de4d..a91a821b 100644 --- a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/components/diagnosistreatment.js +++ b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/components/diagnosistreatment.js @@ -1,5 +1,4 @@ import request from '@/utils/request' -import { parseStrEmpty } from "@/utils/openhis"; // 查询诊疗目录列表 export function getDiagnosisTreatmentList(query) { @@ -37,14 +36,6 @@ export function editDiagnosisTreatment(data) { }) } -// // 删除诊疗目录 -// export function delUser(userId) { -// return request({ -// url: '/system/user/' + userId, -// method: 'delete' -// }) -// } - // 诊疗目录分类查询 export function getDiseaseTreatmentInit() { return request({ diff --git a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue index efa94062..b1caf059 100644 --- a/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue +++ b/openhis-ui-vue3/src/views/catalog/diagnosistreatment/index.vue @@ -354,7 +354,7 @@ -