版本更新
This commit is contained in:
@@ -152,4 +152,6 @@ public class ChargeItem extends HisBaseEntity {
|
||||
*/
|
||||
private Integer tcmFlag;
|
||||
|
||||
/** 执行id */
|
||||
private Long procedureId;
|
||||
}
|
||||
|
||||
@@ -29,4 +29,14 @@ public interface EncounterDiagnosisMapper extends BaseMapper<EncounterDiagnosis>
|
||||
*/
|
||||
void deleteTcmByEncounterId(@Param("encounterId") Long encounterId);
|
||||
|
||||
/**
|
||||
* 根据就诊id定义id等查询就诊诊断
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param conditionDefId 定义id
|
||||
* @param tenantId 租户
|
||||
* @return 查询结果
|
||||
*/
|
||||
EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(@Param("encounterId") Long encounterId,
|
||||
@Param("conditionDefId") Long conditionDefId, @Param("tenantId") Integer tenantId);
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.openhis.administration.service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
@@ -17,8 +19,8 @@ public interface IChargeItemDefinitionService extends IService<ChargeItemDefinit
|
||||
* 获取定价分页列表
|
||||
*
|
||||
* @param chargeItemDefinition 定价查询条件
|
||||
* @param pageNo 页码
|
||||
* @param pageSize 页面大小
|
||||
* @param pageNo 页码
|
||||
* @param pageSize 页面大小
|
||||
* @return 定价分页列表
|
||||
*/
|
||||
Page<ChargeItemDefinition> getPage(ChargeItemDefinition chargeItemDefinition, Integer pageNo, Integer pageSize);
|
||||
@@ -42,11 +44,28 @@ public interface IChargeItemDefinitionService extends IService<ChargeItemDefinit
|
||||
/**
|
||||
* 通过服务管理新增费用定价
|
||||
*
|
||||
* @param healthcareService 服务管理
|
||||
* @param healthcareService 服务管理
|
||||
* @param chargeItemDefinition 费用定价
|
||||
* @return 新增结果
|
||||
*/
|
||||
boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService, ChargeItemDefinition chargeItemDefinition);
|
||||
|
||||
boolean addChargeItemDefinitionByHealthcareService(HealthcareService healthcareService,
|
||||
ChargeItemDefinition chargeItemDefinition);
|
||||
|
||||
/**
|
||||
* 创建费用定价和详情
|
||||
*
|
||||
* @param chargeName 名称
|
||||
* @param typeCode 财务类别
|
||||
* @param ybCode 医保类别
|
||||
* @param unitCode 包装单位
|
||||
* @param purchasePrice 购入价
|
||||
* @param retailPrice 零售价
|
||||
* @param maximumRetailPrice 最高零售价
|
||||
* @param orgId 机构ID
|
||||
* @param instanceTable 关联表
|
||||
* @param instanceId 关联ID
|
||||
*/
|
||||
void addChargeItemDefinitionAndDetail(String chargeName, String typeCode, String ybCode, String unitCode,
|
||||
BigDecimal purchasePrice, BigDecimal retailPrice, BigDecimal maximumRetailPrice, Long orgId,
|
||||
String instanceTable, Long instanceId);
|
||||
}
|
||||
@@ -101,4 +101,19 @@ public interface IChargeItemService extends IService<ChargeItem> {
|
||||
*/
|
||||
List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds);
|
||||
|
||||
/**
|
||||
* 根据执行id查询收费项目信息
|
||||
*
|
||||
* @param procedureIdList 执行id列表
|
||||
* @return 收费项目信息
|
||||
*/
|
||||
List<ChargeItem> getChargeItemByProcedureId(List<Long> procedureIdList);
|
||||
|
||||
/**
|
||||
* 根据执行id列表更新账单状态为:待收费
|
||||
*
|
||||
* @param procedureIdList 执行id列表
|
||||
*/
|
||||
void updatePlannedChargeStatus(List<Long> procedureIdList);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.openhis.administration.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.openhis.administration.domain.EncounterDiagnosis;
|
||||
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 就诊诊断管理Service接口
|
||||
*
|
||||
@@ -68,4 +68,15 @@ public interface IEncounterDiagnosisService extends IService<EncounterDiagnosis>
|
||||
* @return 主诊断
|
||||
*/
|
||||
EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list);
|
||||
|
||||
/**
|
||||
* 根据就诊id定义id等查询就诊诊断
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param conditionDefId 定义id
|
||||
* @param tenantId 租户
|
||||
* @return 查询结果
|
||||
*/
|
||||
EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(Long encounterId, Long conditionDefId,
|
||||
Integer tenantId);
|
||||
}
|
||||
@@ -1,16 +1,27 @@
|
||||
package com.openhis.administration.service.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.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.openhis.administration.domain.ChargeItemDefDetail;
|
||||
import com.openhis.administration.domain.ChargeItemDefinition;
|
||||
import com.openhis.administration.domain.HealthcareService;
|
||||
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.common.enums.DelFlag;
|
||||
import com.openhis.common.enums.PublicationStatus;
|
||||
import com.openhis.common.enums.Whether;
|
||||
|
||||
/**
|
||||
* 费用定价管理Service业务层处理
|
||||
@@ -22,6 +33,9 @@ import com.openhis.common.enums.DelFlag;
|
||||
public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefinitionMapper, ChargeItemDefinition>
|
||||
implements IChargeItemDefinitionService {
|
||||
|
||||
@Autowired
|
||||
private IChargeItemDefDetailService chargeItemDefDetailService;
|
||||
|
||||
/**
|
||||
* 获取分页列表
|
||||
*
|
||||
@@ -96,4 +110,48 @@ public class ChargeItemDefinitionServiceImpl extends ServiceImpl<ChargeItemDefin
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建费用定价和详情
|
||||
*
|
||||
* @param chargeName 名称
|
||||
* @param typeCode 财务类别
|
||||
* @param ybCode 医保类别
|
||||
* @param unitCode 包装单位
|
||||
* @param purchasePrice 购入价
|
||||
* @param retailPrice 零售价
|
||||
* @param maximumRetailPrice 最高零售价
|
||||
* @param orgId 机构ID
|
||||
* @param instanceTable 关联表
|
||||
* @param instanceId 关联ID
|
||||
*/
|
||||
@Override
|
||||
public void addChargeItemDefinitionAndDetail(String chargeName, String typeCode, String ybCode, String unitCode,
|
||||
BigDecimal purchasePrice, BigDecimal retailPrice, BigDecimal maximumRetailPrice, Long orgId,
|
||||
String instanceTable, Long instanceId) {
|
||||
// 费用定价主表
|
||||
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition().setChargeName(chargeName)
|
||||
.setStatusEnum(PublicationStatus.ACTIVE.getValue()).setOrgId(orgId).setInstanceTable(instanceTable)
|
||||
.setInstanceId(instanceId).setEffectiveStart(DateUtils.getNowDate()).setTypeCode(typeCode).setYbType(ybCode)
|
||||
.setConditionFlag(Whether.YES.getValue()).setPrice(retailPrice);
|
||||
this.save(chargeItemDefinition);
|
||||
List<ChargeItemDefDetail> chargeItemDefDetailList = new ArrayList<>();
|
||||
// 购入价子表(购入价不一定存在)
|
||||
if (purchasePrice != null) {
|
||||
ChargeItemDefDetail defDetailPurchase =
|
||||
new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
|
||||
.setConditionCode(ConditionCode.PURCHASE.getCode()).setAmount(purchasePrice);
|
||||
chargeItemDefDetailList.add(defDetailPurchase);
|
||||
}
|
||||
// 零售价子表
|
||||
ChargeItemDefDetail defDetailRetail = new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
|
||||
.setConditionCode(ConditionCode.UNIT.getCode()).setConditionValue(unitCode).setAmount(retailPrice);
|
||||
chargeItemDefDetailList.add(defDetailRetail);
|
||||
// 最高零售价子表
|
||||
ChargeItemDefDetail defDetailMaximumRetail =
|
||||
new ChargeItemDefDetail().setDefinitionId(chargeItemDefinition.getId())
|
||||
.setConditionCode(ConditionCode.LIMIT.getCode()).setAmount(maximumRetailPrice);
|
||||
chargeItemDefDetailList.add(defDetailMaximumRetail);
|
||||
chargeItemDefDetailService.saveBatch(chargeItemDefDetailList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -94,7 +94,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
|
||||
@Override
|
||||
public void updateRefundChargeStatus(List<Long> chargeItemIdList) {
|
||||
baseMapper.update(new ChargeItem().setStatusEnum(ChargeItemStatus.REFUNDING.getValue()),
|
||||
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
|
||||
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList).eq(ChargeItem::getDeleteFlag,
|
||||
DelFlag.NO.getCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -107,7 +108,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
|
||||
public void updatePaymentStatus(List<Long> chargeItemIdList, Integer value) {
|
||||
baseMapper.update(
|
||||
new ChargeItem().setStatusEnum(value).setPerformerId(SecurityUtils.getLoginUser().getPractitionerId()),
|
||||
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList));
|
||||
new LambdaUpdateWrapper<ChargeItem>().in(ChargeItem::getId, chargeItemIdList).eq(ChargeItem::getDeleteFlag,
|
||||
DelFlag.NO.getCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -149,7 +151,8 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
|
||||
*/
|
||||
@Override
|
||||
public List<ChargeItem> getChargeItemInfoByReqId(List<Long> requestIdList) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getServiceId, requestIdList));
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>().in(ChargeItem::getServiceId, requestIdList)
|
||||
.eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -173,4 +176,30 @@ public class ChargeItemServiceImpl extends ServiceImpl<ChargeItemMapper, ChargeI
|
||||
public List<ChargeItemDefInfo> getChargeItemDefInfoByIds(List<Long> chargeItemIds) {
|
||||
return baseMapper.getChargeItemDefInfoByIds(chargeItemIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据执行id查询收费项目信息
|
||||
*
|
||||
* @param procedureIdList 执行id列表
|
||||
* @return 收费项目信息
|
||||
*/
|
||||
@Override
|
||||
public List<ChargeItem> getChargeItemByProcedureId(List<Long> procedureIdList) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<ChargeItem>()
|
||||
.in(ChargeItem::getProcedureId, procedureIdList).eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据执行id列表更新账单状态为:待收费
|
||||
*
|
||||
* @param procedureIdList 执行id列表
|
||||
*/
|
||||
@Override
|
||||
public void updatePlannedChargeStatus(List<Long> procedureIdList) {
|
||||
for (Long procedureId : procedureIdList) {
|
||||
baseMapper.update(new ChargeItem().setStatusEnum(ChargeItemStatus.PLANNED.getValue()),
|
||||
new LambdaUpdateWrapper<ChargeItem>().eq(ChargeItem::getProcedureId, procedureId)
|
||||
.eq(ChargeItem::getDeleteFlag, DelFlag.NO.getCode()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,8 +6,6 @@ import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -16,6 +14,8 @@ import com.openhis.administration.domain.EncounterDiagnosis;
|
||||
import com.openhis.administration.mapper.EncounterDiagnosisMapper;
|
||||
import com.openhis.administration.service.IEncounterDiagnosisService;
|
||||
import com.openhis.clinical.mapper.ConditionMapper;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.common.enums.ybenums.YbIptDiseTypeCode;
|
||||
|
||||
/**
|
||||
* 就诊诊断管理Service业务层处理
|
||||
@@ -86,6 +86,7 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosi
|
||||
|
||||
/**
|
||||
* 查询 EncounterDiagnosis
|
||||
*
|
||||
* @param diaIdList 诊断主键id
|
||||
* @return 诊断集合
|
||||
*/
|
||||
@@ -104,25 +105,41 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosi
|
||||
*/
|
||||
@Override
|
||||
public List<EncounterDiagnosis> getDiagnosisList(Long encounterId, YbIptDiseTypeCode ybIptDiseTypeCode) {
|
||||
LambdaQueryWrapper<EncounterDiagnosis> queryWrapper = new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId);
|
||||
if(ybIptDiseTypeCode!=null){
|
||||
queryWrapper.eq(EncounterDiagnosis::getIptDiseTypeCode,ybIptDiseTypeCode.getValue());
|
||||
LambdaQueryWrapper<EncounterDiagnosis> queryWrapper =
|
||||
new LambdaQueryWrapper<EncounterDiagnosis>().eq(EncounterDiagnosis::getEncounterId, encounterId);
|
||||
if (ybIptDiseTypeCode != null) {
|
||||
queryWrapper.eq(EncounterDiagnosis::getIptDiseTypeCode, ybIptDiseTypeCode.getValue());
|
||||
}
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在诊断中筛选主诊断
|
||||
*
|
||||
* @param list 诊断集合
|
||||
* @return 主诊断
|
||||
*/
|
||||
@Override
|
||||
public EncounterDiagnosis getMainDiagnosis(List<EncounterDiagnosis> list) {
|
||||
for (EncounterDiagnosis encounterDiagnosis : list) {
|
||||
if(Whether.YES.getValue()==encounterDiagnosis.getMaindiseFlag()){
|
||||
if (Whether.YES.getValue() == encounterDiagnosis.getMaindiseFlag()) {
|
||||
return encounterDiagnosis;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据就诊id定义id等查询就诊诊断
|
||||
*
|
||||
* @param encounterId 就诊id
|
||||
* @param conditionDefId 定义id
|
||||
* @param tenantId 租户
|
||||
* @return 查询结果
|
||||
*/
|
||||
@Override
|
||||
public EncounterDiagnosis getEncounterDiagnosisByEncounterConDefId(Long encounterId, Long conditionDefId,
|
||||
Integer tenantId) {
|
||||
return baseMapper.getEncounterDiagnosisByEncounterConDefId(encounterId, conditionDefId, tenantId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user