|
@@ -2471,278 +2471,6 @@
|
|
|
</if>
|
|
|
</select>
|
|
|
|
|
|
- <!-- 病案首页合格率占比 -全院-->
|
|
|
- <select id="homePageLevelStatistics" parameterType="com.diagbot.vo.FilterOrderVO"
|
|
|
- resultType="com.diagbot.dto.HomePageNumDTO">
|
|
|
- SELECT
|
|
|
- t1.deptId,
|
|
|
- t1.deptName,
|
|
|
- t2.entryNum,
|
|
|
- t1.mrNum,
|
|
|
- t1.totleValue,
|
|
|
- t1.averageValue,
|
|
|
- t1.firstLevelNum,
|
|
|
- t1.secondLevelNum,
|
|
|
- t1.firstLevelPercent,
|
|
|
- t1.secondLevelPercent,
|
|
|
- t1.firstLevelPercentStr,
|
|
|
- t1.secondLevelPercentStr,
|
|
|
- t3.emptyNum,
|
|
|
- t3.errorNum,
|
|
|
- t3.entryTotleNum,
|
|
|
- t3.emptyPercent,
|
|
|
- t3.errorPercent,
|
|
|
- t3.emptyPercentStr,
|
|
|
- t3.errorPercentStr
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- a.beh_dept_id AS deptId,
|
|
|
- a.beh_dept_name AS deptName,
|
|
|
- count( * ) AS mrNum,
|
|
|
- ROUND( sum( CAST( c.score_res AS DECIMAL ( 18, 2 )) ), 2 ) AS totleValue,
|
|
|
- ROUND( avg( CAST( c.score_res AS DECIMAL ( 18, 2 )) ), 2 ) AS averageValue,
|
|
|
- SUM( c.`level` = '合格' ) AS firstLevelNum,
|
|
|
- SUM( c.`level` = '不合格' ) AS secondLevelNum,
|
|
|
- ROUND( SUM( c.`level` = '合格' )/ count( * ), 4 ) AS firstLevelPercent,
|
|
|
- ROUND( SUM( c.`level` = '不合格' )/ count( * ), 4 ) AS secondLevelPercent,
|
|
|
- concat( ROUND( SUM( c.`level` = '合格' )/ count( * )* 100, 2 ),'%' ) AS firstLevelPercentStr,
|
|
|
- concat( ROUND( SUM( c.`level` = '不合格' )/ count( * )* 100, 2 ),'%' ) AS secondLevelPercentStr
|
|
|
- FROM
|
|
|
- med_behospital_info a,
|
|
|
- med_qcresult_cases c
|
|
|
- WHERE
|
|
|
- a.is_deleted = 'N'
|
|
|
- AND c.is_deleted = 'N'
|
|
|
- AND a.hospital_id = c.hospital_id
|
|
|
- AND a.behospital_code = c.behospital_code
|
|
|
- AND c.cases_id = 243
|
|
|
- <if test="isPlacefile != null and isPlacefile != ''">
|
|
|
- and a.is_placefile = #{isPlacefile}
|
|
|
- </if>
|
|
|
- AND a.qc_type_id != 0
|
|
|
- <if test="hospitalId != null and hospitalId != ''">
|
|
|
- AND a.hospital_id = #{hospitalId}
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 0">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 1">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="level != null and level != ''">
|
|
|
- and c.level = #{level}
|
|
|
- </if>
|
|
|
- <if test="deptName != null and deptName != ''">
|
|
|
- and a.beh_dept_name like CONCAT('%',#{deptName},'%')
|
|
|
- </if>
|
|
|
- GROUP BY
|
|
|
- a.beh_dept_id,
|
|
|
- a.beh_dept_name
|
|
|
- ) t1,
|
|
|
- (
|
|
|
- SELECT
|
|
|
- a.beh_dept_id AS deptId,
|
|
|
- a.beh_dept_name AS deptName,
|
|
|
- count( * ) AS entryNum
|
|
|
- FROM
|
|
|
- med_behospital_info a,
|
|
|
- med_qcresult_cases c,
|
|
|
- med_qcresult_detail d,
|
|
|
- qc_cases_entry e
|
|
|
- WHERE
|
|
|
- a.is_deleted = 'N'
|
|
|
- AND c.is_deleted = 'N'
|
|
|
- AND d.is_deleted = 'N'
|
|
|
- AND e.is_deleted = 'N'
|
|
|
- AND a.hospital_id = c.hospital_id
|
|
|
- AND a.hospital_id = d.hospital_id
|
|
|
- AND a.behospital_code = c.behospital_code
|
|
|
- AND a.behospital_code = d.behospital_code
|
|
|
- AND c.cases_id = d.cases_id
|
|
|
- AND d.cases_id = e.cases_id
|
|
|
- AND d.cases_entry_id = e.id
|
|
|
- AND d.cases_id = 243
|
|
|
- <if test="isPlacefile != null and isPlacefile != ''">
|
|
|
- and a.is_placefile = #{isPlacefile}
|
|
|
- </if>
|
|
|
- AND a.qc_type_id != 0
|
|
|
- <if test="hospitalId != null and hospitalId != ''">
|
|
|
- AND a.hospital_id = #{hospitalId}
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 0">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 1">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="level != null and level != ''">
|
|
|
- and c.level = #{level}
|
|
|
- </if>
|
|
|
- <if test="deptName != null and deptName != ''">
|
|
|
- and a.beh_dept_name like CONCAT('%',#{deptName},'%')
|
|
|
- </if>
|
|
|
- GROUP BY
|
|
|
- a.beh_dept_id,
|
|
|
- a.beh_dept_name
|
|
|
- ) t2,(
|
|
|
- SELECT
|
|
|
- h1.deptId,
|
|
|
- h1.deptName,
|
|
|
- h1.emptyNum,
|
|
|
- h1.errorNum,
|
|
|
- h1.mrNum,
|
|
|
- h2.entryNum,
|
|
|
- h1.mrNum * h2.entryNum AS entryTotleNum,
|
|
|
- ROUND( ( h1.mrNum * h2.entryNum - h1.emptyNum ) / ( h1.mrNum * h2.entryNum ), 4 ) AS emptyPercent,
|
|
|
- ROUND( ( h1.mrNum * h2.entryNum - h1.errorNum ) / ( h1.mrNum * h2.entryNum ), 4 ) AS errorPercent,
|
|
|
- CONCAT( ROUND( ( h1.mrNum * h2.entryNum - h1.emptyNum ) / ( h1.mrNum * h2.entryNum )* 100, 2 ), '%' ) AS emptyPercentStr,
|
|
|
- CONCAT( ROUND( ( h1.mrNum * h2.entryNum - h1.errorNum ) / ( h1.mrNum * h2.entryNum )* 100, 2 ), '%' ) AS errorPercentStr
|
|
|
- FROM
|
|
|
- (
|
|
|
- SELECT
|
|
|
- a.beh_dept_id AS deptId,
|
|
|
- a.beh_dept_name AS deptName,
|
|
|
- sum( d.rule_type = 1 ) AS emptyNum,
|
|
|
- sum( d.rule_type = 2 ) AS errorNum,
|
|
|
- count( DISTINCT a.behospital_code ) AS mrNum
|
|
|
- FROM
|
|
|
- med_behospital_info a,
|
|
|
- med_qcresult_cases b,
|
|
|
- med_qcresult_detail c,
|
|
|
- qc_cases_entry d
|
|
|
- WHERE
|
|
|
- a.is_deleted = 'N'
|
|
|
- AND b.is_deleted = 'N'
|
|
|
- AND c.is_deleted = 'N'
|
|
|
- AND d.is_deleted = 'N'
|
|
|
- AND a.hospital_id = b.hospital_id
|
|
|
- AND a.hospital_id = c.hospital_id
|
|
|
- AND a.behospital_code = b.behospital_code
|
|
|
- AND a.behospital_code = c.behospital_code
|
|
|
- AND b.cases_id = c.cases_id
|
|
|
- AND c.cases_id = d.cases_id
|
|
|
- AND c.cases_entry_id = d.id
|
|
|
- <if test="isPlacefile != null and isPlacefile != ''">
|
|
|
- and a.is_placefile = #{isPlacefile}
|
|
|
- </if>
|
|
|
- AND d.cases_id = 243
|
|
|
- AND a.qc_type_id != 0
|
|
|
- <if test="hospitalId != null and hospitalId != ''">
|
|
|
- AND a.hospital_id = #{hospitalId}
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 0">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.behospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="isPlacefile != null and isPlacefile == 1">
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
|
|
|
- </if>
|
|
|
- </if>
|
|
|
- <if test="level != null and level != ''">
|
|
|
- and b.level = #{level}
|
|
|
- </if>
|
|
|
- <if test="deptName != null and deptName != ''">
|
|
|
- and a.beh_dept_name like CONCAT('%',#{deptName},'%')
|
|
|
- </if>
|
|
|
- GROUP BY
|
|
|
- a.beh_dept_id,
|
|
|
- a.beh_dept_name
|
|
|
- ) h1,(
|
|
|
- SELECT
|
|
|
- count(*) AS entryNum
|
|
|
- FROM
|
|
|
- qc_cases_entry
|
|
|
- WHERE
|
|
|
- is_deleted = 'N'
|
|
|
- AND cases_id = 243
|
|
|
- ) h2
|
|
|
- ) t3
|
|
|
- WHERE
|
|
|
- t1.deptId = t2.deptId
|
|
|
- AND t1.deptId = t3.deptId
|
|
|
- AND t1.deptName = t2.deptName
|
|
|
- AND t1.deptName = t3.deptName
|
|
|
- <if test="asc != null and asc !=''">
|
|
|
- order by
|
|
|
- <choose>
|
|
|
- <when test='asc=="deptId"'>deptId asc</when>
|
|
|
- <when test='asc=="deptName"'>deptName asc</when>
|
|
|
- <when test='asc=="entryNum"'>entryNum asc</when>
|
|
|
- <when test='asc=="mrNum"'>mrNum asc</when>
|
|
|
- <when test='asc=="totleValue"'>totleValue asc</when>
|
|
|
- <when test='asc=="averageValue"'>averageValue asc</when>
|
|
|
- <when test='asc=="firstLevelNum"'>firstLevelNum asc</when>
|
|
|
- <when test='asc=="secondLevelNum"'>secondLevelNum asc</when>
|
|
|
- <when test='asc=="firstLevelPercent"'>firstLevelPercent asc</when>
|
|
|
- <when test='asc=="secondLevelPercent"'>secondLevelPercent asc</when>
|
|
|
- <when test='asc=="firstLevelPercentStr"'>firstLevelPercent asc</when>
|
|
|
- <when test='asc=="secondLevelPercentStr"'>secondLevelPercent asc</when>
|
|
|
- <when test='asc=="emptyNum"'>emptyNum asc</when>
|
|
|
- <when test='asc=="errorNum"'>errorNum asc</when>
|
|
|
- <when test='asc=="entryTotleNum"'>entryTotleNum asc</when>
|
|
|
- <when test='asc=="emptyPercent"'>emptyPercent asc</when>
|
|
|
- <when test='asc=="errorPercent"'>errorPercent asc</when>
|
|
|
- <when test='asc=="emptyPercentStr"'>emptyPercent asc</when>
|
|
|
- <when test='asc=="errorPercentStr"'>errorPercent asc</when>
|
|
|
- <otherwise>deptName asc</otherwise>
|
|
|
- </choose>
|
|
|
- </if>
|
|
|
- <if test="desc != null and desc!=''">
|
|
|
- order by
|
|
|
- <choose>
|
|
|
- <when test='desc=="deptId"'>deptId desc</when>
|
|
|
- <when test='desc=="deptName"'>deptName desc</when>
|
|
|
- <when test='desc=="entryNum"'>entryNum desc</when>
|
|
|
- <when test='desc=="mrNum"'>mrNum desc</when>
|
|
|
- <when test='desc=="totleValue"'>totleValue desc</when>
|
|
|
- <when test='desc=="averageValue"'>averageValue desc</when>
|
|
|
- <when test='desc=="firstLevelNum"'>firstLevelNum desc</when>
|
|
|
- <when test='desc=="secondLevelNum"'>secondLevelNum desc</when>
|
|
|
- <when test='desc=="firstLevelPercent"'>firstLevelPercent desc</when>
|
|
|
- <when test='desc=="secondLevelPercent"'>secondLevelPercent desc</when>
|
|
|
- <when test='desc=="firstLevelPercentStr"'>firstLevelPercent desc</when>
|
|
|
- <when test='desc=="secondLevelPercentStr"'>secondLevelPercent desc</when>
|
|
|
- <when test='desc=="emptyNum"'>emptyNum desc</when>
|
|
|
- <when test='desc=="errorNum"'>errorNum desc</when>
|
|
|
- <when test='desc=="entryTotleNum"'>entryTotleNum desc</when>
|
|
|
- <when test='desc=="emptyPercent"'>emptyPercent desc</when>
|
|
|
- <when test='desc=="errorPercent"'>errorPercent desc</when>
|
|
|
- <when test='desc=="emptyPercentStr"'>emptyPercent desc</when>
|
|
|
- <when test='desc=="errorPercentStr"'>errorPercent desc</when>
|
|
|
- <otherwise>deptName desc</otherwise>
|
|
|
- </choose>
|
|
|
- </if>
|
|
|
- </select>
|
|
|
-
|
|
|
<!-- 各科室缺陷占比-科室 -->
|
|
|
<select id="levelStatisticsByDept" parameterType="com.diagbot.vo.FilterOrderByDeptVO"
|
|
|
resultType="com.diagbot.dto.LevelStsByDeptDTO">
|