|
@@ -881,7 +881,6 @@
|
|
|
)t
|
|
|
</select>
|
|
|
|
|
|
-
|
|
|
<!-- 各科室缺陷占比(组合) -->
|
|
|
<select id="levelStatistics" parameterType="com.diagbot.vo.FilterOrderVO" resultType="com.diagbot.dto.LevelStatisticsDTO">
|
|
|
SELECT
|
|
@@ -901,7 +900,8 @@
|
|
|
t1.secondLevelPercentStr,
|
|
|
t1.thirdLevelPercentStr
|
|
|
FROM
|
|
|
- (SELECT
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.beh_dept_id AS deptId,
|
|
|
a.beh_dept_name AS deptName,
|
|
|
count( DISTINCT c.id ) AS mrNum,
|
|
@@ -912,7 +912,7 @@
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END ) AS thirdLevelNum,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS firstLevelPercent,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
- 1-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id ), 4 ) - ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS thirdLevelPercent,
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS thirdLevelPercent,
|
|
|
concat(
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
@@ -922,8 +922,7 @@
|
|
|
'%'
|
|
|
) AS secondLevelPercentStr,
|
|
|
concat(
|
|
|
- (
|
|
|
- 100-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ) - ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 )),
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS thirdLevelPercentStr
|
|
|
FROM
|
|
@@ -956,16 +955,18 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.beh_dept_id,
|
|
|
- a.beh_dept_name)t1,
|
|
|
- (SELECT
|
|
|
+ a.beh_dept_name
|
|
|
+ ) t1,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.beh_dept_id AS deptId,
|
|
|
a.beh_dept_name AS deptName,
|
|
|
- count( DISTINCT d.id ) AS entryNum
|
|
|
+ count( * ) AS entryNum
|
|
|
FROM
|
|
|
med_behospital_info a,
|
|
|
med_home_page b,
|
|
|
- med_qcresult_info c,
|
|
|
- med_qcresult_detail d
|
|
|
+ med_qcresult_detail c,
|
|
|
+ qc_cases_entry d
|
|
|
WHERE
|
|
|
a.is_deleted = 'N'
|
|
|
AND b.is_deleted = 'N'
|
|
@@ -973,10 +974,10 @@
|
|
|
AND d.is_deleted = 'N'
|
|
|
AND a.hospital_id = b.hospital_id
|
|
|
AND a.hospital_id = c.hospital_id
|
|
|
- AND a.hospital_id = d.hospital_id
|
|
|
AND a.behospital_code = b.behospital_code
|
|
|
AND a.behospital_code = c.behospital_code
|
|
|
- AND a.behospital_code = d.behospital_code
|
|
|
+ AND c.cases_id = d.cases_id
|
|
|
+ AND c.cases_entry_id = d.id
|
|
|
<![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
|
AND a.hospital_id = #{hospitalId}
|
|
@@ -995,9 +996,11 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.beh_dept_id,
|
|
|
- a.beh_dept_name)t2
|
|
|
- where t1.deptId=t2.deptId
|
|
|
- and t1.deptName=t2.deptName
|
|
|
+ a.beh_dept_name
|
|
|
+ ) t2
|
|
|
+ WHERE
|
|
|
+ t1.deptId = t2.deptId
|
|
|
+ AND t1.deptName = t2.deptName
|
|
|
<if test="asc != null and asc !=''">
|
|
|
order by
|
|
|
<choose>
|
|
@@ -1058,7 +1061,8 @@
|
|
|
t1.firstLevelPercentStr,
|
|
|
t1.secondLevelPercentStr
|
|
|
FROM
|
|
|
- (SELECT
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.beh_dept_id AS deptId,
|
|
|
a.beh_dept_name AS deptName,
|
|
|
count( DISTINCT c.id ) AS mrNum,
|
|
@@ -1067,13 +1071,13 @@
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END ) AS firstLevelNum,
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END ) AS secondLevelNum,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS firstLevelPercent,
|
|
|
- 1-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
concat(
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS firstLevelPercentStr,
|
|
|
concat(
|
|
|
- 100-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS secondLevelPercentStr
|
|
|
FROM
|
|
@@ -1107,16 +1111,18 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.beh_dept_id,
|
|
|
- a.beh_dept_name)t1,
|
|
|
- (SELECT
|
|
|
+ a.beh_dept_name
|
|
|
+ ) t1,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.beh_dept_id AS deptId,
|
|
|
a.beh_dept_name AS deptName,
|
|
|
- count( DISTINCT d.id ) AS entryNum
|
|
|
+ count( * ) AS entryNum
|
|
|
FROM
|
|
|
med_behospital_info a,
|
|
|
med_home_page b,
|
|
|
- med_qcresult_cases c,
|
|
|
- med_qcresult_detail d
|
|
|
+ med_qcresult_detail c,
|
|
|
+ qc_cases_entry d
|
|
|
WHERE
|
|
|
a.is_deleted = 'N'
|
|
|
AND b.is_deleted = 'N'
|
|
@@ -1124,11 +1130,10 @@
|
|
|
AND d.is_deleted = 'N'
|
|
|
AND a.hospital_id = b.hospital_id
|
|
|
AND a.hospital_id = c.hospital_id
|
|
|
- AND a.hospital_id = d.hospital_id
|
|
|
AND a.behospital_code = b.behospital_code
|
|
|
AND a.behospital_code = c.behospital_code
|
|
|
- AND a.behospital_code = d.behospital_code
|
|
|
AND c.cases_id = d.cases_id
|
|
|
+ AND c.cases_entry_id = d.id
|
|
|
AND c.cases_id = 243
|
|
|
<![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
@@ -1148,9 +1153,11 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.beh_dept_id,
|
|
|
- a.beh_dept_name) t2
|
|
|
- where t1.deptId=t2.deptId
|
|
|
- and t1.deptName=t2.deptName
|
|
|
+ a.beh_dept_name
|
|
|
+ ) t2
|
|
|
+ WHERE
|
|
|
+ t1.deptId = t2.deptId
|
|
|
+ AND t1.deptName = t2.deptName
|
|
|
<if test="asc != null and asc !=''">
|
|
|
order by
|
|
|
<choose>
|
|
@@ -1208,7 +1215,8 @@
|
|
|
t1.secondLevelPercentStr,
|
|
|
t1.thirdLevelPercentStr
|
|
|
FROM
|
|
|
- (SELECT
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.doctor_id AS doctorId,
|
|
|
a.doctor_name AS doctorName,
|
|
|
count( DISTINCT c.id ) AS mrNum,
|
|
@@ -1219,7 +1227,7 @@
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END ) AS thirdLevelNum,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS firstLevelPercent,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
- 1-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id ), 4 ) - ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS thirdLevelPercent,
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS thirdLevelPercent,
|
|
|
concat(
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
@@ -1229,8 +1237,7 @@
|
|
|
'%'
|
|
|
) AS secondLevelPercentStr,
|
|
|
concat(
|
|
|
- (
|
|
|
- 100-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '甲' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ) - ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '乙' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 )),
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '丙' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS thirdLevelPercentStr
|
|
|
FROM
|
|
@@ -1272,16 +1279,18 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.doctor_id,
|
|
|
- a.doctor_name)t1,
|
|
|
- (SELECT
|
|
|
+ a.doctor_name
|
|
|
+ ) t1,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.doctor_id AS doctorId,
|
|
|
a.doctor_name AS doctorName,
|
|
|
- count( DISTINCT d.id ) AS entryNum
|
|
|
+ count( * ) AS entryNum
|
|
|
FROM
|
|
|
med_behospital_info a,
|
|
|
med_home_page b,
|
|
|
- med_qcresult_info c,
|
|
|
- med_qcresult_detail d,
|
|
|
+ med_qcresult_detail c,
|
|
|
+ qc_cases_entry d,
|
|
|
sys_user_dept e
|
|
|
WHERE
|
|
|
a.is_deleted = 'N'
|
|
@@ -1291,10 +1300,10 @@
|
|
|
AND e.is_deleted = 'N'
|
|
|
AND a.hospital_id = b.hospital_id
|
|
|
AND a.hospital_id = c.hospital_id
|
|
|
- AND a.hospital_id = d.hospital_id
|
|
|
AND a.behospital_code = b.behospital_code
|
|
|
AND a.behospital_code = c.behospital_code
|
|
|
- AND a.behospital_code = d.behospital_code
|
|
|
+ AND c.cases_id = d.cases_id
|
|
|
+ AND c.cases_entry_id = d.id
|
|
|
AND a.beh_dept_id = e.dept_id
|
|
|
<![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
@@ -1320,7 +1329,8 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.doctor_id,
|
|
|
- a.doctor_name)t2
|
|
|
+ a.doctor_name
|
|
|
+ ) t2
|
|
|
WHERE
|
|
|
t1.doctorId = t2.doctorId
|
|
|
AND t1.doctorName = t2.doctorName
|
|
@@ -1384,7 +1394,8 @@
|
|
|
t1.firstLevelPercentStr,
|
|
|
t1.secondLevelPercentStr
|
|
|
FROM
|
|
|
- (SELECT
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.doctor_id AS doctorId,
|
|
|
a.doctor_name AS doctorName,
|
|
|
count( DISTINCT c.id ) AS mrNum,
|
|
@@ -1393,13 +1404,13 @@
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END ) AS firstLevelNum,
|
|
|
COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END ) AS secondLevelNum,
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS firstLevelPercent,
|
|
|
- 1-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END )/ count( DISTINCT c.id ), 4 ) AS secondLevelPercent,
|
|
|
concat(
|
|
|
ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS firstLevelPercentStr,
|
|
|
concat(
|
|
|
- 100-ROUND ( COUNT( DISTINCT CASE WHEN c.`level` = '合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
+ ROUND( COUNT( DISTINCT CASE WHEN c.`level` = '不合格' THEN c.id END )/ count( DISTINCT c.id )* 100, 2 ),
|
|
|
'%'
|
|
|
) AS secondLevelPercentStr
|
|
|
FROM
|
|
@@ -1438,20 +1449,22 @@
|
|
|
AND e.user_id = #{userId}
|
|
|
</if>
|
|
|
<if test="deptName!=null and deptName !=''">
|
|
|
- AND a.beh_dept_name = #{deptName}
|
|
|
+ AND a.beh_dept_name = #{deptName}
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.doctor_id,
|
|
|
- a.doctor_name)t1,
|
|
|
- (SELECT
|
|
|
+ a.doctor_name
|
|
|
+ ) t1,
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
a.doctor_id AS doctorId,
|
|
|
a.doctor_name AS doctorName,
|
|
|
- count( DISTINCT d.id ) AS entryNum
|
|
|
+ count( * ) AS entryNum
|
|
|
FROM
|
|
|
med_behospital_info a,
|
|
|
med_home_page b,
|
|
|
- med_qcresult_cases c,
|
|
|
- med_qcresult_detail d,
|
|
|
+ med_qcresult_detail c,
|
|
|
+ qc_cases_entry d,
|
|
|
sys_user_dept e
|
|
|
WHERE
|
|
|
a.is_deleted = 'N'
|
|
@@ -1461,12 +1474,11 @@
|
|
|
AND e.is_deleted = 'N'
|
|
|
AND a.hospital_id = b.hospital_id
|
|
|
AND a.hospital_id = c.hospital_id
|
|
|
- AND a.hospital_id = d.hospital_id
|
|
|
AND a.behospital_code = b.behospital_code
|
|
|
AND a.behospital_code = c.behospital_code
|
|
|
- AND a.behospital_code = d.behospital_code
|
|
|
AND a.beh_dept_id = e.dept_id
|
|
|
AND c.cases_id = d.cases_id
|
|
|
+ AND c.cases_entry_id = d.id
|
|
|
AND c.cases_id = 243
|
|
|
<![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
@@ -1492,7 +1504,8 @@
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
a.doctor_id,
|
|
|
- a.doctor_name)t2
|
|
|
+ a.doctor_name
|
|
|
+ ) t2
|
|
|
WHERE
|
|
|
t1.doctorId = t2.doctorId
|
|
|
AND t1.doctorName = t2.doctorName
|