Bladeren bron

湘雅全院病案首页合格率医师占比

chengyao 3 jaren geleden
bovenliggende
commit
c827f22702

+ 2 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -96,6 +96,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/getLevelResultDept").permitAll()
                 .antMatchers("/console/homePageLevelLimit").permitAll()
                 .antMatchers("/console/homePageLevelStatistics").permitAll()
+                .antMatchers("/console/homePageLevelStatisticsXY").permitAll()
+                .antMatchers("/console/export/homePageLevelXYExport").permitAll()
                 .antMatchers("/console/leaveHosCount").permitAll()
                 .antMatchers("/console/medicalRecordIndicator").permitAll()
                 .antMatchers("/console/codingMonthly").permitAll()

+ 2 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -140,6 +140,8 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/getLevelResultDept", request)
                 || matchers("/console/homePageLevelLimit", request)
                 || matchers("/console/homePageLevelStatistics", request)
+                || matchers("/console/homePageLevelStatisticsXY", request)
+                || matchers("/console/export/homePageLevelXYExport", request)
                 || matchers("/console/leaveHosCount", request)
                 || matchers("/console/levelPercentGroupByDeptPage", request)
                 || matchers("/console/levelStatistics", request)

+ 5 - 0
src/main/java/com/diagbot/dto/HomePageNumDTO.java

@@ -29,6 +29,11 @@ public class HomePageNumDTO {
      * 主管医生名称
      */
     private String doctorName;
+
+    /**
+     * 主管医生职称
+     */
+    private String professor;
     /**
      * 缺陷条目数
      */

+ 138 - 0
src/main/java/com/diagbot/dto/HomePageNumXYDTO.java

@@ -0,0 +1,138 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:病案首页合格率占比返回结构
+ * @Author:zhaops
+ * @time: 2020/6/5 17:32
+ */
+@Getter
+@Setter
+public class HomePageNumXYDTO {
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    @Excel(name = "科室", width = 30, orderNum = "1")
+    private String deptName;
+
+
+    /**
+     * 主管医生职称
+     */
+    @Excel(name = "医师类别", width = 20, orderNum = "2")
+    private String professor;
+
+    /**
+     * 主管医生id
+     */
+    private String doctorId;
+    /**
+     * 主管医生名称
+     */
+    @Excel(name = "医师姓名", width = 20, orderNum = "3")
+    private String doctorName;
+    /**
+     * 缺陷条目数
+     */
+    @Excel(name = "缺陷总数", orderNum = "4")
+    private Integer entryNum = 0;
+    /**
+     * 病案首页不合格病历数
+     */
+    @Excel(name = "不合格数", orderNum = "5")
+    private Integer secondLevelNum = 0;
+
+    /**
+     * 质控评分(总分)
+     */
+    private Double totleValue = 0d;
+
+    /**
+     * 病案首页合格病历数
+     */
+    @Excel(name = "合格数", orderNum = "6")
+    private Integer firstLevelNum = 0;
+    /**
+     * 病案首页合格病历占比
+     */
+    private Double firstLevelPercent = 0.00d;
+    /**
+     * 病案首页不合格病历占比
+     */
+    private Double secondLevelPercent = 0.00d;
+    /**
+     * 病案首页合格病历占比(百分比)
+     */
+    @Excel(name = "合格率", orderNum = "7")
+    private String firstLevelPercentStr = "0.00%";
+    /**
+     * 病案首页不合格病历占比(百分比)
+     */
+    private String secondLevelPercentStr = "0.00%";
+    /**
+     * 上级科室id(上级科室编码)
+     */
+    private String deptClassId;
+    /**
+     * 上级科室名称
+     */
+    private String deptClass;
+    /**
+     * 空项数
+     */
+    @Excel(name = "空项数", orderNum = "8")
+    private Integer emptyNum = 0;
+
+    /**
+     * 完整率
+     */
+
+    private Double emptyPercent = 0.00d;
+
+    /**
+     * 完整率(百分比)
+     */
+    @Excel(name = "完整率", orderNum = "9")
+    private String emptyPercentStr = "0.00%";
+
+    /**
+     * 错误数
+     */
+    @Excel(name = "错误数", orderNum = "10")
+    private Integer errorNum = 0;
+
+    /**
+     * 完整率、完善率分母(质控病历数*病案首页条目数)
+     */
+    private Integer entryTotleNum = 0;
+
+    /**
+     * 完善率
+     */
+    private Double errorPercent = 0.00d;
+
+    /**
+     * 完善率(百分比)
+     */
+    @Excel(name = "完善率", orderNum = "11")
+    private String errorPercentStr = "0.00%";
+
+    /**
+     * 质控评分(平均分)
+     */
+    @Excel(name = "质控平均分", orderNum = "12")
+    private Double averageValue = 0d;
+
+    /**
+     * 质控病历数
+     */
+    @Excel(name = "质控病历数", orderNum = "13")
+    private Integer mrNum = 0;
+}

+ 15 - 0
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -50,6 +50,21 @@ public class ConsoleExportFacade {
         ExcelUtils.exportExcel(res, null, "sheet1", HomePageNumDTO.class, fileName, response, 12.8f);
     }
 
+    /**
+     * 病案首页合格率占比-湘雅
+     *
+     * @param filterOrderPageVO
+     * @return
+     */
+    public void homePageLevelXYExport(HttpServletResponse response, FilterOrderPageVO filterOrderPageVO) {
+        filterOrderPageVO.setCurrent(1L);
+        filterOrderPageVO.setSize(Long.MAX_VALUE);
+        filterOrderPageVO.setSearchCount(false);
+        IPage<HomePageNumXYDTO> res = consoleFacade.homePageLevelStatisticsXY(filterOrderPageVO);
+        String fileName = "病案首页合格率占比.xls";
+        ExcelUtils.exportExcel(res.getRecords(), null, "sheet1", HomePageNumXYDTO.class, fileName, response, 12.8f);
+    }
+
     /**
      * 条目缺陷占比(内页)
      *

+ 15 - 0
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -2161,6 +2161,21 @@ public class ConsoleFacade {
         return records;
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderPageVO filterOrderVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        filterOrderVO.setHospitalId(hospitalId);
+        filterOrderVO.setUserId(Long.valueOf(userId));
+        IPage<HomePageNumXYDTO> records = behospitalInfoFacade.homePageLevelStatisticsXY(filterOrderVO);
+        return records;
+    }
+
     /**
      * 病历质控报表
      *

+ 9 - 0
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -12,6 +12,7 @@ import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterMedicalCheckVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
+import com.diagbot.vo.FilterOrderPageVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
@@ -164,6 +165,14 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderPageVO  filterOrderVO);
+
     /**
      * 病历质控报表--扣分项
      *

+ 9 - 0
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -184,6 +184,14 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderPageVO filterOrderVO);
+
 
 
     /**
@@ -261,6 +269,7 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<HomePageByDeptDTO> homePageLevelStatisticsByDept(FilterOrderByDeptVO filterOrderByDeptVO);
 
+
     /**
      * 缺陷明细-科室(分页)
      *

+ 11 - 0
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -217,6 +217,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.homePageLevelStatistics(filterOrderVO);
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    @Override
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderPageVO filterOrderVO) {
+        return baseMapper.homePageLevelStatisticsXY(filterOrderVO);
+    }
+
     /**
      * 病历质控报表-扣分项
      *

+ 57 - 0
src/main/java/com/diagbot/vo/FilterOrderPageVO.java

@@ -0,0 +1,57 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/5/19 13:39
+ */
+@Getter
+@Setter
+public class FilterOrderPageVO extends Page {
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 医生id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 医生名称
+     */
+    private String doctorName;
+    private String isPlacefile;
+    /**
+     * 医生Id
+     */
+    private String doctorId;
+
+    /**
+     * 医生职称
+     */
+    private String professor;
+    /**
+     * 起始时间
+     */
+    @NotBlank(message = "请输入起始时间")
+    private String startDate;
+    /**
+     * 结束时间
+     */
+    @NotBlank(message = "请输入结束时间")
+    private String endDate;
+}

+ 19 - 0
src/main/java/com/diagbot/web/ConsoleController.java

@@ -474,6 +474,25 @@ public class ConsoleController {
         return RespDTO.onSuc(consoleFacade.homePageLevelStatistics(filterOrderVO));
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "deptName: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelStatisticsXY")
+    @SysLogger("homePageLevelStatisticsXY")
+    public RespDTO<IPage<HomePageNumXYDTO>> homePageLevelStatisticsXY(@RequestBody @Valid FilterOrderPageVO filterOrderPageVO) {
+        return RespDTO.onSuc(consoleFacade.homePageLevelStatisticsXY(filterOrderPageVO));
+    }
+
     /**
      * 病历质控报表
      *

+ 19 - 0
src/main/java/com/diagbot/web/ConsoleExportController.java

@@ -50,6 +50,25 @@ public class ConsoleExportController {
         consoleExportFacade.homePageLevelExport(response, filterOrderVO);
     }
 
+    /**
+     * 病案首页合格率占比导出-湘雅
+     *
+     * @param filterOrderPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelXYExport")
+    @SysLogger("homePageLevelXYExport")
+    public void homePageLevelXYExport(HttpServletResponse response, @RequestBody @Valid FilterOrderPageVO filterOrderPageVO) {
+        consoleExportFacade.homePageLevelXYExport(response, filterOrderPageVO);
+    }
+
 
     /**
      * 条目缺陷占比(内页)

+ 247 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -3375,6 +3375,253 @@
         </if>
     </select>
 
+    <!-- 医师病案首页合格率占比 湘雅定制-->
+    <select id="homePageLevelStatisticsXY" resultType="com.diagbot.dto.HomePageNumXYDTO">
+
+        SELECT
+           t4.*,
+        ifnull(bas.professo,'')as professor
+        FROM (
+        SELECT
+        t1.deptId,
+        t1.deptName,
+        t1.doctorId,
+        t1.doctorName,
+        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,
+        a.doctor_id AS doctorId,
+        a.doctor_name AS doctorName,
+        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="deptName != null and deptName != ''">
+            and a.beh_dept_name like CONCAT('%',#{deptName},'%')
+        </if>
+        <if test="doctorName != null and doctorName != ''">
+            and a.doctor_name like CONCAT('%',#{doctorName},'%')
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name,
+        a.doctor_id
+        ) t1,
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        a.doctor_id AS doctorId,
+        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="deptName != null and deptName != ''">
+            and a.beh_dept_name like CONCAT('%',#{deptName},'%')
+        </if>
+        <if test="doctorName != null and doctorName != ''">
+            and a.doctor_name like CONCAT('%',#{doctorName},'%')
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name,
+        a.doctor_id
+        ) t2,(
+        SELECT
+        h1.deptId,
+        h1.deptName,
+        h1.doctorId,
+        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,
+        a.doctor_id as doctorId,
+        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="deptName != null and deptName != ''">
+            and a.beh_dept_name like CONCAT('%',#{deptName},'%')
+        </if>
+        <if test="doctorName != null and doctorName != ''">
+            and a.doctor_name like CONCAT('%',#{doctorName},'%')
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name,
+        a.doctor_id
+        ) 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
+        AND t1.doctorId = t2.doctorId
+        AND t1.doctorId = t3.doctorId)t4
+        left join bas_doctor_info bas
+        on t4.doctorId = bas.doctor_id
+--         and t4.deptId = bas.dept_id
+        and bas.is_deleted = 'N'
+        where 1=1
+        <if test="professor != null and professor != ''">
+            and bas.professor like CONCAT('%',#{professor},'%')
+        </if>
+    </select>
+
+
     <!-- 各科室缺陷占比-科室 -->
     <select id="levelStatisticsByDept" parameterType="com.diagbot.vo.FilterOrderByDeptVO"
             resultType="com.diagbot.dto.LevelStsByDeptDTO">