This commit is contained in:
anxin
2025-02-24 17:04:13 +08:00
7 changed files with 204 additions and 128 deletions

View File

@@ -1,4 +0,0 @@
package com.openhis.web.datadictionary.assembler;
public class DiseaseManagementAssembler {
}

View File

@@ -0,0 +1,88 @@
package com.openhis.web.datadictionary.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.core.common.utils.MessageUtils;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.service.IConditionDefinitionService;
import com.openhis.common.constant.PromptMsgConstant;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* TODO:病种目录
*
* @author lpt
* @date 2025-02-20
*/
@RestController
@RequestMapping("/datadictionary/disease")
@Slf4j
@AllArgsConstructor
public class DiseaseManageController {
private final IConditionDefinitionService iConditionDefinitionService;
/**
* 病种目录分类查询
*
* @return
*/
@GetMapping("/information-category")
public R<?> getDiseaseCategory() {
return null;
}
/**
* 查询病种目录分页列表
*
* @param searchKey 查询条件
* @param status 查询条件-状态
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
@GetMapping("/information-page")
public R<?> getDiseaseList(@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "status", defaultValue = "-1") Integer status,
@RequestParam(value = "sourceEnum", defaultValue = "-1") Integer sourceEnum,
@RequestParam(value = "id", defaultValue = "-1") Long id,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 查询【病种目录】分页列表
Page<ConditionDefinition> diseasePage =
iConditionDefinitionService.getPage(searchKey, status, sourceEnum, id,pageNo, pageSize);
// 返回【病种目录列表DTO】分页
return R.ok(diseasePage);
}
// 病种目录编辑
@PutMapping("/information")
public R<?> editDisease(@RequestBody List<ConditionDefinition> conditionDefinitionList) {
// 更新病种信息
return iConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, null))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
// 新增外来病种目录
@PostMapping("/information")
public R<?> addDisease(@RequestBody ConditionDefinition conditionDefinition) {
// 新增外来病种目录
return iConditionDefinitionService.addDisease(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"病种目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
// 新增医保病种目录
@PostMapping("/information-yb")
void AddYbDisease(@RequestBody ConditionDefinition conditionDefinition) {}
}

View File

@@ -1,64 +0,0 @@
package com.openhis.web.datadictionary.controller;
import java.util.List;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.web.datadictionary.dto.DiseaseInDto;
import org.springframework.web.bind.annotation.*;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.service.IConditionDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
* TODO:病种目录
*
* @author lpt
* @date 2025-02-20
*/
@RestController
@RequestMapping("/DataDictionary-DiseaseManagement")
@Slf4j
@AllArgsConstructor
public class DiseaseManagementController {
private final IConditionDefinitionService iConditionDefinitionService;
/**
* 病种目录分类查询
*
* @return
*/
@GetMapping("/GetDiseaseCategory")
public List<ConditionDefinition> GetDiseaseCategory() {
return null;
}
/**
* 病种目录查询
*
* @param
* @return
*/
@GetMapping("/GetDiseaseList")
public List<ConditionDefinition> GetDiseaseList() {
return null;
}
// 病种目录编辑
@PutMapping("/EditDisease")
void EditDisease() {}
// 新增外来病种目录
@PostMapping("/AddDisease")
void AddDisease(DiseaseInDto diseaseInDto) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(diseaseInDto,conditionDefinition);
// iConditionDefinitionService.AddDisease(conditionDefinition);
}
// 新增医保病种目录
@PostMapping("/AddYbDisease")
void AddYbDisease(@RequestParam int id) {}
}

View File

@@ -1,52 +0,0 @@
package com.openhis.web.datadictionary.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 病种目录列表 dto
*
* @author lpt
* @date 2025-02-20
*/
@Data
@Accessors(chain = true)
public class DiseaseInDto {
/** 所属分类 */
private Integer sourceEnum;
/** 编码 */
private String code;
/** 诊断名称 */
private String name;
/** 诊断名称拼音 */
private String pyCode;
/** 诊断名称五笔拼音 */
private String wbCode;
/** 类型 */
private String typeCode;
/** 描述 */
private String description;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybCode;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 状态 */
private Integer statusEnum;
/** 删除状态 */
private Integer deleteFlag;
/** 租户 */
private Integer tenantId;
}

View File

@@ -1,238 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.datadictionary.mapper.ChargeItemDefSearchMapper">
<select id="getMedList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
SELECT
T5.id,
T5.charge_name,
T5.status_enum,
T5.description,
T5.effective_start,
T5.effective_end,
T5.instance_table,
T5.price,
T5.create_time,
T5.update_time,
T5.item_id,
T5.condition_rule_id,
T5.condition_lotnumber,
T5.condition_yb_code,
T5.priority,
T5.amount,
T5.item_no,
T5.py_str,
T5.wb_str,
T5.unit_code,
T5.category_code,
T5.total_volume,
T5.lot_number,
COUNT(1) OVER() AS TOTAL_COUNT
FROM (
SELECT
T1.id,
T1.charge_name,
T1.status_enum,
T1.description,
T1.effective_start,
T1.effective_end,
T1.instance_table,
T1.price,
T1.create_time,
T1.update_time,
T2.id AS item_id,
T2.condition_rule_id,
T2.condition_lotnumber,
T2.condition_yb_code,
T2.priority,
T2.amount,
T3.bus_no AS item_no,
T3.py_str,
T3.wb_str,
T3.unit_code,
T3.category_code,
T4.total_volume,
T4.lot_number
FROM
adm_charge_item_definition T1
LEFT JOIN adm_charge_item_def_app T2
ON T1.id = T2.definition_id
LEFT JOIN med_medication_definition T3
ON T1.instance_id = T3.id
LEFT JOIN med_medication T4
ON T3.id = T4.medication_def_id) T5
<where>
T5.instance_table = 'med_medication_definition'
<if test="itemDefSearchParam.getSearchKey() != null">
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
</if>
<if test="itemDefSearchParam.getStatusEnum() != null">
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
</if>
<if test="itemDefSearchParam.getCategoryCode() != null">
AND T5.category_code = #{itemDefSearchParam.chargeItem}
</if>
</where>
ORDER BY T5.create_time DESC
<!-- 拼接页码 -->
<if test="skipCount != null and pageSize != null and pageSize > 0">
LIMIT #{pageSize} OFFSET #{skipCount}
</if>
</select>
<select id="getDevList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
SELECT
T5.id,
T5.charge_name,
T5.status_enum,
T5.description,
T5.effective_start,
T5.effective_end,
T5.instance_table,
T5.price,
T5.create_time,
T5.update_time,
T5.item_id,
T5.condition_rule_id,
T5.condition_lotnumber,
T5.condition_yb_code,
T5.priority,
T5.amount,
T5.item_no,
T5.py_code,
T5.wb_code,
T5.unit_code,
T5.category_code,
T5.lot_number,
COUNT(1) OVER() AS TOTAL_COUNT
FROM (
SELECT
T1.id,
T1.charge_name,
T1.status_enum,
T1.description,
T1.effective_start,
T1.effective_end,
T1.instance_table,
T1.price,
T1.create_time,
T1.update_time,
T2.id AS item_id,
T2.condition_rule_id,
T2.condition_lotnumber,
T2.condition_yb_code,
T2.priority,
T2.amount,
T3.code AS item_no,
T3.py_code,
T3.wb_code,
T3.unit_code AS unit_code,
T3.device_class AS category_code,
T4.lot_number
FROM
adm_charge_item_definition T1
LEFT JOIN adm_charge_item_def_app T2
ON T1.id = T2.definition_id
LEFT JOIN adm_device_definition T3
ON T1.instance_id = T3.id
LEFT JOIN adm_device T4
ON T3.id = T4.def_id) T5
<where>
T5.instance_table = 'adm_device_definition'
<if test="itemDefSearchParam.getSearchKey() != null">
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
</if>
<if test="itemDefSearchParam.getStatusEnum() != null">
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
</if>
<if test="itemDefSearchParam.getCategoryCode() != null">
AND T5.category_code = #{itemDefSearchParam.chargeItem}
</if>
</where>
ORDER BY T5.create_time DESC
<!-- 拼接页码 -->
<if test="skipCount != null and pageSize != null and pageSize > 0">
LIMIT #{pageSize} OFFSET #{skipCount}
</if>
</select>
<select id="getActList" resultType="com.openhis.web.datadictionary.dto.ChargeItemDefPageDto">
SELECT
T5.id,
T5.charge_name,
T5.status_enum,
T5.description,
T5.effective_start,
T5.effective_end,
T5.instance_table,
T5.price,
T5.create_time,
T5.update_time,
T5.item_id,
T5.condition_rule_id,
T5.condition_lotnumber,
T5.condition_yb_code,
T5.priority,
T5.amount,
T5.item_no,
T5.py_code,
T5.wb_code,
T5.unit_code,
T5.category_code,
COUNT(1) OVER() AS TOTAL_COUNT
FROM (
SELECT
T1.id,
T1.charge_name,
T1.status_enum,
T1.description,
T1.effective_start,
T1.effective_end,
T1.instance_table,
T1.price,
T1.create_time,
T1.update_time,
T2.id AS item_id,
T2.condition_rule_id,
T2.condition_lotnumber,
T2.condition_yb_code,
T2.priority,
T2.amount,
T3.code AS item_no,
T3.py_code,
T3.wb_code,
T3.permitted_unit AS unit_code,
T3.type_enum AS category_code
FROM
adm_charge_item_definition T1
LEFT JOIN adm_charge_item_def_app T2
ON T1.id = T2.definition_id
LEFT JOIN wor_activity_definition T3
ON T1.instance_id = T3.id) T5
<where>
T5.instance_table = 'wor_activity_definition'
<if test="itemDefSearchParam.getSearchKey() != null">
AND T5.charge_name LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
OR T5.py_code LIKE CONCAT('%', #{itemDefSearchParam.searchKey}, '%')
</if>
<if test="itemDefSearchParam.getStatusEnum() != null">
AND T5.status_enum = #{itemDefSearchParam.statusEnum}
</if>
<if test="itemDefSearchParam.getCategoryCode() != null">
AND T5.category_code = #{itemDefSearchParam.chargeItem}
</if>
</where>
ORDER BY T5.create_time DESC
<!-- 拼接页码 -->
<if test="skipCount != null and pageSize != null and pageSize > 0">
LIMIT #{pageSize} OFFSET #{skipCount}
</if>
</select>
</mapper>