|
@@ -714,6 +714,131 @@
|
|
|
order by b.order_no, a.order_no;
|
|
|
</select>
|
|
|
|
|
|
+ <!--病案管理指标基础sql明细-->
|
|
|
+ <select id="getBaseIndex" parameterType="com.diagbot.vo.MedIndexFilterVO" resultType="java.util.Map">
|
|
|
+ select
|
|
|
+ f1.firWorkNum,
|
|
|
+ f2.secWorkNum,
|
|
|
+ f3.thrWorkNum,
|
|
|
+ f3.forWorkNum,
|
|
|
+ f3.sixWorkNum,
|
|
|
+ f4.sevenWorkNum
|
|
|
+ from (
|
|
|
+ SELECT count(DISTINCT a.behospital_code) as firWorkNum
|
|
|
+ FROM
|
|
|
+ med_behospital_info a
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND a.is_placefile = 1
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND a.hospital_id = #{hospitalId}
|
|
|
+ </if>
|
|
|
+ <![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
+ <if test="startDate != null and startDate != ''">
|
|
|
+ <![CDATA[ AND a.leave_hospital_date >= #{lastStartDate}]]>
|
|
|
+ </if>
|
|
|
+ <if test="endDate != null and endDate != ''">
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{lastEndDate}]]>
|
|
|
+ </if>)f1,
|
|
|
+ ( SELECT count(DISTINCT a.behospital_code) AS secWorkNum
|
|
|
+ FROM
|
|
|
+ med_outpatient_info a
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ <if test="startDate != null and startDate != ''">
|
|
|
+ <![CDATA[ AND a.visit_date >= #{lastStartDate}]]>
|
|
|
+ </if>
|
|
|
+ <if test="endDate != null and endDate != ''">
|
|
|
+ <![CDATA[ AND a.visit_date <= #{lastEndDate}]]>
|
|
|
+ </if>
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND a.hospital_id = #{hospitalId}
|
|
|
+ </if>)f2,(
|
|
|
+ select
|
|
|
+ count(DISTINCT case when <![CDATA[m.behospital_date >= #{startDate}]]> and <![CDATA[m.behospital_date <= #{endDate}]]>
|
|
|
+ and m.is_placefile = 0 then m.behospital_code else null end) as thrWorkNum,
|
|
|
+ count(DISTINCT case when <![CDATA[m.leave_hospital_date >= #{startDate}]]> and <![CDATA[m.leave_hospital_date <= #{endDate}]]> and m.is_placefile = 1 then m.behospital_code else null end) as forWorkNum,
|
|
|
+ count(DISTINCT case when <![CDATA[m.leave_hospital_date >= #{startDate}]]> and <![CDATA[m.leave_hospital_date <= #{endDate}]]> and m.is_placefile = 1 and m.level = '甲' then m.behospital_code else null end) as sixWorkNum
|
|
|
+ from(
|
|
|
+ SELECT DISTINCT a.*,b.level
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info b
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ AND a.hospital_id = b.hospital_id
|
|
|
+ AND a.behospital_code = b.behospital_code
|
|
|
+ <![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND a.hospital_id = #{hospitalId}
|
|
|
+ </if>)m
|
|
|
+ )f3,(
|
|
|
+ SELECT count(DISTINCT a.behospital_code) as sevenWorkNum
|
|
|
+ FROM
|
|
|
+ med_behospital_info a
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND a.is_placefile = 1
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND a.hospital_id = #{hospitalId}
|
|
|
+ </if>
|
|
|
+ <![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
+ <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>)f4
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 病案管理规则质控缺陷病历总数查询-->
|
|
|
+ <select id="getMedManageParams" parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.MedManageParamsDTO">
|
|
|
+ SELECT
|
|
|
+ f1.behospitalCode,
|
|
|
+ <if test="flagStr != null and flagStr == 1 ">
|
|
|
+ f2.rep_name as repName,
|
|
|
+ </if>
|
|
|
+ <if test="flagStr != null and flagStr == 2">
|
|
|
+ f3.da_item_name as daItemName,
|
|
|
+ f3.da_status AS daStatus,
|
|
|
+ f3.doctor_advice_type as doctorAdviceType,
|
|
|
+ </if>
|
|
|
+ f1.hospitalId
|
|
|
+ from(
|
|
|
+ SELECT DISTINCT
|
|
|
+ a.hospital_id as hospitalId,
|
|
|
+ a.behospital_code as behospitalCode
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info b
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ AND a.hospital_id = b.hospital_id
|
|
|
+ AND a.behospital_code = b.behospital_code
|
|
|
+ AND <![CDATA[a.leave_hospital_date >= #{startDate}]]>
|
|
|
+ AND <![CDATA[a.leave_hospital_date <= #{endDate}]]>
|
|
|
+ AND a.is_placefile = 1
|
|
|
+ <![CDATA[AND a.qc_type_id <>0 ]]>
|
|
|
+ <if test="hospitalId != null and hospitalId != ''">
|
|
|
+ AND a.hospital_id = #{hospitalId}
|
|
|
+ </if>)f1
|
|
|
+ <if test="flagStr != null and flagStr == 1 ">
|
|
|
+ join med_lis_info f2
|
|
|
+ on f2.is_deleted = 'N'
|
|
|
+ AND f1.hospitalId = f2.hospital_id
|
|
|
+ AND f1.behospitalCode = f2.behospital_code
|
|
|
+ </if>
|
|
|
+ <if test="flagStr != null and flagStr == 2">
|
|
|
+ join med_doctor_advice f3
|
|
|
+ on f3.is_deleted = 'N'
|
|
|
+ AND f1.hospitalId = f3.hospital_id
|
|
|
+ AND f1.behospitalCode = f3.behospital_code
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
<!-- 各科室缺陷占比-全院-首页 -->
|
|
|
<select id="entryByDept" parameterType="com.diagbot.vo.FilterVO"
|
|
|
resultType="com.diagbot.dto.NumDTO">
|
|
@@ -17391,4 +17516,359 @@
|
|
|
f1.doctorId = f2.doctorId
|
|
|
AND f1.doctorName = f2.doctorName
|
|
|
</select>
|
|
|
+
|
|
|
+ <!-- 入院,手术,出院病案情况-->
|
|
|
+ <select id="medicalRecordIndicator" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN q.type=5 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'operationNote',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN q.type = 4 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'residentAdmitNote',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN q.type = 6 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'dischargeRecord',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN q.type = 7 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'medicalRecord'
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.cases_entry_id,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ c.cases_entry_id,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info c
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ AND a.is_placefile = #{filterVO.isPlacefile}
|
|
|
+ <if test="filterVO.startDate != null and filterVO.endDate != null">
|
|
|
+ <![CDATA[ and a.leave_hospital_date >= #{filterVO.startDate}]]>
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
|
|
|
+ </if>
|
|
|
+ <![CDATA[ and a.qc_type_id <>'0' ]]>
|
|
|
+ AND a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = #{filterVO.hospitalId}
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ ) a
|
|
|
+ LEFT JOIN med_qcresult_detail c ON c.is_deleted = 'N'
|
|
|
+ AND a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ ) a
|
|
|
+ JOIN qc_cases_entry d ON d.id = a.cases_entry_id
|
|
|
+ AND d.is_deleted = 'N'
|
|
|
+ ) a
|
|
|
+ LEFT JOIN qc_cases_relevance_entry q ON a.cases_entry_id = q.relevance_id
|
|
|
+ AND a.hospital_id = q.hospital_id
|
|
|
+
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 时间段出院,住院, 手术费,抗菌药物,手术和病理费等含有人数 -->
|
|
|
+ <select id="selectOperationNum" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
|
|
|
+ select
|
|
|
+ d.behospital_code behospitalCode,
|
|
|
+ b.operation_fee operationFee,
|
|
|
+ b.pathology_fee pathologyFee,
|
|
|
+ b.antibiosis_fee antibiosisFee
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id,
|
|
|
+ a.behospital_date,
|
|
|
+ a.leave_hospital_date
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info c
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ AND a.is_placefile = #{filterVO.isPlacefile}
|
|
|
+ <if test="filterVO.startDate != null and filterVO.endDate != null">
|
|
|
+ <![CDATA[ and a.leave_hospital_date >= #{filterVO.startDate}]]>
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
|
|
|
+ </if>
|
|
|
+ <![CDATA[ and a.qc_type_id <>'0' ]]>
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ AND a.hospital_id = #{filterVO.hospitalId}
|
|
|
+ and a.behospital_code = c.behospital_code
|
|
|
+ ) d
|
|
|
+ JOIN med_home_page b ON b.behospital_code = d.behospital_code
|
|
|
+ AND d.hospital_id = b.hospital_id
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ </select>
|
|
|
+<!-- 关于触发规则不符合人数-->
|
|
|
+ <select id="triggeringRules" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type=5 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'operationNote',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 4 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'residentAdmitNote',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 6 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'dischargeRecord',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 7 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'medicalRecord',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type=8 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'CT',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 9 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'MR',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 10 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'operationPathologyFee',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 15 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'operationRecordNum',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 17 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'bloodNum',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 18 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'WardRoundNum',
|
|
|
+ count(
|
|
|
+ DISTINCT
|
|
|
+ CASE
|
|
|
+ WHEN a.type = 19 THEN
|
|
|
+ a.behospital_code
|
|
|
+ ELSE
|
|
|
+ NULL
|
|
|
+ END
|
|
|
+ ) AS 'rescueNum'
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id,
|
|
|
+ q.type
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.cases_entry_id,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ c.cases_entry_id,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info c
|
|
|
+ WHERE
|
|
|
+ a.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ AND a.is_placefile = #{filterVO.isPlacefile}
|
|
|
+ <if test="filterVO.startDate != null and filterVO.endDate != null">
|
|
|
+ <![CDATA[ and a.leave_hospital_date >= #{filterVO.startDate}]]>
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
|
|
|
+ </if>
|
|
|
+ AND a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = #{filterVO.hospitalId}
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ ) a
|
|
|
+ LEFT JOIN med_qcresult_detail c ON c.is_deleted = 'N'
|
|
|
+ AND a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ ) a
|
|
|
+ JOIN qc_cases_entry d ON d.id = a.cases_entry_id
|
|
|
+ AND d.is_deleted = 'N'
|
|
|
+ ) a
|
|
|
+ JOIN qc_cases_relevance_entry q ON a.cases_entry_id = q.relevance_id
|
|
|
+ AND a.hospital_id = q.hospital_id
|
|
|
+ ) a
|
|
|
+ JOIN med_index_relevance r ON r.behospital_code = a.behospital_code
|
|
|
+ AND r.relevance_type = a.type
|
|
|
+ AND r.is_deleted = 'N'
|
|
|
+ AND a.hospital_id = r.hospital_id
|
|
|
+ </select>
|
|
|
+
|
|
|
+<!-- 跟病案首页关联的出院病历-->
|
|
|
+ <select id="getMedicalRecords" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ d.behospital_code,
|
|
|
+ d.behospital_date,
|
|
|
+ d.leave_hospital_date,
|
|
|
+ b.behospital_code AS b_code,
|
|
|
+ b.operation_fee,
|
|
|
+ b.antibiosis_fee,
|
|
|
+ b.pathology_fee
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id,
|
|
|
+ a.behospital_date,
|
|
|
+ a.leave_hospital_date
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info c
|
|
|
+ WHERE
|
|
|
+ a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = #{filterVO.hospitalId}
|
|
|
+ AND a.is_placefile = #{filterVO.isPlacefile}
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ AND a.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ <![CDATA[ and a.qc_type_id <>'0' ]]>
|
|
|
+ <if test="filterVO.startDate != null and filterVO.endDate != null ">
|
|
|
+ <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
|
|
|
+ </if>
|
|
|
+ ) d
|
|
|
+ LEFT JOIN med_home_page b ON b.behospital_code = d.behospital_code
|
|
|
+ AND d.hospital_id = b.hospital_id
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ where ISNULL(b.behospital_code)
|
|
|
+ </select>
|
|
|
+
|
|
|
+<!-- 首页恶性肿瘤-->
|
|
|
+ <select id="malignancy" parameterType="com.diagbot.vo.FilterVO" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ d.behospital_code
|
|
|
+ FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ a.behospital_code,
|
|
|
+ a.hospital_id,
|
|
|
+ a.behospital_date,
|
|
|
+ a.leave_hospital_date
|
|
|
+ FROM
|
|
|
+ med_behospital_info a,
|
|
|
+ med_qcresult_info c
|
|
|
+ WHERE
|
|
|
+ a.behospital_code = c.behospital_code
|
|
|
+ AND a.hospital_id = #{filterVO.hospitalId}
|
|
|
+ AND a.is_placefile = #{filterVO.isPlacefile}
|
|
|
+ AND a.hospital_id = c.hospital_id
|
|
|
+ AND a.is_deleted = 'N'
|
|
|
+ AND c.is_deleted = 'N'
|
|
|
+ <![CDATA[ and a.qc_type_id <>'0' ]]>
|
|
|
+ <if test="filterVO.startDate != null and filterVO.endDate != null ">
|
|
|
+ <![CDATA[ AND a.leave_hospital_date >= #{filterVO.startDate}]]>
|
|
|
+ <![CDATA[ AND a.leave_hospital_date <= #{filterVO.endDate}]]>
|
|
|
+ </if>
|
|
|
+ ) d
|
|
|
+ JOIN med_home_page b ON b.behospital_code = d.behospital_code
|
|
|
+ AND d.hospital_id = b.hospital_id
|
|
|
+ AND b.is_deleted = 'N'
|
|
|
+ AND (
|
|
|
+ (
|
|
|
+ b.outpatient_emr_diagnose LIKE '%恶性肿瘤%'
|
|
|
+ AND b.outpatient_emr_diagnose_code LIKE 'C%'
|
|
|
+ )
|
|
|
+ OR (
|
|
|
+ b.outpatient_emr_diagnose LIKE 'C%'
|
|
|
+ AND b.outpatient_emr_diagnose_code LIKE '%恶性肿瘤%'
|
|
|
+ )
|
|
|
+ )
|
|
|
+ </select>
|
|
|
</mapper>
|