|
@@ -1220,4 +1220,125 @@
|
|
|
ORDER BY
|
|
|
t.partId
|
|
|
</select>
|
|
|
+
|
|
|
+ <!--ICD编码查询-->
|
|
|
+ <select id="diseaseIndex" resultType="com.diagbot.dto.DiseaseIndexDTO">
|
|
|
+ SELECT
|
|
|
+ t.id,
|
|
|
+ <if test="diseaseIndexPageVO.type != null">
|
|
|
+ <choose>
|
|
|
+ <when test="diseaseIndexPageVO.type == 1">
|
|
|
+ t.lib_name AS NAME,
|
|
|
+ t.icd10_code AS CODE,
|
|
|
+ t.spell AS spell,
|
|
|
+ </when>
|
|
|
+ <when test="diseaseIndexPageVO.type == 2">
|
|
|
+ t.guoname AS NAME,
|
|
|
+ t.guocode AS CODE,
|
|
|
+ t.guospell AS spell,
|
|
|
+ </when>
|
|
|
+ <otherwise>
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ </if>
|
|
|
+ t.pos,
|
|
|
+ t.len
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.id,
|
|
|
+ a.lib_name,
|
|
|
+ b.spell,
|
|
|
+ c.icd10_code,
|
|
|
+ <if test="diseaseIndexPageVO.inputStr != null and diseaseIndexPageVO.inputStr != '' and diseaseIndexPageVO.type != null">
|
|
|
+ <choose>
|
|
|
+ <when test="diseaseIndexPageVO.type == 1">
|
|
|
+ CASE
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN a.lib_name )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN a.lib_name )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN b.spell )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN b.spell )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.icd10_code )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN c.icd10_code )
|
|
|
+ END AS pos,
|
|
|
+ CASE
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN a.lib_name )> 0 THEN
|
|
|
+ LENGTH( a.lib_name )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN b.spell )> 0 THEN
|
|
|
+ LENGTH( b.spell )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.icd10_code )> 0 THEN
|
|
|
+ LENGTH( c.icd10_code )
|
|
|
+ END AS len,
|
|
|
+ </when>
|
|
|
+ <when test="diseaseIndexPageVO.type == 1">
|
|
|
+ CASE
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guoname )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN c.guoname )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guospell )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN c.guospell )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guocode )> 0 THEN
|
|
|
+ POSITION( #{diseaseIndexPageVO.inputStr} IN c.guocode )
|
|
|
+ END AS pos,
|
|
|
+ CASE
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guoname )> 0 THEN
|
|
|
+ LENGTH( c.guoname )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guospell )> 0 THEN
|
|
|
+ LENGTH( c.guospell )
|
|
|
+ WHEN POSITION( #{diseaseIndexPageVO.inputStr} IN c.guocode )> 0 THEN
|
|
|
+ LENGTH( c.guocode )
|
|
|
+ END AS len,
|
|
|
+ </when>
|
|
|
+ <otherwise> 0 as pos,0 as len,
|
|
|
+ </otherwise>
|
|
|
+ </choose>
|
|
|
+ </if>
|
|
|
+ c.guoname,
|
|
|
+ c.guocode,
|
|
|
+ c.guospell
|
|
|
+ FROM
|
|
|
+ kl_concept a,
|
|
|
+ kl_library_info b,
|
|
|
+ kl_disease c
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ AND a.id = b.concept_id
|
|
|
+ AND a.id = c.concept_id
|
|
|
+ AND b.is_concept = 1
|
|
|
+ AND a.lib_type = 100
|
|
|
+ AND a.`status` = 1
|
|
|
+ AND c.icd10_code != ''
|
|
|
+ <if test="diseaseIndexPageVO.inputStr != null and diseaseIndexPageVO.inputStr != '' and diseaseIndexPageVO.type != null">
|
|
|
+ <choose>
|
|
|
+ <when test="diseaseIndexPageVO.type == 1">
|
|
|
+ AND c.icd10_code != ''
|
|
|
+ AND ( a.lib_name LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ OR b.spell LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ OR c.icd10_code LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' ) )
|
|
|
+ AND (
|
|
|
+ a.lib_name NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ AND b.spell NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ AND c.icd10_code NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ )
|
|
|
+ </when>
|
|
|
+ <when test="diseaseIndexPageVO.type == 2">
|
|
|
+ AND c.guocode != ''
|
|
|
+ AND ( c.guoname LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ OR c.guospell LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ OR c.guocode LIKE CONCAT( '%', #{diseaseIndexPageVO.inputStr}, '%' ) )
|
|
|
+ AND (
|
|
|
+ c.guoname NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ AND c.guospell NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ AND c.guocode NOT LIKE CONCAT( #{diseaseIndexPageVO.inputStr}, '%' )
|
|
|
+ )
|
|
|
+ </when>
|
|
|
+ <otherwise></otherwise>
|
|
|
+ </choose>
|
|
|
+ </if>
|
|
|
+ ) t
|
|
|
+ ORDER BY
|
|
|
+ t.pos,
|
|
|
+ t.len
|
|
|
+ </select>
|
|
|
</mapper>
|