feat(medicalOrderSet): 优化医嘱组套功能实现
- 实现医嘱基础列表的分页功能,添加loading状态和缓存机制 - 添加防抖处理和组织机构ID参数支持,优化性能表现 - 实现医嘱组套的完整编辑功能,包括增删改查操作界面 - 添加医嘱组套预览、应用和管理功能模块 - 实现西医组套筛选功能,确保tcmFlag参数正确传递 - 优化医嘱组套数据结构,完善明细项信息处理逻辑 - 添加表单验证和错误处理,提升用户体验和系统稳定性 - 重构代码结构,采用响应式设计提高可维护性
This commit is contained in:
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
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.redis.RedisCache;
|
||||
import com.core.common.enums.TenantOptionDict;
|
||||
import com.core.common.exception.ServiceException;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
@@ -99,6 +100,14 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
@Resource
|
||||
DoctorStationSendApplyUtil doctorStationSendApplyUtil;
|
||||
|
||||
@Resource
|
||||
RedisCache redisCache;
|
||||
|
||||
// 缓存 key 前缀
|
||||
private static final String ADVICE_BASE_INFO_CACHE_PREFIX = "advice:base:info:";
|
||||
// 缓存过期时间(小时)
|
||||
private static final long CACHE_EXPIRE_HOURS = 24;
|
||||
|
||||
|
||||
/**
|
||||
* 查询医嘱信息
|
||||
@@ -132,14 +141,40 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
String safePageNo = pageNo != null ? pageNo.toString() : "";
|
||||
String safePageSize = pageSize != null ? pageSize.toString() : "";
|
||||
|
||||
log.info("从数据库查询医嘱基础信息");
|
||||
|
||||
// 设置默认科室:仅当前端/调用方未传 organizationId 时才回退到登录人科室
|
||||
// 否则会导致门诊划价等场景(按患者挂号科室查询)返回空
|
||||
if (organizationId == null) {
|
||||
organizationId = SecurityUtils.getLoginUser().getOrgId();
|
||||
}
|
||||
|
||||
// 只有在没有搜索关键字时才尝试使用缓存
|
||||
boolean useCache = (searchKey == null || searchKey.trim().isEmpty())
|
||||
&& (adviceDefinitionIdParamList == null || adviceDefinitionIdParamList.isEmpty());
|
||||
|
||||
String cacheKey = null;
|
||||
if (useCache) {
|
||||
// 生成缓存 key:无搜索关键字时按科室缓存
|
||||
cacheKey = ADVICE_BASE_INFO_CACHE_PREFIX + organizationId + ":" + safeAdviceTypesStr + ":" + safePageNo + ":" + safePageSize;
|
||||
|
||||
// 先清除可能存在的无效缓存(JSONObject类型)
|
||||
if (redisCache.hasKey(cacheKey)) {
|
||||
Object cachedObj = redisCache.getCacheObject(cacheKey);
|
||||
if (cachedObj instanceof com.alibaba.fastjson2.JSONObject) {
|
||||
redisCache.deleteObject(cacheKey);
|
||||
log.info("清除无效缓存, key: {}", cacheKey);
|
||||
} else if (cachedObj instanceof com.baomidou.mybatisplus.extension.plugins.pagination.Page) {
|
||||
log.info("从缓存获取医嘱基础信息, key: {}, records: {}", cacheKey, ((IPage<?>)cachedObj).getRecords().size());
|
||||
return (IPage<AdviceBaseDto>) cachedObj;
|
||||
}
|
||||
}
|
||||
|
||||
log.info("缓存未命中,准备查询数据库, key: {}", cacheKey);
|
||||
} else {
|
||||
log.info("不使用缓存条件: searchKey={}, adviceDefinitionIdParamList={}", searchKey, adviceDefinitionIdParamList);
|
||||
}
|
||||
|
||||
log.info("从数据库查询医嘱基础信息");
|
||||
|
||||
// 医嘱定价来源
|
||||
String orderPricingSource = TenantOptionUtil.getOptionContent(TenantOptionDict.ORDER_PRICING_SOURCE);
|
||||
if (StringUtils.isEmpty(orderPricingSource) && StringUtils.isEmpty(orderPricing)) {
|
||||
@@ -160,7 +195,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
new Page<>(pageNo, pageSize), PublicationStatus.ACTIVE.getValue(), organizationId,
|
||||
CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION,
|
||||
CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, pricingFlag, adviceDefinitionIdParamList,
|
||||
adviceTypes,
|
||||
adviceTypes, searchKey,
|
||||
queryWrapper);
|
||||
List<AdviceBaseDto> adviceBaseDtoList = adviceBaseInfo.getRecords();
|
||||
|
||||
@@ -390,6 +425,15 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
}
|
||||
}
|
||||
|
||||
// 缓存结果(只有无搜索关键字时才缓存)
|
||||
if (useCache && cacheKey != null && adviceBaseInfo != null) {
|
||||
// 确保是 IPage 类型再缓存,避免缓存无效数据
|
||||
if (adviceBaseInfo instanceof com.baomidou.mybatisplus.extension.plugins.pagination.Page) {
|
||||
redisCache.setCacheObject(cacheKey, adviceBaseInfo, (int) CACHE_EXPIRE_HOURS, java.util.concurrent.TimeUnit.HOURS);
|
||||
log.info("缓存医嘱基础信息, key: {}, 过期时间: {} 小时", cacheKey, CACHE_EXPIRE_HOURS);
|
||||
}
|
||||
}
|
||||
|
||||
return adviceBaseInfo;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package com.openhis.web.doctorstation.controller;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.common.enums.AdviceOpType;
|
||||
import com.openhis.common.enums.Whether;
|
||||
import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService;
|
||||
@@ -109,9 +110,13 @@ public class DoctorStationChineseMedicalController {
|
||||
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "locationId", required = false) Long locationId,
|
||||
@RequestParam(value = "adviceDefinitionIdParamList", required = false) List<Long> adviceDefinitionIdParamList,
|
||||
@RequestParam(value = "organizationId") Long organizationId,
|
||||
@RequestParam(value = "organizationId", required = false) Long organizationId,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
// 从当前登录用户获取科室 ID 作为默认值
|
||||
if (organizationId == null) {
|
||||
organizationId = SecurityUtils.getLoginUser().getOrgId();
|
||||
}
|
||||
return R.ok(iDoctorStationChineseMedicalAppService.getTcmAdviceBaseInfo(adviceBaseDto, searchKey, locationId,
|
||||
adviceDefinitionIdParamList, organizationId, pageNo, pageSize, Whether.NO.getValue()));
|
||||
}
|
||||
|
||||
@@ -37,6 +37,7 @@ public interface DoctorStationAdviceAppMapper {
|
||||
@Param("activityTableName") String activityTableName, @Param("pricingFlag") Integer pricingFlag,
|
||||
@Param("adviceDefinitionIdParamList") List<Long> adviceDefinitionIdParamList,
|
||||
@Param("adviceTypes") List<Integer> adviceTypes,
|
||||
@Param("searchKey") String searchKey,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<AdviceBaseDto> queryWrapper);
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,9 +30,10 @@ public interface IOrdersGroupPackageAppService {
|
||||
*
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 组合套餐
|
||||
*/
|
||||
List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey);
|
||||
List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey, Integer tcmFlag);
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
@@ -54,8 +55,9 @@ public interface IOrdersGroupPackageAppService {
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 组合套餐
|
||||
*/
|
||||
OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId);
|
||||
OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId, Integer tcmFlag);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,16 @@
|
||||
package com.openhis.web.personalization.appservice.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.exception.ServiceException;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.core.common.utils.SecurityUtils;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
@@ -18,13 +26,8 @@ import com.openhis.web.doctorstation.dto.AdviceBaseDto;
|
||||
import com.openhis.web.personalization.appservice.IOrdersGroupPackageAppService;
|
||||
import com.openhis.web.personalization.dto.*;
|
||||
import com.openhis.web.personalization.mapper.OrdersGroupPackageAppMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import static com.core.framework.datasource.DynamicDataSourceContextHolder.log;
|
||||
|
||||
/**
|
||||
* 组合套餐 实现类
|
||||
@@ -61,10 +64,12 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
|
||||
if (BindingType.PERSONAL.getValue().equals(packageTypeEnum)
|
||||
&& ordersGroupPackageSaveDto.getPractitionerId() == null) {
|
||||
throw new ServiceException("个人组套需选择人员");
|
||||
// throw new ServiceException("个人组套需选择人员");
|
||||
ordersGroupPackageSaveDto.setPractitionerId(SecurityUtils.getLoginUser().getPractitionerId());
|
||||
} else if (BindingType.ORGANIZATION.getValue().equals(packageTypeEnum)
|
||||
&& ordersGroupPackageSaveDto.getOrganizationId() == null) {
|
||||
throw new ServiceException("科室组套需选择科室");
|
||||
// throw new ServiceException("科室组套需选择科室");
|
||||
ordersGroupPackageSaveDto.setOrganizationId(SecurityUtils.getLoginUser().getOrgId());
|
||||
}
|
||||
// 保存主表
|
||||
OrdersGroupPackage ordersGroupPackage = new OrdersGroupPackage();
|
||||
@@ -73,6 +78,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
ordersGroupPackage.setPackageTypeEnum(packageTypeEnum);// 组套包类型
|
||||
ordersGroupPackage.setOrganizationId(ordersGroupPackageSaveDto.getOrganizationId()); // 科室id
|
||||
ordersGroupPackage.setPractitionerId(ordersGroupPackageSaveDto.getPractitionerId()); // 参与者id
|
||||
ordersGroupPackage.setTcmFlag(ordersGroupPackageSaveDto.getTcmFlag()); // 中医标识
|
||||
ordersGroupPackageService.saveOrUpdate(ordersGroupPackage);
|
||||
|
||||
// 编辑场景时,先删除原有的明细再新增
|
||||
@@ -96,6 +102,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
ordersGroupPackageDetail.setMethodCode(ordersGroupPackageDetailSaveDto.getMethodCode()); // 给药途径
|
||||
ordersGroupPackageDetail.setDoseQuantity(ordersGroupPackageDetailSaveDto.getDoseQuantity()); // 小单位单次剂量
|
||||
ordersGroupPackageDetail.setGroupId(ordersGroupPackageDetailSaveDto.getGroupId()); // 组号
|
||||
ordersGroupPackageDetail.setTherapyEnum(ordersGroupPackageDetailSaveDto.getTherapyEnum()); // 治疗类型
|
||||
ordersGroupPackageDetailService.save(ordersGroupPackageDetail);
|
||||
}
|
||||
|
||||
@@ -107,12 +114,14 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
*
|
||||
* @param packageTypeEnum 类型枚举
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@Override
|
||||
public List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey) {
|
||||
public List<OrdersGroupPackageQueryDto> getGroupPackage(Integer packageTypeEnum, String searchKey,
|
||||
Integer tcmFlag) {
|
||||
List<OrdersGroupPackageQueryDto> groupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(packageTypeEnum, null, null, searchKey);
|
||||
ordersGroupPackageAppMapper.getGroupPackage(packageTypeEnum, null, null, searchKey, tcmFlag);
|
||||
for (OrdersGroupPackageQueryDto ordersGroupPackageQueryDto : groupPackage) {
|
||||
ordersGroupPackageQueryDto.setPackageTypeEnum_enumText(
|
||||
EnumUtils.getInfoByValue(BindingType.class, ordersGroupPackageQueryDto.getPackageTypeEnum()));
|
||||
@@ -151,19 +160,23 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @param tcmFlag 中医标识
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@Override
|
||||
public OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId) {
|
||||
public OrdersGroupPackageUseDto getGroupPackageForOrder(Long organizationId, Integer tcmFlag) {
|
||||
OrdersGroupPackageUseDto ordersGroupPackageUseDto = new OrdersGroupPackageUseDto();
|
||||
// 当前参参与者id
|
||||
Long practitionerId = SecurityUtils.getLoginUser().getPractitionerId();
|
||||
// 当前登录账号的科室id
|
||||
Long orgId = SecurityUtils.getLoginUser().getOrgId();
|
||||
|
||||
log.info("[getGroupPackageForOrder] 当前登录用户 practitionerId: {}, orgId: {}", practitionerId, orgId);
|
||||
|
||||
// 个人组套
|
||||
List<OrdersGroupPackageQueryDto> personalGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.PERSONAL.getValue(), null, practitionerId, null);
|
||||
List<OrdersGroupPackageQueryDto> personalGroupPackage = ordersGroupPackageAppMapper
|
||||
.getGroupPackage(BindingType.PERSONAL.getValue(), null, practitionerId, null, tcmFlag);
|
||||
log.info("[getGroupPackageForOrder] 个人组套查询结果数: {}", personalGroupPackage.size());
|
||||
if (!personalGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> personalList = personalGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
@@ -208,10 +221,13 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
});
|
||||
}
|
||||
ordersGroupPackageUseDto.setPersonalList(personalList);
|
||||
log.info("[getGroupPackageForOrder] 个人组套已设置,数量: {}", personalList.size());
|
||||
} else {
|
||||
log.info("[getGroupPackageForOrder] 个人组套查询结果为空");
|
||||
}
|
||||
// 科室组套
|
||||
List<OrdersGroupPackageQueryDto> organizationGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.ORGANIZATION.getValue(), orgId, null, null);
|
||||
List<OrdersGroupPackageQueryDto> organizationGroupPackage = ordersGroupPackageAppMapper
|
||||
.getGroupPackage(BindingType.ORGANIZATION.getValue(), orgId, null, null, tcmFlag);
|
||||
if (!organizationGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> organizationList = organizationGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
@@ -260,7 +276,7 @@ public class OrdersGroupPackageAppServiceImpl implements IOrdersGroupPackageAppS
|
||||
|
||||
// 全院组套
|
||||
List<OrdersGroupPackageQueryDto> hospitalGroupPackage =
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.HOSPITAL.getValue(), null, null, null);
|
||||
ordersGroupPackageAppMapper.getGroupPackage(BindingType.HOSPITAL.getValue(), null, null, null, tcmFlag);
|
||||
if (!hospitalGroupPackage.isEmpty()) {
|
||||
List<OrdersGroupPackageDto> hospitalList = hospitalGroupPackage.stream().map(queryDto -> {
|
||||
OrdersGroupPackageDto dto = new OrdersGroupPackageDto();
|
||||
|
||||
@@ -65,33 +65,39 @@ public class OrdersGroupPackageController {
|
||||
* 查询个人组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 个人组套
|
||||
*/
|
||||
@GetMapping(value = "/get-personal")
|
||||
public R<?> getPersonal(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.PERSONAL.getValue(), searchKey));
|
||||
public R<?> getPersonal(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.PERSONAL.getValue(), searchKey, tcmFlag));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询科室组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 科室组套
|
||||
*/
|
||||
@GetMapping(value = "/get-organization")
|
||||
public R<?> getOrganization(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.ORGANIZATION.getValue(), searchKey));
|
||||
public R<?> getOrganization(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.ORGANIZATION.getValue(), searchKey, tcmFlag));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询全院组套
|
||||
*
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 全院组套
|
||||
*/
|
||||
@GetMapping(value = "/get-hospital")
|
||||
public R<?> getHospital(@RequestParam(value = "searchKey", defaultValue = "") String searchKey) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.HOSPITAL.getValue(), searchKey));
|
||||
public R<?> getHospital(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
|
||||
@RequestParam(value = "tcmFlag", defaultValue = "0") Integer tcmFlag) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackage(BindingType.HOSPITAL.getValue(), searchKey, tcmFlag));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -120,12 +126,13 @@ public class OrdersGroupPackageController {
|
||||
* 查询组合套餐,供开立医嘱使用
|
||||
*
|
||||
* @param organizationId 患者挂号对应的科室id
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医,不传则不过滤
|
||||
* @return 组合套餐
|
||||
*/
|
||||
@GetMapping(value = "/group-package-for-order")
|
||||
public R<?>
|
||||
getGroupPackageForOrder(@RequestParam(value = "organizationId", defaultValue = "0") Long organizationId) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackageForOrder(organizationId));
|
||||
public R<?> getGroupPackageForOrder(@RequestParam(value = "organizationId", required = false) Long organizationId,
|
||||
@RequestParam(value = "tcmFlag", required = false) Integer tcmFlag) {
|
||||
return R.ok(ordersGroupPackageAppService.getGroupPackageForOrder(organizationId, tcmFlag));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -63,4 +63,9 @@ public class OrdersGroupPackageDetailSaveDto {
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 治疗类型:1-长期 2-临时
|
||||
*/
|
||||
private Integer therapyEnum;
|
||||
|
||||
}
|
||||
|
||||
@@ -48,6 +48,11 @@ public class OrdersGroupPackageSaveDto {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long practitionerId;
|
||||
|
||||
/**
|
||||
* 中医标识:0-西医 1-中医
|
||||
*/
|
||||
private Integer tcmFlag;
|
||||
|
||||
/**
|
||||
* 明细集合
|
||||
*/
|
||||
|
||||
@@ -26,11 +26,12 @@ public interface OrdersGroupPackageAppMapper {
|
||||
* @param organizationId 科室id
|
||||
* @param practitionerId 参与者id
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param tcmFlag 中医标识:0-西医 1-中医
|
||||
* @return 组合套餐
|
||||
*/
|
||||
List<OrdersGroupPackageQueryDto> getGroupPackage(@Param("packageTypeEnum") Integer packageTypeEnum,
|
||||
@Param("organizationId") Long organizationId, @Param("practitionerId") Long practitionerId,
|
||||
@Param("searchKey") String searchKey);
|
||||
@Param("searchKey") String searchKey, @Param("tcmFlag") Integer tcmFlag);
|
||||
|
||||
/**
|
||||
* 查询组合套餐明细
|
||||
|
||||
@@ -230,7 +230,7 @@
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -292,7 +292,7 @@
|
||||
WHERE T1.purpose_location_id = #{locationId}
|
||||
AND T1.status_enum = #{statusEnum}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -442,7 +442,7 @@
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
</if>
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
@@ -515,7 +515,7 @@
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
</if>
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
|
||||
@@ -419,7 +419,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -499,7 +499,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -280,7 +280,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -478,7 +478,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -343,7 +343,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{medicationTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
UNION
|
||||
@@ -341,7 +341,7 @@
|
||||
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.item_table = #{deviceTableName}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<if test="adviceTypes != null and !adviceTypes.isEmpty() and (adviceTypes.contains(1) or adviceTypes.contains(2) or adviceTypes.contains(3))">
|
||||
<!-- 如果有有效的adviceTypes,则执行对应的查询 -->
|
||||
<if test="adviceTypes.contains(1)">
|
||||
(SELECT
|
||||
(SELECT
|
||||
DISTINCT ON (T1.ID)
|
||||
T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
@@ -81,7 +81,7 @@
|
||||
CAST(T2.dose AS TEXT) AS dose,
|
||||
T2.dose_unit_code AS dose_unit_code,
|
||||
T3.NAME AS supplier,
|
||||
T3.id AS supplier_id,
|
||||
t3.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T5.id AS charge_item_definition_id,
|
||||
T5.instance_table AS advice_table_name,
|
||||
@@ -91,24 +91,21 @@
|
||||
T1.dosage_instruction AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
FROM med_medication_definition AS t1
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
|
||||
INNER JOIN med_medication AS T2 ON T2.medication_def_id = t1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_supplier AS T3
|
||||
ON T3.ID = T1.supply_id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = T1.ID
|
||||
AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_organization_location AS T6
|
||||
ON T6.distribution_category_code = T1.category_code
|
||||
AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T3 ON T3.ID = t1.supply_id AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T5 ON T5.instance_id = t1.ID AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_organization_location AS T6 ON T6.distribution_category_code = t1.category_code AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
|
||||
WHERE t1.delete_flag = '0'
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
<if test="pricingFlag ==1">
|
||||
AND 1 = 2
|
||||
</if>
|
||||
<if test="searchKey != null and searchKey != ''">
|
||||
AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%')
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
AND t1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
@@ -151,7 +148,7 @@
|
||||
'' AS dose,
|
||||
'' AS dose_unit_code,
|
||||
T2.NAME AS supplier,
|
||||
T2.id AS supplier_id,
|
||||
t2.id AS supplier_id,
|
||||
T1.manufacturer_text AS manufacturer,
|
||||
T4.id AS charge_item_definition_id,
|
||||
T4.instance_table AS advice_table_name,
|
||||
@@ -161,17 +158,16 @@
|
||||
'' AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
FROM adm_device_definition AS T1
|
||||
LEFT JOIN adm_supplier AS T2
|
||||
ON T2.ID = T1.supply_id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
|
||||
AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
|
||||
AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND
|
||||
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE T1.delete_flag = '0'
|
||||
LEFT JOIN adm_supplier AS T2 ON T2.ID = t1.supply_id AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = t1.ID AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum}
|
||||
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = t1.category_code AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND (CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
|
||||
WHERE t1.delete_flag = '0'
|
||||
AND t1.status_enum = #{statusEnum}
|
||||
<if test="searchKey != null and searchKey != ''">
|
||||
AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%')
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
AND t1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
@@ -236,19 +232,18 @@
|
||||
'' AS dosage_instruction,
|
||||
T1.chrgitm_lv as chrgitm_lv
|
||||
FROM wor_activity_definition AS T1
|
||||
LEFT JOIN adm_charge_item_definition AS T2
|
||||
ON T2.instance_id = T1.ID
|
||||
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
|
||||
AND T2.instance_table = #{activityTableName}
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = T1.ID
|
||||
AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
LEFT JOIN adm_charge_item_definition AS T2 ON T2.instance_id = t1.ID AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum} AND T2.instance_table = #{activityTableName}
|
||||
LEFT JOIN adm_organization_location AS T3 ON T3.activity_definition_id = t1.ID AND T3.delete_flag = '0' AND (CURRENT_TIME :: time (6) BETWEEN T3.start_time AND T3.end_time)
|
||||
<if test="organizationId != null">
|
||||
AND T3.organization_id = #{organizationId}
|
||||
</if>
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND (T1.pricing_flag = 1 OR T1.pricing_flag IS NULL)
|
||||
WHERE t1.delete_flag = '0'
|
||||
AND (t1.pricing_flag = 1 OR t1.pricing_flag IS NULL)
|
||||
<if test="searchKey != null and searchKey != ''">
|
||||
AND (t1.name ILIKE '%' || #{searchKey} || '%' OR t1.py_str ILIKE '%' || #{searchKey} || '%')
|
||||
</if>
|
||||
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
|
||||
AND T1.id IN
|
||||
AND t1.id IN
|
||||
<foreach collection="adviceDefinitionIdParamList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
<if test="practitionerId != null">
|
||||
AND togp.practitioner_id = #{practitionerId}
|
||||
</if>
|
||||
<if test="tcmFlag != null">
|
||||
AND togp.tcm_flag = #{tcmFlag}
|
||||
</if>
|
||||
ORDER BY togp.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="getGroupPackageDetail"
|
||||
|
||||
@@ -54,12 +54,12 @@
|
||||
LEFT JOIN med_medication_request T17
|
||||
on T1.id = T17.refund_medicine_id
|
||||
AND T17.delete_flag = '0'
|
||||
WHERE T1.status_enum = #{completed} --'3'
|
||||
AND T2.status_enum = #{eventStatus} --'4'
|
||||
AND T1.delete_flag = '0'
|
||||
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
AND T17.refund_medicine_id IS NULL
|
||||
WHERE T1.status_enum = #{completed} --'3'
|
||||
AND T2.status_enum = #{eventStatus} --'4'
|
||||
AND T1.delete_flag = '0'
|
||||
AND T2.dispense_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.refund_medicine_id IS NULL
|
||||
AND T17.refund_medicine_id IS NULL
|
||||
|
||||
UNION ALL
|
||||
|
||||
@@ -86,12 +86,12 @@
|
||||
LEFT JOIN wor_device_request T17
|
||||
on T4.id = T17.refund_device_id
|
||||
AND T17.delete_flag = '0'
|
||||
WHERE T4.status_enum = #{completed} --'3'
|
||||
AND T5.status_enum = #{eventStatus} --'4'
|
||||
AND T4.delete_flag = '0'
|
||||
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
AND T4.refund_device_id IS NULL
|
||||
AND T17.refund_device_id IS NULL
|
||||
WHERE T4.status_enum = #{completed} --'3'
|
||||
AND T5.status_enum = #{eventStatus} --'4'
|
||||
AND T4.delete_flag = '0'
|
||||
AND T5.dispense_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T4.refund_device_id IS NULL
|
||||
AND T17.refund_device_id IS NULL
|
||||
) AS q1
|
||||
|
||||
UNION ALL
|
||||
@@ -142,11 +142,11 @@
|
||||
ON T10.id = T11.medication_def_id AND T11.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T12
|
||||
ON T12.request_id = T9.id AND T12.delete_flag = '0'
|
||||
WHERE (T9.type_enum = #{returnIssue} OR T9.type_enum = #{issueInventory})
|
||||
AND T9.item_table = #{medDefTableName} --'med_medication_definition'
|
||||
AND T12.status_enum = #{eventStatus}--'4'
|
||||
AND T9.delete_flag = '0'
|
||||
AND TO_CHAR(T12.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
WHERE (T9.type_enum = #{returnIssue} OR T9.type_enum = #{issueInventory})
|
||||
AND T9.item_table = #{medDefTableName} --'med_medication_definition'
|
||||
AND T12.status_enum = #{eventStatus}--'4'
|
||||
AND T9.delete_flag = '0'
|
||||
AND T12.occurrence_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
|
||||
UNION ALL
|
||||
|
||||
@@ -169,11 +169,11 @@
|
||||
ON T13.item_id = T14.id AND T14.delete_flag = '0'
|
||||
LEFT JOIN wor_supply_delivery T15
|
||||
ON T15.request_id = T13.id AND T15.delete_flag = '0'
|
||||
WHERE (T13.type_enum = #{returnIssue} OR T13.type_enum = #{issueInventory})
|
||||
AND T13.item_table = #{devDefTableName} --'adm_device_definition'
|
||||
AND T15.status_enum = #{eventStatus}--'4'
|
||||
AND T13.delete_flag = '0'
|
||||
AND TO_CHAR(T15.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
WHERE (T13.type_enum = #{returnIssue} OR T13.type_enum = #{issueInventory})
|
||||
AND T13.item_table = #{devDefTableName} --'adm_device_definition'
|
||||
AND T15.status_enum = #{eventStatus}--'4'
|
||||
AND T13.delete_flag = '0'
|
||||
AND T15.occurrence_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
) AS q2
|
||||
GROUP BY
|
||||
name,
|
||||
@@ -215,12 +215,11 @@
|
||||
T16.name AS org_name,
|
||||
SUM(T8.total_price) AS total_money
|
||||
FROM med_medication_request T1
|
||||
LEFT JOIN med_medication_dispense T2
|
||||
ON T2.med_req_id = T1.id
|
||||
AND T2.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
LEFT JOIN med_medication_dispense T2
|
||||
ON T2.med_req_id = T1.id
|
||||
AND T2.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND T2.dispense_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
LEFT JOIN adm_charge_item T8
|
||||
ON T8.service_table = #{medReqTableName} --'med_medication_request'
|
||||
AND T8.service_id = T1.id
|
||||
@@ -248,11 +247,10 @@
|
||||
SUM(T9.total_price) AS total_money
|
||||
FROM wor_device_request T4
|
||||
LEFT JOIN wor_device_dispense T5
|
||||
ON T5.device_req_id = T4.id
|
||||
AND T5.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
ON T5.device_req_id = T4.id
|
||||
AND T5.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND T5.dispense_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
LEFT JOIN adm_charge_item T9
|
||||
ON T9.service_table = #{devReqTableName} --'wor_device_request'
|
||||
AND T9.service_id = T4.id
|
||||
@@ -285,12 +283,11 @@
|
||||
WHEN T9.type_enum = '9' THEN T9.total_price * -1
|
||||
ELSE T9.total_price END) AS total_money
|
||||
FROM wor_supply_request T9
|
||||
LEFT JOIN wor_supply_delivery T12
|
||||
ON T12.request_id = T9.id
|
||||
AND T12.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND
|
||||
TO_CHAR(T12.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
|
||||
LEFT JOIN wor_supply_delivery T12
|
||||
ON T12.request_id = T9.id
|
||||
AND T12.delete_flag = '0'
|
||||
/* 时间区间 */
|
||||
AND T12.occurrence_time BETWEEN TO_TIMESTAMP(#{dispenseDateSTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{dispenseDateETime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
LEFT JOIN adm_organization T16
|
||||
ON T9.source_location_id = T16.id
|
||||
AND T16.delete_flag = '0'
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
AND T1.type_enum = #{typeEnum} -- 1:采购入库
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
AND T1.type_enum IN (#{productTransfer} ,#{productBatchTransfer} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
AND T1.type_enum IN (#{productTransfer} ,#{productBatchTransfer} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
AND T1.type_enum IN (#{productStocktaking} ,#{productBatchStocktaking} )
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
AND T1.type_enum = #{lossReportForm}
|
||||
AND T1.status_enum = #{agree}--同意
|
||||
AND T2.status_enum = #{completed}--已完成
|
||||
AND TO_CHAR(T2.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.occurrence_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
AND T1.status_enum = #{completed}--请求状态:已完成
|
||||
AND T2.status_enum = #{agree}--请求状态:已发药
|
||||
AND T1.delete_flag = '0'
|
||||
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T2.dispense_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
GROUP BY
|
||||
T3.name,
|
||||
T7.total_volume,
|
||||
@@ -139,7 +139,7 @@
|
||||
AND T4.status_enum = #{completed}--请求状态:已完成
|
||||
AND T5.status_enum = #{agree}--请求状态:已发药
|
||||
AND T4.delete_flag = '0'
|
||||
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T5.dispense_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
GROUP BY
|
||||
T6.name,
|
||||
T6.size,
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
ON T1.encounter_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.status_enum = #{billed}
|
||||
AND TO_CHAR(T1.update_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.update_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getTreatmentStat"
|
||||
@@ -93,7 +93,7 @@
|
||||
-- AS discharged_count--出院人次数
|
||||
FROM adm_encounter T1
|
||||
WHERE T1.class_enum = #{amb}
|
||||
AND TO_CHAR(T1.reception_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
AND T1.reception_time BETWEEN TO_TIMESTAMP(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') AND TO_TIMESTAMP(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
|
||||
|
||||
@@ -38,4 +38,9 @@ public class OrdersGroupPackage extends HisBaseEntity {
|
||||
*/
|
||||
private Long practitionerId;
|
||||
|
||||
/**
|
||||
* 中医标识:0-西医 1-中医
|
||||
*/
|
||||
private Integer tcmFlag;
|
||||
|
||||
}
|
||||
|
||||
@@ -66,4 +66,10 @@ public class OrdersGroupPackageDetail extends HisBaseEntity {
|
||||
* 组号
|
||||
*/
|
||||
private Long groupId;
|
||||
|
||||
/**
|
||||
* 治疗类型:1-长期 2-临时
|
||||
*/
|
||||
private Integer therapyEnum;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user