Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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);
|
||||||
|
//
|
||||||
/**
|
/**
|
||||||
* 修改项目定价表
|
* 修改项目定价表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改项目定价表
|
* 修改项目定价表
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -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[] {"药品目录"}))
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -86,7 +86,6 @@ public class MedicationManageUpDto {
|
|||||||
private String definition;
|
private String definition;
|
||||||
|
|
||||||
/** 药品编号 */
|
/** 药品编号 */
|
||||||
@NotBlank(message = "药品编号不能为空")
|
|
||||||
private String busNo;
|
private String busNo;
|
||||||
|
|
||||||
/** 药品名称 */
|
/** 药品名称 */
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 } // 确保参数正确传递
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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 } // 确保参数正确传递
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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("修改成功");
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user