Merge remote-tracking branch 'origin/master'

This commit is contained in:
Wang.Huan
2025-03-28 14:26:56 +08:00
28 changed files with 534 additions and 281 deletions

View File

@@ -4,6 +4,7 @@ import com.openhis.administration.domain.ChargeItemDefinition;
import com.openhis.administration.domain.DeviceDefinition; import com.openhis.administration.domain.DeviceDefinition;
import com.openhis.medication.domain.MedicationDetail; import com.openhis.medication.domain.MedicationDetail;
import com.openhis.web.datadictionary.dto.DeviceManageUpDto; import com.openhis.web.datadictionary.dto.DeviceManageUpDto;
import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto;
import com.openhis.web.datadictionary.dto.MedicationManageUpDto; import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
/** /**
@@ -15,12 +16,11 @@ import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
public interface IItemDefinitionService { public interface IItemDefinitionService {
/** /**
* 添加药品的项目定价 * 添加药品/器材/诊疗的项目定价
* *
* @param medicationManageUpDto 药品目录信息 * @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息
* @param medicationDetail 药品信息
*/ */
boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail); boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto);
// /** // /**
@@ -29,8 +29,8 @@ public interface IItemDefinitionService {
// * @param deviceManageUpDto 器材目录信息 // * @param deviceManageUpDto 器材目录信息
// * @param deviceDefinition 器材信息 // * @param deviceDefinition 器材信息
// */ // */
// boolean addItem(DeviceManageUpDto deviceManageUpDto, DeviceDefinition deviceDefinition); // boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto, DeviceDefinition deviceDefinition);
//
/** /**
* 修改项目定价表 * 修改项目定价表
* *

View File

@@ -13,10 +13,10 @@ import java.util.stream.Stream;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.openhis.web.datadictionary.dto.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; 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.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; 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.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; 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.MessageUtils;
import com.core.common.utils.SecurityUtils;
import com.core.common.utils.bean.BeanUtils; import com.core.common.utils.bean.BeanUtils;
import com.core.system.service.ISysDictTypeService;
import com.openhis.administration.domain.DeviceDefinition; import com.openhis.administration.domain.DeviceDefinition;
import com.openhis.administration.domain.Organization; import com.openhis.administration.domain.Organization;
import com.openhis.administration.mapper.DeviceDefinitionMapper; 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.administration.service.IOrganizationService;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.DeviceCategory;
import com.openhis.common.enums.OrganizationType; import com.openhis.common.enums.OrganizationType;
import com.openhis.common.enums.PublicationStatus; import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.enums.Whether; import com.openhis.common.enums.Whether;
import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils; import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.appservice.IDeviceManageAppService; import com.openhis.web.datadictionary.appservice.IDeviceManageAppService;
import com.openhis.web.datadictionary.dto.DeviceManageDto; import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
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.mapper.DeviceManageMapper; import com.openhis.web.datadictionary.mapper.DeviceManageMapper;
import com.openhis.web.doctorstation.dto.AdviceBaseDto;
/** /**
* 器材目录 impl * 器材目录 impl
@@ -70,6 +67,12 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
@Resource @Resource
DeviceManageMapper deviceManageMapper; DeviceManageMapper deviceManageMapper;
@Autowired
private ISysDictTypeService sysDictTypeService;
@Autowired
private IItemDefinitionService itemDefinitionServic;
/** /**
* 器材目录初始化 * 器材目录初始化
* *
@@ -77,12 +80,15 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/ */
@Override @Override
public R<?> getDeviceManageInit() { public R<?> getDeviceManageInit() {
DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto(); DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto();
// 获取状态 // 获取状态
List<DeviceManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values()) List<DeviceManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) .map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
deviceManageInitDto.setStatusFlagOptions(statusEnumOptions); deviceManageInitDto.setStatusFlagOptions(statusEnumOptions);
// 获取执行科室 // 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT); 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())) .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
deviceManageInitDto.setExeOrganizations(exeOrganizations); deviceManageInitDto.setExeOrganizations(exeOrganizations);
// 获取分类 // // 从枚举中获取器材分类
List<DeviceManageInitDto.deviceCategory> deviceCategories = Stream.of(DeviceCategory.values()) // List<DeviceManageInitDto.deviceCategory> deviceCategories = Stream.of(DeviceCategory.values())
.map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo())) // .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo()))
// .collect(Collectors.toList());
// deviceManageInitDto.setDeviceCategories(deviceCategories);
// 获取器材
List<SysDictData> devicelList =
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DEVICE_CATEGORY_CODE);
// 从字典中获取器材分类
List<DeviceManageInitDto.dictCategoryCode> deviceCategories = devicelList.stream()
.map(category -> new DeviceManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
.collect(Collectors.toList()); .collect(Collectors.toList());
deviceManageInitDto.setDeviceCategories(deviceCategories); deviceManageInitDto.setDeviceCategories(deviceCategories);
// 获取医保是否对码
List<DeviceManageInitDto.statusEnumOption> statusYBWeatherOption = Stream.of(Whether.values())
.map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
deviceManageInitDto.setStatusYBWeatherOptions(statusYBWeatherOption);
return R.ok(deviceManageInitDto); return R.ok(deviceManageInitDto);
} }
@@ -114,22 +136,23 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// // 构建查询条件 // // 构建查询条件
// QueryWrapper<DeviceDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, // QueryWrapper<DeviceDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam,
// new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); // searchKey,
// // 设置排序 // new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// queryWrapper.orderByAsc("bus_no"); // // 设置排序
// // queryWrapper.orderByAsc("bus_no");
// // 分页查询 //
// Page<DeviceManageDto> deviceManagePage = // // 分页查询
// HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); // Page<DeviceManageDto> deviceManagePage =
// HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class);
// 构建查询条件 // 构建查询条件
QueryWrapper<DeviceManageDto> queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, QueryWrapper<DeviceManageDto> queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey,
new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 分页查询 // 分页查询
IPage<DeviceManageDto> deviceManagePage = IPage<DeviceManageDto> deviceManagePage =
deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper); deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper);
deviceManagePage.getRecords().forEach(e -> { deviceManagePage.getRecords().forEach(e -> {
@@ -142,7 +165,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
// 过敏标记枚举类回显赋值 // 过敏标记枚举类回显赋值
e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAllergenFlag())); 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())); e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
}); });
@@ -176,9 +199,13 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/ */
@Override @Override
public R<?> getDeviceOne(@RequestParam Long id) { public R<?> getDeviceOne(@RequestParam Long id) {
// 获取租户ID
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
// 根据ID查询【器材目录】 // 根据ID查询【器材目录】
DeviceDefinition byId = deviceDefinitionService.getById(id); DeviceManageDto deviceManageDto = deviceManageMapper.getOne(id, tenantId);
return R.ok(byId);
return R.ok(deviceManageDto);
} }
/** /**
@@ -196,7 +223,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
for (Long detail : ids) { for (Long detail : ids) {
DeviceDefinition deviceDefinition = new DeviceDefinition(); DeviceDefinition deviceDefinition = new DeviceDefinition();
deviceDefinition.setId(detail); deviceDefinition.setId(detail);
deviceDefinition.setStatusEnum(PublicationStatus.RETIRED); deviceDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
DeviceDefinitionList.add(deviceDefinition); DeviceDefinitionList.add(deviceDefinition);
} }
@@ -221,7 +248,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
for (Long detail : ids) { for (Long detail : ids) {
DeviceDefinition DeviceDefinition = new DeviceDefinition(); DeviceDefinition DeviceDefinition = new DeviceDefinition();
DeviceDefinition.setId(detail); DeviceDefinition.setId(detail);
DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE); DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
DeviceDefinitionList.add(DeviceDefinition); DeviceDefinitionList.add(DeviceDefinition);
} }
@@ -243,9 +270,17 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
BeanUtils.copyProperties(deviceManageUpDto, deviceDefinition); BeanUtils.copyProperties(deviceManageUpDto, deviceDefinition);
// 新增外来器材目录 // 新增外来器材目录
deviceDefinition.setStatusEnum(PublicationStatus.DRAFT); deviceDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue());
return deviceDefinitionService.addDevice(deviceDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"})) if (deviceDefinitionService.addDevice(deviceDefinition)) {
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null)); 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));
} }
} }

View File

@@ -4,7 +4,12 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -38,55 +43,48 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService {
/** /**
* 添加项目定价 * 添加药品/器材/诊疗的项目定价
* *
* @param medicationManageUpDto 药品目录信息 * @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息
* @param medicationDetail 药品信息
*/ */
@Override @Override
public boolean addItem(MedicationManageUpDto medicationManageUpDto, MedicationDetail medicationDetail) { public boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto) {
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition(); ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
chargeItemDefinition.setChargeName(medicationDetail.getName()) BeanUtils.copyProperties(itemUpFromDirectoryDto, chargeItemDefinition);
.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());
boolean insertCIDSuccess = chargeItemDefinitionService.save(chargeItemDefinition); boolean insertCIDSuccess = chargeItemDefinitionService.save(chargeItemDefinition);
if (insertCIDSuccess) { if (insertCIDSuccess) {
List<ChargeItemDefDetail> shargeItemDefDetails = new ArrayList<>(); List<ChargeItemDefDetail> shargeItemDefDetails = new ArrayList<>();
//插入购入价
ChargeItemDefDetail chargeItemDefDetail1 = new ChargeItemDefDetail(); ChargeItemDefDetail chargeItemDefDetail1 = new ChargeItemDefDetail();
chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId()) chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId())
// 条件:采购 // 条件:采购
.setConditionCode(ConditionCode.PROCUREMENT.getCode()) .setConditionCode(ConditionCode.PROCUREMENT.getCode())
// 购入价 // 购入价
.setAmount(medicationManageUpDto.getPurchasePrice()); .setAmount(itemUpFromDirectoryDto.getPurchasePrice());
shargeItemDefDetails.add(chargeItemDefDetail1);
//插入零售价
ChargeItemDefDetail chargeItemDefDetail2 = new ChargeItemDefDetail(); ChargeItemDefDetail chargeItemDefDetail2 = new ChargeItemDefDetail();
chargeItemDefDetail2.setDefinitionId(chargeItemDefinition.getId()) chargeItemDefDetail2.setDefinitionId(chargeItemDefinition.getId())
// 条件:单位 // 条件:单位
.setConditionCode(ConditionCode.UNIT.getCode()) .setConditionCode(ConditionCode.UNIT.getCode())
//单位枚举 //单位枚举
.setConditionValue(medicationManageUpDto.getUnitCode()) .setConditionValue(itemUpFromDirectoryDto.getUnitCode())
// 零售价 // 零售价
.setAmount(medicationManageUpDto.getRetailPrice()); .setAmount(itemUpFromDirectoryDto.getRetailPrice());
shargeItemDefDetails.add(chargeItemDefDetail2); shargeItemDefDetails.add(chargeItemDefDetail2);
//插入最高零售价
ChargeItemDefDetail chargeItemDefDetail3 = new ChargeItemDefDetail(); ChargeItemDefDetail chargeItemDefDetail3 = new ChargeItemDefDetail();
chargeItemDefDetail3.setDefinitionId(chargeItemDefinition.getId()) chargeItemDefDetail3.setDefinitionId(chargeItemDefinition.getId())
// 条件:限制 // 条件:限制
.setConditionCode(ConditionCode.LIMIT.getCode()) .setConditionCode(ConditionCode.LIMIT.getCode())
// 最高零售价 // 最高零售价
.setAmount(medicationManageUpDto.getMaximumRetailPrice()); .setAmount(itemUpFromDirectoryDto.getMaximumRetailPrice());
shargeItemDefDetails.add(chargeItemDefDetail3); shargeItemDefDetails.add(chargeItemDefDetail3);
@@ -96,6 +94,7 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService {
return false; return false;
} }
/** /**
* 修改项目定价表 * 修改项目定价表
* *

View File

@@ -13,7 +13,8 @@ import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.core.domain.entity.SysDictData; 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.bean.BeanUtils;
import com.core.common.utils.poi.ExcelUtil; import com.core.common.utils.poi.ExcelUtil;
import com.core.system.service.ISysDictTypeService; 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.administration.service.ISupplierService;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.*;
import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils; import com.openhis.common.utils.HisQueryUtils;
import com.openhis.medication.domain.Medication; 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.medication.service.IMedicationService;
import com.openhis.web.datadictionary.appservice.IItemDefinitionService; import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
import com.openhis.web.datadictionary.appservice.IMedicationManageAppService; 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; import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper;
/** /**
@@ -77,6 +72,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
@Autowired @Autowired
private IItemDefinitionService itemDefinitionServic; 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())) .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
//拆分属性 // 拆分属性
List<MedicationManageInitDto.statusEnumOption> partAttributeEnumOptions = Stream.of(SplitPropertyCode.values()) List<MedicationManageInitDto.statusEnumOption> partAttributeEnumOptions = Stream.of(SplitPropertyCode.values())
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
//住院临时医嘱拆分属性的枚举 // 住院临时医嘱拆分属性的枚举
List<MedicationManageInitDto.statusEnumOption> tempOrderSplitPropertyOptions = Stream.of(TempOrderSplitPropertyCode.values()) List<MedicationManageInitDto.statusEnumOption> tempOrderSplitPropertyOptions =
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo())) Stream.of(TempOrderSplitPropertyCode.values())
.collect(Collectors.toList()); .map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
medicationManageInitDto.setStatusFlagOptions(statusEnumOptions); medicationManageInitDto.setStatusFlagOptions(statusEnumOptions);
medicationManageInitDto.setDomainFlagOptions(domainEnumOptions); medicationManageInitDto.setDomainFlagOptions(domainEnumOptions);
@@ -193,10 +192,12 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
e.setAntibioticFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAntibioticFlag())); e.setAntibioticFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAntibioticFlag()));
// 基药标识 // 基药标识
e.setBasicFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getBasicFlag())); e.setBasicFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getBasicFlag()));
//拆分分属性 // 拆分分属性
e.setPartAttributeEnum_enumText(EnumUtils.getInfoByValue(SplitPropertyCode.class, e.getPartAttributeEnum())); e.setPartAttributeEnum_enumText(
//住院临时医嘱拆分属性 EnumUtils.getInfoByValue(SplitPropertyCode.class, e.getPartAttributeEnum()));
e.setThoPartAttributeEnum_enumText(EnumUtils.getInfoByValue(TempOrderSplitPropertyCode.class, e.getThoPartAttributeEnum())); // 住院临时医嘱拆分属性
e.setThoPartAttributeEnum_enumText(
EnumUtils.getInfoByValue(TempOrderSplitPropertyCode.class, e.getThoPartAttributeEnum()));
// // 活动标记 // // 活动标记
// e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); // e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag()));
@@ -323,6 +324,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
MedicationDetail medicationDetail = new MedicationDetail(); MedicationDetail medicationDetail = new MedicationDetail();
BeanUtils.copyProperties(medicationManageUpDto, 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.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDetail.getName()));
medicationDetail medicationDetail
@@ -337,8 +341,19 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
// 新增子表外来药品目录 // 新增子表外来药品目录
boolean insertMedicationSuccess = medicationService.addMedication(medicationDetail); 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) return (insertMedicationSuccess && insertItemDefinitionSuccess)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"})) ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))

View File

@@ -37,11 +37,14 @@ public class DeviceManageDto {
private String wbStr; private String wbStr;
/** 器材分类 */ /** 器材分类 */
private Integer categoryEnum; @Dict(dictCode = "device_category_code")
private String categoryEnum_enumText; private String categoryCode;
private String categoryCode_dictText;
/** 器材种类 */ /** 器材种类 */
@Dict(dictCode = "device_type_code")
private String typeCode; private String typeCode;
private String typeCode_dictText;
/** 包装单位 */ /** 包装单位 */
private String unitCode; private String unitCode;
@@ -55,6 +58,18 @@ public class DeviceManageDto {
/** 最小使用单位 */ /** 最小使用单位 */
private String minUnitCode; 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; private String modelNumber;
@@ -63,7 +78,9 @@ public class DeviceManageDto {
private String hvcmFlag_enumText; private String hvcmFlag_enumText;
/** 销售单位 */ /** 销售单位 */
@Dict(dictCode = "unit_code")
private String salesUnitCode; private String salesUnitCode;
private String salesUnitCode_dictText;
/** 批准文号 */ /** 批准文号 */
private String approvalNumber; private String approvalNumber;
@@ -84,6 +101,7 @@ public class DeviceManageDto {
private String statusEnum_enumText; private String statusEnum_enumText;
/** 生产厂家 */ /** 生产厂家 */
@JsonSerialize(using = ToStringSerializer.class)
private Long manufacturerId; private Long manufacturerId;
/** 生产厂商文本 */ /** 生产厂商文本 */
@@ -101,12 +119,6 @@ public class DeviceManageDto {
/** 适用范围 */ /** 适用范围 */
private String jurisdiction; 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; private String version;
@@ -120,4 +132,10 @@ public class DeviceManageDto {
/** 售价 */ /** 售价 */
private BigDecimal price; private BigDecimal price;
/** 财务类别 */
private String itemTypeCode;
/** 医保类别 */
private String ybType;
} }

View File

@@ -3,6 +3,8 @@ package com.openhis.web.datadictionary.dto;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -16,8 +18,12 @@ import lombok.experimental.Accessors;
@Accessors(chain = true) @Accessors(chain = true)
public class DeviceManageInitDto { public class DeviceManageInitDto {
private List<statusEnumOption> statusFlagOptions; private List<statusEnumOption> statusFlagOptions;
private List<deviceCategory> deviceCategories; private List<dictCategoryCode> deviceCategories;
private List<exeOrganization> exeOrganizations; private List<exeOrganization> exeOrganizations;
// 供应商
private List<supplierListOption> supplierListOptions;
// 是/否 状态
private List<statusEnumOption> statusYBWeatherOptions;
/** /**
* 状态 * 状态
@@ -48,6 +54,21 @@ public class DeviceManageInitDto {
} }
} }
/**
* 器材分类
*/
@Data
public static class dictCategoryCode {
private String value;
private String info;
private List<dictCategoryCode> 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; 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;
}
}
} }

View File

@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
public class DeviceManageSelParam { public class DeviceManageSelParam {
/** 器材分类 */ /** 器材分类 */
private Integer categoryEnum; private String categoryCode;
/** 医保对码标记 */ /** 医保对码标记 */
private Integer ybMatchFlag; private Integer ybMatchFlag;

View File

@@ -7,6 +7,7 @@ import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.annotation.Dict;
import com.openhis.common.enums.DeviceCategory; import com.openhis.common.enums.DeviceCategory;
import lombok.Data; import lombok.Data;
@@ -43,10 +44,7 @@ public class DeviceManageUpDto {
/** 器材分类 */ /** 器材分类 */
@NotNull(message = "器材分类不能为空") @NotNull(message = "器材分类不能为空")
// private DeviceCategory categoryEnum; private String categoryCode;
private Integer categoryEnum;
private String categoryEnum_enumText;
/** 器材种类 */ /** 器材种类 */
@NotBlank(message = "器材种类不能为空") @NotBlank(message = "器材种类不能为空")
@@ -68,12 +66,25 @@ public class DeviceManageUpDto {
@NotBlank(message = "最小使用单位不能为空") @NotBlank(message = "最小使用单位不能为空")
private String minUnitCode; 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 = "产品型号不能为空") @NotBlank(message = "产品型号不能为空")
private String modelNumber; private String modelNumber;
/** 高值器材标志 */ /** 高值器材标志 */
// @NotNull(message = "高值器材标志不能为空")
private Integer hvcmFlag; private Integer hvcmFlag;
/** 销售单位 */ /** 销售单位 */
@@ -85,21 +96,22 @@ public class DeviceManageUpDto {
private String approvalNumber; private String approvalNumber;
/** 医保标记 */ /** 医保标记 */
// @NotNull(message = "医保标记不能为空")
private Integer ybFlag; private Integer ybFlag;
/** 医保编码 */ /** 医保编码 */
private String ybNo; private String ybNo;
/** 医保对码标记 */ /** 医保对码标记 */
// @NotNull(message = "医保对码标记不能为空")
private Integer ybMatchFlag; private Integer ybMatchFlag;
/** 生产厂家 */ /** 生产厂家 */
@NotNull(message = "生产厂家不能为空")
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long manufacturerId; private Long manufacturerId;
/** 生产厂商文本 */
@JsonSerialize(using = ToStringSerializer.class)
private Long manufacturerText;
/** 供应商 */ /** 供应商 */
@NotNull(message = "供应商不能为空") @NotNull(message = "供应商不能为空")
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
@@ -117,16 +129,6 @@ public class DeviceManageUpDto {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long ruleId; private Long ruleId;
/** 归属科室 */
@NotNull(message = "归属科室不能为空")
@JsonSerialize(using = ToStringSerializer.class)
private Long orgId;
/** 所在位置 */
@NotNull(message = "所在位置不能为空")
@JsonSerialize(using = ToStringSerializer.class)
private Long locationId;
/** 器材版本 */ /** 器材版本 */
private String version; private String version;
@@ -134,7 +136,6 @@ public class DeviceManageUpDto {
private String substanceText; private String substanceText;
/** 过敏标记 */ /** 过敏标记 */
// @NotNull(message = "过敏标记不能为空")
private Integer allergenFlag; private Integer allergenFlag;
/** 购入价 */ /** 购入价 */
@@ -149,10 +150,13 @@ public class DeviceManageUpDto {
@NotNull(message = "最高零售价不能为空") @NotNull(message = "最高零售价不能为空")
private BigDecimal maximumRetailPrice; private BigDecimal maximumRetailPrice;
/** 最小费用 */ /** 财务类别 */
private String minimalFee; @NotNull(message = "财务类别不能为空")
private String itemTypeCode;
/** 医保类别 */ /** 医保类别 */
@NotNull(message = "财务类别不能为空")
private String ybType; private String ybType;
} }

View File

@@ -14,11 +14,12 @@ import lombok.experimental.Accessors;
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class DiagnosisTreatmentSelParam { public class DiagnosisTreatmentSelParam {
/** 目录类别 */ /** 目录类别 */
private Integer categoryEnum; private Integer categoryEnum;
/** 类型 */ /** 类型 */
private String typeCode; private Integer typeEnum;
/** 医保对码标记 */ /** 医保对码标记 */
private Integer ybMatchFlag; private Integer ybMatchFlag;

View File

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

View File

@@ -86,7 +86,6 @@ public class MedicationManageUpDto {
private String definition; private String definition;
/** 药品编号 */ /** 药品编号 */
@NotBlank(message = "药品编号不能为空")
private String busNo; private String busNo;
/** 药品名称 */ /** 药品名称 */

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.datadictionary.dto.DeviceManageDto; import com.openhis.web.datadictionary.dto.DeviceManageDto;
import com.openhis.web.datadictionary.dto.MedicationManageDto;
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto; import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -27,4 +28,13 @@ public interface DeviceManageMapper {
@Param("page") Page<DeviceManageDto> page, @Param("page") Page<DeviceManageDto> page,
@Param(Constants.WRAPPER) QueryWrapper<DeviceManageDto> queryWrapper); @Param(Constants.WRAPPER) QueryWrapper<DeviceManageDto> queryWrapper);
/**
* 器材详情
*
* @param id 器材ID
* @param tenantId 租户
* @return
*/
DeviceManageDto getOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
} }

View File

@@ -1,19 +1,5 @@
package com.openhis.web.pharmacymanage.appservice.impl; 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.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; 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.web.pharmacymanage.mapper.WesternMedicineDispenseMapper;
import com.openhis.workflow.domain.InventoryItem; import com.openhis.workflow.domain.InventoryItem;
import com.openhis.workflow.service.IInventoryItemService; 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 * @date 2025/3/14
*/ */
@Service @Service
public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService { public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineDispenseAppService {
@Autowired @Autowired
private IOrganizationService iOrganizationService; private IOrganizationService iOrganizationService;
@@ -69,15 +67,14 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
// 获取科室下拉选列表 // 获取科室下拉选列表
List<Organization> organizationList = iOrganizationService.getList(OrganizationClass.CLINIC.getValue()); List<Organization> organizationList = iOrganizationService.getList(OrganizationClass.CLINIC.getValue());
List<PageInitDto.DepartmentOption> organizationOptions = organizationList.stream() List<PageInitDto.DepartmentOption> organizationOptions = organizationList.stream()
.map(organization -> new PageInitDto.DepartmentOption(organization.getId(), organization.getName())) .map(organization -> new PageInitDto.DepartmentOption(organization.getId(),
.collect(Collectors.toList()); organization.getName())).collect(Collectors.toList());
// 未发药原因下拉选列表 // 未发药原因下拉选列表
List<PageInitDto.NotPerformedReasonOption> notPerformedReasonOptions = List<PageInitDto.NotPerformedReasonOption> notPerformedReasonOptions =
Stream.of(NotPerformedReasonEnum.values()) Stream.of(NotPerformedReasonEnum.values()).map(notPerformedReason ->
.map(notPerformedReason -> new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(), new PageInitDto.NotPerformedReasonOption(notPerformedReason.getValue(),
notPerformedReason.getInfo())) notPerformedReason.getInfo())).collect(Collectors.toList());
.collect(Collectors.toList());
initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions); initDto.setDepartmentOptions(organizationOptions).setNotPerformedReasonOptions(notPerformedReasonOptions);
return R.ok(initDto); return R.ok(initDto);
@@ -93,32 +90,33 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
* @return 就诊病人列表 * @return 就诊病人列表
*/ */
@Override @Override
public R<?> getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam, Integer pageNo, public R<?> getEncounterInfoListPage(EncounterInfoSearchParam encounterInfoSearchParam,
Integer pageSize, HttpServletRequest request) { Integer pageNo,
Integer pageSize,
HttpServletRequest request) {
// 查询条件设定 // 查询条件设定
String condition = encounterInfoSearchParam.getCondition(); String condition = encounterInfoSearchParam.getCondition();
if (!condition.isEmpty()) { if (!condition.isEmpty()){
Pattern pattern = Pattern.compile(".*\\d.*"); Pattern pattern = Pattern.compile(".*\\d.*");
Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition()); Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition());
encounterInfoSearchParam.setIdCard(matcher.find() ? condition : ""); encounterInfoSearchParam.setIdCard(matcher.find() ? condition:"");
encounterInfoSearchParam.setPatientName(!matcher.find() ? condition : ""); encounterInfoSearchParam.setPatientName(!matcher.find() ? condition:"");
} }
// 构建查询条件 // 构建查询条件
QueryWrapper<EncounterInfoSearchParam> queryWrapper = QueryWrapper<EncounterInfoSearchParam> queryWrapper =
HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam, null, null, request); HisQueryUtils.buildQueryWrapper(encounterInfoSearchParam,null,null, request);
// 查询就诊病人列表 // 查询就诊病人列表
Page<EncounterInfoPageDto> encounterInfoPageDto = Page<EncounterInfoPageDto> encounterInfoPageDto = westernMedicineDispenseMapper.selectEncounterInfoListPage(
westernMedicineDispenseMapper.selectEncounterInfoListPage(new Page<>(pageNo, pageSize), queryWrapper); new Page<>(pageNo, pageSize), queryWrapper);
return R.ok(encounterInfoPageDto); return R.ok(encounterInfoPageDto);
} }
/** /**
* 查询处方单列表 * 查询处方单列表
*
* @param encounterId 就诊号 * @param encounterId 就诊号
* @return 处方单列表 * @return 处方单列表
*/ */
@@ -126,15 +124,15 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
public R<?> getPrescriptionInfo(Long encounterId) { public R<?> getPrescriptionInfo(Long encounterId) {
// 患者基本信息查询 // 患者基本信息查询
PrescriptionPatientInfoDto prescriptionPatientInfoDto = PrescriptionPatientInfoDto prescriptionPatientInfoDto = westernMedicineDispenseMapper.
westernMedicineDispenseMapper.selectPrescriptionPatientInfo(encounterId); selectPrescriptionPatientInfo(encounterId);
// 处方单信息查询 // 处方单信息查询
List<PrescriptionMedicineInfoDto> prescriptionMedicineInfoList = List<PrescriptionMedicineInfoDto> prescriptionMedicineInfoList = westernMedicineDispenseMapper.
westernMedicineDispenseMapper.selectPrescriptionMedicineInfoList(encounterId); selectPrescriptionMedicineInfoList(encounterId);
// 计算合计金额 // 计算合计金额
if (!prescriptionMedicineInfoList.isEmpty()) { if(!prescriptionMedicineInfoList.isEmpty()) {
BigDecimal totalPrice = new BigDecimal(0); BigDecimal totalPrice = new BigDecimal(0);
for (PrescriptionMedicineInfoDto item : prescriptionMedicineInfoList) { for (PrescriptionMedicineInfoDto item : prescriptionMedicineInfoList) {
totalPrice.add(item.getTotal_price()); totalPrice.add(item.getTotal_price());
@@ -151,7 +149,6 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
/** /**
* 处方单核对发药 * 处方单核对发药
*
* @param prescriptionNo 处方号 * @param prescriptionNo 处方号
* @return 处理结果 * @return 处理结果
*/ */
@@ -164,9 +161,9 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
boolean iInventoryItemUpdFlg = true; boolean iInventoryItemUpdFlg = true;
// 获取药品待发放和库存信息 // 获取药品待发放和库存信息
List<DispenseInventoryDto> dispenseInventoryList = List<DispenseInventoryDto> dispenseInventoryList = westernMedicineDispenseMapper.
westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo);
if (!dispenseInventoryList.isEmpty()) { if(!dispenseInventoryList.isEmpty()){
MedicationDispense medicationDispense; MedicationDispense medicationDispense;
InventoryItem inventoryItem; InventoryItem inventoryItem;
for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) {
@@ -192,23 +189,28 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
// 库存表项目设定 // 库存表项目设定
inventoryItem = new InventoryItem(); inventoryItem = new InventoryItem();
// 库存数量 // 库存数量
if (dispenseInventoryDto.getDispenseUnitCode() if (dispenseInventoryDto.getDispenseUnitCode().equals(dispenseInventoryDto.
.equals(dispenseInventoryDto.getInventoryBaseUnitCode())) { getInventoryBaseUnitCode())) {
// id // id
inventoryItem.setId(dispenseInventoryDto.getInventoryId()); inventoryItem.setId(dispenseInventoryDto.getInventoryId());
// 包装数量 // 包装数量
inventoryItem.setBaseQuantity(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())); inventoryItem.setBaseQuantity(dispenseInventoryDto.getInventoryBaseQuantity().
min(new BigDecimal(dispenseInventoryDto.getDispenseQuantity())));
// 拆零数量拆零比×包装数量 // 拆零数量拆零比×包装数量
inventoryItem.setMinQuantity(dispenseInventoryDto.getPartPercent() inventoryItem.setMinQuantity(dispenseInventoryDto.getInventoryMinQuantity().
.multiply(new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))); min(dispenseInventoryDto.getPartPercent().multiply(
} else if (dispenseInventoryDto.getDispenseUnitCode() new BigDecimal(dispenseInventoryDto.getDispenseQuantity()))));
.equals(dispenseInventoryDto.getInventoryMinUnitCode())) { } 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()) inventoryItem.setBaseQuantity(dispenseInventoryDto.getInventoryBaseQuantity().min(
.divide(dispenseInventoryDto.getPartPercent(), RoundingMode.HALF_UP)); new BigDecimal(dispenseInventoryDto.getDispenseQuantity()).
divide(dispenseInventoryDto.getPartPercent(),RoundingMode.HALF_UP)));
} }
inventoryItemList.add(inventoryItem); inventoryItemList.add(inventoryItem);
} }
@@ -218,28 +220,28 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
// 库存更新 // 库存更新
iInventoryItemUpdFlg = iInventoryItemService.updateBatchById(inventoryItemList); iInventoryItemUpdFlg = iInventoryItemService.updateBatchById(inventoryItemList);
} }
return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg return iMedicationDispenseUpdFlg && iInventoryItemUpdFlg ?
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null))
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); : R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null));
} }
/** /**
* 作废 * 作废
*
* @param prescriptionNo 处方号 * @param prescriptionNo 处方号
* @param notPerformedReasonEnum 未发药原因 * @param notPerformedReasonEnum 未发药原因
* @return 处理结果 * @return 处理结果
*/ */
@Override @Override
public R<?> medicineCancel(String prescriptionNo, Integer notPerformedReasonEnum) { public R<?> medicineCancel(String prescriptionNo,
Integer notPerformedReasonEnum) {
List<MedicationDispense> medicationDispenseList = new ArrayList<>(); List<MedicationDispense> medicationDispenseList = new ArrayList<>();
boolean iMedicationDispenseUpdFlg = true; boolean iMedicationDispenseUpdFlg = true;
// 获取药品待发放记录 // 获取药品待发放记录
List<DispenseInventoryDto> dispenseInventoryList = List<DispenseInventoryDto> dispenseInventoryList = westernMedicineDispenseMapper.
westernMedicineDispenseMapper.selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo); selectDispenseInventoryInfoByPrescriptionNo(prescriptionNo);
if (!dispenseInventoryList.isEmpty()) { if(!dispenseInventoryList.isEmpty()){
MedicationDispense medicationDispense; MedicationDispense medicationDispense;
for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) { for (DispenseInventoryDto dispenseInventoryDto : dispenseInventoryList) {
@@ -260,7 +262,8 @@ public class WesternMedicineDispenseAppServiceImpl implements IWesternMedicineDi
// 药品发放更新 // 药品发放更新
iMedicationDispenseUpdFlg = iMedicationDispenseService.updateBatchById(medicationDispenseList); iMedicationDispenseUpdFlg = iMedicationDispenseService.updateBatchById(medicationDispenseList);
} }
return iMedicationDispenseUpdFlg ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null)) return iMedicationDispenseUpdFlg?
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null)); R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null))
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00010, null));
} }
} }

View File

@@ -3,12 +3,12 @@
*/ */
package com.openhis.web.pharmacymanage.dto; package com.openhis.web.pharmacymanage.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; 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 departmentName;
/** 项目类型 */
private String itemType;
/** 开单医生 */ /** 开单医生 */
private String doctorName; private String doctorName;

View File

@@ -35,7 +35,11 @@
T3.substance_text, T3.substance_text,
T3.allergen_flag, T3.allergen_flag,
T3.tenant_id, T3.tenant_id,
T3.price T3.item_type_code,
T3.yb_type,
T3.retail_price,
T3.purchase_price,
T3.maximum_retail_price
FROM FROM
( (
SELECT SELECT
@@ -69,7 +73,23 @@
T1.substance_text, T1.substance_text,
T1.allergen_flag, T1.allergen_flag,
T1.tenant_id, 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 FROM adm_device_definition T1
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
<where> <where>
@@ -81,4 +101,69 @@
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getOne" resultType="com.openhis.web.datadictionary.dto.DeviceManageDto">
SELECT
T1.id,
T1.bus_no,
T1.name,
T1.py_str,
T1.wb_str,
T1.category_code,
T1.type_code,
T1.unit_code,
T1.size,
T1.part_percent,
T1.min_unit_code,
T1.org_id,
T1.location_id,
T1.model_number,
T1.hvcm_flag,
T1.sales_unit_code,
T1.approval_number,
T1.yb_flag,
T1.yb_no,
T1.yb_match_flag,
T1.status_enum,
T1.manufacturer_id,
T1.manufacturer_text,
T1.supply_id,
T1.description,
T1.jurisdiction,
T1.version,
T1.substance_text,
T1.allergen_flag,
T1.tenant_id,
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
<where>
T1.delete_flag = '0'
AND T2.instance_table = 'adm_device_definition'
<if test="id!= null">
AND T2.id = #{id}
</if>
<if test="tenantId!= null">
AND T1.tenant_id = #{tenantId}
</if>
</where>
</select>
</mapper> </mapper>

View File

@@ -153,12 +153,16 @@
FROM adm_charge_item_definition T5 FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id
WHERE T7.condition_code = '2'--2:采购价 WHERE T7.condition_code = '2'--2:采购价
AND T5.instance_id = T2.medication_def_id
AND T5.instance_table = 'med_medication_definition'
) as purchase_price,--购入价 ) as purchase_price,--购入价
( (
SELECT T7.amount SELECT T7.amount
FROM adm_charge_item_definition T5 FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id LEFT JOIN adm_charge_item_def_detail T7 ON T7.definition_id = T5.id
WHERE T7.condition_code = '4'--4:限制 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--最高零售价 ) as maximum_retail_price--最高零售价
FROM med_medication_definition T1 FROM med_medication_definition T1
LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id

View File

@@ -189,9 +189,13 @@ public class CommonConstants {
*/ */
public interface DictName { public interface DictName {
/** /**
* 药品分类 * 器材
*/ */
String MED_CATEGORY_CODE = "med_category_code"; String MED_CATEGORY_CODE = "med_category_code";
/**
* 药品分类
*/
String DEVICE_CATEGORY_CODE = "device_category_code";
} }

View File

@@ -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 code;
private final String info; private final String info;

View File

@@ -87,7 +87,7 @@ public class DeviceDefinition extends HisBaseEntity {
private Integer ybMatchFlag; private Integer ybMatchFlag;
/** 状态 */ /** 状态 */
private PublicationStatus statusEnum; private Integer statusEnum;
/** 生产厂家 */ /** 生产厂家 */
private Long manufacturerId; private Long manufacturerId;

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request' import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询器材目录列表 // 查询器材目录列表
export function getDeviceList(query) { export function getDeviceList(query) {
@@ -14,8 +13,9 @@ export function getDeviceList(query) {
// 查询器材目录详细 // 查询器材目录详细
export function getDeviceOne(id) { export function getDeviceOne(id) {
return request({ return request({
url: '/data-dictionary/device/information-one/' + parseStrEmpty(id), url: '/data-dictionary/device/information-one',
method: 'get' method: 'get',
params: { id } // 确保参数正确传递
}) })
} }

View File

@@ -449,7 +449,7 @@ const filterNode = (value, data) => {
function getDiseaseTreatmentList() { function getDiseaseTreatmentList() {
getDiseaseTreatmentInit().then((response) => { getDiseaseTreatmentInit().then((response) => {
console.log(response, "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; statusFlagOptions.value = response.data.statusFlagOptions;
exeOrganizations.value = response.data.exeOrganizations; exeOrganizations.value = response.data.exeOrganizations;
}); });

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request' import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询诊疗目录列表 // 查询诊疗目录列表
export function getDiagnosisTreatmentList(query) { 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() { export function getDiseaseTreatmentInit() {
return request({ return request({

View File

@@ -354,7 +354,7 @@
</div> </div>
</template> </template>
<script setup name="DiagnosisTreatment"> <script setup name="DiagnosisTreatment">
import { import {
getDiagnosisTreatmentList, getDiagnosisTreatmentList,
stopDiseaseTreatment, stopDiseaseTreatment,
@@ -414,7 +414,7 @@ function getDiseaseTreatmentList() {
getDiseaseTreatmentInit().then((response) => { getDiseaseTreatmentInit().then((response) => {
console.log(response, "response器材目录分类查询下拉树结构"); console.log(response, "response器材目录分类查询下拉树结构");
diseaseTreatmentCategoryList.value = diseaseTreatmentCategoryList.value =
response.data.diseaseTreatmentCategoryList; response.data.diseaseTreatmentCategoryList.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) });
statusFlagOptions.value = response.data.statusFlagOptions; statusFlagOptions.value = response.data.statusFlagOptions;
exeOrganizations.value = response.data.exeOrganizations; exeOrganizations.value = response.data.exeOrganizations;
typeEnumOptions.value = response.data.typeEnumOptions; typeEnumOptions.value = response.data.typeEnumOptions;

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request' import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询病种目录列表 // 查询病种目录列表
export function getDiseaseList(query) { export function getDiseaseList(query) {
@@ -13,8 +12,9 @@ export function getDiseaseList(query) {
// 查询病种目录详细 // 查询病种目录详细
export function getDiseaseOne(id) { export function getDiseaseOne(id) {
return request({ return request({
url: '/data-dictionary/disease/information-one/' + parseStrEmpty(id), url: '/data-dictionary/disease/information-one',
method: 'get' method: 'get',
params: { id } // 确保参数正确传递
}) })
} }

View File

@@ -192,14 +192,14 @@
v-hasPermi="['system:user:edit']" v-hasPermi="['system:user:edit']"
>编辑</el-button >编辑</el-button
> >
<el-button <!-- <el-button
link link
type="primary" type="primary"
icon="View" icon="View"
@click="handleView(scope.row)" @click="handleView(scope.row)"
v-hasPermi="['system:user:remove']" v-hasPermi="['system:user:remove']"
>查看</el-button >查看</el-button
> > -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -332,7 +332,6 @@ import {
startDisease, startDisease,
} from "./components/disease"; } from "./components/disease";
const router = useRouter();
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const diseaseList = ref([]); const diseaseList = ref([]);
@@ -348,9 +347,6 @@ const conditionDefinitionOptions = ref(undefined);
const conditionDefinition = ref(undefined); const conditionDefinition = ref(undefined);
// 是否停用 // 是否停用
const statusFlagOptions = ref(undefined); const statusFlagOptions = ref(undefined);
// const initPassword = ref(undefined);
// const postOptions = ref([]);
// const roleOptions = ref([]);
const data = reactive({ const data = reactive({
form: {}, form: {},
@@ -366,15 +362,6 @@ const data = reactive({
conditionCode: [ conditionCode: [
{ required: true, message: "编码不能为空", trigger: "blur" }, { required: true, message: "编码不能为空", trigger: "blur" },
], ],
// typeCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
// description: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
// conditionCode: [
// { required: true, message: "编码不能为空", trigger: "blur" },
// ],
}, },
}); });
@@ -385,29 +372,23 @@ const filterNode = (value, data) => {
if (!value) return true; if (!value) return true;
return data.label.indexOf(value) !== -1; return data.label.indexOf(value) !== -1;
}; };
// /** 根据名称筛选部门树 */
// watch(deptName, val => {
// proxy.$refs["deptTreeRef"].filter(val);
// });
/** 病种目录分类查询下拉树结构 */ /** 病种目录分类查询下拉树结构 */
function getDiseaseCategoryList() { function getDiseaseCategoryList() {
getDiseaseCategory().then((response) => { getDiseaseCategory().then((response) => {
console.log(response, "response病种目录分类查询下拉树结构"); console.log(response, "response病种目录分类查询下拉树结构");
conditionDefinitionOptions.value = response.data.diseaseCategoryList; conditionDefinitionOptions.value = response.data.diseaseCategoryList.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) });
statusFlagOptions.value = response.data.statusFlagOptions; statusFlagOptions.value = response.data.statusFlagOptions;
}); });
} }
/** 查询病种目录列表 */ /** 查询病种目录列表 */
function getList() { function getList() {
loading.value = true; loading.value = true;
// queryParams.value.statusEnum = +queryParams.value.statusEnum
console.log(queryParams.value, "queryParams.value");
getDiseaseList(queryParams.value).then((res) => { getDiseaseList(queryParams.value).then((res) => {
loading.value = false; loading.value = false;
console.log(res, "res");
diseaseList.value = res.data.records; diseaseList.value = res.data.records;
total.value = res.data.total; total.value = res.data.total;
console.log(total.value, "total.value"); console.log(total.value, "total.value", res, "res");
}); });
} }
/** 节点单击事件 */ /** 节点单击事件 */
@@ -421,14 +402,7 @@ function handleQuery() {
queryParams.value.pageNo = 1; queryParams.value.pageNo = 1;
getList(); getList();
} }
// /** 重置按钮操作 */
// function resetQuery() {
// dateRange.value = [];
// proxy.resetForm("queryRef");
// queryParams.value.deptId = undefined;
// proxy.$refs.deptTreeRef.setCurrentKey(null);
// handleQuery();
// };
/** 启用按钮操作 */ /** 启用按钮操作 */
function handleStart(row) { function handleStart(row) {
const stardIds = row.id || ids.value; const stardIds = row.id || ids.value;
@@ -467,22 +441,9 @@ function handleExport() {
`user_${new Date().getTime()}.xlsx` `user_${new Date().getTime()}.xlsx`
); );
} }
// /** 用户状态修改 */
// function handleStatusChange(row) {
// let text = row.status === "0" ? "启用" : "停用";
// proxy.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
// return changeUserStatus(row.userId, row.status);
// }).then(() => {
// proxy.$modal.msgSuccess(text + "成功");
// }).catch(function () {
// row.status = row.status === "0" ? "1" : "0";
// });
// };
/** 选择条数 */ /** 选择条数 */
function handleSelectionChange(selection) { function handleSelectionChange(selection) {
console.log(selection, "selection");
// selectedData.value = selection.map((item) => ({ ...item })); // 存储选择的行数据
ids.value = selection.map((item) => item.id); ids.value = selection.map((item) => item.id);
single.value = selection.length != 1; single.value = selection.length != 1;
multiple.value = !selection.length; multiple.value = !selection.length;
@@ -522,14 +483,19 @@ function handleAdd() {
/** 修改按钮操作 */ /** 修改按钮操作 */
function handleUpdate(row) { function handleUpdate(row) {
reset(); reset();
console.log(row, "row"); getDiseaseOne(row.id).then((response) => {
form.value = JSON.parse(JSON.stringify(row)); console.log(response, "responsebbbb", row.id);
form.value.ybFlag == 1 form.value = response.data;
? (form.value.ybFlag = true) form.value.ybFlag == 1
: (form.value.ybFlag = false); ? (form.value.ybFlag = true)
form.value.ybMatchFlag == 1 : (form.value.ybFlag = false);
? (form.value.ybMatchFlag = true) form.value.ybMatchFlag == 1
: (form.value.ybMatchFlag = false); ? (form.value.ybMatchFlag = true)
: (form.value.ybMatchFlag = false);
// getList();
});
// console.log(row, "row");
// form.value = JSON.parse(JSON.stringify(row));
open.value = true; open.value = true;
title.value = "病种编辑"; title.value = "病种编辑";
} }
@@ -543,9 +509,6 @@ function submitForm() {
? (form.value.ybMatchFlag = 1) ? (form.value.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0); : (form.value.ybMatchFlag = 0);
if (form.value.id != undefined) { if (form.value.id != undefined) {
// form.value.status
// ? (form.value.statusEnum = "3")
// : (form.value.statusEnum = "2");
console.log(form.value, "editDisease", form.value.statusEnum); console.log(form.value, "editDisease", form.value.statusEnum);
editDisease(form.value).then((response) => { editDisease(form.value).then((response) => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess("修改成功");

View File

@@ -1,5 +1,4 @@
import request from '@/utils/request' import request from '@/utils/request'
import { parseStrEmpty } from "@/utils/openhis";
// 查询药品目录列表 // 查询药品目录列表
export function getMedicationList(query) { export function getMedicationList(query) {

View File

@@ -291,9 +291,9 @@
<el-input v-model="form.version" placeholder="" /> <el-input v-model="form.version" placeholder="" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6" v-if="form.id != undefined">
<el-form-item label="药品编号" prop="busNo"> <el-form-item label="药品编号" prop="busNo">
<el-input v-model="form.busNo" placeholder="" /> <el-input v-model="form.busNo" placeholder="" disabled/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@@ -737,7 +737,10 @@ const data = reactive({
thoPartAttributeEnum:[{ required: true, message: "住院临时医嘱拆分属性不能为空", trigger: "blur" }], thoPartAttributeEnum:[{ required: true, message: "住院临时医嘱拆分属性不能为空", trigger: "blur" }],
basicFlag:[{ required: true, message: "基药标识不能为空", trigger: "blur" }], basicFlag:[{ required: true, message: "基药标识不能为空", trigger: "blur" }],
antibioticFlag:[{ required: true, message: "抗生素不能为空", trigger: "blur" }], antibioticFlag:[{ required: true, message: "抗生素不能为空", trigger: "blur" }],
selfFlag:[{ required: true, message: "自制不能为空", trigger: "blur" }] selfFlag:[{ required: true, message: "自制不能为空", trigger: "blur" }],
purchasePrice:[{ required: true, message: "购入价不能为空", trigger: "blur" }],
retailPrice:[{ required: true, message: "零售价不能为空", trigger: "blur" }],
maximumRetailPrice:[{ required: true, message: "最高零售价不能为空", trigger: "blur" }],
}, },
}); });
@@ -936,6 +939,32 @@ function reset() {
} }
/** 提交按钮 */ /** 提交按钮 */
function submitForm() { function submitForm() {
form.value.activeFlag == true
? (form.value.activeFlag = 1)
: (form.value.activeFlag = 0); //是否为活性
form.value.ybMatchFlag == true
? (form.value.ybMatchFlag = 1)
: (form.value.ybMatchFlag = 0); //医保是否对码
form.value.skinTestFlag == true
? (form.value.skinTestFlag = 1)
: (form.value.skinTestFlag = 0); //是否皮试
form.value.injectFlag == true
? (form.value.injectFlag = 1)
: (form.value.injectFlag = 0); //是否为注射药物
form.value.restrictedFlag == true
? (form.value.restrictedFlag = 1)
: (form.value.restrictedFlag = 0); //是否限制使用
form.value.childrenFlag == true
? (form.value.childrenFlag = 1)
: (form.value.childrenFlag = 0); //儿童用药标志
form.value.antibioticFlag == true
? (form.value.antibioticFlag = 1)
: (form.value.antibioticFlag = 0); //抗生素标志v
form.value.basicFlag == true
? (form.value.basicFlag = 1)
: (form.value.basicFlag = 0); //抗生素标志
form.value.selfFlag == true ? (form.value.selfFlag = 1) : (form.value.selfFlag = 0); //自制标志
form.value.status == true ? (form.value.status = 1) : (form.value.status = 0); //启用状态
proxy.$refs["medicationRef"].validate((valid) => { proxy.$refs["medicationRef"].validate((valid) => {
if (valid) { if (valid) {
if (form.value.activeFlag == true) { if (form.value.activeFlag == true) {

View File

@@ -732,7 +732,7 @@ const filterNode = (value, data) => {
function getMedicationCategoryList() { function getMedicationCategoryList() {
getMedicationCategory().then((response) => { getMedicationCategory().then((response) => {
console.log(response, "response药品目录分类查询下拉树结构"); console.log(response, "response药品目录分类查询下拉树结构");
medicationOptions.value = response.data.medicationCategoryCodeOptions; medicationOptions.value = response.data.medicationCategoryCodeOptions.sort((a, b) => { return parseInt(a.value) - parseInt(b.value) });
statusFlagOptions.value = response.data.statusFlagOptions; statusFlagOptions.value = response.data.statusFlagOptions;
domainEnumOptions.value = response.data.domainFlagOptions; domainEnumOptions.value = response.data.domainFlagOptions;
supplierListOptions.value = response.data.supplierListOptions; supplierListOptions.value = response.data.supplierListOptions;
@@ -844,32 +844,6 @@ function openViewMedicine(row) {
/** 提交按钮 */ /** 提交按钮 */
function submitForm(formData) { function submitForm(formData) {
formData.activeFlag == true
? (formData.activeFlag = 1)
: (formData.activeFlag = 0); //是否为活性
formData.ybMatchFlag == true
? (formData.ybMatchFlag = 1)
: (formData.ybMatchFlag = 0); //医保是否对码
formData.skinTestFlag == true
? (formData.skinTestFlag = 1)
: (formData.skinTestFlag = 0); //是否皮试
formData.injectFlag == true
? (formData.injectFlag = 1)
: (formData.injectFlag = 0); //是否为注射药物
formData.restrictedFlag == true
? (formData.restrictedFlag = 1)
: (formData.restrictedFlag = 0); //是否限制使用
formData.childrenFlag == true
? (formData.childrenFlag = 1)
: (formData.childrenFlag = 0); //儿童用药标志
formData.antibioticFlag == true
? (formData.antibioticFlag = 1)
: (formData.antibioticFlag = 0); //抗生素标志
formData.basicFlag == true
? (formData.basicFlag = 1)
: (formData.basicFlag = 0); //抗生素标志
formData.selfFlag == true ? (formData.selfFlag = 1) : (formData.selfFlag = 0); //自制标志
formData.status == true ? (formData.status = 1) : (formData.status = 0); //启用状态
console.log(formData, "submitForm"); console.log(formData, "submitForm");
if (formData.id != undefined) { if (formData.id != undefined) {
editMedication(formData).then((response) => { editMedication(formData).then((response) => {