123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- <?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.diagbot.mapper.KlDiagnoseMapper">
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.diagbot.entity.KlDiagnose">
- <id column="id" property="id"/>
- <result column="is_deleted" property="isDeleted"/>
- <result column="gmt_create" property="gmtCreate"/>
- <result column="gmt_modified" property="gmtModified"/>
- <result column="creator" property="creator"/>
- <result column="modifier" property="modifier"/>
- <result column="concept_id" property="conceptId"/>
- <result column="description" property="description"/>
- <result column="status" property="status"/>
- </resultMap>
- <select id="getDiagnoseByIds" resultType="com.diagbot.dto.DiagnoseDTO" parameterType="com.diagbot.vo.DiagnoseVO">
- SELECT DISTINCT
- t12.concept_id,
- t12.lib_name,
- t12.condition_type
- FROM
- (
- SELECT DISTINCT
- t11.concept_id,
- t11.lib_name,
- t11.condition_type,
- t11.condition_group,
- (
- count(t11.condition_group) <= sum(baseGroupDiff)
- ) AS groupDiff
- FROM
- (
- SELECT
- t3.*, IFNULL(t5.cnt, 0) AS cnt,
- (
- t3.fit_no <= IFNULL(t5.cnt, 0)
- ) AS baseGroupDiff
- FROM
- (
- SELECT
- t1.concept_id,t2.*, c1.lib_name
- FROM
- kl_diagnose t1,
- kl_diagnose_condition t2,
- kl_concept c1,
- (
- SELECT DISTINCT
- t4.diagnose_id
- FROM
- `kl_diagnose_condition` t4
- WHERE
- t4.condition_type = 1
- AND t4.is_deleted = "N"
- <if test="ids != null and ids.size > 0">
- and t4.diagnose_base_id in
- <foreach item="id" collection="ids" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- ) t10
- WHERE
- t1.is_deleted = "N"
- AND t1.`status` = 1
- AND t2.is_deleted = "N"
- AND t1.id = t2.diagnose_id
- AND t2.condition_type IN (2, 3, 4)
- AND c1.is_deleted = "N"
- AND c1.`status` = 1
- AND c1.id = t1.concept_id
- AND t1.id = t10.diagnose_id
- ) t3
- LEFT JOIN (
- SELECT
- t4.diagnose_id,
- t4.base_group,
- COUNT(t4.id) AS cnt
- FROM
- `kl_diagnose_condition` t4
- WHERE
- t4.condition_type = 1
- AND t4.is_deleted = "N"
- <if test="ids != null and ids.size > 0">
- and t4.diagnose_base_id in
- <foreach item="id" collection="ids" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- GROUP BY
- t4.diagnose_id,
- t4.base_group
- ) t5 ON t3.diagnose_id = t5.diagnose_id
- AND t3.base_group = t5.base_group
- ) t11
- GROUP BY
- t11.concept_id,
- t11.condition_type,
- t11.condition_group
- ) t12,
- kl_concept_common t15
- WHERE
- t15.concept_id = t12.concept_id
- AND t15.is_deleted = "N"
- <if test="sexType != null or age != null">
- <if test="sexType != null">
- <if test="sexType == 3">
- and t15.sex_type in ('1','2','3')
- </if>
- <if test="sexType != 3">
- and t15.sex_type in ('3',#{sexType})
- </if>
- </if>
- <if test="age != null">
- <![CDATA[ AND t15.min_age <= #{age} ]]>
- <![CDATA[ AND t15.max_age >= #{age} ]]>
- </if>
- </if>
- AND t12.groupDiff = 1
- </select>
- <select id="getKlDiagnosePages" resultType="com.diagbot.dto.KlDiagnoseInfoDTO">
- SELECT dia.* ,con.lib_name as conceptName FROM
- kl_diagnose dia,
- kl_concept con
- WHERE dia.is_deleted = 'N'
- AND dia.concept_id = con.id
- <if test="description!=null and description!=''">
- AND UPPER(dia.description) LIKE CONCAT('%', UPPER(trim(#{description})), '%')
- </if>
- <if test="status!=null">
- AND dia.status = #{status}
- </if>
- ORDER BY dia.gmt_modified DESC
- </select>
- <select id="getByIdDiagnoses" resultType="com.diagbot.dto.KlDiagnoseByIdDTO">
- SELECT
- di.id as id,
- di.description as description,
- di.concept_id AS conceptId,
- di.lib_name as libName,
- di.lib_type as libType,
- di.lename as lename,
- di.status as status,
- dico.condition_group as conditionGroup,
- dico.base_group as baseGroup,
- dico.fit_no as fitNo,
- dico.condition_type as conditionType,
- dibas.basid as basid,
- dibas.basDescription as basDescription,
- dibas.basConceptId as basConceptId,
- dibas.basLibName as basLibName,
- dibas.baslibType as baslibType,
- dibas.basLename as basLename,
- dibas.basType as basType,
- dibas.min_operator as minOperator,
- dibas.min_value AS minVal,
- dibas.min_unit AS minUnit,
- dibas.max_value AS maxVal,
- dibas.max_unit as maxUnit,
- dibas.max_operator as maxOperator,
- dibas.eq_operator as eqOperator,
- dibas.eq_value as eqValue,
- dibas.eq_unit as eqUnit
- FROM
- (SELECT
- a.id,
- a.description,
- a.concept_id,
- b.lib_name,
- b.lib_type,
- a.status,
- c.name AS lename
- FROM
- kl_diagnose a,
- kl_concept b,
- kl_lexicon c
- WHERE a.concept_id = b.id
- AND b.lib_type = c.code
- <if test="id != null">
- AND a.id = #{id}
- </if>
- ) di
- LEFT JOIN kl_diagnose_condition dico
- ON di.id = dico.diagnose_id
- LEFT JOIN
- (SELECT
- c.id AS basid,
- c.description AS basDescription,
- c.concept_id AS basConceptId,
- d.lib_name AS basLibName,
- d.lib_type AS baslibType,
- f.name AS basLename,
- c.type AS basType,
- c.min_operator,
- c.min_value,
- c.min_unit,
- c.max_value,
- c.max_unit,
- c.max_operator,
- c.eq_operator,
- c.eq_value,
- c.eq_unit
- FROM
- kl_diagnose_base c LEFT JOIN
- kl_concept d ON c.concept_id = d.id
- LEFT JOIN kl_lexicon f ON d.lib_type = f.code
- ) dibas
- ON dibas.basid = dico.diagnose_base_id
- </select>
- </mapper>
|