Commit 37c66a1072c7b927cbe7c0353ff0a91b40e56912

Authored by liquanyu
1 parent 00ba1e4926

筛查统计

Showing 3 changed files with 349 additions and 9 deletions

platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java View file @ 37c66a1
... ... @@ -366,7 +366,7 @@
366 366  
367 367 WritableFont leftFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
368 368 WritableCellFormat leftFormt = new WritableCellFormat(leftFont);
369   - leftFormt.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN);
  369 + leftFormt.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
370 370 leftFormt.setAlignment(Alignment.LEFT);
371 371 leftFormt.setVerticalAlignment(VerticalAlignment.CENTRE);
372 372  
373 373  
... ... @@ -377,10 +377,16 @@
377 377 titleFormt.setAlignment(jxl.format.Alignment.CENTRE);
378 378 titleFormt.setVerticalAlignment(VerticalAlignment.CENTRE);
379 379  
  380 + WritableFont h1Title = new WritableFont(WritableFont.ARIAL, 18, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
  381 + WritableCellFormat h1Formt = new WritableCellFormat(h1Title);
  382 + h1Formt.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN);
  383 + h1Formt.setAlignment(Alignment.LEFT);
  384 + h1Formt.setVerticalAlignment(VerticalAlignment.CENTRE);
  385 +
380 386 Label label = new Label(0, 0, titleName,titleFormt);
381 387 ws.addCell(label);
382 388  
383   - Label label1 = new Label(1, 1, titleName,titleFormt);
  389 + Label label1 = new Label(1, 1, h1,h1Formt);
384 390 ws.addCell(label1);
385 391  
386 392 int arrayIndex = 0;
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/SieveFacade.java View file @ 37c66a1
... ... @@ -1373,6 +1373,7 @@
1373 1373 patientsQuery.setYn(YnEnums.YES.getId());
1374 1374 patientsQuery.setCityRegisterId(cityId);
1375 1375 patientsQuery.setAreaRegisterId(bc.getId());
  1376 + patientsQuery.setType(1);
1376 1377 List<Patients> patientses = patientsService.queryPatient(patientsQuery);
1377 1378 List<String> patientIds = new ArrayList<>();
1378 1379 if (CollectionUtils.isNotEmpty(patientses))
1379 1380  
... ... @@ -1412,10 +1413,7 @@
1412 1413 }
1413 1414 sieveResultQuery.setTszhz("2");
1414 1415 st21Count = sieveService.queryListSieveResultCount(sieveResultQuery);
1415   - System.out.println(patientIds);
1416   - System.out.println(sieveResultQuery.convertToQuery().convertToMongoQuery());
1417 1416  
1418   -
1419 1417 sieveResultQuery = new SieveResultQuery();
1420 1418 if (dates != null) {
1421 1419 sieveResultQuery.setResultTimeStart(DateUtil.parseYMD(dates[0]));
1422 1420  
1423 1421  
1424 1422  
... ... @@ -1599,18 +1597,354 @@
1599 1597 public void exportDiagnosisReportExcl(CqSieveQueryRequest cqSieveQueryRequest, Integer userId, HttpServletResponse response) {
1600 1598 try {
1601 1599  
1602   - String titleName = "山东省产前诊断及新生儿疾病筛查工作情况表";
1603   - String h1 = "填报单位(签章):威海市妇幼保健院 XXX年X季度";
  1600 + String titleName = "产前诊断及新生儿疾病筛查工作情况表";
  1601 + String h1 = "填报单位(签章):威海市妇幼保健院 ";
  1602 + String[] dates = null;
  1603 + if (StringUtils.isNotEmpty(cqSieveQueryRequest.getTime())) {
  1604 + dates = cqSieveQueryRequest.getTime().split(" - ");
  1605 + h1+=" "+cqSieveQueryRequest.getTime();
  1606 + }
1604 1607  
1605   - List<Map<String,String>> list = new ArrayList<>();
  1608 + //获取用户权限医院和筛选条件的交集
  1609 + List<String> currentUserHospPermissions = areaCountFacade.getCurrentUserHospPermissions(userId, cqSieveQueryRequest.getProvinceId(),
  1610 + cqSieveQueryRequest.getCityId(), cqSieveQueryRequest.getAreaId());
  1611 + List<Map<String,String>> list = getDiaDatas(currentUserHospPermissions, dates);
1606 1612 response.setContentType("application/force-download");
1607 1613 response.setHeader("Content-Disposition", "attachment;filename=" + new String(("产前诊断及新生儿疾病筛查工作情况表.xls").getBytes("UTF-8"), "ISO-8859-1"));
1608 1614 String path = this.getClass().getResource("/").getPath()+ "whfy_diagnosis.xls";
1609   - ExcelUtil.writeWhDiagnosisExclFile(path, response.getOutputStream(), list,titleName,h1);
  1615 + ExcelUtil.writeWhDiagnosisExclFile(path, response.getOutputStream(), list, titleName, h1);
1610 1616  
1611 1617 } catch (Exception e) {
1612 1618 ExceptionUtils.catchException(e, "exportDiagnosisReportExcl error");
1613 1619 }
  1620 + }
  1621 +
  1622 + private List<Map<String, String>> getDiaDatas(List<String> hospitalIds, String[] dates) {
  1623 + List<Map<String, String>> list = new ArrayList<>();
  1624 +
  1625 + int sieveCount = 0;
  1626 + int st21Count = 0;
  1627 + int st1813Count = 0;
  1628 + int sjqxCount = 0;
  1629 + int sieveExcCountAll = 0;
  1630 + int disCount = 0;
  1631 + int disExcCount = 0;
  1632 + int disStopCount = 0;
  1633 +
  1634 + //超声 诊断数 总唇裂 多指/趾 先听性心脏病 神经管缺陷 先天性脑积水 肢体短缩 其他 畸形小计
  1635 + int csDiaCount = 0;
  1636 + int csClCount = 0;
  1637 + int csDzCount = 0;
  1638 + int csXzbCount = 0;
  1639 + int csSjgqxCount = 0;
  1640 + int csNjsCount = 0;
  1641 + int csZtdsCount = 0;
  1642 + int csQtCount = 0;
  1643 + int csJxCount = 0;
  1644 + // 羊水 诊断数 异常数
  1645 + int ysDiaCount = 0;
  1646 + int csDiaExcCount = 0;
  1647 +
  1648 + // 绒毛 诊断数 异常数
  1649 + int rmDiaCount = 0;
  1650 + int rmDiaExcCount = 0;
  1651 +
  1652 + // 胎儿血 诊断数 异常数
  1653 + int teDiaCount = 0;
  1654 + int teDiaExcCount = 0;
  1655 +
  1656 + // 其他 诊断数 异常数
  1657 + int qtDiaCount = 0;
  1658 + int qtDiaExcCount = 0;
  1659 +
  1660 + // 合计 诊断数 异常数 终止妊娠数
  1661 + int hjDiaCount = 0;
  1662 + int hjDiaExcCount = 0;
  1663 + int hjStopCount = 0;
  1664 +
  1665 +
  1666 + for (String hid : hospitalIds)
  1667 + {
  1668 + Map<String, String> dataMap = new LinkedHashMap<>();
  1669 +
  1670 + dataMap.put("areaName",organizationService.getOrganization(Integer.parseInt(hid)).getName());
  1671 +
  1672 + //筛查孕妇数
  1673 + SieveQuery sieveQuery1 = new SieveQuery();
  1674 + sieveQuery1.setHospitalId(hid);
  1675 + sieveQuery1.setYn(YnEnums.YES.getId());
  1676 + sieveQuery1.setStatus(3);
  1677 + if (dates != null) {
  1678 + sieveQuery1.setResultTimeStart(DateUtil.parseYMD(dates[0]));
  1679 + if (dates.length == 2) {
  1680 + sieveQuery1.setResultTimeEnd(DateUtil.parseYMDHMS(dates[1]));
  1681 + }
  1682 + }
  1683 + sieveCount = sieveService.queryListCount(sieveQuery1);
  1684 +
  1685 +
  1686 + PatientsQuery patientsQuery = new PatientsQuery();
  1687 + patientsQuery.setHospitalId(hid);
  1688 + patientsQuery.setYn(YnEnums.YES.getId());
  1689 + patientsQuery.setType(1);
  1690 + List<Patients> patientses = patientsService.queryPatient(patientsQuery);
  1691 + List<String> patientIds = new ArrayList<>();
  1692 + if (CollectionUtils.isNotEmpty(patientses))
  1693 + {
  1694 + for (Patients pat : patientses)
  1695 + {
  1696 + patientIds.add(pat.getId());
  1697 + }
  1698 + }
  1699 +
  1700 +
  1701 + SieveResultQuery sieveResultQuery = new SieveResultQuery();
  1702 + sieveResultQuery.setParentIds(patientIds);
  1703 + sieveResultQuery.setYn(YnEnums.YES.getId());
  1704 + if (dates != null) {
  1705 + sieveResultQuery.setResultTimeStart(DateUtil.parseYMD(dates[0]));
  1706 + if (dates.length == 2) {
  1707 + sieveResultQuery.setResultTimeEnd(DateUtil.parseYMD(dates[1]));
  1708 + }
  1709 + }
  1710 + sieveResultQuery.setTszhz("2");
  1711 + st21Count = sieveService.queryListSieveResultCount(sieveResultQuery);
  1712 +
  1713 + sieveResultQuery = new SieveResultQuery();
  1714 + if (dates != null) {
  1715 + sieveResultQuery.setResultTimeStart(DateUtil.parseYMD(dates[0]));
  1716 + if (dates.length == 2) {
  1717 + sieveResultQuery.setResultTimeEnd(DateUtil.parseYMD(dates[1]));
  1718 + }
  1719 + }
  1720 + sieveResultQuery.setParentIds(patientIds);
  1721 + sieveResultQuery.setYn(YnEnums.YES.getId());
  1722 + sieveResultQuery.setSbst("2");
  1723 + int temp1 = sieveService.queryListSieveResultCount(sieveResultQuery);
  1724 +
  1725 + sieveResultQuery = new SieveResultQuery();
  1726 + if (dates != null) {
  1727 + sieveResultQuery.setResultTimeStart(DateUtil.parseYMD(dates[0]));
  1728 + if (dates.length == 2) {
  1729 + sieveResultQuery.setResultTimeEnd(DateUtil.parseYMD(dates[1]));
  1730 + }
  1731 + }
  1732 + sieveResultQuery.setParentIds(patientIds);
  1733 + sieveResultQuery.setYn(YnEnums.YES.getId());
  1734 + sieveResultQuery.setStzhz13("2");
  1735 + int temp2 = sieveService.queryListSieveResultCount(sieveResultQuery);
  1736 + st1813Count = temp1 + temp2;
  1737 +
  1738 +
  1739 + sieveResultQuery = new SieveResultQuery();
  1740 + if (dates != null) {
  1741 + sieveResultQuery.setResultTimeStart(DateUtil.parseYMD(dates[0]));
  1742 + if (dates.length == 2) {
  1743 + sieveResultQuery.setResultTimeEnd(DateUtil.parseYMD(dates[1]));
  1744 + }
  1745 + }
  1746 + sieveResultQuery.setParentIds(patientIds);
  1747 + sieveResultQuery.setYn(YnEnums.YES.getId());
  1748 + sieveResultQuery.setSjgjx("2");
  1749 + sjqxCount = sieveService.queryListSieveResultCount(sieveResultQuery);
  1750 +
  1751 + sieveExcCountAll = st21Count+st1813Count+sjqxCount;
  1752 +
  1753 +
  1754 + //羊水穿刺产前诊断 诊断项目(1,羊水穿刺;2,绒毛穿刺;3,脐带血检测)
  1755 + DiagnosisQuery diagnosisQuery1 = new DiagnosisQuery();
  1756 + diagnosisQuery1.setHospitalIds(hospitalIds);
  1757 + diagnosisQuery1.setDiaProject("1");
  1758 + diagnosisQuery1.setDiaStatus("3");//(0,未申请;1,已申请;2,已接收;3,已诊断)
  1759 + if (dates != null) {
  1760 + diagnosisQuery1.setResultDateStart(DateUtil.parseYMD(dates[0]));
  1761 + if (dates.length == 2) {
  1762 + diagnosisQuery1.setResultDateEnd(DateUtil.parseYMD(dates[1]));
  1763 + }
  1764 + }
  1765 + disCount = diagnosisService.queryDiagnosisCount(diagnosisQuery1);
  1766 +
  1767 + diagnosisQuery1 = new DiagnosisQuery();
  1768 + diagnosisQuery1.setHospitalIds(hospitalIds);
  1769 + diagnosisQuery1.setDiaProject("1");
  1770 + diagnosisQuery1.setDiaResult("1");//诊断结果(0,阴性;1,阳性)
  1771 + diagnosisQuery1.setDiaStatus("3");//(0,未申请;1,已申请;2,已接收;3,已诊断)
  1772 + if (dates != null) {
  1773 + diagnosisQuery1.setResultDateStart(DateUtil.parseYMD(dates[0]));
  1774 + if (dates.length == 2) {
  1775 + diagnosisQuery1.setResultDateEnd(DateUtil.parseYMD(dates[1]));
  1776 + }
  1777 + }
  1778 + disExcCount = diagnosisService.queryDiagnosisCount(diagnosisQuery1);
  1779 +
  1780 + diagnosisQuery1 = new DiagnosisQuery();
  1781 + diagnosisQuery1.setHospitalIds(hospitalIds);
  1782 + diagnosisQuery1.setDiaProject("1");
  1783 + diagnosisQuery1.setRsResult("1"); //0继续妊娠 1 终止妊娠
  1784 + if (dates != null) {
  1785 + diagnosisQuery1.setResultDateStart(DateUtil.parseYMD(dates[0]));
  1786 + if (dates.length == 2) {
  1787 + diagnosisQuery1.setResultDateEnd(DateUtil.parseYMD(dates[1]));
  1788 + }
  1789 + }
  1790 + disStopCount = diagnosisService.queryDiagnosisCount(diagnosisQuery1);
  1791 +
  1792 +
  1793 +
  1794 + dataMap.put("sieveCount",String.valueOf(sieveCount));
  1795 + dataMap.put("st21Count",String.valueOf(st21Count));
  1796 + dataMap.put("st1813Count",String.valueOf(st1813Count));
  1797 + dataMap.put("sjqxCount",String.valueOf(sjqxCount));
  1798 + dataMap.put("sieveExcCountAll",String.valueOf(sieveExcCountAll));
  1799 + dataMap.put("disCount",String.valueOf(disCount));
  1800 + dataMap.put("disExcCount",String.valueOf(disExcCount));
  1801 + dataMap.put("disStopCount",String.valueOf(disStopCount));
  1802 +
  1803 + dataMap.put("csDiaCount",String.valueOf(csDiaCount));
  1804 + dataMap.put("csClCount",String.valueOf(csClCount));
  1805 + dataMap.put("csDzCount",String.valueOf(csDzCount));
  1806 + dataMap.put("csXzbCount",String.valueOf(csXzbCount));
  1807 + dataMap.put("csSjgqxCount",String.valueOf(csSjgqxCount));
  1808 + dataMap.put("csNjsCount",String.valueOf(csNjsCount));
  1809 + dataMap.put("csZtdsCount",String.valueOf(csZtdsCount));
  1810 + dataMap.put("csQtCount",String.valueOf(csQtCount));
  1811 + dataMap.put("csJxCount",String.valueOf(csJxCount));
  1812 + dataMap.put("ysDiaCount",String.valueOf(ysDiaCount));
  1813 + dataMap.put("csDiaExcCount",String.valueOf(csDiaExcCount));
  1814 +
  1815 + dataMap.put("rmDiaCount",String.valueOf(rmDiaCount));
  1816 + dataMap.put("rmDiaExcCount",String.valueOf(rmDiaExcCount));
  1817 +
  1818 + dataMap.put("teDiaCount",String.valueOf(teDiaCount));
  1819 + dataMap.put("teDiaExcCount",String.valueOf(teDiaExcCount));
  1820 +
  1821 + dataMap.put("qtDiaCount",String.valueOf(qtDiaCount));
  1822 + dataMap.put("qtDiaExcCount",String.valueOf(qtDiaExcCount));
  1823 +
  1824 + dataMap.put("hjDiaCount",String.valueOf(hjDiaCount));
  1825 + dataMap.put("hjDiaExcCount",String.valueOf(hjDiaExcCount));
  1826 + dataMap.put("hjStopCount",String.valueOf(hjStopCount));
  1827 +
  1828 + }
  1829 + sumDia(list);
  1830 + return list;
  1831 + }
  1832 +
  1833 +
  1834 + private void sumDia(List<Map<String, String>> list) {
  1835 +
  1836 + int sieveCount = 0;
  1837 + int st21Count = 0;
  1838 + int st1813Count = 0;
  1839 + int sjqxCount = 0;
  1840 + int sieveExcCountAll = 0;
  1841 + int disCount = 0;
  1842 + int disExcCount = 0;
  1843 + int disStopCount = 0;
  1844 +
  1845 + //超声 诊断数 总唇裂 多指/趾 先听性心脏病 神经管缺陷 先天性脑积水 肢体短缩 其他 畸形小计
  1846 + int csDiaCount = 0;
  1847 + int csClCount = 0;
  1848 + int csDzCount = 0;
  1849 + int csXzbCount = 0;
  1850 + int csSjgqxCount = 0;
  1851 + int csNjsCount = 0;
  1852 + int csZtdsCount = 0;
  1853 + int csQtCount = 0;
  1854 + int csJxCount = 0;
  1855 + // 羊水 诊断数 异常数
  1856 + int ysDiaCount = 0;
  1857 + int csDiaExcCount = 0;
  1858 + // 绒毛 诊断数 异常数
  1859 + int rmDiaCount = 0;
  1860 + int rmDiaExcCount = 0;
  1861 + // 胎儿血 诊断数 异常数
  1862 + int teDiaCount = 0;
  1863 + int teDiaExcCount = 0;
  1864 + // 其他 诊断数 异常数
  1865 + int qtDiaCount = 0;
  1866 + int qtDiaExcCount = 0;
  1867 + // 合计 诊断数 异常数 终止妊娠数
  1868 + int hjDiaCount = 0;
  1869 + int hjDiaExcCount = 0;
  1870 + int hjStopCount = 0;
  1871 +
  1872 +
  1873 + if (CollectionUtils.isNotEmpty(list))
  1874 + {
  1875 + for (Map<String,String> map : list)
  1876 + {
  1877 + sieveCount += Integer.parseInt(map.get("sieveCount"));
  1878 + st21Count += Integer.parseInt(map.get("st21Count"));
  1879 + st1813Count += Integer.parseInt(map.get("st1813Count"));
  1880 + sjqxCount += Integer.parseInt(map.get("sjqxCount"));
  1881 + sieveExcCountAll += Integer.parseInt(map.get("sieveExcCountAll"));
  1882 + disCount += Integer.parseInt(map.get("disCount"));
  1883 + disExcCount += Integer.parseInt(map.get("disExcCount"));
  1884 + disStopCount += Integer.parseInt(map.get("disStopCount"));
  1885 +
  1886 + csDiaCount += Integer.parseInt(map.get("csDiaCount"));
  1887 + csClCount += Integer.parseInt(map.get("csClCount"));
  1888 + csDzCount += Integer.parseInt(map.get("csDzCount"));
  1889 + csXzbCount += Integer.parseInt(map.get("csXzbCount"));
  1890 + csSjgqxCount += Integer.parseInt(map.get("csSjgqxCount"));
  1891 +
  1892 + csNjsCount += Integer.parseInt(map.get("csNjsCount"));
  1893 + csZtdsCount += Integer.parseInt(map.get("csZtdsCount"));
  1894 + csQtCount += Integer.parseInt(map.get("csQtCount"));
  1895 + csJxCount += Integer.parseInt(map.get("csJxCount"));
  1896 + ysDiaCount += Integer.parseInt(map.get("ysDiaCount"));
  1897 + csDiaExcCount += Integer.parseInt(map.get("csDiaExcCount"));
  1898 + rmDiaCount += Integer.parseInt(map.get("rmDiaCount"));
  1899 + rmDiaExcCount += Integer.parseInt(map.get("rmDiaExcCount"));
  1900 + teDiaCount += Integer.parseInt(map.get("teDiaCount"));
  1901 + teDiaExcCount += Integer.parseInt(map.get("teDiaExcCount"));
  1902 + qtDiaCount += Integer.parseInt(map.get("qtDiaCount"));
  1903 +
  1904 + qtDiaExcCount += Integer.parseInt(map.get("qtDiaExcCount"));
  1905 + hjDiaCount += Integer.parseInt(map.get("hjDiaCount"));
  1906 + hjDiaExcCount += Integer.parseInt(map.get("hjDiaExcCount"));
  1907 + hjStopCount += Integer.parseInt(map.get("hjStopCount"));
  1908 + }
  1909 + }
  1910 + Map<String,String> dataMap = new LinkedHashMap<>();
  1911 + dataMap.put("areaName","合计");
  1912 + dataMap.put("sieveCount",String.valueOf(sieveCount));
  1913 + dataMap.put("sieveCount",String.valueOf(sieveCount));
  1914 + dataMap.put("st21Count",String.valueOf(st21Count));
  1915 + dataMap.put("st1813Count",String.valueOf(st1813Count));
  1916 + dataMap.put("sjqxCount",String.valueOf(sjqxCount));
  1917 + dataMap.put("sieveExcCountAll",String.valueOf(sieveExcCountAll));
  1918 + dataMap.put("disCount",String.valueOf(disCount));
  1919 + dataMap.put("disExcCount",String.valueOf(disExcCount));
  1920 + dataMap.put("disStopCount",String.valueOf(disStopCount));
  1921 +
  1922 + dataMap.put("csDiaCount",String.valueOf(csDiaCount));
  1923 + dataMap.put("csClCount",String.valueOf(csClCount));
  1924 + dataMap.put("csDzCount",String.valueOf(csDzCount));
  1925 + dataMap.put("csXzbCount",String.valueOf(csXzbCount));
  1926 + dataMap.put("csSjgqxCount",String.valueOf(csSjgqxCount));
  1927 + dataMap.put("csNjsCount",String.valueOf(csNjsCount));
  1928 + dataMap.put("csZtdsCount",String.valueOf(csZtdsCount));
  1929 + dataMap.put("csQtCount",String.valueOf(csQtCount));
  1930 + dataMap.put("csJxCount",String.valueOf(csJxCount));
  1931 + dataMap.put("ysDiaCount",String.valueOf(ysDiaCount));
  1932 + dataMap.put("csDiaExcCount",String.valueOf(csDiaExcCount));
  1933 +
  1934 + dataMap.put("rmDiaCount",String.valueOf(rmDiaCount));
  1935 + dataMap.put("rmDiaExcCount",String.valueOf(rmDiaExcCount));
  1936 +
  1937 + dataMap.put("teDiaCount",String.valueOf(teDiaCount));
  1938 + dataMap.put("teDiaExcCount",String.valueOf(teDiaExcCount));
  1939 +
  1940 + dataMap.put("qtDiaCount",String.valueOf(qtDiaCount));
  1941 + dataMap.put("qtDiaExcCount",String.valueOf(qtDiaExcCount));
  1942 +
  1943 + dataMap.put("hjDiaCount",String.valueOf(hjDiaCount));
  1944 + dataMap.put("hjDiaExcCount",String.valueOf(hjDiaExcCount));
  1945 + dataMap.put("hjStopCount",String.valueOf(hjStopCount));
  1946 +
  1947 + list.add(dataMap);
1614 1948 }
1615 1949 }
platform-operate-api/src/main/resources/whfy_diagnosis.xls View file @ 37c66a1

No preview for this file type