版本更新
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageUpDto;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* 器材目录 service
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-03-10
|
||||
*/
|
||||
public interface IDeviceManageAppService {
|
||||
|
||||
/**
|
||||
* 器材目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
R<?> getDeviceManageInit();
|
||||
|
||||
/**
|
||||
* 器材目录查询
|
||||
*
|
||||
* @param deviceManageSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 器材目录查询结果
|
||||
*/
|
||||
R<?> getDevicePage(DeviceManageSelParam deviceManageSelParam, String searchKey, Integer pageNo, Integer pageSize,
|
||||
HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 添加器材目录信息
|
||||
*
|
||||
* @param deviceManageUpDto 器材目录信息
|
||||
*/
|
||||
R<?> addDevice(DeviceManageUpDto deviceManageUpDto);
|
||||
|
||||
/**
|
||||
* 编辑供应商信息
|
||||
*
|
||||
* @param deviceManageDto 器材目录信息
|
||||
*/
|
||||
R<?> editDevice(DeviceManageUpDto deviceManageDto);
|
||||
|
||||
/**
|
||||
* 器材目录详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 器材目录查询结果
|
||||
*/
|
||||
R<?> getDeviceOne(@RequestParam Long id);
|
||||
|
||||
/**
|
||||
* 器材目录停用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDeviceStop(@RequestBody List<Long> ids);
|
||||
|
||||
/**
|
||||
* 器材目录启用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDeviceStart(@RequestBody List<Long> ids);
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
|
||||
|
||||
/**
|
||||
* 诊疗目录
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/28
|
||||
*/
|
||||
public interface IDiagTreatMAppService {
|
||||
|
||||
/**
|
||||
* 诊疗目录初期查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseTreatmentInit();
|
||||
|
||||
/**
|
||||
* 查询诊疗目录分页列表
|
||||
*
|
||||
* @param DiagnosisTreatmentSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam, String searchKey,
|
||||
Integer pageNo, Integer pageSize, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 根据id查询诊疗详情
|
||||
*
|
||||
* @param id 诊疗ID
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseTreatmentOne(Long id);
|
||||
|
||||
/**
|
||||
* 诊疗目录编辑
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto);
|
||||
|
||||
/**
|
||||
* 诊疗目录停用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDiseaseTreatmentStop(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 诊疗目录启用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDiseaseTreatmentStart(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 新增外来诊疗目录
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录
|
||||
* @return
|
||||
*/
|
||||
R<?> addDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
|
||||
|
||||
/**
|
||||
* 病种目录
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/30
|
||||
*/
|
||||
public interface IDiseaseManageAppService {
|
||||
|
||||
/**
|
||||
* 病种目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseInit();
|
||||
|
||||
/**
|
||||
* 查询病种目录分页列表
|
||||
*
|
||||
* @param diseaseManageSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo, Integer pageSize,
|
||||
HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 根据id查询疾病详情
|
||||
*
|
||||
* @param id 疾病ID
|
||||
* @return
|
||||
*/
|
||||
R<?> getDiseaseOne(Long id);
|
||||
|
||||
/**
|
||||
* 病种目录编辑
|
||||
*
|
||||
* @param diseaseManageDto 病种目录列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDisease(DiseaseManageUpDto diseaseManageDto);
|
||||
|
||||
/**
|
||||
* 病种目录停用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDiseaseStop(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 病种目录启用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editDiseaseStart(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 新增外来病种目录
|
||||
*
|
||||
* @param diseaseManageUpDto 病种目录
|
||||
* @return
|
||||
*/
|
||||
R<?> addDisease(DiseaseManageUpDto diseaseManageUpDto);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import com.openhis.administration.domain.ChargeItemDefDetail;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目定价
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/25
|
||||
*/
|
||||
public interface IItemDefinitionService {
|
||||
|
||||
/**
|
||||
* 添加药品/器材/诊疗的项目定价
|
||||
*
|
||||
* @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息
|
||||
*/
|
||||
boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto);
|
||||
|
||||
/**
|
||||
* 修改项目定价表
|
||||
*
|
||||
* @param chargeItemDefinition 项目定价表信息
|
||||
*/
|
||||
boolean updateItem(ChargeItemDefinition chargeItemDefinition);
|
||||
|
||||
/**
|
||||
* 修改项目定价表子信息
|
||||
*
|
||||
* @param chargeItemDefinition 项目定价表信息
|
||||
* @param price 价格
|
||||
* @param conditionCode 条件
|
||||
*/
|
||||
boolean updateItemDetail(ChargeItemDefinition chargeItemDefinition, BigDecimal price,String conditionCode);
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
|
||||
import com.openhis.web.datadictionary.dto.MedicationSearchParam;
|
||||
|
||||
/**
|
||||
* 药品目录 service
|
||||
*
|
||||
* @author
|
||||
* @date 2025-03-17
|
||||
*/
|
||||
public interface IMedicationManageAppService {
|
||||
/**
|
||||
* 初始化药品目录信息
|
||||
*
|
||||
*/
|
||||
R<?> getMedicationInit();
|
||||
|
||||
/**
|
||||
* 药品目录查询
|
||||
*
|
||||
* @param searchKey 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 药品目录查询结果
|
||||
*/
|
||||
R<?> getMedicationList(MedicationSearchParam medicationSearchParam, String searchKey, Integer pageNo,
|
||||
Integer pageSize, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 药品目录详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 药品目录查询结果
|
||||
*/
|
||||
R<?> getMedicationOne(@RequestParam Long id);
|
||||
|
||||
/**
|
||||
* 编辑药品目录信息
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
*/
|
||||
R<?> editMedication(MedicationManageUpDto medicationManageUpDto);
|
||||
|
||||
/**
|
||||
* 药品目录停用
|
||||
*
|
||||
* @param ids 药品目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editMedicationStop(@RequestBody List<Long> ids);
|
||||
|
||||
/**
|
||||
* 药品目录启用
|
||||
*
|
||||
* @param ids 药品目录ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editMedicationStart(@RequestBody List<Long> ids);
|
||||
|
||||
/**
|
||||
* 添加药品目录信息
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
*/
|
||||
R<?> addMedication(MedicationManageUpDto medicationManageUpDto);
|
||||
|
||||
R<?> exportMedication(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag,
|
||||
@RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum,
|
||||
@RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response);
|
||||
|
||||
/**
|
||||
* 导入药品目录
|
||||
*
|
||||
* @param file 文件
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> importData(MultipartFile file);
|
||||
|
||||
/**
|
||||
* 获取导入模板
|
||||
*
|
||||
* @param response 响应
|
||||
*/
|
||||
void importTemplate(HttpServletResponse response);
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.SupplierSearchParam;
|
||||
import com.openhis.web.datadictionary.dto.SupplierUpDto;
|
||||
|
||||
/**
|
||||
* 厂商/产地 service
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-03-10
|
||||
*/
|
||||
public interface ISupplierManagementAppService {
|
||||
|
||||
/**
|
||||
* 厂商/产地初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-init")
|
||||
R<?> getSupplierInit();
|
||||
|
||||
/**
|
||||
* 厂商/产地查询
|
||||
*
|
||||
* @param supplierSearchParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param typeEnum 查询条件
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
R<?> getSupplierList(SupplierSearchParam supplierSearchParam, String searchKey,Integer typeEnum, Integer pageNo, Integer pageSize,
|
||||
HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 添加供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
R<?> addSupplyRequest(SupplierUpDto supplierUpDto);
|
||||
|
||||
/**
|
||||
* 编辑供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
R<?> editSupplyRequest(SupplierUpDto supplierUpDto);
|
||||
|
||||
/**
|
||||
* 厂商/产地详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
R<?> getSupplierDetail(Long id);
|
||||
|
||||
/**
|
||||
* 厂商/产地停用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editSupplierStop(@RequestBody List<Long> ids);
|
||||
|
||||
/**
|
||||
* 厂商/产地启用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
R<?> editSupplierStart(@RequestBody List<Long> ids);
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.openhis.web.datadictionary.appservice;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDetailDto;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDto;
|
||||
|
||||
/**
|
||||
* 项目定价 应用Service
|
||||
*/
|
||||
public interface ItemDefinitionAppService {
|
||||
|
||||
/**
|
||||
* 项目定价 分页
|
||||
*
|
||||
* @param itemDefinitionDto dto
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param chargeItemContext 收费项目类型
|
||||
* @param pageNo 当前页
|
||||
* @param pageSize 每页多少条
|
||||
* @return 项目定价
|
||||
*/
|
||||
IPage<ItemDefinitionDto> getChargeItemInfo(ItemDefinitionDto itemDefinitionDto, Integer chargeItemContext,
|
||||
String searchKey, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 项目定价详细
|
||||
*
|
||||
* @param id id
|
||||
* @return 项目定价详细
|
||||
*/
|
||||
List<ItemDefinitionDetailDto> getChargeItemInfoDetail(Long id);
|
||||
|
||||
/**
|
||||
* 改价
|
||||
*
|
||||
* @param id id
|
||||
* @param price 价格
|
||||
* @return 结果
|
||||
*/
|
||||
R<?> updateChargeItemInfo(Long id, BigDecimal price);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,366 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.core.domain.entity.SysDictData;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.core.system.service.ISysDictTypeService;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.domain.DeviceDefinition;
|
||||
import com.openhis.administration.domain.Supplier;
|
||||
import com.openhis.administration.service.IDeviceDefinitionService;
|
||||
import com.openhis.administration.service.ISupplierService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.sys.service.IOperationRecordService;
|
||||
import com.openhis.web.datadictionary.appservice.IDeviceManageAppService;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import com.openhis.web.datadictionary.dto.*;
|
||||
import com.openhis.web.datadictionary.mapper.DeviceManageMapper;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
import com.openhis.yb.service.YbManager;
|
||||
|
||||
/**
|
||||
* 器材目录 impl
|
||||
*
|
||||
* @author
|
||||
* @date 2025-03-17
|
||||
*/
|
||||
@Service
|
||||
public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
|
||||
|
||||
@Autowired
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IDeviceDefinitionService deviceDefinitionService;
|
||||
|
||||
@Resource
|
||||
private DeviceManageMapper deviceManageMapper;
|
||||
|
||||
@Autowired
|
||||
private ISysDictTypeService sysDictTypeService;
|
||||
|
||||
@Autowired
|
||||
private IItemDefinitionService itemDefinitionServic;
|
||||
|
||||
@Autowired
|
||||
private ISupplierService supplierService;
|
||||
|
||||
@Autowired(required = false)
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Autowired
|
||||
private YbManager ybService;
|
||||
|
||||
@Autowired
|
||||
private IOperationRecordService iOperationRecordService;
|
||||
|
||||
/**
|
||||
* 器材目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDeviceManageInit() {
|
||||
|
||||
DeviceManageInitDto deviceManageInitDto = new DeviceManageInitDto();
|
||||
|
||||
// 获取状态
|
||||
List<DeviceManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
|
||||
.map(status -> new DeviceManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
deviceManageInitDto.setStatusFlagOptions(statusEnumOptions);
|
||||
|
||||
// // 获取执行科室
|
||||
// LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT);
|
||||
// List<Organization> organizations = organizationService.list(queryWrapper);
|
||||
// List<DeviceManageInitDto.exeOrganization> exeOrganizations = organizations.stream()
|
||||
// .map(exeOrg -> new DeviceManageInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
|
||||
// .collect(Collectors.toList());
|
||||
// deviceManageInitDto.setExeOrganizations(exeOrganizations);
|
||||
// // 从枚举中获取器材分类
|
||||
// List<DeviceManageInitDto.deviceCategory> deviceCategories = Stream.of(DeviceCategory.values())
|
||||
// .map(category -> new DeviceManageInitDto.deviceCategory(category.getValue(), category.getInfo()))
|
||||
// .collect(Collectors.toList());
|
||||
// deviceManageInitDto.setDeviceCategories(deviceCategories);
|
||||
|
||||
// 获取器材
|
||||
List<SysDictData> deviceList =
|
||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DEVICE_CATEGORY_CODE);
|
||||
// 从字典中获取器材分类
|
||||
List<DeviceManageInitDto.dictCategoryCode> deviceCategories = deviceList.stream()
|
||||
.map(category -> new DeviceManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
||||
.collect(Collectors.toList());
|
||||
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);
|
||||
|
||||
// 查询供应商列表
|
||||
List<Supplier> supplierList = supplierService.getList();
|
||||
// 供应商信息
|
||||
List<DeviceManageInitDto.supplierListOption> supplierListOptions = supplierList.stream()
|
||||
.map(supplier -> new DeviceManageInitDto.supplierListOption(supplier.getId(), supplier.getName()))
|
||||
.collect(Collectors.toList());
|
||||
deviceManageInitDto.setSupplierListOptions(supplierListOptions);
|
||||
|
||||
return R.ok(deviceManageInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录查询
|
||||
*
|
||||
* @param
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 器材目录查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDevicePage(DeviceManageSelParam deviceManageSelParam, String searchKey, Integer pageNo,
|
||||
Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<DeviceManageDto> queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey,
|
||||
new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
||||
|
||||
// 分页查询
|
||||
IPage<DeviceManageDto> deviceManagePage =
|
||||
deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
|
||||
deviceManagePage.getRecords().forEach(e -> {
|
||||
// 高值器材标志枚举类回显赋值
|
||||
e.setHvcmFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getHvcmFlag()));
|
||||
// 医保标记枚举类回显赋值
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
|
||||
// 医保对码标记枚举类回显赋值
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
|
||||
// 过敏标记枚举类回显赋值
|
||||
e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAllergenFlag()));
|
||||
// 器材分类
|
||||
// e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(DeviceCategory.class, e.getCategoryEnum()));
|
||||
|
||||
// 器材状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
|
||||
});
|
||||
|
||||
// 返回【器材目录列表DTO】分页
|
||||
return R.ok(deviceManagePage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑器材信息
|
||||
*
|
||||
* @param deviceManageDto 器材信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDevice(DeviceManageUpDto deviceManageDto) {
|
||||
// // 校验是否可以编辑
|
||||
// boolean result = supplyRequestService.verifyAbleEdit(deviceManageDto.getId());
|
||||
// if (result) {
|
||||
// return R.fail("该耗材已经发生过业务,不可编辑");
|
||||
// }
|
||||
DeviceDefinition deviceDefinition = new DeviceDefinition();
|
||||
BeanUtils.copyProperties(deviceManageDto, deviceDefinition);
|
||||
// 拼音码
|
||||
deviceDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(deviceDefinition.getName()));
|
||||
// 五笔码
|
||||
deviceDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(deviceDefinition.getName()));
|
||||
|
||||
// 更新器材信息
|
||||
if (deviceDefinitionService.updateById(deviceDefinition)) {
|
||||
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||
R<?> r =
|
||||
ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
chargeItemDefinition.setYbType(deviceManageDto.getYbType()).setTypeCode(deviceManageDto.getItemTypeCode())
|
||||
.setInstanceTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION)
|
||||
.setInstanceId(deviceDefinition.getId()).setPrice(deviceManageDto.getRetailPrice())
|
||||
.setChargeName(deviceManageDto.getName());;
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
|
||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition);
|
||||
// 更新价格表
|
||||
boolean upItemDef = itemDefinitionServic.updateItem(chargeItemDefinition);
|
||||
|
||||
// 更新子表,修改购入价,条件:采购
|
||||
boolean upItemDetail1 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
deviceManageDto.getPurchasePrice(), ConditionCode.PURCHASE.getCode());
|
||||
// 更新子表,修改零售价,条件:单位
|
||||
boolean upItemDetail2 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
deviceManageDto.getRetailPrice(), ConditionCode.UNIT.getCode());
|
||||
// 更新子表,修改最高零售价,条件:限制
|
||||
boolean upItemDetail3 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
deviceManageDto.getMaximumRetailPrice(), ConditionCode.LIMIT.getCode());
|
||||
|
||||
// 更新价格表
|
||||
return upItemDef && upItemDetail1 && upItemDetail2 && upItemDetail3
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 器材目录查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDeviceOne(@RequestParam Long id) {
|
||||
|
||||
// 获取租户ID
|
||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||
// 根据ID查询【器材目录】
|
||||
DeviceManageDto deviceManageDto = deviceManageMapper.getOne(id, tenantId);
|
||||
|
||||
return R.ok(deviceManageDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录停用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDeviceStop(List<Long> ids) {
|
||||
|
||||
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
DeviceDefinition deviceDefinition = new DeviceDefinition();
|
||||
deviceDefinition.setId(detail);
|
||||
deviceDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
|
||||
DeviceDefinitionList.add(deviceDefinition);
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
|
||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION, ids);
|
||||
|
||||
// 更新器材信息
|
||||
return deviceDefinitionService.updateBatchById(DeviceDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录启用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDeviceStart(List<Long> ids) {
|
||||
|
||||
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
DeviceDefinition DeviceDefinition = new DeviceDefinition();
|
||||
DeviceDefinition.setId(detail);
|
||||
DeviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
DeviceDefinitionList.add(DeviceDefinition);
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
|
||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION, ids);
|
||||
|
||||
// 更新器材信息
|
||||
return deviceDefinitionService.updateBatchById(DeviceDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"器材目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加供应商信息
|
||||
*
|
||||
* @param deviceManageUpDto 供应商信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> addDevice(@Validated @RequestBody DeviceManageUpDto deviceManageUpDto) {
|
||||
|
||||
DeviceDefinition deviceDefinition = new DeviceDefinition();
|
||||
BeanUtils.copyProperties(deviceManageUpDto, deviceDefinition);
|
||||
|
||||
// 使用10位数基础采番
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.DEVICE_NUM.getPrefix(), 10);
|
||||
deviceDefinition.setBusNo(code);
|
||||
// 拼音码
|
||||
deviceDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(deviceDefinition.getName()));
|
||||
// 五笔码
|
||||
deviceDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(deviceDefinition.getName()));
|
||||
|
||||
// 新增外来器材目录
|
||||
deviceDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
|
||||
if (deviceDefinitionService.addDevice(deviceDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(deviceDefinition.getYbNo())) {
|
||||
R<?> r =
|
||||
ybService.directoryCheck(CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
|
||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition);
|
||||
|
||||
ItemUpFromDirectoryDto itemUpFromDirectoryDto = new ItemUpFromDirectoryDto();
|
||||
BeanUtils.copyProperties(deviceManageUpDto, itemUpFromDirectoryDto);
|
||||
itemUpFromDirectoryDto.setTypeCode(deviceManageUpDto.getItemTypeCode())
|
||||
.setInstanceTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION)
|
||||
.setEffectiveStart(DateUtils.getNowDate()).setStatusEnum(PublicationStatus.ACTIVE.getValue())
|
||||
.setConditionFlag(Whether.YES.getValue()).setChargeName(deviceManageUpDto.getName())
|
||||
.setInstanceId(deviceDefinition.getId()).setPrice(deviceManageUpDto.getRetailPrice());
|
||||
|
||||
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));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,390 @@
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.openhis.yb.service.YbManager;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.core.domain.entity.SysDictData;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.core.system.service.ISysDictTypeService;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.administration.service.IOrganizationService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.sys.service.IOperationRecordService;
|
||||
import com.openhis.web.common.appservice.ICommonService;
|
||||
import com.openhis.web.datadictionary.appservice.IDiagTreatMAppService;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import com.openhis.web.datadictionary.dto.*;
|
||||
import com.openhis.web.datadictionary.mapper.ActivityDefinitionManageMapper;
|
||||
import com.openhis.workflow.domain.ActivityDefinition;
|
||||
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
|
||||
import com.openhis.workflow.service.IActivityDefinitionService;
|
||||
|
||||
/**
|
||||
* 诊疗实现类
|
||||
*
|
||||
* @author Wuser
|
||||
* @date 2025/3/28
|
||||
*/
|
||||
@Service
|
||||
public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
|
||||
|
||||
@Autowired
|
||||
private IActivityDefinitionService iActivityDefinitionService;
|
||||
@Autowired
|
||||
private ActivityDefinitionMapper activityDefinitionMapper;
|
||||
@Autowired
|
||||
private IOrganizationService iOrganizationService;
|
||||
@Autowired
|
||||
private ISysDictTypeService iSysDictTypeService;
|
||||
@Resource
|
||||
private ActivityDefinitionManageMapper activityDefinitionManageMapper;
|
||||
@Autowired
|
||||
private IItemDefinitionService itemDefinitionServic;
|
||||
@Autowired
|
||||
private ISysDictTypeService sysDictTypeService;
|
||||
|
||||
@Autowired
|
||||
private ICommonService commonService;
|
||||
|
||||
@Autowired(required = false)
|
||||
AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Autowired
|
||||
YbManager ybService;
|
||||
|
||||
@Autowired
|
||||
IOperationRecordService iOperationRecordService;
|
||||
|
||||
/**
|
||||
* 诊疗目录初期查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDiseaseTreatmentInit() {
|
||||
DiagnosisTreatmentInitDto diagnosisTreatmentInitDto = new DiagnosisTreatmentInitDto();
|
||||
// 获取状态
|
||||
List<DiagnosisTreatmentInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
|
||||
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setStatusFlagOptions(statusEnumOptions);
|
||||
// 获取执行科室
|
||||
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.DEPARTMENT);
|
||||
List<Organization> organizations = iOrganizationService.list(queryWrapper);
|
||||
List<DiagnosisTreatmentInitDto.exeOrganization> exeOrganizations = organizations.stream()
|
||||
.map(exeOrg -> new DiagnosisTreatmentInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
|
||||
|
||||
// 获取诊目录疗分类
|
||||
List<SysDictData> diagnosisList =
|
||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.DIAGNOSIS_CATEGORY_CODE);
|
||||
// 获取诊疗录疗分类
|
||||
List<DiagnosisTreatmentInitDto.dictCategoryCode> diagnosisCategories = diagnosisList.stream()
|
||||
.map(category -> new DiagnosisTreatmentInitDto.dictCategoryCode(category.getDictValue(),
|
||||
category.getDictLabel()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setDiagnosisCategoryOptions(diagnosisCategories);
|
||||
|
||||
// 查询医疗服务项类型
|
||||
List<SysDictData> medical_service_items =
|
||||
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getCode());
|
||||
// 获取医疗服务项List
|
||||
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList = medical_service_items
|
||||
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
|
||||
status.getDictLabel()))
|
||||
.collect(Collectors.toList());
|
||||
List<DiagnosisTreatmentInitDto.diseaseTreatmentCategory> diseaseTreatmentCategories = new ArrayList<>();
|
||||
//
|
||||
// //获取目录分类
|
||||
// DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory =
|
||||
// new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getValue(),
|
||||
// ActivityDefCategory.MEDICAL_SERVICE_ITEM.getInfo());
|
||||
// diseaseTreatmentCategory.setChildren(diseaseTreatmentCategoryList);
|
||||
// diseaseTreatmentCategories.add(diseaseTreatmentCategory);
|
||||
// diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
|
||||
//
|
||||
// // 查询手术与治疗类型
|
||||
// List<SysDictData> medical_service_items2 =
|
||||
// iSysDictTypeService.selectDictDataByType(ActivityDefCategory.TREATMENT_SURGERY.getCode());
|
||||
// // 获取手术与治疗List
|
||||
// List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList2 = medical_service_items2
|
||||
// .stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
|
||||
// status.getDictLabel()))
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory2 =
|
||||
// new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.TREATMENT_SURGERY.getValue(),
|
||||
// ActivityDefCategory.TREATMENT_SURGERY.getInfo());
|
||||
// diseaseTreatmentCategory2.setChildren(diseaseTreatmentCategoryList2);
|
||||
// diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
|
||||
//
|
||||
// diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
|
||||
|
||||
// 获取类型
|
||||
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
|
||||
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setTypeEnumOptions(typeEnumOptions);
|
||||
|
||||
// 获取是/否 列表
|
||||
// 获取状态
|
||||
List<DiagnosisTreatmentInitDto.statusEnumOption> statusWeatherOption = Stream.of(Whether.values())
|
||||
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diagnosisTreatmentInitDto.setStatusWeatherOption(statusWeatherOption);
|
||||
|
||||
return R.ok(diagnosisTreatmentInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询诊疗目录分页列表
|
||||
*
|
||||
* @param DiagnosisTreatmentSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam, String searchKey,
|
||||
Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<DiagnosisTreatmentDto> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
|
||||
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
|
||||
|
||||
// 分页查询
|
||||
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage =
|
||||
activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
|
||||
diseaseTreatmentPage.getRecords().forEach(e -> {
|
||||
// 医保标记枚举类回显赋值
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
|
||||
// 医保对码标记枚举类回显赋值
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
|
||||
// 类型举类回显赋值
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
|
||||
// 状态举类回显赋值
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
|
||||
// 划价标记
|
||||
e.setPricingFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getPricingFlag()));
|
||||
});
|
||||
|
||||
// 返回【诊疗目录列表DTO】分页
|
||||
return R.ok(diseaseTreatmentPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询诊疗详情
|
||||
*
|
||||
* @param id 诊疗ID
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDiseaseTreatmentOne(Long id) {
|
||||
|
||||
// 获取租户ID
|
||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||
// 根据ID查询【诊疗目录】
|
||||
return R.ok(activityDefinitionManageMapper.getDiseaseTreatmentOne(id, tenantId));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录编辑
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
|
||||
|
||||
ActivityDefinition activityDefinition = new ActivityDefinition();
|
||||
BeanUtils.copyProperties(diagnosisTreatmentUpDto, activityDefinition);
|
||||
|
||||
// 拼音码
|
||||
activityDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(activityDefinition.getName()));
|
||||
// 五笔码
|
||||
activityDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(activityDefinition.getName()));
|
||||
|
||||
// 更新诊疗信息
|
||||
if (iActivityDefinitionService.updateById(activityDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo()) ) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION,
|
||||
activityDefinition.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
chargeItemDefinition.setYbType(diagnosisTreatmentUpDto.getYbType())
|
||||
.setTypeCode(diagnosisTreatmentUpDto.getItemTypeCode())
|
||||
.setInstanceTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION)
|
||||
.setInstanceId(diagnosisTreatmentUpDto.getId()).setPrice(diagnosisTreatmentUpDto.getRetailPrice())
|
||||
.setChargeName(diagnosisTreatmentUpDto.getName());
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
|
||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition);
|
||||
|
||||
// 更新价格表
|
||||
boolean upItemDef = itemDefinitionServic.updateItem(chargeItemDefinition);
|
||||
// 更新子表,修改零售价,条件:单位
|
||||
boolean upItemDetail1 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
diagnosisTreatmentUpDto.getRetailPrice(), ConditionCode.UNIT.getCode());
|
||||
// 更新子表,修改最高零售价,条件:限制
|
||||
boolean upItemDetail2 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
diagnosisTreatmentUpDto.getMaximumRetailPrice(), ConditionCode.LIMIT.getCode());
|
||||
|
||||
// 更新价格表
|
||||
return upItemDef && upItemDetail1 && upItemDetail2
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
|
||||
}
|
||||
return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录停用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDiseaseTreatmentStop(List<Long> ids) {
|
||||
|
||||
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
ActivityDefinition ActivityDefinition = new ActivityDefinition();
|
||||
ActivityDefinition.setId(detail);
|
||||
ActivityDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
|
||||
ActivityDefinitionList.add(ActivityDefinition);
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
|
||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, ids);
|
||||
// 更新诊疗信息
|
||||
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录启用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editDiseaseTreatmentStart(List<Long> ids) {
|
||||
|
||||
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
ActivityDefinition ActivityDefinition = new ActivityDefinition();
|
||||
ActivityDefinition.setId(detail);
|
||||
ActivityDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
ActivityDefinitionList.add(ActivityDefinition);
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
|
||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, ids);
|
||||
// 更新诊疗信息
|
||||
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增外来诊疗目录
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> addDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
|
||||
|
||||
if (diagnosisTreatmentUpDto.getOrgId() == null) {
|
||||
// 如果为空,设置当前登录所在的医院
|
||||
Long orgId = SecurityUtils.getLoginUser().getHospitalId();
|
||||
diagnosisTreatmentUpDto.setOrgId(orgId);
|
||||
}
|
||||
|
||||
ActivityDefinition activityDefinition = new ActivityDefinition();
|
||||
BeanUtils.copyProperties(diagnosisTreatmentUpDto, activityDefinition);
|
||||
// 使用10位数基础采番
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.ACTIVITY_DEFINITION_NUM.getPrefix(), 10);
|
||||
activityDefinition.setBusNo(code);
|
||||
// 拼音码
|
||||
activityDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(activityDefinition.getName()));
|
||||
// 五笔码
|
||||
activityDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(activityDefinition.getName()));
|
||||
|
||||
// 新增外来诊疗目录
|
||||
activityDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
if (iActivityDefinitionService.addDiagnosisTreatment(activityDefinition)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(activityDefinition.getYbNo()) ) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION,
|
||||
activityDefinition.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
|
||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition);
|
||||
|
||||
ItemUpFromDirectoryDto itemUpFromDirectoryDto = new ItemUpFromDirectoryDto();
|
||||
BeanUtils.copyProperties(diagnosisTreatmentUpDto, itemUpFromDirectoryDto);
|
||||
itemUpFromDirectoryDto.setTypeCode(diagnosisTreatmentUpDto.getItemTypeCode())
|
||||
.setUnitCode(diagnosisTreatmentUpDto.getPermittedUnitCode())
|
||||
.setInstanceTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION)
|
||||
.setEffectiveStart(DateUtils.getNowDate()).setStatusEnum(PublicationStatus.ACTIVE.getValue())
|
||||
.setConditionFlag(Whether.YES.getValue()).setChargeName(diagnosisTreatmentUpDto.getName())
|
||||
.setInstanceId(activityDefinition.getId()).setPrice(diagnosisTreatmentUpDto.getRetailPrice());
|
||||
|
||||
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));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.ChineseConvertUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.clinical.domain.ConditionDefinition;
|
||||
import com.openhis.clinical.mapper.ConditionDefinitionMapper;
|
||||
import com.openhis.clinical.service.IConditionDefinitionService;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.AssignSeqEnum;
|
||||
import com.openhis.common.enums.ConditionDefinitionSource;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisPageUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageDto;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageInitDto;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
|
||||
|
||||
/**
|
||||
* 病种目录 实现
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/30
|
||||
*/
|
||||
@Service
|
||||
public class DiseaseManageAppServiceImpl implements IDiseaseManageAppService {
|
||||
|
||||
@Autowired
|
||||
private ConditionDefinitionMapper conditionDefinitionMapper;
|
||||
@Autowired
|
||||
private IConditionDefinitionService ConditionDefinitionService;
|
||||
@Autowired(required = false)
|
||||
AssignSeqUtil assignSeqUtil;
|
||||
|
||||
/**
|
||||
* 病种目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDiseaseInit() {
|
||||
|
||||
DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto();
|
||||
// 获取疾病目录种类
|
||||
List<DiseaseManageInitDto.diseaseCategory> diseaseCategoryList = Stream.of(ConditionDefinitionSource.values())
|
||||
.map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList);
|
||||
// 获取状态
|
||||
List<DiseaseManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
|
||||
.map(status -> new DiseaseManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
diseaseManageInitDto.setStatusFlagOptions(statusEnumOptions);
|
||||
|
||||
return R.ok(diseaseManageInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询病种目录分页列表
|
||||
*
|
||||
* @param diseaseManageSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
public R<?> getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo,
|
||||
Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<ConditionDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam,
|
||||
searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request);
|
||||
// 设置排序
|
||||
queryWrapper.orderByAsc("condition_code");
|
||||
// 分页查询
|
||||
Page<DiseaseManageDto> diseasePage =
|
||||
HisPageUtils.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, DiseaseManageDto.class);
|
||||
|
||||
diseasePage.getRecords().forEach(e -> {
|
||||
// 医保对码枚举类回显赋值
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
|
||||
// 状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
|
||||
// 所属分类
|
||||
e.setSourceEnum_enumText(EnumUtils.getInfoByValue(ConditionDefinitionSource.class, e.getSourceEnum()));
|
||||
// 医保标记
|
||||
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
|
||||
});
|
||||
|
||||
// 返回【病种目录列表DTO】分页
|
||||
return R.ok(diseasePage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询疾病详情
|
||||
*
|
||||
* @param id 疾病ID
|
||||
* @return
|
||||
*/
|
||||
public R<?> getDiseaseOne(Long id) {
|
||||
DiseaseManageDto diseaseManageDto = new DiseaseManageDto();
|
||||
// 根据ID查询【病种目录】
|
||||
ConditionDefinition conditionDefinition = ConditionDefinitionService.getById(id);
|
||||
BeanUtils.copyProperties(conditionDefinition, diseaseManageDto);
|
||||
return R.ok(diseaseManageDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录编辑
|
||||
*
|
||||
* @param diseaseManageDto 病种目录列表
|
||||
* @return
|
||||
*/
|
||||
public R<?> editDisease(DiseaseManageUpDto diseaseManageDto) {
|
||||
|
||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||
BeanUtils.copyProperties(diseaseManageDto, conditionDefinition);
|
||||
// 拼音码
|
||||
conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName()));
|
||||
// 五笔码
|
||||
conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName()));
|
||||
|
||||
// 更新病种信息
|
||||
return ConditionDefinitionService.updateById(conditionDefinition)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录停用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
public R<?> editDiseaseStop(List<Long> ids) {
|
||||
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||
conditionDefinition.setId(detail);
|
||||
conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
conditionDefinitionList.add(conditionDefinition);
|
||||
}
|
||||
// 更新病种信息
|
||||
return ConditionDefinitionService.updateBatchById(conditionDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录启用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
public R<?> editDiseaseStart(List<Long> ids) {
|
||||
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||
conditionDefinition.setId(detail);
|
||||
conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
conditionDefinitionList.add(conditionDefinition);
|
||||
}
|
||||
// 更新病种信息
|
||||
return ConditionDefinitionService.updateBatchById(conditionDefinitionList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增外来病种目录
|
||||
*
|
||||
* @param diseaseManageUpDto 病种目录
|
||||
* @return
|
||||
*/
|
||||
public R<?> addDisease(DiseaseManageUpDto diseaseManageUpDto) {
|
||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||
BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition);
|
||||
// 使用10位数基础采番
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.CONDITION_DEFINITION_NUM.getPrefix(), 10);
|
||||
conditionDefinition.setConditionCode(code);
|
||||
|
||||
// 新增外来病种目录
|
||||
conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
// 拼音码
|
||||
conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName()));
|
||||
// 五笔码
|
||||
conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName()));
|
||||
return ConditionDefinitionService.addDisease(conditionDefinition)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.ConditionCode;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.datadictionary.appservice.ItemDefinitionAppService;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDetailDto;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDto;
|
||||
import com.openhis.web.datadictionary.mapper.ItemDefinitionAppMapper;
|
||||
|
||||
/**
|
||||
* 项目定价 应用impl
|
||||
*/
|
||||
@Service
|
||||
public class ItemDefinitionAppServiceImpl implements ItemDefinitionAppService {
|
||||
|
||||
@Resource
|
||||
ItemDefinitionAppMapper itemDefinitionAppMapper;
|
||||
|
||||
@Resource
|
||||
IChargeItemDefinitionService iChargeItemDefinitionService;
|
||||
|
||||
/**
|
||||
* 项目定价 分页
|
||||
*
|
||||
* @param itemDefinitionDto dto
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param chargeItemContext 收费项目类型
|
||||
* @param pageNo 当前页
|
||||
* @param pageSize 每页多少条
|
||||
* @return 项目定价
|
||||
*/
|
||||
@Override
|
||||
public IPage<ItemDefinitionDto> getChargeItemInfo(ItemDefinitionDto itemDefinitionDto, Integer chargeItemContext,
|
||||
String searchKey, Integer pageNo, Integer pageSize) {
|
||||
// 构建查询条件
|
||||
QueryWrapper<ItemDefinitionDto> queryWrapper = HisQueryUtils.buildQueryWrapper(itemDefinitionDto, searchKey,
|
||||
new HashSet<>(Arrays.asList("charge_name")), null);
|
||||
IPage<ItemDefinitionDto> chargeItemInfo = itemDefinitionAppMapper.getChargeItemInfo(
|
||||
new Page<>(pageNo, pageSize), chargeItemContext, CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||
CommonConstants.TableName.ADM_DEVICE_DEFINITION, CommonConstants.TableName.WOR_ACTIVITY_DEFINITION,
|
||||
CommonConstants.TableName.ADM_HEALTHCARE_SERVICE, queryWrapper);
|
||||
List<ItemDefinitionDto> records = chargeItemInfo.getRecords();
|
||||
for (ItemDefinitionDto record : records) {
|
||||
// 状态
|
||||
record.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, record.getStatusEnum()));
|
||||
}
|
||||
return chargeItemInfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目定价详细
|
||||
*
|
||||
* @param id id
|
||||
* @return 项目定价详细
|
||||
*/
|
||||
@Override
|
||||
public List<ItemDefinitionDetailDto> getChargeItemInfoDetail(Long id) {
|
||||
List<ItemDefinitionDetailDto> chargeItemInfoDetail = itemDefinitionAppMapper.getChargeItemInfoDetail(id);
|
||||
for (ItemDefinitionDetailDto itemDefinitionDetailDto : chargeItemInfoDetail) {
|
||||
// 条件
|
||||
itemDefinitionDetailDto.setConditionCode_enumText(
|
||||
EnumUtils.getInfoByValue(ConditionCode.class, itemDefinitionDetailDto.getConditionCode()));
|
||||
}
|
||||
return chargeItemInfoDetail;
|
||||
}
|
||||
|
||||
/**
|
||||
* 改价
|
||||
*
|
||||
* @param id id
|
||||
* @param price 价格
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> updateChargeItemInfo(Long id, BigDecimal price) {
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
chargeItemDefinition.setId(id);
|
||||
chargeItemDefinition.setPrice(price);
|
||||
iChargeItemDefinitionService.updateById(chargeItemDefinition);
|
||||
return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"项目定价"}));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.administration.domain.ChargeItemDefDetail;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.mapper.ChargeItemDefAppMapper;
|
||||
import com.openhis.administration.mapper.ChargeItemDefinitionMapper;
|
||||
import com.openhis.administration.service.IChargeItemDefDetailService;
|
||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.enums.ConditionCode;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto;
|
||||
|
||||
/**
|
||||
* 项目定价 实现
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/25
|
||||
*/
|
||||
@Service
|
||||
public class ItemDefinitionServiceImpl implements IItemDefinitionService {
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefinitionService chargeItemDefinitionService;
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefDetailService chargeItemDefDetailService;
|
||||
@Autowired
|
||||
ChargeItemDefinitionMapper chargeItemDefinitionMapper;
|
||||
@Autowired
|
||||
ChargeItemDefAppMapper chargeItemDefAppMapper;
|
||||
|
||||
/**
|
||||
* 添加药品/器材/诊疗的项目定价
|
||||
*
|
||||
* @param itemUpFromDirectoryDto 药品/器材/诊疗目录信息
|
||||
*/
|
||||
@Override
|
||||
public boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto) {
|
||||
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
BeanUtils.copyProperties(itemUpFromDirectoryDto, chargeItemDefinition);
|
||||
|
||||
boolean insertCIDSuccess = chargeItemDefinitionService.save(chargeItemDefinition);
|
||||
|
||||
if (insertCIDSuccess) {
|
||||
List<ChargeItemDefDetail> shargeItemDefDetails = new ArrayList<>();
|
||||
// 诊疗没有购入价
|
||||
if (!CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(itemUpFromDirectoryDto.getInstanceTable())) {
|
||||
// 插入购入价
|
||||
ChargeItemDefDetail chargeItemDefDetail1 = new ChargeItemDefDetail();
|
||||
chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId())
|
||||
// 条件:采购
|
||||
.setConditionCode(ConditionCode.PURCHASE.getCode())
|
||||
// 购入价
|
||||
.setAmount(itemUpFromDirectoryDto.getPurchasePrice());
|
||||
shargeItemDefDetails.add(chargeItemDefDetail1);
|
||||
}
|
||||
|
||||
// 插入零售价
|
||||
ChargeItemDefDetail chargeItemDefDetail2 = new ChargeItemDefDetail();
|
||||
chargeItemDefDetail2.setDefinitionId(chargeItemDefinition.getId())
|
||||
// 条件:单位
|
||||
.setConditionCode(ConditionCode.UNIT.getCode())
|
||||
// 单位枚举
|
||||
.setConditionValue(itemUpFromDirectoryDto.getUnitCode())
|
||||
// 零售价
|
||||
.setAmount(itemUpFromDirectoryDto.getRetailPrice());
|
||||
|
||||
shargeItemDefDetails.add(chargeItemDefDetail2);
|
||||
|
||||
// 插入最高零售价
|
||||
ChargeItemDefDetail chargeItemDefDetail3 = new ChargeItemDefDetail();
|
||||
chargeItemDefDetail3.setDefinitionId(chargeItemDefinition.getId())
|
||||
// 条件:限制
|
||||
.setConditionCode(ConditionCode.LIMIT.getCode())
|
||||
// 最高零售价
|
||||
.setAmount(itemUpFromDirectoryDto.getMaximumRetailPrice());
|
||||
|
||||
shargeItemDefDetails.add(chargeItemDefDetail3);
|
||||
|
||||
return chargeItemDefDetailService.saveBatch(shargeItemDefDetails);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目定价表
|
||||
*
|
||||
* @param chargeItemDefinition 项目定价表信息
|
||||
*/
|
||||
@Override
|
||||
public boolean updateItem(ChargeItemDefinition chargeItemDefinition) {
|
||||
|
||||
// 关联项目和代码位为key,更新表
|
||||
LambdaUpdateWrapper<ChargeItemDefinition> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(ChargeItemDefinition::getInstanceId, chargeItemDefinition.getInstanceId());
|
||||
updateWrapper.eq(ChargeItemDefinition::getInstanceTable, chargeItemDefinition.getInstanceTable())
|
||||
.set(ChargeItemDefinition::getYbType, chargeItemDefinition.getYbType())
|
||||
.set(ChargeItemDefinition::getTypeCode, chargeItemDefinition.getTypeCode())
|
||||
.set(ChargeItemDefinition::getPrice, chargeItemDefinition.getPrice())
|
||||
.set(ChargeItemDefinition::getChargeName, chargeItemDefinition.getChargeName());
|
||||
|
||||
return chargeItemDefinitionService.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目定价表子信息
|
||||
*
|
||||
* @param chargeItemDefinition 项目定价表子信息
|
||||
* @param price 价格
|
||||
* @param conditionCode 条件
|
||||
*/
|
||||
@Override
|
||||
public boolean updateItemDetail(ChargeItemDefinition chargeItemDefinition, BigDecimal price, String conditionCode) {
|
||||
|
||||
LambdaQueryWrapper<ChargeItemDefinition> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ChargeItemDefinition::getInstanceId, chargeItemDefinition.getInstanceId())
|
||||
.eq(ChargeItemDefinition::getInstanceTable, chargeItemDefinition.getInstanceTable());
|
||||
|
||||
ChargeItemDefinition cItemDefObj = chargeItemDefinitionMapper.selectOne(queryWrapper);
|
||||
|
||||
// 关联项目和代码位为key,更新表
|
||||
LambdaUpdateWrapper<ChargeItemDefDetail> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(ChargeItemDefDetail::getDefinitionId, cItemDefObj.getId());
|
||||
updateWrapper.eq(ChargeItemDefDetail::getConditionCode, conditionCode).set(ChargeItemDefDetail::getAmount,
|
||||
price);
|
||||
|
||||
return chargeItemDefDetailService.update(null, updateWrapper);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,497 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.core.domain.entity.SysDictData;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.core.common.utils.poi.ExcelUtil;
|
||||
import com.core.system.service.ISysDictTypeService;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.domain.Supplier;
|
||||
import com.openhis.administration.service.IChargeItemDefDetailService;
|
||||
import com.openhis.administration.service.IChargeItemDefinitionService;
|
||||
import com.openhis.administration.service.ISupplierService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.medication.domain.Medication;
|
||||
import com.openhis.medication.domain.MedicationDefinition;
|
||||
import com.openhis.medication.domain.MedicationDetail;
|
||||
import com.openhis.medication.service.IMedicationDefinitionService;
|
||||
import com.openhis.medication.service.IMedicationDispenseService;
|
||||
import com.openhis.medication.service.IMedicationService;
|
||||
import com.openhis.sys.service.IOperationRecordService;
|
||||
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
|
||||
import com.openhis.web.datadictionary.appservice.IMedicationManageAppService;
|
||||
import com.openhis.web.datadictionary.dto.*;
|
||||
import com.openhis.web.datadictionary.mapper.MedicationManageSearchMapper;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
import com.openhis.yb.service.YbManager;
|
||||
|
||||
/**
|
||||
* TODO:DTO已UI最小需要值返回 药品目录 impl
|
||||
*
|
||||
* @author
|
||||
* @date 2025-03-17
|
||||
*/
|
||||
@Service
|
||||
public class MedicationManageAppServiceImpl implements IMedicationManageAppService {
|
||||
|
||||
@Autowired
|
||||
private IMedicationService medicationService;
|
||||
|
||||
@Autowired
|
||||
private IMedicationDefinitionService medicationDefinitionService;
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefinitionService chargeItemDefinitionService;
|
||||
|
||||
@Autowired
|
||||
IChargeItemDefDetailService chargeItemDefDetailService;
|
||||
|
||||
@Autowired
|
||||
private MedicationManageSearchMapper medicationManageSearchMapper;
|
||||
@Autowired
|
||||
private ISupplierService supplierService;
|
||||
|
||||
@Autowired
|
||||
private ISysDictTypeService sysDictTypeService;
|
||||
|
||||
@Autowired
|
||||
private IItemDefinitionService itemDefinitionServic;
|
||||
|
||||
@Autowired(required = false)
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Autowired
|
||||
private YbManager ybService;
|
||||
|
||||
@Autowired
|
||||
private IOperationRecordService iOperationRecordService;
|
||||
|
||||
@Autowired
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMedicationDispenseService medicationDispenseService;
|
||||
|
||||
/**
|
||||
* 药品目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getMedicationInit() {
|
||||
|
||||
MedicationManageInitDto medicationManageInitDto = new MedicationManageInitDto();
|
||||
// 获取状态,从枚举里面取下拉值
|
||||
List<MedicationManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
// 获取适用范围
|
||||
List<MedicationManageInitDto.domainEnumOption> domainEnumOptions = Stream.of(ApplicableScope.values())
|
||||
.map(domain -> new MedicationManageInitDto.domainEnumOption(domain.getValue(), domain.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
// 查询供应商列表
|
||||
List<Supplier> supplierList = supplierService.getList();
|
||||
// 供应商信息
|
||||
List<MedicationManageInitDto.supplierListOption> supplierListOptions = supplierList.stream()
|
||||
.map(supplier -> new MedicationManageInitDto.supplierListOption(supplier.getId(), supplier.getName()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 获取药品分类
|
||||
List<SysDictData> medicalList =
|
||||
sysDictTypeService.selectDictDataByType(CommonConstants.DictName.MED_CATEGORY_CODE);
|
||||
// 获取药品分类
|
||||
List<MedicationManageInitDto.dictCategoryCode> medicationCategories = medicalList.stream().map(
|
||||
category -> new MedicationManageInitDto.dictCategoryCode(category.getDictValue(), category.getDictLabel()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 获取是/否 列表
|
||||
// 获取状态
|
||||
List<MedicationManageInitDto.statusEnumOption> statusWeatherOption = Stream.of(Whether.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 权限限制
|
||||
List<MedicationManageInitDto.statusEnumOption> statusRestrictedOptions = Stream.of(PermissionLimit.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 拆分属性
|
||||
List<MedicationManageInitDto.statusEnumOption> partAttributeEnumOptions = Stream.of(SplitPropertyCode.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 住院临时医嘱拆分属性的枚举
|
||||
List<MedicationManageInitDto.statusEnumOption> tempOrderSplitPropertyOptions =
|
||||
Stream.of(TempOrderSplitPropertyCode.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 医保等级List
|
||||
List<MedicationManageInitDto.statusEnumOption> chrgitmLvOptions = Stream.of(InsuranceLevel.values())
|
||||
.map(status -> new MedicationManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
medicationManageInitDto.setStatusFlagOptions(statusEnumOptions);
|
||||
medicationManageInitDto.setDomainFlagOptions(domainEnumOptions);
|
||||
medicationManageInitDto.setSupplierListOptions(supplierListOptions);
|
||||
medicationManageInitDto.setMedicationCategoryCodeOptions(medicationCategories);
|
||||
medicationManageInitDto.setStatusWeatherOptions(statusWeatherOption);
|
||||
medicationManageInitDto.setStatusRestrictedOptions(statusRestrictedOptions);
|
||||
medicationManageInitDto.setPartAttributeEnumOptions(partAttributeEnumOptions);
|
||||
medicationManageInitDto.setTempOrderSplitPropertyEnumOptions(tempOrderSplitPropertyOptions);
|
||||
medicationManageInitDto.setChrgitmLvOptions(chrgitmLvOptions);
|
||||
|
||||
return R.ok(medicationManageInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 药品目录查询
|
||||
*
|
||||
* @param
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 药品目录查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getMedicationList(MedicationSearchParam medicationSearchParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<MedicationManageDto> queryWrapper = HisQueryUtils.buildQueryWrapper(medicationSearchParam,
|
||||
searchKey, new HashSet<>(Arrays.asList("name", "name_en", "merchandise_name", "bus_no", "py_str", "wb_str",
|
||||
"merchandise_py_str", "merchandise_wb_str")),
|
||||
null);
|
||||
|
||||
IPage<MedicationManageDto> medicationManageDtoPage =
|
||||
medicationManageSearchMapper.getPage(new Page<>(pageNo, pageSize), queryWrapper);
|
||||
|
||||
// 枚举类回显赋值
|
||||
medicationManageDtoPage.getRecords().forEach(e -> {
|
||||
// 药品状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
|
||||
// 权限限制
|
||||
e.setRestrictedEnum_enumText(EnumUtils.getInfoByValue(PermissionLimit.class, e.getRestrictedEnum()));
|
||||
// 是否为活性
|
||||
e.setActiveFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getActiveFlag()));
|
||||
// 医保是否对码
|
||||
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
|
||||
// 是否皮试
|
||||
e.setSkinTestFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSkinTestFlag()));;
|
||||
// 是否为注射药物
|
||||
e.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getInjectFlag()));
|
||||
// 是否限制使用
|
||||
e.setRestrictedFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getRestrictedFlag()));
|
||||
// 儿童用药标志
|
||||
e.setChildrenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getChildrenFlag()));
|
||||
// 适用范围
|
||||
e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum()));
|
||||
|
||||
// 是否自制
|
||||
e.setSelfFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSelfFlag()));
|
||||
// 是否抗生素
|
||||
e.setAntibioticFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAntibioticFlag()));
|
||||
// 基药标识
|
||||
e.setBasicFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getBasicFlag()));
|
||||
// 拆分分属性
|
||||
e.setPartAttributeEnum_enumText(
|
||||
EnumUtils.getInfoByValue(SplitPropertyCode.class, e.getPartAttributeEnum()));
|
||||
// 住院临时医嘱拆分属性
|
||||
e.setThoPartAttributeEnum_enumText(
|
||||
EnumUtils.getInfoByValue(TempOrderSplitPropertyCode.class, e.getThoPartAttributeEnum()));
|
||||
// // 活动标记
|
||||
// e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag()));
|
||||
|
||||
});
|
||||
|
||||
// 返回【药品录列表DTO】分页
|
||||
return R.ok(medicationManageDtoPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 编辑药品目录信息
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> editMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) {
|
||||
// // 校验是否可以编辑
|
||||
// boolean result = supplyRequestService.verifyAbleEdit(medicationManageUpDto.getMedicationDefId());
|
||||
// if (result) {
|
||||
// return R.fail("该药品已经发生过业务,不可编辑");
|
||||
// }
|
||||
// boolean result = medicationDispenseService.verifyAbleEdit(medicationManageUpDto.getMedicationDefId());
|
||||
// if (result) {
|
||||
// return R.fail("该药品已经发生过业务,不可编辑");
|
||||
// }
|
||||
|
||||
// Todo:用Medication和medicationDefinition的domainservice来创造新的实例,根据业务需求,使用构造函数;
|
||||
// 如果小于5哥变量,就用基本类型传递,如果大于5哥,在domain层定义构造方法的入参
|
||||
|
||||
MedicationDefinition medicationDefinition = new MedicationDefinition();
|
||||
Medication medication = new Medication();
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medication); // 子表信息
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medicationDefinition);// 主表信息
|
||||
medicationDefinition.setId(medicationManageUpDto.getMedicationDefId());
|
||||
// 拼音码
|
||||
medicationDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDefinition.getName()));
|
||||
medicationDefinition
|
||||
.setMerchandisePyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDefinition.getMerchandiseName()));
|
||||
// 五笔码
|
||||
medicationDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDefinition.getName()));
|
||||
medicationDefinition
|
||||
.setMerchandiseWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDefinition.getMerchandiseName()));
|
||||
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
|
||||
chargeItemDefinition.setYbType(medicationManageUpDto.getYbType())
|
||||
.setTypeCode(medicationManageUpDto.getTypeCode())
|
||||
.setInstanceTable(CommonConstants.TableName.MED_MEDICATION_DEFINITION)
|
||||
.setInstanceId(medicationManageUpDto.getMedicationDefId()).setPrice(medicationManageUpDto.getRetailPrice())
|
||||
.setChargeName(medicationManageUpDto.getName());
|
||||
|
||||
// 更新子表药品信息
|
||||
if (medicationService.updateById(medication)) {
|
||||
// 更新主表药品信息
|
||||
boolean updateMedicationDefinition = medicationDefinitionService.updateById(medicationDefinition);
|
||||
if (updateMedicationDefinition) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch =
|
||||
SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDefinition.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||
medicationDefinition.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
|
||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, medication);
|
||||
// Todo:封装一个价格初始话的方法给app层调用
|
||||
// 更新价格表
|
||||
boolean updateChargeItemDefinition = itemDefinitionServic.updateItem(chargeItemDefinition);
|
||||
// 更新子表,修改购入价,条件:采购
|
||||
boolean upItemDetail1 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
medicationManageUpDto.getPurchasePrice(), ConditionCode.PURCHASE.getCode());
|
||||
// 更新子表,修改零售价,条件:单位
|
||||
boolean upItemDetail2 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
medicationManageUpDto.getRetailPrice(), ConditionCode.UNIT.getCode());
|
||||
// 更新子表,修改最高零售价,条件:限制
|
||||
boolean upItemDetail3 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
|
||||
medicationManageUpDto.getMaximumRetailPrice(), ConditionCode.LIMIT.getCode());
|
||||
|
||||
return (updateMedicationDefinition && updateChargeItemDefinition && upItemDetail1 && upItemDetail2
|
||||
&& upItemDetail3)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
} else {
|
||||
return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 药品目录详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 药品目录查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getMedicationOne(@RequestParam Long id) {
|
||||
|
||||
// 获取租户ID
|
||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||
// 查询药品目录列表
|
||||
MedicationManageDto medicationManageDto = medicationManageSearchMapper.getOne(id, tenantId);
|
||||
// 返回【药品录列表DTO】列表
|
||||
return R.ok(medicationManageDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 药品目录停用
|
||||
*
|
||||
* @param ids 药品目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editMedicationStop(List<Long> ids) {
|
||||
|
||||
List<Medication> medicationList = new ArrayList<>();
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
Medication medication = new Medication();
|
||||
medication.setId(detail);
|
||||
medication.setStatusEnum(PublicationStatus.RETIRED.getValue());
|
||||
medicationList.add(medication);
|
||||
}
|
||||
|
||||
// TODO:别用三元,日志在业务代码以后记录
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
|
||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, ids);
|
||||
// 更新药品信息
|
||||
return medicationService.updateBatchById(medicationList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO:业务代码写在Domain里 药品目录启用
|
||||
*
|
||||
* @param ids 药品目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editMedicationStart(List<Long> ids) {
|
||||
|
||||
List<Medication> medicationList = new ArrayList<>();
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
Medication medication = new Medication();
|
||||
medication.setId(detail);
|
||||
medication.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
medicationList.add(medication);
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
|
||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, ids);
|
||||
// 更新药品信息
|
||||
return medicationService.updateBatchById(medicationList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加药品目录信息
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> addMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) {
|
||||
|
||||
MedicationDetail medicationDetail = new MedicationDetail();
|
||||
BeanUtils.copyProperties(medicationManageUpDto, medicationDetail);
|
||||
medicationDetail.setStatusEnum(PublicationStatus.ACTIVE.getValue());
|
||||
// 使用10位数基础采番
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_NUM.getPrefix(), 10);
|
||||
medicationDetail.setBusNo(code);
|
||||
// 拼音码
|
||||
medicationDetail.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDetail.getName()));
|
||||
medicationDetail
|
||||
.setMerchandisePyStr(ChineseConvertUtils.toPinyinFirstLetter(medicationDetail.getMerchandiseName()));
|
||||
// 五笔码
|
||||
medicationDetail.setWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDetail.getName()));
|
||||
medicationDetail
|
||||
.setMerchandiseWbStr(ChineseConvertUtils.toWBFirstLetter(medicationDetail.getMerchandiseName()));
|
||||
|
||||
// 新增主表外来药品目录
|
||||
if (medicationDefinitionService.addMedication(medicationDetail)) {
|
||||
// 调用医保目录对照接口
|
||||
String ybSwitch = SecurityUtils.getLoginUser().getOptionJson().getString(CommonConstants.Option.YB_SWITCH); // 医保开关
|
||||
if (Whether.YES.getCode().equals(ybSwitch) && StringUtils.isNotEmpty(medicationDetail.getYbNo())) {
|
||||
R<?> r = ybService.directoryCheck(CommonConstants.TableName.MED_MEDICATION_DEFINITION,
|
||||
medicationDetail.getId());
|
||||
if (200 != r.getCode()) {
|
||||
throw new RuntimeException("医保目录对照接口异常");
|
||||
}
|
||||
}
|
||||
// 插入操作记录
|
||||
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
|
||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, 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(itemUpFromDirectoryDto);
|
||||
|
||||
return (insertMedicationSuccess && insertItemDefinitionSuccess)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"药品目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
|
||||
} else {
|
||||
return R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<?> exportMedication(String searchKey, Integer ybMatchFlag, Integer statusEnum, String categoryCode,
|
||||
HttpServletResponse response) {
|
||||
// 获取租户ID
|
||||
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
|
||||
List<MedicationManageDto> list =
|
||||
medicationManageSearchMapper.getList(searchKey, ybMatchFlag, statusEnum, categoryCode, tenantId);
|
||||
ExcelUtil<MedicationManageDto> util = new ExcelUtil<>(MedicationManageDto.class);
|
||||
util.exportExcel(response, list, "药品目录");
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入药品目录
|
||||
*
|
||||
* @param file 文件
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> importData(MultipartFile file) {
|
||||
ExcelUtil<MedicationImportDto> util = new ExcelUtil<>(MedicationImportDto.class);
|
||||
List<MedicationImportDto> dtoList;
|
||||
try {
|
||||
dtoList = util.importExcel(file.getInputStream());
|
||||
} catch (IOException e) {
|
||||
return R.fail("文件读取失败");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导入模板
|
||||
*
|
||||
* @param response 响应
|
||||
*/
|
||||
@Override
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
ExcelUtil<MedicationImportDto> util = new ExcelUtil<>(MedicationImportDto.class);
|
||||
util.importTemplateExcel(response, "药品目录数据");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.appservice.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.core.common.exception.ServiceException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.ChineseConvertUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.StringUtils;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.administration.domain.Supplier;
|
||||
import com.openhis.administration.mapper.SupplierMapper;
|
||||
import com.openhis.administration.service.ISupplierService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.AssignSeqEnum;
|
||||
import com.openhis.common.enums.DelFlag;
|
||||
import com.openhis.common.enums.SupplierType;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisPageUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.datadictionary.appservice.ISupplierManagementAppService;
|
||||
import com.openhis.web.datadictionary.dto.SupplierDto;
|
||||
import com.openhis.web.datadictionary.dto.SupplierInitDto;
|
||||
import com.openhis.web.datadictionary.dto.SupplierSearchParam;
|
||||
import com.openhis.web.datadictionary.dto.SupplierUpDto;
|
||||
|
||||
/**
|
||||
* 厂商/产地 impl
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-03-10
|
||||
*/
|
||||
@Service
|
||||
public class SupplierManagementAppServiceImpl implements ISupplierManagementAppService {
|
||||
|
||||
@Autowired
|
||||
private ISupplierService supplierService;
|
||||
@Autowired
|
||||
private SupplierMapper supplierMapper;
|
||||
|
||||
@Autowired(required = false)
|
||||
AssignSeqUtil assignSeqUtil;
|
||||
|
||||
/**
|
||||
* 厂商/产地初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> getSupplierInit() {
|
||||
SupplierInitDto supplierInitDto = new SupplierInitDto();
|
||||
// 获取厂商/产地种类
|
||||
List<SupplierInitDto.supplierTypeOption> supplierTypeOption = Stream.of(SupplierType.values())
|
||||
.map(status -> new SupplierInitDto.supplierTypeOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
supplierInitDto.setSupplierTypeOptions(supplierTypeOption);
|
||||
return R.ok(supplierInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地查询
|
||||
*
|
||||
* @param supplierSearchParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param typeEnum 查询条件
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getSupplierList(SupplierSearchParam supplierSearchParam, String searchKey, Integer typeEnum,
|
||||
Integer pageNo, Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 构建查询条件
|
||||
QueryWrapper<Supplier> queryWrapper = HisQueryUtils.buildQueryWrapper(
|
||||
supplierSearchParam, searchKey, new HashSet<>(Arrays.asList(CommonConstants.FieldName.BusNo,
|
||||
CommonConstants.FieldName.Name, CommonConstants.FieldName.PyStr, CommonConstants.FieldName.WbStr)),
|
||||
request);
|
||||
if (StringUtils.isNotNull(typeEnum)) {
|
||||
queryWrapper.eq(CommonConstants.FieldName.TypeEnum, typeEnum);
|
||||
}
|
||||
// 设置排序
|
||||
queryWrapper.eq(CommonConstants.FieldName.DeleteFlag, DelFlag.NO.getCode())
|
||||
.orderByDesc(CommonConstants.FieldName.BusNo);
|
||||
// 分页查询
|
||||
Page<SupplierDto> supplierPage =
|
||||
HisPageUtils.selectPage(supplierMapper, queryWrapper, pageNo, pageSize, SupplierDto.class);
|
||||
// 枚举类回显赋值
|
||||
supplierPage.getRecords().forEach(e -> {
|
||||
e.setActiveFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getActiveFlag()));
|
||||
// 厂商类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplierType.class, e.getTypeEnum()));
|
||||
});
|
||||
// 返回【病种目录列表DTO】分页
|
||||
return R.ok(supplierPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> addSupplyRequest(SupplierUpDto supplierUpDto) {
|
||||
|
||||
// 重复添加校验
|
||||
// 根据名字,地址,类型查询供应商信息
|
||||
List<Supplier> supplierList = supplierService.getsupplierList(supplierUpDto.getName(),
|
||||
supplierUpDto.getAddress(), supplierUpDto.getTypeEnum());
|
||||
if(!supplierList.isEmpty()){
|
||||
throw new ServiceException("数据已添加,请勿重复添加");
|
||||
}
|
||||
|
||||
Supplier supplierInfo = new Supplier();
|
||||
BeanUtils.copyProperties(supplierUpDto, supplierInfo);
|
||||
// 设置拼音首拼
|
||||
supplierInfo.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(supplierInfo.getName()));
|
||||
// 设置五笔首拼
|
||||
supplierInfo.setWbStr(ChineseConvertUtils.toWBFirstLetter(supplierInfo.getName()));
|
||||
|
||||
// 使用基础采番,设置供应商编码,10位数
|
||||
String code = assignSeqUtil.getSeq(AssignSeqEnum.SUPPLIER_BUS_NO.getPrefix(), 10);
|
||||
supplierInfo.setBusNo(code);
|
||||
|
||||
return supplierService.addSupplier(supplierInfo)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"厂商/供应商信息"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> editSupplyRequest(SupplierUpDto supplierUpDto) {
|
||||
|
||||
Supplier supplier = new Supplier();
|
||||
BeanUtils.copyProperties(supplierUpDto, supplier);
|
||||
// 设置拼音首拼
|
||||
supplier.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(supplier.getName()));
|
||||
// 设置五笔首拼
|
||||
supplier.setWbStr(ChineseConvertUtils.toWBFirstLetter(supplier.getName()));
|
||||
// 更新供应商信息信息
|
||||
return supplierService.updateById(supplier)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"厂商/供应商信息"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> getSupplierDetail(Long id) {
|
||||
SupplierDto supplierDto = new SupplierDto();
|
||||
// 根据ID查询【供应商信息】
|
||||
Supplier supplier = supplierService.getById(id);
|
||||
BeanUtils.copyProperties(supplier, supplierDto);
|
||||
return R.ok(supplierDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地停用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editSupplierStop(List<Long> ids) {
|
||||
List<Supplier> supplierList = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
Supplier supplier = new Supplier();
|
||||
supplier.setId(detail);
|
||||
supplier.setActiveFlag(0);
|
||||
supplierList.add(supplier);
|
||||
}
|
||||
// 更新厂商/产地信息
|
||||
return supplierService.updateBatchById(supplierList)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地启用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public R<?> editSupplierStart(List<Long> ids) {
|
||||
List<Supplier> supplierListStart = new CopyOnWriteArrayList<>();
|
||||
|
||||
// 取得更新值
|
||||
for (Long detail : ids) {
|
||||
Supplier supplier = new Supplier();
|
||||
supplier.setId(detail);
|
||||
supplier.setActiveFlag(1);
|
||||
supplierListStart.add(supplier);
|
||||
}
|
||||
// 更新厂商/产地信息
|
||||
return supplierService.updateBatchById(supplierListStart)
|
||||
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
|
||||
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.assembler;
|
||||
|
||||
/**
|
||||
* 费用定价dto转换器
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
public class ItemDefinitionAssembler {
|
||||
// /**
|
||||
// * 装配【费用定价分页列表DTO】分页 药品
|
||||
// *
|
||||
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||
// * @return 【费用定价分页列表DTO】分页
|
||||
// */
|
||||
// public static Page<ChargeItemDefPageDto> assembleMedDefinitionDto(
|
||||
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefDetail> chargeItemDefAppList,
|
||||
// List<MedicationDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||
//
|
||||
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, MedicationDefinition> medicationDefinitionMap = medicationDefinitionList.stream()
|
||||
// .collect(Collectors.toMap(MedicationDefinition::getId, Function.identity()));
|
||||
//
|
||||
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, ChargeItemDefDetail> chargeItemDefAppMap =
|
||||
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getId, Function.identity()));
|
||||
//
|
||||
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||
//
|
||||
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||
// // 定义【入库单据分页列表DTO】
|
||||
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||
// ChargeItemDefDetail chargeItemDefApp =
|
||||
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefDetail());
|
||||
// MedicationDefinition medicationDefinition =
|
||||
// medicationDefinitionMap.getOrDefault(entity.getInstanceId(), new MedicationDefinition());
|
||||
// // 从主表COPY需要的字段
|
||||
// dto.setId(entity.getId());
|
||||
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||
// dto.setPyCode(medicationDefinition.getPyCode());
|
||||
// dto.setTypeEnum(medicationDefinition.getCategoryCode());
|
||||
// return dto;
|
||||
// }).collect(Collectors.toList()));
|
||||
// // 模糊查询项目名称/项目编码/助记码
|
||||
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||
// .collect(Collectors.toList()));
|
||||
// }
|
||||
// // 精确查询收费项目
|
||||
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||
// }
|
||||
//
|
||||
// // 返回【入库单据分页列表DTO】分页
|
||||
// return returnPage;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 装配【费用定价分页列表DTO】分页 器具
|
||||
// *
|
||||
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||
// * @return 【费用定价分页列表DTO】分页
|
||||
// */
|
||||
// public static Page<ChargeItemDefPageDto> assembleDevDefinitionDto(
|
||||
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefDetail> chargeItemDefAppList,
|
||||
// List<DeviceDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||
//
|
||||
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, DeviceDefinition> deviceDefinitionMap =
|
||||
// medicationDefinitionList.stream().collect(Collectors.toMap(DeviceDefinition::getId, Function.identity()));
|
||||
//
|
||||
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, ChargeItemDefDetail> chargeItemDefAppMap =
|
||||
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getId, Function.identity()));
|
||||
//
|
||||
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||
//
|
||||
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||
// // 定义【入库单据分页列表DTO】
|
||||
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||
// ChargeItemDefDetail chargeItemDefApp =
|
||||
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefDetail());
|
||||
// DeviceDefinition deviceDefinition =
|
||||
// deviceDefinitionMap.getOrDefault(entity.getInstanceId(), new DeviceDefinition());
|
||||
// // 从主表COPY需要的字段
|
||||
// dto.setId(entity.getId());
|
||||
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||
// dto.setPyCode(deviceDefinition.getPyCode());
|
||||
// dto.setTypeEnum(deviceDefinition.getDeviceClass());
|
||||
// return dto;
|
||||
// }).collect(Collectors.toList()));
|
||||
// // 模糊查询项目名称/项目编码/助记码
|
||||
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||
// .collect(Collectors.toList()));
|
||||
// }
|
||||
// // 精确查询收费项目
|
||||
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||
// }
|
||||
//
|
||||
// // 返回【入库单据分页列表DTO】分页
|
||||
// return returnPage;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 装配【费用定价分页列表DTO】分页 诊疗
|
||||
// *
|
||||
// * @param chargeItemDefinitionPage 【费用定价管理Entity实体】分页
|
||||
// * @param chargeItemDefAppList 【费用定价管理子表Entity实体】列表
|
||||
// * @param medicationDefinitionList【药品定义管理Entity实体】列表
|
||||
// * @return 【费用定价分页列表DTO】分页
|
||||
// */
|
||||
// public static Page<ChargeItemDefPageDto> assembleProDefinitionDto(
|
||||
// Page<ChargeItemDefinition> chargeItemDefinitionPage, List<ChargeItemDefDetail> chargeItemDefAppList,
|
||||
// List<ActivityDefinition> medicationDefinitionList, ItemDefSearchParam itemDefSearchParam) {
|
||||
//
|
||||
// // 将查询到的【药品基本信息管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, ActivityDefinition> activityDefinitionMap =
|
||||
// medicationDefinitionList.stream().collect(Collectors.toMap(ActivityDefinition::getId, Function.identity()));
|
||||
//
|
||||
// // 将查询到的【患者管理】列表,作成以ID为Key的Map
|
||||
// Map<Long, ChargeItemDefDetail> chargeItemDefAppMap =
|
||||
// chargeItemDefAppList.stream().collect(Collectors.toMap(ChargeItemDefDetail::getId, Function.identity()));
|
||||
//
|
||||
// // 定义【入库单据分页列表DTO】的分页,传入【页码】、【行数】、及上面分页的【总数】
|
||||
// Page<ChargeItemDefPageDto> returnPage = new Page<>(chargeItemDefinitionPage.getCurrent(),
|
||||
// chargeItemDefinitionPage.getSize(), chargeItemDefinitionPage.getTotal());
|
||||
//
|
||||
// // 将【供应申请管理】的分页转化为返回【入库单据分页列表DTO】的分页
|
||||
// returnPage.setRecords(chargeItemDefinitionPage.getRecords().stream().map(entity -> {
|
||||
// // 定义【入库单据分页列表DTO】
|
||||
// ChargeItemDefPageDto dto = new ChargeItemDefPageDto();
|
||||
// ChargeItemDefDetail chargeItemDefApp =
|
||||
// chargeItemDefAppMap.getOrDefault(entity.getInstanceId(), new ChargeItemDefDetail());
|
||||
// ActivityDefinition deviceDefinition =
|
||||
// activityDefinitionMap.getOrDefault(entity.getInstanceId(), new ActivityDefinition());
|
||||
// // 从主表COPY需要的字段
|
||||
// dto.setId(entity.getId());
|
||||
// dto.setConditionLotnumber(chargeItemDefApp.getConditionLotnumber());
|
||||
// dto.setPyCode(deviceDefinition.getPyCode());
|
||||
// dto.setTypeEnum(deviceDefinition.getTypeEnum().toString());
|
||||
// return dto;
|
||||
// }).collect(Collectors.toList()));
|
||||
// // 模糊查询项目名称/项目编码/助记码
|
||||
// if (itemDefSearchParam.getSearchKey() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getChargeName().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getTitle().contains(itemDefSearchParam.getSearchKey())
|
||||
// || e.getPyCode().contains(itemDefSearchParam.getSearchKey()))
|
||||
// .collect(Collectors.toList()));
|
||||
// }
|
||||
// // 精确查询收费项目
|
||||
// if (itemDefSearchParam.getChargeItem() != null) {
|
||||
// returnPage.setRecords(returnPage.getRecords().stream()
|
||||
// .filter(e -> e.getTypeEnum().equals(itemDefSearchParam.getChargeItem())).collect(Collectors.toList()));
|
||||
// }
|
||||
//
|
||||
// // 返回【入库单据分页列表DTO】分页
|
||||
// return returnPage;
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.appservice.IDeviceManageAppService;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageDto;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageUpDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* TODO:器材目录
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/data-dictionary/device")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class DeviceManageController {
|
||||
|
||||
@Autowired
|
||||
private IDeviceManageAppService deviceManageAppService;
|
||||
|
||||
/**
|
||||
* 器材目录初期查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/init")
|
||||
public R<?> getDeviceManageInit() {
|
||||
return deviceManageAppService.getDeviceManageInit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询器材目录分页列表
|
||||
*
|
||||
* @param deviceManageSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-page")
|
||||
public R<?> getDevicePage(DeviceManageSelParam deviceManageSelParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
return deviceManageAppService.getDevicePage(deviceManageSelParam, searchKey, pageNo, pageSize, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询器材详情
|
||||
*
|
||||
* @param id 器材ID
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-one")
|
||||
public R<?> getDeviceOne(@RequestParam Long id) {
|
||||
|
||||
return deviceManageAppService.getDeviceOne(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录编辑
|
||||
*
|
||||
* @param deviceManageDto 器材目录列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information")
|
||||
public R<?> editDevice(@RequestBody DeviceManageUpDto deviceManageDto) {
|
||||
|
||||
return deviceManageAppService.editDevice(deviceManageDto);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录停用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-stop")
|
||||
public R<?> editDeviceStop(@RequestBody List<Long> ids) {
|
||||
return deviceManageAppService.editDeviceStop(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录启用
|
||||
*
|
||||
* @param ids 器材目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-start")
|
||||
public R<?> editDeviceStart(@RequestBody List<Long> ids) {
|
||||
return deviceManageAppService.editDeviceStart(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增器材目录
|
||||
*
|
||||
* @param deviceManageUpDto 器材目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information")
|
||||
public R<?> addDevice(@Validated @RequestBody DeviceManageUpDto deviceManageUpDto) {
|
||||
return deviceManageAppService.addDevice(deviceManageUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医保器材目录
|
||||
*
|
||||
* @param DeviceManageUpDto 器材目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information-yb")
|
||||
public R<?> addYbDevice(@RequestBody DeviceManageUpDto DeviceManageUpDto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材目录导出
|
||||
*
|
||||
* @param DeviceManageDto 器材目录
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-export")
|
||||
public R<?> exportDevice(@RequestBody DeviceManageDto DeviceManageDto) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.appservice.IDiagTreatMAppService;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* TODO:诊疗目录
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/data-dictionary/diagnosis-treatment")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class DiagnosisTreatmentController {
|
||||
|
||||
@Autowired
|
||||
private IDiagTreatMAppService diagTreatMAppService;
|
||||
|
||||
/**
|
||||
* 诊疗目录初期查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/init")
|
||||
public R<?> getDiseaseTreatmentInit() {
|
||||
return diagTreatMAppService.getDiseaseTreatmentInit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询诊疗目录分页列表
|
||||
*
|
||||
* @param DiagnosisTreatmentSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-page")
|
||||
public R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
return diagTreatMAppService.getDiseaseTreatmentPage(DiagnosisTreatmentSelParam, searchKey, pageNo,
|
||||
pageSize, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询诊疗详情
|
||||
*
|
||||
* @param id 诊疗ID
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-one")
|
||||
public R<?> getDiseaseTreatmentOne(@RequestParam Long id) {
|
||||
return diagTreatMAppService.getDiseaseTreatmentOne(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录编辑
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information")
|
||||
public R<?> editDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
|
||||
return diagTreatMAppService.editDiseaseTreatment(diagnosisTreatmentUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录停用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-stop")
|
||||
public R<?> editDiseaseTreatmentStop(@RequestBody List<Long> ids) {
|
||||
return diagTreatMAppService.editDiseaseTreatmentStop(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录启用
|
||||
*
|
||||
* @param ids 诊疗目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-start")
|
||||
public R<?> editDiseaseTreatmentStart(@RequestBody List<Long> ids) {
|
||||
return diagTreatMAppService.editDiseaseTreatmentStart(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增外来诊疗目录
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information")
|
||||
public R<?> addDiseaseTreatment(@Validated @RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
|
||||
return diagTreatMAppService.addDiseaseTreatment(diagnosisTreatmentUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医保诊疗目录
|
||||
*
|
||||
* @param diagnosisTreatmentUpDto 诊疗目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information-yb")
|
||||
public R<?> addYbDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录导出
|
||||
*
|
||||
* @param diagnosisTreatmentDto 诊疗目录
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-export")
|
||||
public R<?> exportDiseaseTreatment(@RequestBody DiagnosisTreatmentDto diagnosisTreatmentDto) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import com.openhis.clinical.domain.ConditionDefinition;
|
||||
import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageDto;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
|
||||
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* TODO:病种目录
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/data-dictionary/disease")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class DiseaseManageController {
|
||||
|
||||
@Autowired
|
||||
private IDiseaseManageAppService diseaseManageAppService;
|
||||
|
||||
/**
|
||||
* 病种目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-init")
|
||||
public R<?> getDiseaseInit() {
|
||||
|
||||
return diseaseManageAppService.getDiseaseInit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询病种目录分页列表
|
||||
*
|
||||
* @param diseaseManageSelParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-page")
|
||||
public R<?> getDiseaseList(DiseaseManageSelParam diseaseManageSelParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 返回【病种目录列表DTO】分页
|
||||
return diseaseManageAppService.getDiseaseList(diseaseManageSelParam, searchKey, pageNo, pageSize, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询疾病详情
|
||||
*
|
||||
* @param id 疾病ID
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-one")
|
||||
public R<?> getDiseaseOne(@RequestParam Long id) {
|
||||
|
||||
// 根据ID查询【病种目录】
|
||||
return diseaseManageAppService.getDiseaseOne(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录编辑
|
||||
*
|
||||
* @param diseaseManageDto 病种目录列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information")
|
||||
public R<?> editDisease(@RequestBody DiseaseManageUpDto diseaseManageDto) {
|
||||
|
||||
ConditionDefinition conditionDefinition = new ConditionDefinition();
|
||||
BeanUtils.copyProperties(diseaseManageDto, conditionDefinition);
|
||||
|
||||
// 更新病种信息
|
||||
return diseaseManageAppService.editDisease(diseaseManageDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录停用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-stop")
|
||||
public R<?> editDiseaseStop(@RequestBody List<Long> ids) {
|
||||
// 更新病种信息
|
||||
return diseaseManageAppService.editDiseaseStop(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录启用
|
||||
*
|
||||
* @param ids 病种目录ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-start")
|
||||
public R<?> editDiseaseStart(@RequestBody List<Long> ids) {
|
||||
|
||||
// 更新病种信息
|
||||
return diseaseManageAppService.editDiseaseStart(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增外来病种目录
|
||||
*
|
||||
* @param diseaseManageUpDto 病种目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information")
|
||||
public R<?> addDisease(@Validated @RequestBody DiseaseManageUpDto diseaseManageUpDto) {
|
||||
|
||||
return diseaseManageAppService.addDisease(diseaseManageUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医保病种目录
|
||||
*
|
||||
* @param diseaseManageUpDto 病种目录
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information-yb")
|
||||
public R<?> addYbDisease(@RequestBody DiseaseManageUpDto diseaseManageUpDto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 病种目录导出
|
||||
*
|
||||
* @param diseaseManageDto 病种目录
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-export")
|
||||
public R<?> exportDisease(@RequestBody DiseaseManageDto diseaseManageDto) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.ChargeItemContext;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.web.datadictionary.appservice.ItemDefinitionAppService;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDto;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionInitDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 项目定价
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/dict-dictionary/definition")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class ItemDefinitionController {
|
||||
|
||||
private final ItemDefinitionAppService itemDefinitionAppService;
|
||||
|
||||
/**
|
||||
* 项目定价基础数据初始化
|
||||
*
|
||||
* @return 项目定价基础数据
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
ItemDefinitionInitDto itemDefinitionInitDto = new ItemDefinitionInitDto();
|
||||
// 状态
|
||||
List<ItemDefinitionInitDto.PublicationStatusOption> publicationStatusOptions =
|
||||
Stream.of(PublicationStatus.values())
|
||||
.map(status -> new ItemDefinitionInitDto.PublicationStatusOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
itemDefinitionInitDto.setPublicationStatusOptions(publicationStatusOptions);
|
||||
// 收费项目类型
|
||||
List<ItemDefinitionInitDto.ChargeItemContextOption> chargeItemContextOptions =
|
||||
Stream.of(ChargeItemContext.values())
|
||||
.map(status -> new ItemDefinitionInitDto.ChargeItemContextOption(status.getValue(), status.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
itemDefinitionInitDto.setChargeItemContextOptions(chargeItemContextOptions);
|
||||
return R.ok(itemDefinitionInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目定价 分页
|
||||
*
|
||||
* @param itemDefinitionDto dto
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param chargeItemContext 收费项目类型
|
||||
* @param pageNo 当前页
|
||||
* @param pageSize 每页多少条
|
||||
* @return 项目定价
|
||||
*/
|
||||
@GetMapping(value = "/charge-item-info")
|
||||
public R<?> getChargeItemInfo(ItemDefinitionDto itemDefinitionDto,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "chargeItemContext") Integer chargeItemContext,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return R.ok(itemDefinitionAppService.getChargeItemInfo(itemDefinitionDto, chargeItemContext, searchKey, pageNo,
|
||||
pageSize));
|
||||
}
|
||||
|
||||
/**
|
||||
* 项目定价详细
|
||||
*
|
||||
* @param id id
|
||||
* @return 项目定价详细
|
||||
*/
|
||||
@GetMapping(value = "/charge-item-info-detail")
|
||||
public R<?> getChargeItemInfoDetail(@RequestParam Long id) {
|
||||
return R.ok(itemDefinitionAppService.getChargeItemInfoDetail(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 改价
|
||||
*
|
||||
* @param id id
|
||||
* @param price 价格
|
||||
* @return 结果
|
||||
*/
|
||||
@PutMapping(value = "/update-charge-item")
|
||||
public R<?> updateChargeItemInfo(@RequestParam("id") Long id, @RequestParam("price") BigDecimal price) {
|
||||
return itemDefinitionAppService.updateChargeItemInfo(id, price);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.appservice.IMedicationManageAppService;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageUpDto;
|
||||
import com.openhis.web.datadictionary.dto.MedicationSearchParam;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 已评审 TODO:药品目录
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/data-dictionary/medication")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class MedicationManageController {
|
||||
|
||||
@Autowired
|
||||
private IMedicationManageAppService medicationManageAppService;
|
||||
|
||||
/**
|
||||
* 已评审 药品目录初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-init")
|
||||
public R<?> getMedicationInit() {
|
||||
return medicationManageAppService.getMedicationInit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 查询药品目录分页列表
|
||||
*
|
||||
* @param medicationSearchParam 查询条件
|
||||
* @param searchKey 模糊查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-page")
|
||||
public R<?> getMedicationList(MedicationSearchParam medicationSearchParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
return medicationManageAppService.getMedicationList(medicationSearchParam, searchKey, pageNo, pageSize,
|
||||
request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 根据id查询药品详情
|
||||
*
|
||||
* @param id 药品ID
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-one")
|
||||
public R<?> getMedicationOne(@RequestParam Long id) {
|
||||
return medicationManageAppService.getMedicationOne(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 药品目录编辑
|
||||
*
|
||||
* @param medicationManageUpDto
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information")
|
||||
public R<?> editMedication(@RequestBody MedicationManageUpDto medicationManageUpDto) {
|
||||
return medicationManageAppService.editMedication(medicationManageUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 一品神 药品目录停用
|
||||
*
|
||||
* @param ids 药品ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-stop")
|
||||
public R<?> editMedicationStop(@RequestBody List<Long> ids) {
|
||||
// todo:用动宾短语命名业务方法 如stopMedication
|
||||
return medicationManageAppService.editMedicationStop(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 药品目录启用
|
||||
*
|
||||
* @param ids 药品ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-start")
|
||||
public R<?> editMedicationStart(@RequestBody List<Long> ids) {
|
||||
return medicationManageAppService.editMedicationStart(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 已评审 新增外来药品目录
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information")
|
||||
public R<?> addMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) {
|
||||
return medicationManageAppService.addMedication(medicationManageUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医保药品目录
|
||||
*
|
||||
* @param medicationManageUpDto 药品目录信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/information-yb")
|
||||
public R<?> addYbMedication(@RequestBody MedicationManageUpDto medicationManageUpDto) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 药品目录导出
|
||||
*
|
||||
* @param searchKey 查询条件
|
||||
* @param statusEnum 查询条件-状态
|
||||
* @param ybMatchFlag 查询条件-是否对码
|
||||
* @param categoryCode 查询条件-药品分类
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-export")
|
||||
public R<?> exportMedication(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag,
|
||||
@RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum,
|
||||
@RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response) {
|
||||
return medicationManageAppService.exportMedication(searchKey, ybMatchFlag, statusEnum, categoryCode, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入药品目录
|
||||
*
|
||||
* @param file 文件
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/import-data")
|
||||
public R<?> importData(MultipartFile file) {
|
||||
return medicationManageAppService.importData(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导入模板
|
||||
*
|
||||
* @param response 响应
|
||||
*/
|
||||
@PostMapping("/import-template")
|
||||
public void importTemplate(HttpServletResponse response) {
|
||||
medicationManageAppService.importTemplate(response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.controller;
|
||||
|
||||
import java.util.List;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.datadictionary.appservice.ISupplierManagementAppService;
|
||||
import com.openhis.web.datadictionary.dto.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* TODO:厂商/产地
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/data-dictionary/supplier")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class SupplierManagementController {
|
||||
|
||||
@Autowired
|
||||
private ISupplierManagementAppService supplierManagementAppService;
|
||||
|
||||
/**
|
||||
* 厂商/产地初始化
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/information-init")
|
||||
public R<?> getSupplierInit() {
|
||||
return supplierManagementAppService.getSupplierInit();
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地查询
|
||||
*
|
||||
* @param supplierSearchParam 查询条件
|
||||
* @param searchKey 查询条件-模糊查询
|
||||
* @param typeEnum 查询条件
|
||||
* @param pageNo 查询条件
|
||||
* @param pageSize 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
@GetMapping(value = "/get-supplier-list")
|
||||
public R<?> getSupplierList(SupplierSearchParam supplierSearchParam,
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "typeEnum", defaultValue = "") Integer typeEnum,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
|
||||
|
||||
// 返回分页
|
||||
return supplierManagementAppService.getSupplierList(supplierSearchParam, searchKey,typeEnum, pageNo, pageSize, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
@PostMapping("/add-supplier")
|
||||
public R<?> addSupplyRequest(@Validated @RequestBody SupplierUpDto supplierUpDto) {
|
||||
return supplierManagementAppService.addSupplyRequest(supplierUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑供应商信息
|
||||
*
|
||||
* @param supplierUpDto 供应商信息
|
||||
*/
|
||||
@PutMapping("/edit-supplier")
|
||||
public R<?> editSupplyRequest(@Validated @RequestBody SupplierUpDto supplierUpDto) {
|
||||
|
||||
// 更新供应商信息信息
|
||||
return supplierManagementAppService.editSupplyRequest(supplierUpDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地详细查询
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 厂商/产地查询结果
|
||||
*/
|
||||
@GetMapping(value = "/get-supplier-detail")
|
||||
public R<?> getSupplierDetail(@RequestParam Long id) {
|
||||
return supplierManagementAppService.getSupplierDetail(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地停用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-stop")
|
||||
public R<?> editSupplierStop(@RequestBody List<Long> ids) {
|
||||
// 更新厂商/产地信息
|
||||
return supplierManagementAppService.editSupplierStop(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 厂商/产地启用
|
||||
*
|
||||
* @param ids 厂商/产地ID列表
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/information-start")
|
||||
public R<?> editSupplierStart(@RequestBody List<Long> ids) {
|
||||
// 更新厂商/产地信息
|
||||
return supplierManagementAppService.editSupplierStart(ids);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 诊疗子项JSON
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ActivityChildJsonDto {
|
||||
|
||||
/** 诊疗医嘱定义ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long adviceDefinitionId;
|
||||
|
||||
/**
|
||||
* 子项请求数量
|
||||
*/
|
||||
private Integer childrenRequestNum;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 费用定价分页Dto
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ChargeItemDefPageDto {
|
||||
|
||||
/** ID */
|
||||
private Long id;
|
||||
|
||||
/** 费用定价子表主键 */
|
||||
private Long itemId;
|
||||
|
||||
/** 名称 */
|
||||
private String chargeName;
|
||||
|
||||
/** 项目编号 */
|
||||
private String itemNo;
|
||||
|
||||
/** 规格 */
|
||||
private String totalVolume;
|
||||
|
||||
/** 状态 */
|
||||
private PublicationStatus statusEnum;
|
||||
|
||||
/** 状态值 */
|
||||
private String statusEnumText;
|
||||
|
||||
/** 单位 */
|
||||
private String unitCode;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 条件 */
|
||||
private String conditionCode;
|
||||
|
||||
/** 命中值 */
|
||||
private String conditionValue;
|
||||
|
||||
/** 价格 */
|
||||
private BigDecimal price;
|
||||
|
||||
/** 有效时间开始 */
|
||||
private Date effectiveStart;
|
||||
|
||||
/** 有效时间结束 */
|
||||
private Date effectiveEnd;
|
||||
|
||||
/** 拆零最小单位 */
|
||||
private String partMinUnitCode;
|
||||
|
||||
/** 拆零指导价 */
|
||||
private BigDecimal partConditionPrice;
|
||||
|
||||
/** 拆零价格 */
|
||||
private BigDecimal partPrice;
|
||||
|
||||
/** 条件价格 */
|
||||
private BigDecimal amount;
|
||||
|
||||
/** 调价说明 */
|
||||
private String description;
|
||||
|
||||
/** 优先级 */
|
||||
private Integer priority;
|
||||
|
||||
/** 条件规则 */
|
||||
private Integer conditionRuleId;
|
||||
|
||||
/** 创建时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** 调价时间 */
|
||||
private Date updateTime;
|
||||
|
||||
/** 总条数 */
|
||||
private Integer totalCount;
|
||||
|
||||
/** 拼音助记码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 收费项目 */
|
||||
private Integer categoryCode;
|
||||
|
||||
/** 编码 */
|
||||
private String instanceTable;
|
||||
|
||||
/** 定价类型 */
|
||||
private String definitionType;
|
||||
|
||||
/** 定价项目 */
|
||||
private Integer chargeItem;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 收费项目下拉框
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-24
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ChargeItemOptionDto {
|
||||
|
||||
/** 值 */
|
||||
private Integer value;
|
||||
|
||||
/** 标签 */
|
||||
private String label;
|
||||
|
||||
public ChargeItemOptionDto(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.label = info;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.common.enums.DeviceCategory;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 器材目录分页检索
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DeviceManageDto {
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 编码 */
|
||||
private String busNo;
|
||||
|
||||
/** 器材名称 */
|
||||
private String name;
|
||||
|
||||
/** 器材名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 器材五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 器材分类 */
|
||||
@Dict(dictCode = "device_category_code")
|
||||
private String categoryCode;
|
||||
private String categoryCode_dictText;
|
||||
|
||||
/** 器材种类 */
|
||||
@Dict(dictCode = "device_type_code")
|
||||
private String typeCode;
|
||||
private String typeCode_dictText;
|
||||
|
||||
/** 包装单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/** 包装规格 */
|
||||
private String size;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 最小使用单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String minUnitCode;
|
||||
private String minUnitCode_dictText;
|
||||
|
||||
/** 所属科室 */
|
||||
@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 Integer hvcmFlag;
|
||||
private String hvcmFlag_enumText;
|
||||
|
||||
/** 销售单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String salesUnitCode;
|
||||
private String salesUnitCode_dictText;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
private String ybFlag_enumText;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医药机构目录编码 */
|
||||
private String ybOrgNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
private String ybMatchFlag_enumText;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long manufacturerId;
|
||||
|
||||
/** 生产厂商文本 */
|
||||
private String manufacturerText;
|
||||
|
||||
/** 供应商 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_supplier",dictCode = "id",dictText = "name")
|
||||
private Long supplyId;
|
||||
private String supplyId_dictText;
|
||||
|
||||
/** 说明 */
|
||||
private String description;
|
||||
|
||||
/** 适用范围 */
|
||||
private String jurisdiction;
|
||||
|
||||
/** 器材版本 */
|
||||
private String version;
|
||||
|
||||
/** 主要成分 */
|
||||
private String substanceText;
|
||||
|
||||
/** 过敏标记 */
|
||||
private Integer allergenFlag;
|
||||
private String allergenFlag_enumText;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String itemTypeCode;
|
||||
private String itemTypeCode_dictText;
|
||||
|
||||
/** 医保类别 */
|
||||
@Dict(dictCode = "yb_type")
|
||||
private String ybType;
|
||||
private String ybType_dictText;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 最小库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMinQuantity;
|
||||
|
||||
/** 最大库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMaxQuantity;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 器材目录初始dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DeviceManageInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<dictCategoryCode> deviceCategories;
|
||||
private List<exeOrganization> exeOrganizations;
|
||||
// 供应商
|
||||
private List<supplierListOption> supplierListOptions;
|
||||
// 是/否 状态
|
||||
private List<statusEnumOption> statusYBWeatherOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class statusEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public statusEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材分类
|
||||
*/
|
||||
@Data
|
||||
public static class deviceCategory {
|
||||
private Integer value;
|
||||
private String info;
|
||||
List<deviceCategory> children = new ArrayList<>();
|
||||
|
||||
public deviceCategory(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 器材分类
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行机构
|
||||
*/
|
||||
@Data
|
||||
public static class exeOrganization {
|
||||
private Long value;
|
||||
private String label;
|
||||
|
||||
public exeOrganization(Long value, String label) {
|
||||
this.value = value;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 器材目录分页检索条件
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DeviceManageSelParam {
|
||||
|
||||
/** 器材分类 */
|
||||
private String categoryCode;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.common.enums.DeviceCategory;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 器材目录更新
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DeviceManageUpDto {
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 编码 */
|
||||
private String busNo;
|
||||
|
||||
/** 器材名称 */
|
||||
@NotBlank(message = "器材名称不能为空")
|
||||
private String name;
|
||||
|
||||
/** 器材名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 器材五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 器材分类 */
|
||||
private String categoryCode;
|
||||
|
||||
/** 器材种类 */
|
||||
private String typeCode;
|
||||
|
||||
/** 包装单位 */
|
||||
@NotBlank(message = "包装单位不能为空")
|
||||
private String unitCode;
|
||||
|
||||
/** 包装规格 */
|
||||
private String size;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 最小使用单位 */
|
||||
@NotBlank(message = "最小使用单位不能为空")
|
||||
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 Integer hvcmFlag;
|
||||
|
||||
/** 销售单位 */
|
||||
private String salesUnitCode;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医药机构目录编码 */
|
||||
private String ybOrgNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long manufacturerId;
|
||||
|
||||
/** 生产厂商文本 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private String manufacturerText;
|
||||
|
||||
/** 供应商 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplyId;
|
||||
|
||||
/** 说明 */
|
||||
private String description;
|
||||
|
||||
/** 适用范围 */
|
||||
private String jurisdiction;
|
||||
|
||||
/** 器材版本 */
|
||||
private String version;
|
||||
|
||||
/** 主要成分 */
|
||||
private String substanceText;
|
||||
|
||||
/** 过敏标记 */
|
||||
private Integer allergenFlag;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 财务类别 */
|
||||
private String itemTypeCode;
|
||||
|
||||
/** 医保类别 */
|
||||
private String ybType;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 最小库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMinQuantity;
|
||||
|
||||
/** 最大库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMaxQuantity;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.common.enums.ActivityDefCategory;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 诊疗目录分页检索
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiagnosisTreatmentDto {
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 目录类别 */
|
||||
@Dict(dictCode = "activity_category_code")
|
||||
private String categoryCode;
|
||||
private String categoryCode_dictText;
|
||||
|
||||
/** 编码 */
|
||||
private String busNo;
|
||||
|
||||
/** 项目名称 */
|
||||
private String name;
|
||||
|
||||
/** 项目名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
private String typeEnum_enumText;
|
||||
|
||||
/** 使用单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String permittedUnitCode;
|
||||
private String permittedUnitCode_dictText;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
private String ybFlag_enumText;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
private String ybMatchFlag_enumText;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 身体部位 */
|
||||
@Dict(dictTable = "adm_body_structure", dictCode = "id", dictText = "name")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private String bodySiteCode;
|
||||
private String bodySiteCode_dictText;
|
||||
|
||||
/** 所需标本 */
|
||||
@Dict(dictCode = "specimen_code")
|
||||
private String specimenCode;
|
||||
private String specimenCode_dictText;
|
||||
|
||||
/** 说明 */
|
||||
private String descriptionText;
|
||||
|
||||
/** 规则id */
|
||||
private Integer ruleId;
|
||||
|
||||
/** 所属科室 */
|
||||
@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;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String itemTypeCode;
|
||||
private String itemTypeCode_dictText;
|
||||
|
||||
/** 医保类别 */
|
||||
@Dict(dictCode = "med_chrgitm_type")
|
||||
private String ybType;
|
||||
private String ybType_dictText;
|
||||
|
||||
// /** 购入价 */
|
||||
// private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 子项json */
|
||||
private String childrenJson;
|
||||
|
||||
/** 划价标记 */
|
||||
private Integer pricingFlag;
|
||||
private String pricingFlag_enumText;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 诊疗目录初期查询
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiagnosisTreatmentInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<diseaseTreatmentCategory> diseaseTreatmentCategoryList;
|
||||
private List<exeOrganization> exeOrganizations;
|
||||
private List<statusEnumOption> typeEnumOptions;
|
||||
//诊疗目录
|
||||
private List<dictCategoryCode> diagnosisCategoryOptions;
|
||||
//是否list
|
||||
private List<statusEnumOption> statusWeatherOption;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class statusEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public statusEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗分类
|
||||
*/
|
||||
@Data
|
||||
public static class diseaseTreatmentCategory {
|
||||
private Integer value;
|
||||
private String info;
|
||||
private List<diseaseTreatmentType> children = new ArrayList<>();
|
||||
|
||||
public diseaseTreatmentCategory(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗类型
|
||||
*/
|
||||
@Data
|
||||
public static class diseaseTreatmentType {
|
||||
private String value;
|
||||
private String info;
|
||||
private List<diseaseTreatmentType> children = new ArrayList<>();
|
||||
|
||||
public diseaseTreatmentType(String value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 诊疗目录类型
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行机构
|
||||
*/
|
||||
@Data
|
||||
public static class exeOrganization {
|
||||
private Long value;
|
||||
private String label;
|
||||
|
||||
public exeOrganization(Long value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 诊疗目录分页检索条件
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiagnosisTreatmentSelParam {
|
||||
|
||||
/** 目录类别 */
|
||||
private String categoryCode;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
|
||||
/** 规则id */
|
||||
private Integer ruleId;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.common.enums.ActivityDefCategory;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 诊疗目录分页更新
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiagnosisTreatmentUpDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 目录类别 */
|
||||
@NotBlank(message = "目录类别不能为空")
|
||||
private String categoryCode;
|
||||
|
||||
/** 编码 */
|
||||
private String busNo;
|
||||
|
||||
/** 项目名称 */
|
||||
@NotBlank(message = "项目名称不能为空")
|
||||
private String name;
|
||||
|
||||
/** 项目名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 使用单位 */
|
||||
private String permittedUnitCode;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
|
||||
/** 身体部位 */
|
||||
private String bodySiteCode;
|
||||
|
||||
/** 所需标本 */
|
||||
private String specimenCode;
|
||||
|
||||
/** 说明 */
|
||||
private String descriptionText;
|
||||
|
||||
/** 规则id */
|
||||
private Integer ruleId;
|
||||
|
||||
/** 所属科室 */
|
||||
@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;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String itemTypeCode;
|
||||
private String itemTypeCode_dictText;
|
||||
|
||||
/** 医保类别 */
|
||||
@Dict(dictCode = "med_chrgitm_type")
|
||||
private String ybType;
|
||||
private String ybType_dictText;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 子项json */
|
||||
private String childrenJson;
|
||||
|
||||
/** 划价标记 */
|
||||
private Integer pricingFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import com.openhis.common.enums.ConditionDefinitionSource;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 疾病目录分页Dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiseaseManageDto {
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 所属分类 */
|
||||
private Integer sourceEnum;
|
||||
private String sourceEnum_enumText;
|
||||
|
||||
/** 编码 */
|
||||
private String conditionCode;
|
||||
|
||||
/** 诊断名称 */
|
||||
private String name;
|
||||
|
||||
/** 诊断名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 诊断名称五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 类型 */
|
||||
@Dict(dictCode = "condition_type_code")
|
||||
private String typeCode;
|
||||
private String typeCode_dictText;
|
||||
|
||||
/** 描述 */
|
||||
private String description;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
private String ybFlag_enumText;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
private String ybMatchFlag_enumText;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 疾病目录初始dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiseaseManageInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<diseaseCategory> diseaseCategoryList;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class statusEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public statusEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 疾病分类
|
||||
*/
|
||||
@Data
|
||||
public static class diseaseCategory {
|
||||
private Integer value;
|
||||
private String info;
|
||||
List<diseaseCategory> children = new ArrayList<>();
|
||||
|
||||
public diseaseCategory(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.openhis.common.enums.ConditionDefinitionSource;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 疾病目录分页检索条件
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiseaseManageSelParam {
|
||||
/** 所属分类 */
|
||||
private Integer sourceEnum;
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.enums.ConditionDefinitionSource;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* 疾病目录更新Dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class DiseaseManageUpDto {
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 所属分类 */
|
||||
private Integer sourceEnum;
|
||||
|
||||
/** 编码 */
|
||||
private String conditionCode;
|
||||
|
||||
/** 诊断名称 */
|
||||
@NotBlank(message = "疾病名称不能为空")
|
||||
private String name;
|
||||
|
||||
/** 诊断名称拼音 */
|
||||
private String pyStr;
|
||||
|
||||
/** 诊断名称五笔拼音 */
|
||||
private String wbStr;
|
||||
|
||||
/** 类型 */
|
||||
private String typeCode;
|
||||
|
||||
/** 描述 */
|
||||
private String description;
|
||||
|
||||
/** 医保标记 */
|
||||
private Integer ybFlag;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 医保对码标记 */
|
||||
private Integer ybMatchFlag;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 项目定价查询dto
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ItemDefSearchParam {
|
||||
|
||||
/** 定价类型 */
|
||||
private String definitionType;
|
||||
/** 定价项目 */
|
||||
private Integer chargeItem;
|
||||
/** 模糊搜索条件 */
|
||||
private String searchKey;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 收费项目详情 dto
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ItemDefinitionDetailDto {
|
||||
|
||||
/** 条件 */
|
||||
private Integer conditionCode;
|
||||
private String conditionCode_enumText;
|
||||
|
||||
/** 价格 */
|
||||
private BigDecimal amount;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 收费项目 dto
|
||||
*
|
||||
* @author zxy
|
||||
* @date 2025-02-21
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ItemDefinitionDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 名称 */
|
||||
private String chargeName;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 所属科室 */
|
||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
private String orgId_dictText;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String typeCode;
|
||||
private String typeCode_dictText;
|
||||
|
||||
/** 医保类别 */
|
||||
@Dict(dictCode = "yb_type")
|
||||
private String ybType;
|
||||
private String ybType_dictText;
|
||||
|
||||
/** 代码 */
|
||||
private String instanceTable;
|
||||
|
||||
/** 基础价格 */
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 费用明细个数
|
||||
*/
|
||||
private Integer detailCount;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 项目定价 init基础数据
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class ItemDefinitionInitDto {
|
||||
|
||||
private List<PublicationStatusOption> publicationStatusOptions;
|
||||
private List<ChargeItemContextOption> chargeItemContextOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class PublicationStatusOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public PublicationStatusOption(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 收费项目类型
|
||||
*/
|
||||
@Data
|
||||
public static class ChargeItemContextOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public ChargeItemContextOption(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.core.common.annotation.Excel;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 药品目录导入Dto
|
||||
*
|
||||
* @author GuoRui
|
||||
* @date 2025-08-18
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicationImportDto {
|
||||
|
||||
// ---------------------- 药品定义 med_medication_definition -------------------------------------
|
||||
|
||||
/** 药品名称 */
|
||||
@Excel(name = "药品名称")
|
||||
private String name;
|
||||
|
||||
/** 药品版本 */
|
||||
@Excel(name = "药品版本")
|
||||
private String version;
|
||||
|
||||
/** 英文药名 */
|
||||
@Excel(name = "英文药名")
|
||||
private String nameEn;
|
||||
|
||||
/** 药品分类 */
|
||||
@Excel(name = "药品分类", dictType = "med_category_code", comboReadDict = true)
|
||||
private String categoryCode;
|
||||
|
||||
/** 商品名称 */
|
||||
@Excel(name = "商品名称")
|
||||
private String merchandiseName;
|
||||
|
||||
/** 药品单位 */
|
||||
@Excel(name = "药品单位", dictType = "unit_code", comboReadDict = true)
|
||||
private String unitCode;
|
||||
|
||||
/** 最小单位 */
|
||||
@Excel(name = "最小单位", dictType = "unit_code", comboReadDict = true)
|
||||
private String minUnitCode;
|
||||
|
||||
/** 拆零比 */
|
||||
@Excel(name = "拆零比")
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 剂量形式 */
|
||||
@Excel(name = "剂量形式", dictType = "dose_from_code", comboReadDict = true)
|
||||
private String doseFrom;
|
||||
|
||||
/** 批准文号 */
|
||||
@Excel(name = "批准文号")
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保是否对码 */
|
||||
@Excel(name = "医保是否对码", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String ybMatchFlag;
|
||||
|
||||
/** 医保编码 */
|
||||
@Excel(name = "医保编码")
|
||||
private String ybNo;
|
||||
|
||||
/** 是否皮试 */
|
||||
@Excel(name = "是否皮试", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String skinTestFlag;
|
||||
|
||||
/** 是否为注射药物 */
|
||||
@Excel(name = "是否为注射药物", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String injectFlag;
|
||||
|
||||
/** 生产厂商文本 */
|
||||
@Excel(name = "生产厂商文本")
|
||||
private String manufacturerText;
|
||||
|
||||
/** 是否限制使用 */
|
||||
@Excel(name = "是否限制使用", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String restrictedFlag;
|
||||
|
||||
/** 限制使用范围 */
|
||||
@Excel(name = "限制使用范围")
|
||||
private String restrictedScope;
|
||||
|
||||
/** 儿童用药标志 */
|
||||
@Excel(name = "儿童用药标志", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String childrenFlag;
|
||||
|
||||
/** 贯标国家编码 */
|
||||
@Excel(name = "贯标国家编码")
|
||||
private String nationalDrugCode;
|
||||
|
||||
/** 拆分属性 */
|
||||
@Excel(name = "拆分属性", readConverterExp = "1=门诊按最小单位每次量向上取整,2=门诊按包装单位不可拆分,3=门诊按最小单位总量向上取整,4=门诊按包装单位每次量向上取整",
|
||||
combo = "门诊按最小单位每次量向上取整,门诊按包装单位不可拆分,门诊按最小单位总量向上取整,门诊按包装单位每次量向上取整")
|
||||
private String partAttributeEnum;
|
||||
|
||||
/** 是否抗生素 */
|
||||
@Excel(name = "是否抗生素", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String antibioticFlag;
|
||||
|
||||
/** 抗生素分类 */
|
||||
@Excel(name = "抗生素分类", dictType = "antibiotic_type_code", comboReadDict = true)
|
||||
private String antibioticCode;
|
||||
|
||||
/** 权限限制 */
|
||||
@Excel(name = "权限限制", readConverterExp = "1=非限制使用,2=限制使用,3=特殊使用", combo = "非限制使用,限制使用,特殊使用")
|
||||
private String restrictedEnum;
|
||||
|
||||
/** 是否自制 */
|
||||
@Excel(name = "是否自制", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String selfFlag;
|
||||
|
||||
/** 基药标识 */
|
||||
@Excel(name = "基药标识", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String basicFlag;
|
||||
|
||||
/** 住院临时医嘱拆分属性 */
|
||||
@Excel(name = "住院临时医嘱拆分属性",
|
||||
readConverterExp = "1=临时医嘱按最小单位每次量向上取整,2=临时医嘱按包装单位开立,3=临时医嘱按最小单位总量向上取整,4=临时医嘱按包装单位每次量向上取整",
|
||||
combo = "临时医嘱按最小单位每次量向上取整,临时医嘱按包装单位开立,临时医嘱按最小单位总量向上取整,临时医嘱按包装单位每次量向上取整")
|
||||
private String thoPartAttributeEnum;
|
||||
|
||||
/** 剂量单位换算比 */
|
||||
@Excel(name = "剂量单位换算比")
|
||||
private BigDecimal unitConversionRatio;
|
||||
|
||||
/** 医保等级 */
|
||||
@Excel(name = "医保等级", dictType = "chrgitm_lv", comboReadDict = true)
|
||||
private String chrgitmLv;
|
||||
|
||||
/** 处方标志 */
|
||||
@Excel(name = "处方标志", readConverterExp = "0=否,1=是", combo = "否,是")
|
||||
private String rxFlag;
|
||||
|
||||
// ---------------------- 药品基本信息 med_medication ----------------------------------------------
|
||||
|
||||
/** 所在位置名称(locationId) */
|
||||
@Excel(name = "所在位置名称")
|
||||
private String locationName;
|
||||
|
||||
/** 规格 */
|
||||
@Excel(name = "规格")
|
||||
private String totalVolume;
|
||||
|
||||
/** 用法 */
|
||||
@Excel(name = "用法", dictType = "method_code", comboReadDict = true)
|
||||
private String methodCode;
|
||||
|
||||
/** 用药频次 */
|
||||
@Excel(name = "用药频次", dictType = "rate_code", comboReadDict = true)
|
||||
private String rateCode;
|
||||
|
||||
/** 单次剂量 */
|
||||
@Excel(name = "单次剂量")
|
||||
private BigDecimal dose;
|
||||
|
||||
/** 剂量单位 */
|
||||
@Excel(name = "剂量单位", dictType = "unit_code", comboReadDict = true)
|
||||
private String doseUnitCode;
|
||||
|
||||
/** 单次最大剂量 */
|
||||
@Excel(name = "单次最大剂量")
|
||||
private BigDecimal maxUnit;
|
||||
|
||||
// ---------------------- 费用定价 adm_charge_item_definition ----------------------------------------------
|
||||
|
||||
/** 财务类别 */
|
||||
@Excel(name = "财务类别", dictType = "fin_type_code", comboReadDict = true)
|
||||
private String typeCode;
|
||||
|
||||
/** 医保费用类别 */
|
||||
@Excel(name = "医保费用类别", dictType = "med_chrgitm_type", comboReadDict = true)
|
||||
private String ybType;
|
||||
|
||||
// ---------------------- 费用定价子表 adm_charge_item_def_detail ----------------------------------------------
|
||||
|
||||
/** 购入价 */
|
||||
@Excel(name = "购入价")
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
@Excel(name = "零售价")
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
@Excel(name = "最高零售价")
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,292 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 药品目录Dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicationManageDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 药品编码 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long medicationDefId;
|
||||
|
||||
/** 药品状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 所属科室 */
|
||||
@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;
|
||||
|
||||
/** 剂型 */
|
||||
@Dict(dictCode = "dose_form_code")
|
||||
private String doseFormCode;
|
||||
private String doseFormCode_dictText;
|
||||
|
||||
/** 规格 */
|
||||
private String totalVolume;
|
||||
|
||||
/** 成分 */
|
||||
private String ingredientItem;
|
||||
|
||||
/** 是否为活性 */
|
||||
private Integer activeFlag;
|
||||
private String activeFlag_enumText;
|
||||
|
||||
/** 批次号 */
|
||||
private String lotNumber;
|
||||
|
||||
/** 生效日期 */
|
||||
private Date effectiveDate;
|
||||
|
||||
/** 到期日期 */
|
||||
private Date expirationDate;
|
||||
|
||||
/** 用法 */
|
||||
@Dict(dictCode = "method_code")
|
||||
private String methodCode;
|
||||
private String methodCode_dictText;
|
||||
|
||||
/** 用药频次 */
|
||||
@Dict(dictCode = "rate_code")
|
||||
private String rateCode;
|
||||
private String rateCode_dictText;
|
||||
|
||||
/** 单次剂量 */
|
||||
private BigDecimal dose;
|
||||
|
||||
/** 剂量单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String doseUnitCode;
|
||||
private String doseUnitCode_dictText;
|
||||
|
||||
/** 单次最大剂量 */
|
||||
private BigDecimal maxUnit;
|
||||
|
||||
/** 药品定义 */
|
||||
private String definition;
|
||||
|
||||
/** 用量限定 */
|
||||
private BigDecimal usageLimit;
|
||||
|
||||
/** DDD值 */
|
||||
@Dict(dictCode = "ddd_code")
|
||||
private String dddCode;
|
||||
private String dddCode_dictText;
|
||||
|
||||
/** DDD单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String dddUnitCode;
|
||||
private String dddUnitCode_dictText;
|
||||
|
||||
/** 药品编号 */
|
||||
private String busNo;
|
||||
|
||||
/** 药品名称 */
|
||||
private String name;
|
||||
|
||||
/** 适用范围 */
|
||||
private Integer domainEnum;
|
||||
private String domainEnum_enumText;
|
||||
|
||||
/** 药品版本 */
|
||||
private String version;
|
||||
|
||||
/** 英文药名 */
|
||||
private String nameEn;
|
||||
|
||||
/** 药品名称拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 药品五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 药品分类 */
|
||||
@Dict(dictCode = "med_category_code")
|
||||
private String categoryCode;
|
||||
private String categoryCode_dictText;
|
||||
|
||||
/** 商品名称 */
|
||||
private String merchandiseName;
|
||||
|
||||
/** 商品名称拼音码 */
|
||||
private String merchandisePyStr;
|
||||
|
||||
/** 商品五笔码 */
|
||||
private String merchandiseWbStr;
|
||||
|
||||
/** 药品单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/** 最小单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String minUnitCode;
|
||||
private String minUnitCode_dictText;
|
||||
|
||||
/** 所含耗材 */
|
||||
private String comprisedText;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 剂量形式 */
|
||||
@Dict(dictCode = "dose_form_code")
|
||||
private Integer doseFrom;
|
||||
private String doseFrom_dictText;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保是否对码 */
|
||||
private Integer ybMatchFlag;
|
||||
private String ybMatchFlag_enumText;;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 药理作用分类 */
|
||||
private String pharmacologyCategoryCode;
|
||||
|
||||
/** 是否皮试 */
|
||||
private Integer skinTestFlag;
|
||||
private String skinTestFlag_enumText;
|
||||
|
||||
/** 是否为注射药物 */
|
||||
private Integer injectFlag;
|
||||
private String injectFlag_enumText;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long manufacturerId;
|
||||
|
||||
/** 供应商 */
|
||||
@Dict(dictTable = "adm_supplier", dictCode = "id", dictText = "name")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplyId;
|
||||
private String supplyId_dictText;
|
||||
|
||||
/** 是否限制使用 */
|
||||
private Integer restrictedFlag;
|
||||
private String restrictedFlag_enumText;
|
||||
|
||||
/** 限制使用范围 */
|
||||
private String restrictedScope;
|
||||
|
||||
/** 儿童用药标志 */
|
||||
private Integer childrenFlag;
|
||||
private String childrenFlag_enumText;
|
||||
|
||||
/** 产品特性 */
|
||||
private Integer characteristic;
|
||||
private String characteristic_enumText;
|
||||
|
||||
/** 贯标国家编码 */
|
||||
private String nationalDrugCode;
|
||||
|
||||
/** 拆分属性 */
|
||||
private Integer partAttributeEnum;
|
||||
private String partAttributeEnum_enumText;
|
||||
|
||||
/** 抗生素分类 */
|
||||
@Dict(dictCode = "antibiotic_type_code")
|
||||
private String antibioticCode;
|
||||
private String antibioticCode_dictText;
|
||||
|
||||
/** 权限限制 */
|
||||
private Integer restrictedEnum;
|
||||
private String restrictedEnum_enumText;
|
||||
|
||||
/** 是否自制 */
|
||||
private Integer selfFlag;
|
||||
private String selfFlag_enumText;
|
||||
|
||||
/** 是否抗生素 */
|
||||
private Integer antibioticFlag;
|
||||
private String antibioticFlag_enumText;
|
||||
|
||||
/** 基药标识 */
|
||||
private Integer basicFlag;
|
||||
private String basicFlag_enumText;
|
||||
|
||||
/** 生产厂商文本 */
|
||||
private String manufacturerText;
|
||||
|
||||
/** 最小库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMinQuantity;
|
||||
|
||||
/** 最大库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMaxQuantity;
|
||||
|
||||
/** 售价 */
|
||||
private BigDecimal price;
|
||||
|
||||
/** 单次最小用药频次 */
|
||||
private String minRateCode;
|
||||
|
||||
/** 单次最大用药频次 */
|
||||
private String maxRateCode;
|
||||
|
||||
/** 医保类别 */
|
||||
private String ybType;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String typeCode;
|
||||
private String typeCode_dictText;
|
||||
|
||||
/** 成分 */
|
||||
private String ingredient;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 住院临时医嘱拆分属性 */
|
||||
private Integer thoPartAttributeEnum;
|
||||
private String thoPartAttributeEnum_enumText;
|
||||
|
||||
/** 剂量单位换算比 */
|
||||
private BigDecimal unitConversionRatio;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 处方标志 */
|
||||
private Integer rxFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 药品目录初始dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicationManageInitDto {
|
||||
private List<statusEnumOption> statusFlagOptions;
|
||||
private List<domainEnumOption> domainFlagOptions;
|
||||
// 供应商
|
||||
private List<MedicationManageInitDto.supplierListOption> supplierListOptions;
|
||||
// 药品类型
|
||||
private List<MedicationManageInitDto.dictCategoryCode> medicationCategoryCodeOptions;
|
||||
// 单位编码
|
||||
private List<MedicationManageInitDto.dictCategoryCode> unitCodeOptions;
|
||||
// 是/否 状态
|
||||
private List<statusEnumOption> statusWeatherOptions;
|
||||
// 权限限制
|
||||
private List<statusEnumOption> statusRestrictedOptions;
|
||||
// 拆分属性
|
||||
private List<statusEnumOption> partAttributeEnumOptions;
|
||||
//住院临时医嘱拆分属性
|
||||
private List<statusEnumOption> tempOrderSplitPropertyEnumOptions;
|
||||
//医保等级list
|
||||
private List<statusEnumOption> chrgitmLvOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class statusEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public statusEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 适用范围
|
||||
*/
|
||||
@Data
|
||||
public static class domainEnumOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public domainEnumOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 药品类型
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 药品目录Dto
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicationManageUpDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 药品编码 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long medicationDefId;
|
||||
|
||||
/** 所属科室 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
|
||||
/** 所在位置 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
|
||||
/** 剂型 */
|
||||
private String doseFormCode;
|
||||
|
||||
/** 规格 */
|
||||
private String totalVolume;
|
||||
|
||||
/** 成分 */
|
||||
private String ingredientItem;
|
||||
|
||||
/** 是否为活性 */
|
||||
private Integer activeFlag;
|
||||
|
||||
/** 批次号 */
|
||||
private String lotNumber;
|
||||
|
||||
/** 生效日期 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date effectiveDate;
|
||||
|
||||
/** 到期日期 */
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date expirationDate;
|
||||
|
||||
/** 用法 */
|
||||
private String methodCode;
|
||||
|
||||
/** 用药频次 */
|
||||
private String rateCode;
|
||||
|
||||
/** 单次剂量 */
|
||||
private BigDecimal dose;
|
||||
|
||||
/** 剂量单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
@NotBlank(message = "剂量单位不能为空")
|
||||
private String doseUnitCode;
|
||||
private String doseUnitCode_dictText;
|
||||
|
||||
/** 单次最大剂量 */
|
||||
private BigDecimal maxUnit;
|
||||
|
||||
/** 药品定义 */
|
||||
private String definition;
|
||||
|
||||
/** 药品编号 */
|
||||
private String busNo;
|
||||
|
||||
/** 药品名称 */
|
||||
@NotBlank(message = "药品名称不能为空")
|
||||
private String name;
|
||||
|
||||
/** 适用范围 */
|
||||
private Integer domainEnum;
|
||||
|
||||
/** 药品版本 */
|
||||
private String version;
|
||||
|
||||
/** 英文药名 */
|
||||
private String nameEn;
|
||||
|
||||
/** 药品名称拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 药品五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 药品分类 */
|
||||
private String categoryCode;
|
||||
|
||||
/** 商品名称 */
|
||||
private String merchandiseName;
|
||||
|
||||
/** 商品名称拼音码 */
|
||||
private String merchandisePyStr;
|
||||
|
||||
/** 商品五笔码 */
|
||||
private String merchandiseWbStr;
|
||||
|
||||
/** 药品单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/** 最小单位 */
|
||||
private String minUnitCode;
|
||||
|
||||
/** 所含耗材 */
|
||||
private String comprisedText;
|
||||
|
||||
/** 成分 */
|
||||
private String ingredient;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 剂量形式 */
|
||||
@Dict(dictCode = "dose_form_code")
|
||||
private Integer doseFrom;
|
||||
private String doseFrom_dictText;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 医保是否对码 */
|
||||
private Integer ybMatchFlag;
|
||||
|
||||
/** 医保编码 */
|
||||
private String ybNo;
|
||||
|
||||
/** 药理作用分类 */
|
||||
private String pharmacologyCategoryCode;
|
||||
|
||||
/** 是否皮试 */
|
||||
private Integer skinTestFlag;
|
||||
|
||||
/** 是否为注射药物 */
|
||||
private Integer injectFlag;
|
||||
|
||||
/** 生产厂家 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long manufacturerId;
|
||||
|
||||
/** 生产厂商文本 */
|
||||
private String manufacturerText;
|
||||
|
||||
/** 供应商 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplyId;
|
||||
|
||||
/** 是否限制使用 */
|
||||
private Integer restrictedFlag;
|
||||
|
||||
/** 限制使用范围 */
|
||||
private String restrictedScope;
|
||||
|
||||
/** 儿童用药标志 */
|
||||
private Integer childrenFlag;
|
||||
|
||||
/** 产品特性 */
|
||||
private Integer characteristic;
|
||||
|
||||
/** 购入价 */
|
||||
private BigDecimal purchasePrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 最高零售价 */
|
||||
private BigDecimal maximumRetailPrice;
|
||||
|
||||
/** 医保类别 */
|
||||
private String ybType;
|
||||
|
||||
/** 财务类别 */
|
||||
@Dict(dictCode = "fin_type_code")
|
||||
private String typeCode;
|
||||
private String typeCode_dictText;
|
||||
|
||||
/** 单次最小用药频次 */
|
||||
private String minRateCode;
|
||||
|
||||
/** 单次最大用药频次 */
|
||||
private String maxRateCode;
|
||||
|
||||
/** 药品状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 拆分属性 */
|
||||
private Integer partAttributeEnum;
|
||||
|
||||
/** 贯标国家编码 */
|
||||
private String nationalDrugCode;
|
||||
|
||||
/** 是否抗生素 */
|
||||
private Integer antibioticFlag;
|
||||
|
||||
/** 是否自制 */
|
||||
private Integer selfFlag;
|
||||
|
||||
/** DDD值 */
|
||||
private String dddCode;
|
||||
|
||||
/** DDD单位 */
|
||||
private String dddUnitCode;
|
||||
|
||||
/** 用量限定 */
|
||||
private BigDecimal usageLimit;
|
||||
|
||||
/** 抗生素分类 */
|
||||
@Dict(dictCode = "antibiotic_type_code")
|
||||
private String antibioticCode;
|
||||
private String antibioticCode_dictText;
|
||||
|
||||
/** 权限限制 */
|
||||
private Integer restrictedEnum;
|
||||
|
||||
/** 基药标识 */
|
||||
private Integer basicFlag;
|
||||
|
||||
/** 住院临时医嘱拆分属性 */
|
||||
private Integer thoPartAttributeEnum;
|
||||
|
||||
/** 最小库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMinQuantity;
|
||||
|
||||
/** 最大库存警戒数量(常规单位) */
|
||||
private BigDecimal itemMaxQuantity;
|
||||
|
||||
/** 剂量单位换算比 */
|
||||
private BigDecimal unitConversionRatio;
|
||||
|
||||
/** 医保等级 */
|
||||
private Integer chrgitmLv;
|
||||
|
||||
/** 处方标志 */
|
||||
private Integer rxFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 药品查询信息
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/27
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MedicationSearchParam {
|
||||
|
||||
/** 医保是否对码 */
|
||||
private Integer ybMatchFlag;
|
||||
/** 药品状态 */
|
||||
private Integer statusEnum;
|
||||
/** 药品分类 */
|
||||
private String categoryCode;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 供应商保存dto
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-02-24
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SupplierDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 编号 */
|
||||
private String busNo;
|
||||
|
||||
/** 名称 */
|
||||
private String name;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
private String typeEnum_enumText;
|
||||
|
||||
/** 地址 */
|
||||
private String address;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 联系人电话 */
|
||||
private String phone;
|
||||
|
||||
/** 联系人邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 活动标识 */
|
||||
private Integer activeFlag;
|
||||
private String activeFlag_enumText;
|
||||
|
||||
/** 机构编号 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictTable = "adm_organization",dictCode = "id",dictText = "name")
|
||||
private Long orgId;
|
||||
private String orgId_dictText;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 厂商/产地初始dto
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-02-28
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SupplierInitDto {
|
||||
private List<supplierTypeOption> supplierTypeOptions;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@Data
|
||||
public static class supplierTypeOption {
|
||||
private Integer value;
|
||||
private String info;
|
||||
|
||||
public supplierTypeOption(Integer value, String info) {
|
||||
this.value = value;
|
||||
this.info = info;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 厂商/产地分页查询条件
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-02-18
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SupplierSearchParam implements Serializable {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@Schema(description = "编号")
|
||||
private String busNo;
|
||||
|
||||
/**
|
||||
* 名称*
|
||||
*/
|
||||
@Schema(description = "供应商类型")
|
||||
private Integer typeEnum;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.datadictionary.dto;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 供应商保存dto
|
||||
*
|
||||
* @author dh
|
||||
* @date 2025-02-24
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SupplierUpDto {
|
||||
|
||||
/** ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 编号 */
|
||||
private String busNo;
|
||||
|
||||
/** 名称 */
|
||||
@NotBlank(message = "名称不能为空")
|
||||
private String name;
|
||||
|
||||
/** 类型 */
|
||||
@NotNull(message = "类型不能为空")
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 地址 */
|
||||
private String address;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 五笔码 */
|
||||
private String wbStr;
|
||||
|
||||
/** 联系人电话 */
|
||||
private String phone;
|
||||
|
||||
/** 联系人邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 活动标识 */
|
||||
private Integer activeFlag;
|
||||
|
||||
/** 机构编号 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.openhis.web.datadictionary.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 诊疗定义管理
|
||||
*
|
||||
* @author liuhr
|
||||
* @date 2025/3/28
|
||||
*/
|
||||
@Repository
|
||||
public interface ActivityDefinitionManageMapper {
|
||||
|
||||
/**
|
||||
* 诊疗目录分页查询
|
||||
*
|
||||
* @param page 分页参数
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 器材记录
|
||||
*/
|
||||
IPage<DiagnosisTreatmentDto> getDiseaseTreatmentPage(@Param("page") Page<DiagnosisTreatmentDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisTreatmentDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 诊疗详情
|
||||
*
|
||||
* @param id 诊疗ID
|
||||
* @param tenantId 租户
|
||||
* @return
|
||||
*/
|
||||
DiagnosisTreatmentDto getDiseaseTreatmentOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.openhis.web.datadictionary.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.web.datadictionary.dto.ChargeItemDefPageDto;
|
||||
|
||||
/**
|
||||
* 费用定价管理Mapper接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-02-20
|
||||
*/
|
||||
@Repository
|
||||
public interface ChargeItemDefSearchMapper extends BaseMapper<ChargeItemDefinition> {
|
||||
|
||||
/**
|
||||
* 药品费用定价分页查询
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 分页查询
|
||||
*/
|
||||
IPage<ChargeItemDefPageDto> getMedList(@Param("page") Page<ChargeItemDefPageDto> page,
|
||||
@Param(Constants.WRAPPER) LambdaQueryWrapper<ChargeItemDefPageDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 器具费用定价分页查询
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 分页查询
|
||||
*/
|
||||
IPage<ChargeItemDefPageDto> getDevList(@Param("page") Page<ChargeItemDefPageDto> page,
|
||||
@Param(Constants.WRAPPER) LambdaQueryWrapper<ChargeItemDefPageDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 活动费用定价分页查询
|
||||
*
|
||||
* @param page 分页条件
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 分页查询
|
||||
*/
|
||||
IPage<ChargeItemDefPageDto> getActList(@Param("page") Page<ChargeItemDefPageDto> page,
|
||||
@Param(Constants.WRAPPER) LambdaQueryWrapper<ChargeItemDefPageDto> queryWrapper);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.openhis.web.datadictionary.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.datadictionary.dto.DeviceManageDto;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageDto;
|
||||
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 器材目录
|
||||
*
|
||||
* @author Wuser
|
||||
* @date 2025/3/26
|
||||
*/
|
||||
@Repository
|
||||
public interface DeviceManageMapper {
|
||||
|
||||
/**
|
||||
* 器材目录分页查询
|
||||
*
|
||||
* @param page 分页参数
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 器材记录
|
||||
*/
|
||||
IPage<DeviceManageDto> getDevicePage(
|
||||
@Param("page") Page<DeviceManageDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<DeviceManageDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 器材详情
|
||||
*
|
||||
* @param id 器材ID
|
||||
* @param tenantId 租户
|
||||
* @return
|
||||
*/
|
||||
DeviceManageDto getOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.openhis.web.datadictionary.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDetailDto;
|
||||
import com.openhis.web.datadictionary.dto.ItemDefinitionDto;
|
||||
|
||||
/**
|
||||
* 项目定价 应用Mapper
|
||||
*/
|
||||
@Repository
|
||||
public interface ItemDefinitionAppMapper {
|
||||
|
||||
/**
|
||||
* 查询项目定价信息
|
||||
*
|
||||
* @param page 分页参数
|
||||
* @param chargeItemContext 收费项目类型
|
||||
* @param MED_MEDICATION_DEFINITION 药品定义
|
||||
* @param ADM_DEVICE_DEFINITION 器材定义
|
||||
* @param WOR_ACTIVITY_DEFINITION 活动定义
|
||||
* @param ADM_HEALTHCARE_SERVICE 服务管理
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 项目定价信息
|
||||
*/
|
||||
IPage<ItemDefinitionDto> getChargeItemInfo(@Param("page") Page<ItemDefinitionDto> page,
|
||||
@Param("chargeItemContext") Integer chargeItemContext,
|
||||
@Param("MED_MEDICATION_DEFINITION") String MED_MEDICATION_DEFINITION,
|
||||
@Param("ADM_DEVICE_DEFINITION") String ADM_DEVICE_DEFINITION,
|
||||
@Param("WOR_ACTIVITY_DEFINITION") String WOR_ACTIVITY_DEFINITION,
|
||||
@Param("ADM_HEALTHCARE_SERVICE") String ADM_HEALTHCARE_SERVICE,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<ItemDefinitionDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 项目定价详细
|
||||
*
|
||||
* @param id id
|
||||
* @return 项目定价详细
|
||||
*/
|
||||
List<ItemDefinitionDetailDto> getChargeItemInfoDetail(@Param("id") Long id);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.openhis.web.datadictionary.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.web.datadictionary.dto.MedicationManageDto;
|
||||
|
||||
/**
|
||||
* 药品目录管理Mapper接口
|
||||
*
|
||||
* @author lpt
|
||||
* @date 2025-02-25
|
||||
*/
|
||||
@Repository
|
||||
public interface MedicationManageSearchMapper extends BaseMapper<ChargeItemDefinition> {
|
||||
|
||||
/**
|
||||
* 药品目录分页查询
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return
|
||||
*/
|
||||
IPage<MedicationManageDto> getPage(
|
||||
@Param("page") Page<MedicationManageDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<MedicationManageDto> queryWrapper);
|
||||
|
||||
|
||||
/**
|
||||
* 药品详情
|
||||
*
|
||||
* @param id 药品ID
|
||||
* @param tenantId 租户
|
||||
* @return
|
||||
*/
|
||||
MedicationManageDto getOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param searchKey
|
||||
* @param ybMatchFlag
|
||||
* @param statusEnum
|
||||
* @param categoryCode
|
||||
* @param tenantId
|
||||
* @return
|
||||
*/
|
||||
List<MedicationManageDto> getList(@Param("searchKey") String searchKey, @Param("ybMatchFlag") Integer ybMatchFlag,
|
||||
@Param("statusEnum") Integer statusEnum, @Param("categoryCode") String categoryCode,@Param("tenantId") Integer tenantId);
|
||||
}
|
||||
Reference in New Issue
Block a user