解决合并冲突

This commit is contained in:
2025-12-10 14:20:24 +08:00
parent e1385cb3e6
commit 18f6a845e6
804 changed files with 61881 additions and 13577 deletions

View File

@@ -0,0 +1,37 @@
package com.openhis.web.datadictionary.appservice;
import com.core.common.core.domain.R;
import com.openhis.web.datadictionary.dto.ICDCodeAddDto;
import com.openhis.web.datadictionary.dto.ICDCodeUpdateDto;
public interface ICDCodeService {
/**
* 分页查询icd10编码
*
* @param searchKey
* @param pageNo
* @param pageSize
* @return
*/
R<?> getICDCodePage(String searchKey, Integer pageNo, Integer pageSize);
/**
* 新增icd10编码
* @param icdCodeAddDto
* @return
*/
R<?> addICDInformation(ICDCodeAddDto icdCodeAddDto);
/**
* 删除icd10编码
* @param glNo
* @return
*/
R<?> deleteICDInformation(String glNo);
/**
* 修改icd10编码
* @param icdCodeUpdateDto
* @return
*/
R<?> saveOrUpdateICDInformation(ICDCodeUpdateDto icdCodeUpdateDto);
}

View File

@@ -95,4 +95,12 @@ public interface IDeviceManageAppService {
* @param response 响应
*/
void importTemplate(HttpServletResponse response);
/**
* 校验耗材是否可以编辑
*
* @param deviceId 耗材ID
* @return 校验结果
*/
R<?> validateDeviceEdit(Long deviceId);
}

View File

@@ -92,4 +92,12 @@ public interface IDiagTreatMAppService {
* @param response 响应
*/
void importTemplate(HttpServletResponse response);
/**
* 校验诊疗项目是否可以编辑
*
* @param activityId 诊疗ID
* @return 校验结果
*/
R<?> validateActivityEdit(Long activityId);
}

View File

@@ -97,4 +97,12 @@ public interface IMedicationManageAppService {
* @param response 响应
*/
void importTemplate(HttpServletResponse response);
/**
* 校验药品是否可以编辑
*
* @param medicationId 药品ID
* @return 校验结果
*/
R<?> validateMedicationEdit(Long medicationId);
}

View File

@@ -13,7 +13,6 @@ import javax.annotation.Resource;
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;
@@ -50,6 +49,8 @@ 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.domain.DeviceRequest;
import com.openhis.workflow.service.IDeviceRequestService;
import com.openhis.workflow.service.ISupplyRequestService;
import com.openhis.yb.service.YbManager;
@@ -62,38 +63,41 @@ import com.openhis.yb.service.YbManager;
@Service
public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
@Autowired
@Resource
private ISupplyRequestService supplyRequestService;
@Autowired
@Resource
private IDeviceDefinitionService deviceDefinitionService;
@Autowired
@Resource
private IChargeItemDefinitionService chargeItemDefinitionService;
@Autowired
@Resource
private ILocationService locationService;
@Resource
private DeviceManageMapper deviceManageMapper;
@Autowired
@Resource
private ISysDictTypeService sysDictTypeService;
@Autowired
@Resource
private IItemDefinitionService itemDefinitionServic;
@Autowired
@Resource
private ISupplierService supplierService;
@Autowired(required = false)
@Resource
private AssignSeqUtil assignSeqUtil;
@Autowired
@Resource
private YbManager ybService;
@Autowired
private IOperationRecordService iOperationRecordService;
@Resource
private IOperationRecordService operationRecordService;
@Resource
private IDeviceRequestService deviceRequestService;
/**
* 器材目录初始化
@@ -199,11 +203,6 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/
@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);
// 拼音码
@@ -230,7 +229,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
.setInstanceId(deviceDefinition.getId()).setPrice(deviceManageDto.getRetailPrice())
.setChargeName(deviceManageDto.getName());;
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition);
// 更新价格表
boolean upItemDef = itemDefinitionServic.updateItem(chargeItemDefinition);
@@ -261,12 +260,10 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/
@Override
public R<?> getDeviceOne(@RequestParam Long id) {
// 获取租户ID
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
// 根据ID查询【器材目录】
DeviceManageDto deviceManageDto = deviceManageMapper.getOne(id, tenantId);
return R.ok(deviceManageDto);
}
@@ -278,9 +275,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/
@Override
public R<?> editDeviceStop(List<Long> ids) {
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
DeviceDefinition deviceDefinition = new DeviceDefinition();
@@ -289,7 +284,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
DeviceDefinitionList.add(deviceDefinition);
}
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
CommonConstants.TableName.ADM_DEVICE_DEFINITION, ids);
// 更新器材信息
@@ -306,9 +301,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/
@Override
public R<?> editDeviceStart(List<Long> ids) {
List<DeviceDefinition> DeviceDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
DeviceDefinition DeviceDefinition = new DeviceDefinition();
@@ -317,7 +310,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
DeviceDefinitionList.add(DeviceDefinition);
}
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
CommonConstants.TableName.ADM_DEVICE_DEFINITION, ids);
// 更新器材信息
@@ -333,10 +326,8 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
*/
@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);
@@ -344,10 +335,8 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
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); // 医保开关
@@ -359,7 +348,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
}
}
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
CommonConstants.TableName.ADM_DEVICE_DEFINITION, deviceDefinition);
ItemUpFromDirectoryDto itemUpFromDirectoryDto = new ItemUpFromDirectoryDto();
@@ -374,7 +363,6 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
? 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));
}
@@ -430,6 +418,30 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
util.importTemplateExcel(response, "器材目录数据");
}
/**
* 校验耗材是否可以编辑
*
* @param deviceId 耗材ID
* @return 校验结果
*/
@Override
public R<?> validateDeviceEdit(Long deviceId) {
List<DeviceRequest> deviceRequestList = deviceRequestService.getDevRequestByDeviceId(deviceId);
if (!deviceRequestList.isEmpty()) {
if (deviceRequestList.stream()
.allMatch(x -> x.getStatusEnum().equals(RequestStatus.COMPLETED.getValue()))) {
return R.ok(1, "医生开过该耗材,不可编辑");
} else {
// 校验是否可以编辑
boolean result = supplyRequestService.verifyAbleEdit(deviceId);
if (result) {
return R.ok(2, "该耗材已经入库过,不可编辑");
}
}
}
return R.ok();
}
/**
* 导入信息校验
*

View File

@@ -13,7 +13,6 @@ import javax.annotation.Resource;
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.web.multipart.MultipartFile;
@@ -38,14 +37,14 @@ import com.openhis.common.utils.CommonUtil;
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.domain.ServiceRequest;
import com.openhis.workflow.service.IActivityDefinitionService;
import com.openhis.workflow.service.IServiceRequestService;
import com.openhis.yb.service.YbManager;
/**
@@ -57,34 +56,26 @@ import com.openhis.yb.service.YbManager;
@Service
public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
@Autowired
@Resource
private IActivityDefinitionService activityDefinitionService;
@Autowired
@Resource
private IChargeItemDefinitionService chargeItemDefinitionService;
@Autowired
private ActivityDefinitionMapper activityDefinitionMapper;
@Autowired
private IOrganizationService iOrganizationService;
@Autowired
private ISysDictTypeService iSysDictTypeService;
@Resource
private IOrganizationService organizationService;
@Resource
private ActivityDefinitionManageMapper activityDefinitionManageMapper;
@Autowired
private IItemDefinitionService itemDefinitionServic;
@Autowired
@Resource
private IItemDefinitionService itemDefinitionService;
@Resource
private ISysDictTypeService sysDictTypeService;
@Autowired
private ICommonService commonService;
@Autowired(required = false)
AssignSeqUtil assignSeqUtil;
@Autowired
YbManager ybService;
@Autowired
IOperationRecordService iOperationRecordService;
@Resource
private AssignSeqUtil assignSeqUtil;
@Resource
private YbManager ybService;
@Resource
private IOperationRecordService operationRecordService;
@Resource
private IServiceRequestService serviceRequestService;
/**
* 诊疗目录初期查询
@@ -102,7 +93,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
// 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.DEPARTMENT);
List<Organization> organizations = iOrganizationService.list(queryWrapper);
List<Organization> organizations = organizationService.list(queryWrapper);
List<DiagnosisTreatmentInitDto.exeOrganization> exeOrganizations = organizations.stream()
.map(exeOrg -> new DiagnosisTreatmentInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList());
@@ -259,16 +250,16 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
.setInstanceId(diagnosisTreatmentUpDto.getId()).setPrice(diagnosisTreatmentUpDto.getRetailPrice())
.setChargeName(diagnosisTreatmentUpDto.getName());
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition);
// 更新价格表
boolean upItemDef = itemDefinitionServic.updateItem(chargeItemDefinition);
boolean upItemDef = itemDefinitionService.updateItem(chargeItemDefinition);
// 更新子表,修改零售价,条件:单位
boolean upItemDetail1 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
boolean upItemDetail1 = itemDefinitionService.updateItemDetail(chargeItemDefinition,
diagnosisTreatmentUpDto.getRetailPrice(), ConditionCode.UNIT.getCode());
// 更新子表,修改最高零售价,条件:限制
boolean upItemDetail2 = itemDefinitionServic.updateItemDetail(chargeItemDefinition,
boolean upItemDetail2 = itemDefinitionService.updateItemDetail(chargeItemDefinition,
diagnosisTreatmentUpDto.getMaximumRetailPrice(), ConditionCode.LIMIT.getCode());
// 更新价格表
@@ -299,7 +290,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
ActivityDefinitionList.add(ActivityDefinition);
}
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, ids);
// 更新诊疗信息
return activityDefinitionService.updateBatchById(ActivityDefinitionList)
@@ -327,7 +318,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
ActivityDefinitionList.add(ActivityDefinition);
}
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, ids);
// 更新诊疗信息
return activityDefinitionService.updateBatchById(ActivityDefinitionList)
@@ -374,7 +365,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
}
}
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, activityDefinition);
ItemUpFromDirectoryDto itemUpFromDirectoryDto = new ItemUpFromDirectoryDto();
@@ -386,7 +377,7 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
.setConditionFlag(Whether.YES.getValue()).setChargeName(diagnosisTreatmentUpDto.getName())
.setInstanceId(activityDefinition.getId()).setPrice(diagnosisTreatmentUpDto.getRetailPrice());
return itemDefinitionServic.addItem(itemUpFromDirectoryDto)
return itemDefinitionService.addItem(itemUpFromDirectoryDto)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
@@ -442,6 +433,25 @@ public class DiagTreatMAppServiceImpl implements IDiagTreatMAppService {
util.importTemplateExcel(response, "诊疗目录数据");
}
/**
* 校验诊疗项目是否可以编辑
*
* @param activityId 诊疗ID
* @return 校验结果
*/
@Override
public R<?> validateActivityEdit(Long activityId) {
// 查询诊疗申请
List<ServiceRequest> serviceRequestList = serviceRequestService.getServiceRequestByActivityId(activityId);
if (!serviceRequestList.isEmpty()) {
if (serviceRequestList.stream().anyMatch(
serviceRequest -> RequestStatus.COMPLETED.getValue().equals(serviceRequest.getStatusEnum()))) {
return R.ok(1,"医生开过该诊疗项目,不可编辑");
}
}
return R.ok();
}
/**
* 导入信息校验
*

View File

@@ -0,0 +1,118 @@
package com.openhis.web.datadictionary.appservice.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.utils.ChineseConvertUtils;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.StringUtils;
import com.openhis.administration.domain.Account;
import com.openhis.administration.domain.Location;
import com.openhis.administration.mapper.LocationMapper;
import com.openhis.administration.service.ILocationService;
import com.openhis.clinical.domain.ConditionNoDefinition;
import com.openhis.clinical.mapper.ConditionNoDefinitionMapper;
import com.openhis.clinical.service.IConditionNoDefinitionService;
import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.*;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.basedatamanage.dto.LocationAddOrEditDto;
import com.openhis.web.basedatamanage.dto.LocationInfoDto;
import com.openhis.web.datadictionary.dto.DeviceManageDto;
import com.openhis.web.datadictionary.dto.ICDCodeAddDto;
import com.openhis.web.datadictionary.dto.ICDCodeDto;
import com.openhis.web.datadictionary.dto.ICDCodeUpdateDto;
import com.openhis.workflow.domain.SupplyRequest;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import com.core.common.core.domain.R;
import com.openhis.web.datadictionary.appservice.ICDCodeService;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
@Service
public class ICDCodeServiceImpl implements ICDCodeService {
@Resource
private ConditionNoDefinitionMapper conditionNoDefinitionMapper;
@Resource
private ICDCodeService icdCodeService;
@Resource
private IConditionNoDefinitionService conditionNoDefinitionService;
/**
*
* @param searchKey
* @param pageNo
* @param pageSize
* @return
*/
@Override
public R<?> getICDCodePage(String searchKey, Integer pageNo, Integer pageSize) {
// 构建查询条件
QueryWrapper<ConditionNoDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(null,searchKey,
new HashSet<>(Arrays.asList("gl_no", "gl_name", "icd10_no", "icd10_name")), null);
Page<ICDCodeDto> icdCodeDtoPage =
HisPageUtils.selectPage(conditionNoDefinitionMapper, queryWrapper, pageNo, pageSize, ICDCodeDto.class);
return R.ok(icdCodeDtoPage);
}
/**
* 添加
* @param icdCodeAddDto
* @return
*/
@Override
public R<?> addICDInformation(ICDCodeAddDto icdCodeAddDto) {
ConditionNoDefinition conditionNoDefinition = new ConditionNoDefinition();
conditionNoDefinition.setIcd10No(icdCodeAddDto.getIcd10No());
conditionNoDefinition.setIcd10Name(icdCodeAddDto.getIcd10Name());
conditionNoDefinition.setGlNo(icdCodeAddDto.getGlNo());
conditionNoDefinition.setGlName(icdCodeAddDto.getGlName());
boolean result = conditionNoDefinitionService.save(conditionNoDefinition);
if(result){
return R.ok("ok");
}
return R.fail("no");
}
/**
* 删除
* @param glNo
* @return
*/
@Override
public R<?> deleteICDInformation(String glNo) {
boolean result =
conditionNoDefinitionService.remove(new LambdaQueryWrapper<ConditionNoDefinition>().likeRight(ConditionNoDefinition::getGlNo, glNo));
return result ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"国临编码信息删除"}))
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00006, new Object[] {"国临编码信息删除"}));
}
@Override
public R<?> saveOrUpdateICDInformation(ICDCodeUpdateDto icdCodeUpdateDto) {
ConditionNoDefinition conditionNoDefinition = new ConditionNoDefinition();
conditionNoDefinition.setId(icdCodeUpdateDto.getId());
conditionNoDefinition.setIcd10No(icdCodeUpdateDto.getIcd10No());
conditionNoDefinition.setIcd10Name(icdCodeUpdateDto.getIcd10Name());
conditionNoDefinition.setGlNo(icdCodeUpdateDto.getGlNo());
conditionNoDefinition.setGlName(icdCodeUpdateDto.getGlName());
boolean result=conditionNoDefinitionService.saveOrUpdate(conditionNoDefinition);
if(result){
return R.ok("ok");
}
return R.fail("no");
}
}

View File

@@ -4,7 +4,8 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -12,7 +13,6 @@ 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;
@@ -30,15 +30,14 @@ import com.openhis.web.datadictionary.dto.ItemUpFromDirectoryDto;
@Service
public class ItemDefinitionServiceImpl implements IItemDefinitionService {
@Autowired
IChargeItemDefinitionService chargeItemDefinitionService;
@Resource
private IChargeItemDefinitionService chargeItemDefinitionService;
@Autowired
IChargeItemDefDetailService chargeItemDefDetailService;
@Autowired
ChargeItemDefinitionMapper chargeItemDefinitionMapper;
@Autowired
ChargeItemDefAppMapper chargeItemDefAppMapper;
@Resource
private IChargeItemDefDetailService chargeItemDefDetailService;
@Resource
private ChargeItemDefinitionMapper chargeItemDefinitionMapper;
/**
* 添加药品/器材/诊疗的项目定价

View File

@@ -8,10 +8,10 @@ import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.annotation.Resource;
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;
@@ -44,8 +44,9 @@ 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.domain.MedicationRequest;
import com.openhis.medication.service.IMedicationDefinitionService;
import com.openhis.medication.service.IMedicationDispenseService;
import com.openhis.medication.service.IMedicationRequestService;
import com.openhis.medication.service.IMedicationService;
import com.openhis.sys.service.IOperationRecordService;
import com.openhis.web.datadictionary.appservice.IItemDefinitionService;
@@ -64,43 +65,44 @@ import com.openhis.yb.service.YbManager;
@Service
public class MedicationManageAppServiceImpl implements IMedicationManageAppService {
@Autowired
@Resource
private IMedicationService medicationService;
@Autowired
@Resource
private IMedicationDefinitionService medicationDefinitionService;
@Autowired
@Resource
private IChargeItemDefinitionService chargeItemDefinitionService;
@Autowired
@Resource
private ILocationService locationService;
@Autowired
@Resource
private MedicationManageSearchMapper medicationManageSearchMapper;
@Autowired
@Resource
private ISupplierService supplierService;
@Autowired
@Resource
private ISysDictTypeService sysDictTypeService;
@Autowired
@Resource
private IItemDefinitionService itemDefinitionServic;
@Autowired(required = false)
@Resource
private AssignSeqUtil assignSeqUtil;
@Autowired
@Resource
private YbManager ybService;
@Autowired
private IOperationRecordService iOperationRecordService;
@Resource
private IOperationRecordService operationRecordService;
@Autowired
@Resource
private ISupplyRequestService supplyRequestService;
@Autowired
private IMedicationDispenseService medicationDispenseService;
@Resource
private IMedicationRequestService medicationRequestService;
/**
* 药品目录初始化
@@ -247,11 +249,6 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
*/
@Override
public R<?> editMedication(@Validated @RequestBody MedicationManageUpDto medicationManageUpDto) {
// 校验是否可以编辑
boolean result = supplyRequestService.verifyAbleEdit(medicationManageUpDto.getMedicationDefId());
if (result) {
return R.fail("该药品已经发生过业务,不可编辑");
}
// Todo:用Medication和medicationDefinition的domainservice来创造新的实例根据业务需求使用构造函数
// 如果小于5哥变量就用基本类型传递如果大于5哥在domain层定义构造方法的入参
@@ -294,7 +291,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
}
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.UPDATE.getCode(),
CommonConstants.TableName.MED_MEDICATION_DEFINITION, medication);
// Todo:封装一个价格初始话的方法给app层调用
// 更新价格表
@@ -355,7 +352,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
// TODO:别用三元,日志在业务代码以后记录
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.STOP.getCode(),
CommonConstants.TableName.MED_MEDICATION_DEFINITION, ids);
// 更新药品信息
return medicationService.updateBatchById(medicationList)
@@ -381,7 +378,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
medicationList.add(medication);
}
// 插入操作记录
iOperationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
operationRecordService.addIdsOperationRecord(DbOpType.START.getCode(),
CommonConstants.TableName.MED_MEDICATION_DEFINITION, ids);
// 更新药品信息
return medicationService.updateBatchById(medicationList)
@@ -424,7 +421,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
}
}
// 插入操作记录
iOperationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
operationRecordService.addEntityOperationRecord(DbOpType.INSERT.getCode(),
CommonConstants.TableName.MED_MEDICATION_DEFINITION, medicationDetail);
// 新增子表外来药品目录
boolean insertMedicationSuccess = medicationService.addMedication(medicationDetail);
@@ -515,6 +512,31 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
util.importTemplateExcel(response, "药品目录数据");
}
/**
* 校验药品是否可以编辑
*
* @param medicationId 药品ID
* @return 校验结果
*/
@Override
public R<?> validateMedicationEdit(Long medicationId) {
List<MedicationRequest> medicationRequestList =
medicationRequestService.getMedRequestByMedicationId(medicationId);
if (!medicationRequestList.isEmpty()) {
if (medicationRequestList.stream()
.allMatch(x -> x.getStatusEnum().equals(RequestStatus.COMPLETED.getValue()))) {
return R.ok(1, "医生开过该药品,不可编辑");
} else {
// 校验是否可以编辑
boolean result = supplyRequestService.verifyAbleEdit(medicationId);
if (result) {
return R.ok(2, "该药品已经入库过,不可编辑");
}
}
}
return R.ok();
}
/**
* 导入信息校验
*
@@ -542,6 +564,9 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
if (StringUtils.isEmpty(importDto.getMerchandiseName())) {
lineValidateMsgList.add("商品名称必填");
}
if (StringUtils.isEmpty(importDto.getPharmacologyCategoryCode())) {
lineValidateMsgList.add("药品性质必填");
}
if (StringUtils.isEmpty(importDto.getUnitCode())) {
lineValidateMsgList.add("药品单位必填");
}
@@ -707,7 +732,7 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
}
}
if (!fieldValidateMsgList.isEmpty()) {
return R.fail("导入失败!药品信息填写有误:" + String.join(" ", fieldValidateMsgList));
return R.fail("导入失败!药品信息填写有误:" + String.join(" ", fieldValidateMsgList) + " ■ ※如遇到模板中不存在的字段,请重新下载模板");
}
// 重复校验(文件行重复)
List<String> lineRepeatedValidateMsgList = new ArrayList<>();
@@ -771,7 +796,8 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi
.setPartPercent(importDto.getPartPercent()).setDoseFrom(CommonUtil.tryParseInt(importDto.getDoseFrom()))
.setApprovalNumber(importDto.getApprovalNumber())
.setYbMatchFlag(CommonUtil.tryParseInt(importDto.getYbMatchFlag())).setYbNo(importDto.getYbNo())
.setPharmacologyCategoryCode("1").setSkinTestFlag(CommonUtil.tryParseInt(importDto.getSkinTestFlag()))
.setPharmacologyCategoryCode(importDto.getPharmacologyCategoryCode())
.setSkinTestFlag(CommonUtil.tryParseInt(importDto.getSkinTestFlag()))
.setInjectFlag(CommonUtil.tryParseInt(importDto.getInjectFlag()))
.setManufacturerText(importDto.getManufacturerText())
.setRestrictedFlag(CommonUtil.tryParseInt(importDto.getRestrictedFlag()))

View File

@@ -2,17 +2,16 @@ package com.openhis.web.datadictionary.controller;
import java.util.List;
import javax.annotation.Resource;
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.IDeviceManageAppService;
import com.openhis.web.datadictionary.dto.DeviceManageDto;
import com.openhis.web.datadictionary.dto.DeviceManageSelParam;
import com.openhis.web.datadictionary.dto.DeviceManageUpDto;
@@ -31,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
@AllArgsConstructor
public class DeviceManageController {
@Autowired
@Resource
private IDeviceManageAppService deviceManageAppService;
/**
@@ -69,7 +68,6 @@ public class DeviceManageController {
*/
@GetMapping("/information-one")
public R<?> getDeviceOne(@RequestParam Long id) {
return deviceManageAppService.getDeviceOne(id);
}
@@ -81,7 +79,6 @@ public class DeviceManageController {
*/
@PutMapping("/information")
public R<?> editDevice(@RequestBody DeviceManageUpDto deviceManageDto) {
return deviceManageAppService.editDevice(deviceManageDto);
}
@@ -119,28 +116,6 @@ public class DeviceManageController {
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;
}
/**
* 导入器材目录
*
@@ -161,4 +136,15 @@ public class DeviceManageController {
public void importTemplate(HttpServletResponse response) {
deviceManageAppService.importTemplate(response);
}
/**
* 校验耗材是否可以编辑
*
* @param deviceId 耗材ID
* @return 校验结果
*/
@GetMapping("/validate-edit")
public R<?> validateDeviceEdit(Long deviceId) {
return deviceManageAppService.validateDeviceEdit(deviceId);
}
}

View File

@@ -2,17 +2,16 @@ package com.openhis.web.datadictionary.controller;
import java.util.List;
import javax.annotation.Resource;
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.IDiagTreatMAppService;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
@@ -31,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
@AllArgsConstructor
public class DiagnosisTreatmentController {
@Autowired
@Resource
private IDiagTreatMAppService diagTreatMAppService;
/**
@@ -107,7 +106,7 @@ public class DiagnosisTreatmentController {
}
/**
* 新增外来诊疗目录
* 新增诊疗目录
*
* @param diagnosisTreatmentUpDto 诊疗目录
* @return
@@ -117,28 +116,6 @@ public class DiagnosisTreatmentController {
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;
}
/**
* 导入诊疗目录
*
@@ -159,4 +136,15 @@ public class DiagnosisTreatmentController {
public void importTemplate(HttpServletResponse response) {
diagTreatMAppService.importTemplate(response);
}
/**
* 校验诊疗项目是否可以编辑
*
* @param activityId 诊疗ID
* @return 校验结果
*/
@GetMapping("/validate-edit")
public R<?> validateActivityEdit(Long activityId) {
return diagTreatMAppService.validateActivityEdit(activityId);
}
}

View File

@@ -0,0 +1,72 @@
package com.openhis.web.datadictionary.controller;
import javax.annotation.Resource;
import com.openhis.web.basedatamanage.dto.LocationAddOrEditDto;
import com.openhis.web.datadictionary.dto.ICDCodeAddDto;
import com.openhis.web.datadictionary.dto.ICDCodeDto;
import com.openhis.web.datadictionary.dto.ICDCodeUpdateDto;
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.ICDCodeService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping("/base-data-manage/ICD10")
@Slf4j
@AllArgsConstructor
public class ICDCodeController {
@Resource
private ICDCodeService iCDCodeService;
/**
* 查询icd10
* @param searchKey
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/information-page") // 前端传回来的查询条件
public R<?> getICDCodePage(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
return iCDCodeService.getICDCodePage(searchKey, pageNo, pageSize);
}
/**
* 新增icd10
* @param icdCodeAddDto
* @return
*/
@PostMapping("/add-icd-Information")
public R<?> ICDInformation(@Validated @RequestBody ICDCodeAddDto icdCodeAddDto) {
return iCDCodeService.addICDInformation(icdCodeAddDto);
}
/**
* 删除icd10
* @param glNo
* @return
*/
@DeleteMapping("/delete-icd-Information")
public R<?> deleteICDInformation(@RequestParam String glNo) {
return iCDCodeService.deleteICDInformation(glNo);
}
/**
* 更新
* @param icdCodeUpdateDto
* @return
*/
@PutMapping("/update-icd-Information")
public R<?> saveOrUpdateICDInformation(@RequestBody ICDCodeUpdateDto icdCodeUpdateDto){
return iCDCodeService.saveOrUpdateICDInformation(icdCodeUpdateDto);
}
}

View File

@@ -2,10 +2,10 @@ package com.openhis.web.datadictionary.controller;
import java.util.List;
import javax.annotation.Resource;
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;
@@ -30,7 +30,7 @@ import lombok.extern.slf4j.Slf4j;
@AllArgsConstructor
public class MedicationManageController {
@Autowired
@Resource
private IMedicationManageAppService medicationManageAppService;
/**
@@ -117,17 +117,6 @@ public class MedicationManageController {
return medicationManageAppService.addMedication(medicationManageUpDto);
}
/**
* 新增医保药品目录
*
* @param medicationManageUpDto 药品目录信息
* @return
*/
@PostMapping("/information-yb")
public R<?> addYbMedication(@RequestBody MedicationManageUpDto medicationManageUpDto) {
return null;
}
/**
* 药品目录导出
*
@@ -166,4 +155,15 @@ public class MedicationManageController {
public void importTemplate(HttpServletResponse response) {
medicationManageAppService.importTemplate(response);
}
/**
* 校验药品是否可以编辑
*
* @param medicationId 药品ID
* @return 校验结果
*/
@GetMapping("/validate-edit")
public R<?> validateMedicationEdit(Long medicationId) {
return medicationManageAppService.validateMedicationEdit(medicationId);
}
}

View File

@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
/**
* 器材目录导入Dto
*
* @author GuoRui
* @author Thanking
* @date 2025-09-24
*/
@Data

View File

@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
/**
* 诊疗目录导入Dto
*
* @author GuoRui
* @author Thanking
* @date 2025-09-29
*/
@Data

View File

@@ -19,4 +19,6 @@ public class DiseaseManageSelParam {
private Integer sourceEnum;
/** 状态 */
private Integer statusEnum;
/** 类型 */
private String typeCode;
}

View File

@@ -0,0 +1,31 @@
package com.openhis.web.datadictionary.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
@Data
@Accessors(chain = true)
public class ICDCodeAddDto {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 国临编码 */
@NotNull
private String glNo;
/** 国临name */
private String glName;
/** 医保编码 */
private String icd10No;
/** 医保name */
private String icd10Name;
}

View File

@@ -0,0 +1,31 @@
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 lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class ICDCodeDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 国临编码 */
private String glNo;
/** 国临name */
private String glName;
/** 医保编码 */
private String icd10No;
/** 医保name */
private String icd10Name;
}

View File

@@ -0,0 +1,32 @@
package com.openhis.web.datadictionary.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
@Data
@Accessors(chain = true)
public class ICDCodeUpdateDto {
/** ID */
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/** 国临编码 */
@NotNull
private String glNo;
/** 国临name */
private String glName;
/** 医保编码 */
private String icd10No;
/** 医保name */
private String icd10Name;
}

View File

@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
/**
* 药品目录导入Dto
*
* @author GuoRui
* @author Thanking
* @date 2025-08-18
*/
@Data
@@ -42,6 +42,10 @@ public class MedicationImportDto {
@Excel(name = "商品名称", prompt = "必填")
private String merchandiseName;
/** 药品性质 */
@Excel(name = "药品性质", prompt = "必填", dictType = "medicine_properties", comboReadDict = true)
private String pharmacologyCategoryCode;
/** 药品单位 */
@Excel(name = "药品单位", prompt = "必填", dictType = "unit_code", comboReadDict = true)
private String unitCode;

View File

@@ -289,4 +289,9 @@ public class MedicationManageDto {
/** 处方标志 */
private Integer rxFlag;
/**
* 用药说明
*/
private String dosageInstruction;
}

View File

@@ -258,4 +258,9 @@ public class MedicationManageUpDto {
/** 处方标志 */
private Integer rxFlag;
/**
* 用药说明
*/
private String dosageInstruction;
}

View File

@@ -0,0 +1,7 @@
package com.openhis.web.datadictionary.mapper;
import org.springframework.stereotype.Repository;
@Repository
public interface ICDCodeMapper {
}