|
@@ -108,201 +108,182 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="getEntryDefectImprove" resultType="com.diagbot.dto.GetEntryDefectImproveDTO">
|
|
|
- select
|
|
|
- t6.hospitalId,
|
|
|
- t6.deptId,
|
|
|
- t6.deptName,
|
|
|
- t6.casesId,
|
|
|
- t6.casesName,
|
|
|
- t6.entryName,
|
|
|
- t6.entryId,
|
|
|
- t6.totalNum,
|
|
|
- t6.improveleNum,
|
|
|
- t6.handleNum,
|
|
|
- t6.handleStr
|
|
|
- from(
|
|
|
SELECT
|
|
|
- t5.hospital_id AS hospitalId,
|
|
|
- t5.dept_id AS deptId,
|
|
|
- t5.dept_name AS deptName,
|
|
|
- t5.cases_id AS casesId,
|
|
|
- t5. NAME AS casesName,
|
|
|
- t5.entryName,
|
|
|
- t5.cases_entry_id AS entryId,
|
|
|
- sum(t5.totalNum) AS totalNum,
|
|
|
- sum(t5.improveleNum) AS improveleNum,
|
|
|
- sum(t5.totalNum)-sum(t5.improveleNum) AS handleNum,
|
|
|
- concat( ROUND((sum(t5.totalNum)-sum(t5.improveleNum))/ sum(t5.totalNum)* 100, 2 ), '%' ) AS handleStr
|
|
|
+ s.hospitalId,
|
|
|
+ s.deptId,
|
|
|
+ s.deptName,
|
|
|
+ s.casesId,
|
|
|
+ s.casesName,
|
|
|
+ s.casesEntryName,
|
|
|
+ s.beforeCasesEntryId,
|
|
|
+ sum(s.totalNum) AS totalNum,
|
|
|
+ sum(s.improveleNum) AS improveleNum,
|
|
|
+ sum(s.totalNum) - sum(s.improveleNum) AS handleNum,
|
|
|
+ concat(ROUND((sum(s.totalNum) - sum(s.improveleNum)) / sum(s.totalNum) * 100,2),'%') AS handleStr
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
- t4.hospital_id,
|
|
|
- t4.dept_id,
|
|
|
- t4.dept_name,
|
|
|
- t4.behospital_code,
|
|
|
- t4.cases_id,
|
|
|
- t4. NAME,
|
|
|
- t4.entryName,
|
|
|
- t4.cases_entry_id,
|
|
|
- count(t4.msgSec) AS totalNum,
|
|
|
+ f.hospitalId,
|
|
|
+ f.deptId,
|
|
|
+ f.deptName,
|
|
|
+ f.behospitalCode,
|
|
|
+ f.casesId,
|
|
|
+ f.casesName,
|
|
|
+ f.casesEntryName,
|
|
|
+ f.beforeCasesEntryId,
|
|
|
+ count(f.beforeCasesEntryId) AS totalNum,
|
|
|
CASE
|
|
|
- WHEN count(t4.msg) > 0
|
|
|
- AND count(t4.msgSec) - count(t4.msg) <= 0 THEN
|
|
|
- count(t4.msgSec)
|
|
|
- WHEN count(t4.msg) > 0
|
|
|
- AND count(t4.msgSec) - count(t4.msg) > 0 THEN
|
|
|
- count(t4.msgSec) - count(t4.msg)
|
|
|
- WHEN count(t4.msg) = 0
|
|
|
- AND count(t4.msgSec) - count(t4.msg) > 0 THEN
|
|
|
- 0
|
|
|
+ WHEN count(f.lastCasesEntryId) > 0 AND count(f.beforeCasesEntryId) - count(f.lastCasesEntryId) <= 0 THEN
|
|
|
+ count(f.beforeCasesEntryId)
|
|
|
+ WHEN count(f.lastCasesEntryId) > 0 AND count(f.beforeCasesEntryId) - count(f.lastCasesEntryId) > 0 THEN
|
|
|
+ count(f.beforeCasesEntryId) - count(f.lastCasesEntryId)
|
|
|
+ WHEN count(f.lastCasesEntryId) = 0 THEN 0
|
|
|
END AS improveleNum
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
- t3.hospital_id,
|
|
|
- t3.dept_id,
|
|
|
- t3.dept_name,
|
|
|
- t3.behospital_code,
|
|
|
- t3.cases_id,
|
|
|
- t3.name,
|
|
|
- t3.msg AS entryName,
|
|
|
- t3.cases_entry_id,
|
|
|
- CASE
|
|
|
- WHEN t3.is_deleted = 'N' THEN
|
|
|
- t3.msg
|
|
|
- END AS msg,
|
|
|
- CASE
|
|
|
- WHEN t3.is_deleted = 'Y' THEN
|
|
|
- t3.msg
|
|
|
- END AS msgSec
|
|
|
+ k.*, i. NAME AS casesName,
|
|
|
+ o. NAME AS casesEntryName,
|
|
|
+ y.cases_entry_id AS lastCasesEntryId
|
|
|
FROM
|
|
|
(
|
|
|
SELECT
|
|
|
- t1.hospital_id,
|
|
|
- t1.beh_dept_id AS dept_id,
|
|
|
- t1.beh_dept_name AS dept_name,
|
|
|
- t2.behospital_code,
|
|
|
- t2.qcresult_info_id,
|
|
|
- t2.gmt_create as gmTime,
|
|
|
- t3.cases_id,
|
|
|
- t4.name,
|
|
|
- t3.cases_entry_id,
|
|
|
- t3.msg,
|
|
|
- t3.is_deleted
|
|
|
+ t.hospital_id AS hospitalId,
|
|
|
+ t.dept_id AS deptId,
|
|
|
+ t.dept_name AS deptName,
|
|
|
+ t.behospital_code AS behospitalCode,
|
|
|
+ t.beforeQcresultInfoId,
|
|
|
+ u.cases_id AS casesId,
|
|
|
+ u.cases_entry_id AS beforeCasesEntryId,
|
|
|
+ e.lastQcresultInfoId
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ h.hospital_id,
|
|
|
+ h.dept_id,
|
|
|
+ h.dept_name,
|
|
|
+ h.behospital_code,
|
|
|
+ h.lastQcresultInfoId
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT DISTINCT
|
|
|
+ w.hospital_id,
|
|
|
+ w.behospital_code
|
|
|
FROM
|
|
|
- med_behospital_info t1,
|
|
|
- med_click_info t2,
|
|
|
- med_qcresult_detail t3,
|
|
|
- qc_cases t4
|
|
|
+ med_click_info w
|
|
|
WHERE
|
|
|
- t1.is_deleted = 'N'
|
|
|
- AND t2.is_deleted = 'N'
|
|
|
- AND t3.is_deleted = 'N'
|
|
|
- AND t4.is_deleted = 'N'
|
|
|
- AND t1.hospital_id = t2.hospital_id
|
|
|
- AND t1.hospital_id = t3.hospital_id
|
|
|
- AND t1.behospital_code = t2.behospital_code
|
|
|
- AND t2.qcresult_info_id = t3.qcresult_info_id
|
|
|
- AND t3.cases_id = t4.id
|
|
|
- AND t1.qc_type_id != 0
|
|
|
+ w.is_deleted = 'N'
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
|
- AND t1.hospital_id = #{hospitalId}
|
|
|
+ AND w.hospital_id = #{hospitalId}
|
|
|
</if>
|
|
|
- <if test="deptId != null and deptId != ''">
|
|
|
- and t1.dept_id = #{deptId}
|
|
|
- </if>
|
|
|
- <if test="deptName != null and deptName != ''">
|
|
|
- and t1.dept_name like CONCAT('%',#{deptName},'%')
|
|
|
+ <if test="startDate != null and startDate != ''">
|
|
|
+ <![CDATA[ AND w.gmt_create >= #{startDate}]]>
|
|
|
</if>
|
|
|
- <if test="casesName != null and casesName != ''">
|
|
|
- and t4.name like CONCAT('%',#{casesName},'%')
|
|
|
+ <if test="endDate != null and endDate != ''">
|
|
|
+ <![CDATA[ AND w.gmt_create <= #{endDate}]]>
|
|
|
</if>
|
|
|
- <if test="entryName != null and entryName != ''">
|
|
|
- and t3.msg like CONCAT('%',#{entryName},'%')
|
|
|
+ ) g
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ q.hospital_id,
|
|
|
+ q.beh_dept_id AS dept_id,
|
|
|
+ q.beh_dept_name AS dept_name,
|
|
|
+ w.behospital_code,
|
|
|
+ max(w.qcresult_info_id) AS lastQcresultInfoId
|
|
|
+ FROM
|
|
|
+ med_behospital_info q,
|
|
|
+ med_click_info w
|
|
|
+ WHERE
|
|
|
+ q.is_deleted = 'N'
|
|
|
+ AND w.is_deleted = 'N'
|
|
|
+ AND q.hospital_id = w.hospital_id
|
|
|
+ AND q.behospital_code = w.behospital_code
|
|
|
+ AND q.qc_type_id != 0
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND q.hospital_id = #{hospitalId}
|
|
|
</if>
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND t1.leave_hospital_date >= #{startDate}]]>
|
|
|
+ <if test="deptId != null and deptId != ''">
|
|
|
+ and q.dept_id = #{deptId}
|
|
|
</if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND t1.leave_hospital_date <= #{endDate}]]>
|
|
|
+ <if test="deptName != null and deptName != ''">
|
|
|
+ and q.dept_name like CONCAT('%',#{deptName},'%')
|
|
|
</if>
|
|
|
GROUP BY
|
|
|
- t1.beh_dept_id,
|
|
|
- t1.beh_dept_name,
|
|
|
- t1.behospital_code,
|
|
|
- t3.cases_id,
|
|
|
- t3.cases_entry_id
|
|
|
- UNION
|
|
|
+ q.beh_dept_id,
|
|
|
+ q.beh_dept_name,
|
|
|
+ q.behospital_code
|
|
|
+ ) h ON g.hospital_id = h.hospital_id
|
|
|
+ AND g.behospital_code = h.behospital_code
|
|
|
+ ) e
|
|
|
+ LEFT JOIN (
|
|
|
SELECT
|
|
|
- t1.hospital_id,
|
|
|
- t1.beh_dept_id AS dept_id,
|
|
|
- t1.beh_dept_name AS dept_name,
|
|
|
- t2.behospital_code,
|
|
|
- t2.qcresult_info_id,
|
|
|
- min(t2.gmt_create) AS gmTime,
|
|
|
- t3.cases_id,
|
|
|
- t4.name,
|
|
|
- t3.cases_entry_id,
|
|
|
- t3.msg,
|
|
|
- t3.is_deleted
|
|
|
+ q.hospital_id,
|
|
|
+ q.beh_dept_id AS dept_id,
|
|
|
+ q.beh_dept_name AS dept_name,
|
|
|
+ w.behospital_code,
|
|
|
+ min(w.qcresult_info_id) AS beforeQcresultInfoId
|
|
|
FROM
|
|
|
- med_behospital_info t1,
|
|
|
- med_click_info t2,
|
|
|
- med_qcresult_detail t3,
|
|
|
- qc_cases t4
|
|
|
+ med_behospital_info q,
|
|
|
+ med_click_info w,
|
|
|
+ med_qcresult_detail e
|
|
|
WHERE
|
|
|
- t1.is_deleted = 'N'
|
|
|
- AND t2.is_deleted = 'N'
|
|
|
- AND t3.is_deleted = 'Y'
|
|
|
- AND t4.is_deleted = 'N'
|
|
|
- AND t1.hospital_id = t2.hospital_id
|
|
|
- AND t1.hospital_id = t3.hospital_id
|
|
|
- AND t1.behospital_code = t2.behospital_code
|
|
|
- AND t2.qcresult_info_id = t3.qcresult_info_id
|
|
|
- AND t3.cases_id = t4.id
|
|
|
- AND t1.qc_type_id != 0
|
|
|
+ q.is_deleted = 'N'
|
|
|
+ AND w.is_deleted = 'N'
|
|
|
+ AND e.is_deleted = 'Y'
|
|
|
+ AND q.hospital_id = w.hospital_id
|
|
|
+ AND q.hospital_id = e.hospital_id
|
|
|
+ AND q.behospital_code = w.behospital_code
|
|
|
+ AND w.qcresult_info_id =e.qcresult_info_id
|
|
|
+ AND q.qc_type_id != 0
|
|
|
<if test="hospitalId != null and hospitalId != ''">
|
|
|
- AND t1.hospital_id = #{hospitalId}
|
|
|
+ AND q.hospital_id = #{hospitalId}
|
|
|
</if>
|
|
|
<if test="deptId != null and deptId != ''">
|
|
|
- and t1.dept_id = #{deptId}
|
|
|
+ and q.dept_id = #{deptId}
|
|
|
</if>
|
|
|
<if test="deptName != null and deptName != ''">
|
|
|
- and t1.dept_name like CONCAT('%',#{deptName},'%')
|
|
|
+ and q.dept_name like CONCAT('%',#{deptName},'%')
|
|
|
</if>
|
|
|
+ GROUP BY
|
|
|
+ q.beh_dept_id,
|
|
|
+ q.beh_dept_name,
|
|
|
+ q.behospital_code
|
|
|
+ ) t ON e.hospital_id = t.hospital_id
|
|
|
+ AND e.behospital_code = t.behospital_code
|
|
|
+ LEFT JOIN med_qcresult_detail u ON t.hospital_id = u.hospital_id
|
|
|
+ AND t.beforeQcresultInfoId = u.qcresult_info_id
|
|
|
+ WHERE
|
|
|
+ u.grade_type = 1
|
|
|
+ ORDER BY
|
|
|
+ t.dept_name
|
|
|
+ ) k
|
|
|
+ LEFT JOIN med_qcresult_detail y ON k.hospitalId = y.hospital_id
|
|
|
+ AND k.lastQcresultInfoId = y.qcresult_info_id
|
|
|
+ AND k.beforeCasesEntryId = y.cases_entry_id
|
|
|
+ LEFT JOIN qc_cases i ON i.id = k.casesId
|
|
|
+ AND i.is_deleted = 'N'
|
|
|
+ LEFT JOIN qc_cases_entry o ON o.id = k.beforeCasesEntryId
|
|
|
+ AND o.is_deleted = 'N'
|
|
|
+ WHERE
|
|
|
+ (y.grade_type = 1 OR y.grade_type IS NULL)
|
|
|
<if test="casesName != null and casesName != ''">
|
|
|
- and t4.name like CONCAT('%',#{casesName},'%')
|
|
|
+ and i.name like CONCAT('%',#{casesName},'%')
|
|
|
</if>
|
|
|
<if test="entryName != null and entryName != ''">
|
|
|
- and t3.msg like CONCAT('%',#{entryName},'%')
|
|
|
- </if>
|
|
|
- <if test="startDate != null and startDate != ''">
|
|
|
- <![CDATA[ AND t1.leave_hospital_date >= #{startDate}]]>
|
|
|
- </if>
|
|
|
- <if test="endDate != null and endDate != ''">
|
|
|
- <![CDATA[ AND t1.leave_hospital_date <= #{endDate}]]>
|
|
|
+ and o.name like CONCAT('%',#{entryName},'%')
|
|
|
</if>
|
|
|
+ ) f
|
|
|
GROUP BY
|
|
|
- t1.beh_dept_id,
|
|
|
- t1.beh_dept_name,
|
|
|
- t1.behospital_code,
|
|
|
- t3.cases_id,
|
|
|
- t3.cases_entry_id
|
|
|
- ) t3
|
|
|
- ) t4
|
|
|
+ f.deptId,
|
|
|
+ f.deptName,
|
|
|
+ f.behospitalCode,
|
|
|
+ f.casesId,
|
|
|
+ f.beforeCasesEntryId
|
|
|
+ ) s
|
|
|
GROUP BY
|
|
|
- t4.dept_id,
|
|
|
- t4.dept_name,
|
|
|
- t4.behospital_code,
|
|
|
- t4.cases_id,
|
|
|
- t4.cases_entry_id
|
|
|
- ) t5
|
|
|
- GROUP BY
|
|
|
- t5.dept_id,
|
|
|
- t5.dept_name,
|
|
|
- t5.cases_id,
|
|
|
- t5.cases_entry_id)t6
|
|
|
- where
|
|
|
- t6.totalNum != 0
|
|
|
+ s.deptId,
|
|
|
+ s.deptName,
|
|
|
+ s.casesId,
|
|
|
+ s.beforeCasesEntryId
|
|
|
</select>
|
|
|
</mapper>
|