诊疗目录更新

This commit is contained in:
liupanting
2025-02-27 11:40:07 +08:00
parent 115a57538f
commit b861e4d4b8
11 changed files with 181 additions and 28 deletions

View File

@@ -10,11 +10,6 @@ import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import com.openhis.administration.domain.Location;
import com.openhis.common.enums.ConditionDefinitionSource;
import com.openhis.web.basedatamanage.dto.OrganizationQueryDto;
import com.openhis.web.basicservice.dto.HealthcareServiceInitDto;
import com.openhis.web.datadictionary.dto.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -22,15 +17,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.core.domain.entity.SysDictData;
import com.core.common.core.domain.entity.SysDictType;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.core.system.service.ISysDictTypeService;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.ActivityDefCategory;
import com.openhis.common.enums.OrganizationType;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentInitDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
import com.openhis.workflow.domain.ActivityDefinition;
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
import com.openhis.workflow.service.IActivityDefinitionService;
@@ -52,6 +55,7 @@ public class DiagnosisTreatmentController {
private final IActivityDefinitionService iActivityDefinitionService;
private final ActivityDefinitionMapper activityDefinitionMapper;
private final IOrganizationService iOrganizationService;
private final ISysDictTypeService iSysDictTypeService;
/**
* 诊疗目录初期查询
@@ -76,6 +80,43 @@ public class DiagnosisTreatmentController {
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
// 获取诊疗分类
// 查询医疗服务项
SysDictType medical_service_item =
iSysDictTypeService.selectDictTypeByType(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getCode());
// 查询医疗服务项类型
List<SysDictData> medical_service_items =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getCode());
// 获取医疗服务项List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList = medical_service_items
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
List<DiagnosisTreatmentInitDto.diseaseTreatmentCategory> diseaseTreatmentCategories = new ArrayList<>();
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(medical_service_item.getDictId(),
medical_service_item.getDictName());
diseaseTreatmentCategory.setChildren(diseaseTreatmentCategoryList);
diseaseTreatmentCategories.add(diseaseTreatmentCategory);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
// 查询手术与治疗
SysDictType medical_service_item2 =
iSysDictTypeService.selectDictTypeByType(ActivityDefCategory.TREATMENT_SURGERY.getCode());
// 查询手术与治疗类型
List<SysDictData> medical_service_items2 =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.TREATMENT_SURGERY.getCode());
// 获取手术与治疗List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList2 = medical_service_items2
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory2 =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(medical_service_item2.getDictId(),
medical_service_item2.getDictName());
diseaseTreatmentCategory2.setChildren(diseaseTreatmentCategoryList2);
diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
return R.ok(diagnosisTreatmentInitDto);
}

View File

@@ -6,7 +6,10 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.core.common.utils.poi.ExcelUtil;
import com.core.system.domain.SysOperLog;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -208,14 +211,26 @@ public class MedicationManageController {
return null;
}
/**
* 药品目录导出
*
* @param medicationManageDto 药品目录
* @param searchKey 查询条件
* @param statusEnum 查询条件-状态
* @param ybMatchFlag 查询条件-是否对码
* @param categoryCode 查询条件-药品分类
* @param response
* @return
*/
@GetMapping("/information-export")
public R<?> exportDisease(@RequestBody MedicationManageDto medicationManageDto) {
public R<?> exportMedication(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "ybMatchFlag", defaultValue = "-1") Integer ybMatchFlag,
@RequestParam(value = "statusEnum", defaultValue = "-1") Integer statusEnum,
@RequestParam(value = "categoryCode", defaultValue = "") String categoryCode, HttpServletResponse response) {
// 获取租户ID
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
List<MedicationManageDto> list = medicationManageSearchMapper.getList(searchKey,ybMatchFlag,statusEnum,categoryCode,tenantId);
ExcelUtil<MedicationManageDto> util = new ExcelUtil<>(MedicationManageDto.class);
util.exportExcel(response, list, "药品目录");
return null;
}
}

View File

@@ -16,9 +16,6 @@ public class DeviceManageSelParam {
/** 器材分类 */
private Integer categoryEnum;
/** 器材种类 */
private String typeCode;
/** 医保对码标记 */
private Integer ybMatchFlag;

View File

@@ -2,6 +2,7 @@ package com.openhis.web.datadictionary.dto;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.ActivityDefCategory;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
@@ -21,7 +22,7 @@ public class DiagnosisTreatmentDto {
private Long id;
/** 目录类别 */
private Integer categoryEnum;
private ActivityDefCategory categoryEnum;
/** 编码 */
private String busNo;
@@ -36,7 +37,7 @@ public class DiagnosisTreatmentDto {
private String wbStr;
/** 类型 */
private Integer typeEnum;
private String typeCode;
/** 使用单位 */
private String permittedUnitCode;

View File

@@ -38,11 +38,11 @@ public class DiagnosisTreatmentInitDto {
*/
@Data
public static class diseaseTreatmentCategory {
private Integer value;
private Long value;
private String info;
List<diseaseTreatmentType> children = new ArrayList<>();
private List<diseaseTreatmentType> children = new ArrayList<>();
public diseaseTreatmentCategory(Integer value, String info) {
public diseaseTreatmentCategory(Long value, String info) {
this.value = value;
this.info = info;
}
@@ -53,11 +53,11 @@ public class DiagnosisTreatmentInitDto {
*/
@Data
public static class diseaseTreatmentType {
private Integer value;
private String value;
private String info;
List<diseaseTreatmentType> children = new ArrayList<>();
private List<diseaseTreatmentType> children = new ArrayList<>();
public diseaseTreatmentType(Integer value, String info) {
public diseaseTreatmentType(String value, String info) {
this.value = value;
this.info = info;
}

View File

@@ -18,7 +18,7 @@ public class DiagnosisTreatmentSelParam {
private Integer categoryEnum;
/** 类型 */
private Integer typeEnum;
private String typeCode;
/** 医保对码标记 */
private Integer ybMatchFlag;

View File

@@ -4,6 +4,7 @@ import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.ActivityDefCategory;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -21,7 +22,7 @@ public class DiagnosisTreatmentUpDto {
private Long id;
/** 目录类别 */
private Integer categoryEnum;
private ActivityDefCategory categoryEnum;
/** 编码 */
@NotBlank(message = "项目编码不能为空")
@@ -38,7 +39,7 @@ public class DiagnosisTreatmentUpDto {
private String wbStr;
/** 类型 */
private Integer typeEnum;
private String typeCode;
/** 使用单位 */
private String permittedUnitCode;

View File

@@ -55,4 +55,7 @@ public interface MedicationManageSearchMapper extends BaseMapper<ChargeItemDefin
* @return
*/
MedicationManageDto getOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
List<MedicationManageDto> getList(@Param("searchKey") String searchKey, @Param("ybMatchFlag") Integer ybMatchFlag,
@Param("statusEnum") Integer statusEnum, @Param("categoryCode") String categoryCode,@Param("tenantId") Integer tenantId);
}

View File

@@ -168,4 +168,80 @@
</if>
</where>
</select>
<select id="getList" resultType="com.openhis.web.datadictionary.dto.MedicationManageDto">
SELECT T2.id,
T2.medication_def_id,
T2.status_enum,
T2.org_id,
T2.dose_form_code,
T2.total_volume,
T2.ingredient_item,
T2.active_flag,
T2.lot_number,
T2.effective_date,
T2.expiration_date,
T2.method_code,
T2.rate_code,
T2.dose,
T2.dose_unit_code,
T2.max_unit,
T2.definition,
T1.bus_no,
T1.name,
T1.domain_enum,
T1.version,
T1.name_en,
T1.py_str,
T1.wb_str,
T1.category_code,
T1.merchandise_name,
T1.merchandise_py_str,
T1.merchandise_wb_str,
T1.unit_code,
T1.min_unit_code,
T1.comprised_text,
T1.ingredient,
T1.part_percent,
T1.dose_from,
T1.approval_number,
T1.yb_match_flag,
T1.yb_no,
T1.pharmacology_category_code,
T1.skin_test_flag,
T1.inject_flag,
T1.manufacturer_id,
T1.supply_id,
T1.restricted_flag,
T1.restricted_scope,
T1.children_flag,
T1.characteristic
FROM med_medication_definition T1
LEFT JOIN med_medication T2 on T1.id = T2.medication_def_id
<where>
T1.delete_flag = '0'
<if test="searchKey!=null and searchKey!='' ">
AND ( T1.name LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.name_en LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.merchandise_name LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.bus_no LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.py_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.wb_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.merchandise_py_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR
T1.merchandise_wb_str LIKE CONCAT(CONCAT('%', #{searchKey}),'%'))
</if>
<if test="ybMatchFlag!= -1">
AND T1.yb_match_flag = #{ybMatchFlag}
</if>
<if test="statusEnum!= -1">
AND T2.status_enum = #{statusEnum}
</if>
<if test="categoryCode!=null and categoryCode!='' ">
AND T1.category_code = #{categoryCode}
</if>
<if test="tenantId!= null">
AND T1.tenant_id = #{tenantId}
</if>
</where>
ORDER BY T1.bus_no
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
package com.openhis.common.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ActivityDefCategory {
MEDICAL_SERVICE_ITEM(1, "medical_service_item", "医疗服务项"),
TREATMENT_SURGERY(2, "treatment_surgery", "手术与治疗");
@EnumValue
private final Integer value;
private final String code;
private final String info;
}

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.core.common.core.domain.HisBaseEntity;
import com.openhis.common.enums.ActivityDefCategory;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
@@ -27,7 +28,7 @@ public class ActivityDefinition extends HisBaseEntity {
private Long id;
/** 目录类别 */
private Integer categoryEnum;
private ActivityDefCategory categoryEnum;
/** 编码 */
private String busNo;
@@ -42,7 +43,7 @@ public class ActivityDefinition extends HisBaseEntity {
private String wbStr;
/** 类型 */
private Integer typeEnum;
private String typeCode;
/** 使用单位 */
private String permittedUnitCode;