ResourceCenterEndPoint.java 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087
  1. package com.yihu.ehr.resource.controller;
  2. import com.yihu.ehr.constants.ApiVersion;
  3. import com.yihu.ehr.constants.ServiceApi;
  4. import com.yihu.ehr.controller.EnvelopRestEndPoint;
  5. import com.yihu.ehr.model.tj.EchartReportModel;
  6. import com.yihu.ehr.model.tj.MapDataModel;
  7. import com.yihu.ehr.resource.service.RedisService;
  8. import com.yihu.ehr.resource.service.ResourceCenterService;
  9. import com.yihu.ehr.solr.SolrUtil;
  10. import com.yihu.ehr.util.rest.Envelop;
  11. import io.swagger.annotations.Api;
  12. import io.swagger.annotations.ApiOperation;
  13. import org.apache.commons.collections.map.HashedMap;
  14. import org.apache.commons.lang.StringUtils;
  15. import org.apache.commons.lang.time.DateUtils;
  16. import org.apache.solr.client.solrj.response.FacetField;
  17. import org.apache.solr.client.solrj.response.RangeFacet;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.web.bind.annotation.RequestMapping;
  20. import org.springframework.web.bind.annotation.RequestMethod;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import java.math.BigInteger;
  23. import java.text.DateFormat;
  24. import java.text.DecimalFormat;
  25. import java.text.SimpleDateFormat;
  26. import java.util.*;
  27. /**
  28. * EndPoint - 数据资源中心
  29. * Created by Progr1mmer on 2018/01/05.
  30. */
  31. @RestController
  32. @RequestMapping(ApiVersion.Version1_0)
  33. @Api(value = "ResourceCenterStatisticsEndPoint", description = "数据资源中心首页", tags = {"资源服务-数据资源中心首页"})
  34. public class ResourceCenterEndPoint extends EnvelopRestEndPoint {
  35. @Autowired
  36. private ResourceCenterService resourceCenterService;
  37. @Autowired
  38. private SolrUtil solrUtil;
  39. @Autowired
  40. private RedisService redisService;
  41. // ------------------------------- 统计相关 start ------------------------------------
  42. @RequestMapping(value = ServiceApi.Resources.GetPatientArchiveCount, method = RequestMethod.GET)
  43. @ApiOperation(value = "顶部栏 - 居民建档数")
  44. public Envelop getPatientArchiveCount() throws Exception{
  45. BigInteger totalDemographicsNum = resourceCenterService.getDemographicCount();
  46. return success(totalDemographicsNum);
  47. }
  48. @RequestMapping(value = ServiceApi.Resources.GetMedicalResourcesCount, method = RequestMethod.GET)
  49. @ApiOperation(value = "顶部栏 - 医疗资源建档数")
  50. public Envelop getMedicalResourcesCount() {
  51. BigInteger count = resourceCenterService.getMedicalResourcesCount();
  52. return success(count);
  53. }
  54. @RequestMapping(value = ServiceApi.Resources.GetHealthArchiveCount, method = RequestMethod.GET)
  55. @ApiOperation(value = "顶部栏 - 健康档案建档数")
  56. public Envelop getHealthArchiveCount() throws Exception {
  57. long count = solrUtil.count("HealthProfile", "*:*");
  58. return success(count);
  59. }
  60. @RequestMapping(value = ServiceApi.Resources.GetElectronicCasesCount, method = RequestMethod.GET)
  61. @ApiOperation(value = "顶部栏 - 电子病例建档数")
  62. public Envelop getElectronicCasesCount() throws Exception{
  63. long count = solrUtil.count("HealthProfile", "*:*");
  64. return success(count);
  65. }
  66. @RequestMapping(value = ServiceApi.Resources.GetHealthCardBindingAmount, method = RequestMethod.GET)
  67. @ApiOperation(value = "全员人口个案库 - 健康卡绑定量")
  68. public Envelop getHealthCardBindingAmount() {
  69. //获取居民总数
  70. Map<String, Object> map = new HashedMap();
  71. map.put("search", null);
  72. map.put("province", null);
  73. map.put("city", null);
  74. map.put("district", null);
  75. map.put("gender", null);
  76. map.put("startDate", null);
  77. map.put("endDate", null);
  78. BigInteger totalDemographicsNum = resourceCenterService.getDemographicCount();
  79. //获取绑卡量 userCardsNum
  80. BigInteger userCardsNum = resourceCenterService.getUseCardCount();
  81. //计算未绑卡量 nonBindingCardNum、
  82. DecimalFormat df = new DecimalFormat("0.00");//格式化小数
  83. BigInteger nonBindingCardNum = totalDemographicsNum.subtract(userCardsNum);
  84. EchartReportModel echartReportModel = new EchartReportModel();
  85. List<MapDataModel> mapData = new ArrayList<>();
  86. MapDataModel mapDataModel = null;
  87. mapDataModel = new MapDataModel();
  88. mapDataModel.setName("已绑定");
  89. mapDataModel.setValue(String.valueOf(userCardsNum));
  90. mapData.add(mapDataModel);
  91. mapDataModel = new MapDataModel();
  92. mapDataModel.setName("未绑定");
  93. mapDataModel.setValue(String.valueOf(nonBindingCardNum));
  94. mapData.add(mapDataModel);
  95. echartReportModel.setDataModels(mapData);
  96. List<EchartReportModel> quotaCategories = new ArrayList<>();
  97. quotaCategories.add(echartReportModel);
  98. Map<String, String> ma = new HashMap<>();
  99. ma.put("totalDemographicsNum", String.valueOf(totalDemographicsNum));
  100. return success(ma, quotaCategories);
  101. }
  102. @RequestMapping(value = ServiceApi.Resources.GetInfoDistribution, method = RequestMethod.GET)
  103. @ApiOperation(value = "全员人口个案库 - 信息分布")
  104. public Envelop getInfoDistribution() throws Exception {
  105. List<Map> resultList = new ArrayList(1);
  106. int currentCityId = resourceCenterService.getCurrentCityId();
  107. List districtList = resourceCenterService.getDistrict(currentCityId);
  108. List areaIdGroupList = resourceCenterService.getOrgAreaIdGroup(currentCityId);
  109. Map<Integer, Double> distinctMap = new HashMap();
  110. for (int i = 0; i < areaIdGroupList.size(); i ++) {
  111. Object [] dataArr = (Object[]) areaIdGroupList.get(i);
  112. Integer areaId = (Integer) dataArr[0];
  113. double count = (double) dataArr[1];
  114. if (areaId != null) {
  115. if (distinctMap.containsKey(areaId)) {
  116. distinctMap.put(areaId, count + distinctMap.get(areaId));
  117. } else {
  118. distinctMap.put(areaId, count);
  119. }
  120. }
  121. }
  122. List<String> xData = new ArrayList<>(districtList.size());
  123. List<Double> yData = new ArrayList<>(districtList.size());
  124. for (int i = 0; i < districtList.size(); i ++) {
  125. Object [] dataArr = (Object[]) districtList.get(i);
  126. Integer areaId = (Integer) dataArr[0];
  127. String name = (String) dataArr[1];
  128. xData.add(name);
  129. if (distinctMap.containsKey(areaId)) {
  130. yData.add(distinctMap.get(areaId));
  131. } else {
  132. yData.add((double)0);
  133. }
  134. }
  135. /*
  136. for(Integer areaId : distinctMap.keySet()) {
  137. String areaName = statisticService.getAreaNameById(areaId);
  138. xData.add(areaName);
  139. yData.add(distinctMap.get(areaId));
  140. }*/
  141. Map<String, Object> resultMap = new HashMap<>(4);
  142. resultMap.put("name", "人口个案信息分布");
  143. resultMap.put("dataModels", null);
  144. resultMap.put("xData", xData);
  145. resultMap.put("yData", yData);
  146. resultList.add(resultMap);
  147. return success(resultList);
  148. }
  149. @RequestMapping(value = ServiceApi.Resources.GetNewSituation, method = RequestMethod.GET)
  150. @ApiOperation(value = "全员人口个案库 - 新增情况")
  151. public Envelop getNewSituation() throws Exception {
  152. List<Map> resultList = new ArrayList(1);
  153. Calendar calendar = Calendar.getInstance();
  154. calendar.set(Calendar.HOUR_OF_DAY, 0);
  155. calendar.set(Calendar.MINUTE, 0);
  156. calendar.set(Calendar.SECOND, 0);
  157. calendar.set(Calendar.MILLISECOND, 0);
  158. Date now = DateUtils.addDays(calendar.getTime(), 1);
  159. Date before = DateUtils.addDays(now, -30);
  160. List<RangeFacet> solrList = solrUtil.getFacetDateRange("HealthProfile", "create_date", DateUtils.addHours(before, 8), DateUtils.addHours(now, 8), "+1DAY", "*:*");
  161. RangeFacet rangeFacet = solrList.get(0);
  162. List<RangeFacet.Count> rangeFacetCounts = rangeFacet.getCounts();
  163. List<String> xData = new ArrayList<>(30);
  164. List<Integer> yData = new ArrayList<>(30);
  165. rangeFacetCounts.forEach(item -> {
  166. xData.add(item.getValue().substring(0, 10));
  167. yData.add(item.getCount());
  168. });
  169. Map<String, Object> resultMap = new HashMap<>(4);
  170. resultMap.put("name", "人口个案新增情况");
  171. resultMap.put("dataModels", null);
  172. resultMap.put("xData", xData);
  173. resultMap.put("yData", yData);
  174. resultList.add(resultMap);
  175. return success(resultList);
  176. }
  177. @RequestMapping(value = ServiceApi.Resources.GetOrgArchives, method = RequestMethod.GET)
  178. @ApiOperation(value = "医疗资源库 - 医疗机构建档分布")
  179. public Envelop getOrgArchives() {
  180. int currentCityId = resourceCenterService.getCurrentCityId();
  181. List districtList = resourceCenterService.getDistrict(currentCityId);
  182. List allGroup = resourceCenterService.getOrgAreaNameGroupByClazz(null, currentCityId);
  183. Map<String, BigInteger> distinctMap = new HashMap();
  184. for (int i = 0; i < allGroup.size(); i ++) {
  185. Object [] dataArr = (Object[]) allGroup.get(i);
  186. String name = (String) dataArr[0];
  187. BigInteger count = (BigInteger) dataArr[1];
  188. if (name != null) {
  189. if (distinctMap.containsKey(name)) {
  190. distinctMap.put(name, count.add(distinctMap.get(name)));
  191. } else {
  192. distinctMap.put(name, count);
  193. }
  194. }
  195. }
  196. List<String> xData = new ArrayList<>(districtList.size());
  197. List<BigInteger> yData = new ArrayList<>(districtList.size());
  198. for (int i = 0; i < districtList.size(); i ++) {
  199. Object [] dataArr = (Object[]) districtList.get(i);
  200. //Integer areaId = (Integer) dataArr[0];
  201. String name = (String) dataArr[1];
  202. xData.add(name);
  203. if (distinctMap.containsKey(name)) {
  204. yData.add(distinctMap.get(name));
  205. } else {
  206. yData.add(new BigInteger("0"));
  207. }
  208. }
  209. /*for(int i = 0; i < allGroup.size(); i ++) {
  210. Object [] dataArr = (Object [])allGroup.get(i);
  211. String name = (String)dataArr[0];
  212. BigInteger count = (BigInteger) dataArr[1];
  213. if(!StringUtils.isEmpty(name)) {
  214. xData.add(name);
  215. yData.add(count);
  216. }
  217. }*/
  218. List group1 = resourceCenterService.getOrgAreaNameGroupByClazz("1", currentCityId);
  219. List<String> xData1 = new ArrayList<>(xData.size());
  220. List<BigInteger> yData1 = new ArrayList<>(xData.size());
  221. for (int i = 0; i < xData.size(); i ++) {
  222. boolean isInit = false;
  223. String xName = xData.get(i);
  224. for (int j = 0; j < group1.size(); j ++) {
  225. Object [] dataArr = (Object [])group1.get(j);
  226. String gName = (String) dataArr[0];
  227. BigInteger gCount = (BigInteger) dataArr[1];
  228. if (!StringUtils.isEmpty(gName)) {
  229. if (gName.equals(xName)) {
  230. xData1.add(gName);
  231. yData1.add(gCount);
  232. isInit = true;
  233. }
  234. }
  235. }
  236. if (!isInit) {
  237. xData1.add(xName);
  238. yData1.add(new BigInteger("0"));
  239. }
  240. }
  241. List group2 = resourceCenterService.getOrgAreaNameGroupByClazz("2", currentCityId);
  242. List<String> xData2 = new ArrayList<>(xData.size());
  243. List<BigInteger> yData2 = new ArrayList<>(xData.size());
  244. for (int i = 0; i < xData.size(); i ++) {
  245. boolean isInit = false;
  246. String xName = xData.get(i);
  247. for (int j = 0; j < group2.size(); j ++) {
  248. Object [] dataArr = (Object [])group2.get(j);
  249. String gName = (String) dataArr[0];
  250. BigInteger gCount = (BigInteger) dataArr[1];
  251. if (!StringUtils.isEmpty(gName)) {
  252. if (gName.equals(xName)) {
  253. xData2.add(gName);
  254. yData2.add(gCount);
  255. isInit = true;
  256. }
  257. }
  258. }
  259. if (!isInit) {
  260. xData2.add(xName);
  261. yData2.add(new BigInteger("0"));
  262. }
  263. }
  264. List group3 = resourceCenterService.getOrgAreaNameGroupByClazz("3", currentCityId);
  265. List<String> xData3 = new ArrayList<>(xData.size());
  266. List<BigInteger> yData3 = new ArrayList<>(xData.size());
  267. for (int i = 0; i < xData.size(); i ++) {
  268. boolean isInit = false;
  269. String xName = xData.get(i);
  270. for (int j = 0; j < group3.size(); j ++) {
  271. Object [] dataArr = (Object [])group3.get(j);
  272. String gName = (String) dataArr[0];
  273. BigInteger gCount = (BigInteger) dataArr[1];
  274. if (!StringUtils.isEmpty(gName)) {
  275. if (gName.equals(xName)) {
  276. xData3.add(gName);
  277. yData3.add(gCount);
  278. isInit = true;
  279. }
  280. }
  281. }
  282. if (!isInit) {
  283. xData3.add(xName);
  284. yData3.add(new BigInteger("0"));
  285. }
  286. }
  287. List group4 = resourceCenterService.getOrgAreaNameGroupByClazz("4", currentCityId);
  288. List<String> xData4 = new ArrayList<>(xData.size());
  289. List<BigInteger> yData4 = new ArrayList<>(xData.size());
  290. for (int i = 0; i < xData.size(); i ++) {
  291. boolean isInit = false;
  292. String xName = xData.get(i);
  293. for (int j = 0; j < group4.size(); j ++) {
  294. Object [] dataArr = (Object [])group4.get(j);
  295. String gName = (String) dataArr[0];
  296. BigInteger gCount = (BigInteger) dataArr[1];
  297. if (!StringUtils.isEmpty(gName)) {
  298. if (gName.equals(xName)) {
  299. xData4.add(gName);
  300. yData4.add(gCount);
  301. isInit = true;
  302. }
  303. }
  304. }
  305. if (!isInit) {
  306. xData4.add(xName);
  307. yData4.add(new BigInteger("0"));
  308. }
  309. }
  310. List<Map> eChartReportModels = new ArrayList<>(5);
  311. Map<String, Object> allMap = new HashMap<>(4);
  312. allMap.put("name", "医疗机构数量");
  313. allMap.put("xData", xData);
  314. allMap.put("yData", yData);
  315. allMap.put("dataModels", null);
  316. eChartReportModels.add(allMap);
  317. Map<String, Object> g1Map = new HashMap<>(4);
  318. g1Map.put("name", "医院数量");
  319. g1Map.put("xData", xData1);
  320. g1Map.put("yData", yData1);
  321. g1Map.put("dataModels", null);
  322. eChartReportModels.add(g1Map);
  323. Map<String, Object> g2Map = new HashMap<>(4);
  324. g2Map.put("name", "基层医疗机构数量");
  325. g2Map.put("xData", xData2);
  326. g2Map.put("yData", yData2);
  327. g2Map.put("dataModels", null);
  328. eChartReportModels.add(g2Map);
  329. Map<String, Object> g3Map = new HashMap<>(4);
  330. g3Map.put("name", "专业公共卫生机构");
  331. g3Map.put("xData", xData3);
  332. g3Map.put("yData", yData3);
  333. g3Map.put("dataModels", null);
  334. eChartReportModels.add(g3Map);
  335. Map<String, Object> g4Map = new HashMap<>(4);
  336. g4Map.put("name", "其他卫生机构");
  337. g4Map.put("xData", xData4);
  338. g4Map.put("yData", yData4);
  339. g4Map.put("dataModels", null);
  340. eChartReportModels.add(g4Map);
  341. return success(eChartReportModels);
  342. }
  343. @RequestMapping(value = ServiceApi.Resources.GetMedicalStaffDistribution, method = RequestMethod.GET)
  344. @ApiOperation(value = "医疗资源库 - 医疗人员分布")
  345. public Envelop getMedicalStaffDistribution() {
  346. int currentCityId = resourceCenterService.getCurrentCityId();
  347. List districtList = resourceCenterService.getDistrict(currentCityId);
  348. List<Map> eChartReportModels = new ArrayList<>(2);
  349. Map<Integer, BigInteger> distinctMap = new HashMap();
  350. //医生信息
  351. List doctorGroup = resourceCenterService.getMedicalAreaCountGroupByRole("Doctor", currentCityId);
  352. for (int i = 0; i < doctorGroup.size(); i ++) {
  353. Object [] dataArr = (Object[]) doctorGroup.get(i);
  354. if (dataArr[0] != null) {
  355. Integer areaId = (Integer) dataArr[0];
  356. BigInteger count = (BigInteger) dataArr[1];
  357. if (areaId != null) {
  358. if (distinctMap.containsKey(areaId)) {
  359. distinctMap.put(areaId, count.add(distinctMap.get(areaId)));
  360. } else {
  361. distinctMap.put(areaId, count);
  362. }
  363. }
  364. }
  365. }
  366. List<String> xData = new ArrayList<>(districtList.size());
  367. List<BigInteger> yData = new ArrayList<>(districtList.size());
  368. for (int i = 0; i < districtList.size(); i ++) {
  369. Object [] dataArr = (Object[]) districtList.get(i);
  370. Integer areaId = (Integer) dataArr[0];
  371. String name = (String) dataArr[1];
  372. xData.add(name);
  373. if (distinctMap.containsKey(areaId)) {
  374. yData.add(distinctMap.get(areaId));
  375. } else {
  376. yData.add(new BigInteger("0"));
  377. }
  378. }
  379. //护士信息
  380. distinctMap.clear();
  381. List nurseGroup = resourceCenterService.getMedicalAreaCountGroupByRole("Nurse", currentCityId);
  382. for (int i = 0; i < nurseGroup.size(); i ++) {
  383. Object [] dataArr = (Object[]) nurseGroup.get(i);
  384. if (dataArr[0] != null) {
  385. Integer areaId = (Integer) dataArr[0];
  386. BigInteger count = (BigInteger) dataArr[1];
  387. if (areaId != null) {
  388. if (distinctMap.containsKey(areaId)) {
  389. distinctMap.put(areaId, count.add(distinctMap.get(areaId)));
  390. } else {
  391. distinctMap.put(areaId, count);
  392. }
  393. }
  394. }
  395. }
  396. List<String> xData1 = new ArrayList<>(districtList.size());
  397. List<BigInteger> yData1 = new ArrayList<>(districtList.size());
  398. for (int i = 0; i < districtList.size(); i ++) {
  399. Object [] dataArr = (Object[]) districtList.get(i);
  400. Integer areaId = (Integer) dataArr[0];
  401. String name = (String) dataArr[1];
  402. xData1.add(name);
  403. if (distinctMap.containsKey(areaId)) {
  404. yData1.add(distinctMap.get(areaId));
  405. } else {
  406. yData1.add(new BigInteger("0"));
  407. }
  408. }
  409. Map<String, Object> doctorMap = new HashMap<>(4);
  410. doctorMap.put("name", "医生");
  411. doctorMap.put("xData", xData);
  412. doctorMap.put("yData", yData);
  413. doctorMap.put("dataModels", null);
  414. eChartReportModels.add(doctorMap);
  415. Map<String, Object> nurseMap = new HashMap<>(4);
  416. nurseMap.put("name", "护士");
  417. nurseMap.put("xData", xData1);
  418. nurseMap.put("yData", yData1);
  419. nurseMap.put("dataModels", null);
  420. eChartReportModels.add(nurseMap);
  421. return success(eChartReportModels);
  422. }
  423. @RequestMapping(value = ServiceApi.Resources.GetMedicalStaffRatio, method = RequestMethod.GET)
  424. @ApiOperation(value = "医疗资源库 - 医护人员比例")
  425. public Envelop getMedicalStaffRatio() {
  426. EchartReportModel echartReportModel = new EchartReportModel();
  427. //根据角色/医院获取Doctor总数
  428. int currentCityId = resourceCenterService.getCurrentCityId();
  429. BigInteger doctorCount = resourceCenterService.getMedicalCountByRoleType("Doctor", currentCityId);
  430. List<MapDataModel> MapDataModelList = new ArrayList<>();
  431. MapDataModel mapDataModel = new MapDataModel();
  432. mapDataModel.setName("医生");
  433. mapDataModel.setValue(String.valueOf(doctorCount));
  434. MapDataModelList.add(mapDataModel);
  435. BigInteger nurseCount = resourceCenterService.getMedicalCountByRoleType("Nurse", currentCityId);
  436. mapDataModel = new MapDataModel();
  437. mapDataModel.setName("护士");
  438. mapDataModel.setValue(String.valueOf(nurseCount));
  439. MapDataModelList.add(mapDataModel);
  440. echartReportModel.setDataModels(MapDataModelList);
  441. return success(echartReportModel);
  442. }
  443. @RequestMapping(value = ServiceApi.Resources.GetCumulativeIntegration, method = RequestMethod.GET)
  444. @ApiOperation(value = "健康档案 - 累计整合档案数")
  445. public Envelop getCumulativeIntegration() throws Exception {
  446. double count = resourceCenterService.getJsonArchiveCount("3");
  447. return success(count);
  448. }
  449. @RequestMapping(value = ServiceApi.Resources.GteTotallyToBeIntegrated, method = RequestMethod.GET)
  450. @ApiOperation(value = "健康档案 - 累计待整合档案数")
  451. public Envelop gteTotallyToBeIntegrated() throws Exception {
  452. double count = resourceCenterService.getJsonArchiveCount("0");
  453. return success(count);
  454. }
  455. @RequestMapping(value = ServiceApi.Resources.GetArchiveSource, method = RequestMethod.GET)
  456. @ApiOperation(value = "健康档案 - 档案来源分布情况")
  457. public Envelop getArchiveSource() throws Exception {
  458. long clinic = solrUtil.count("HealthProfile", "event_type:0");
  459. long resident = solrUtil.count("HealthProfile", "event_type:1");
  460. long medicalExam = solrUtil.count("HealthProfile", "event_type:2");
  461. List<Map> eChartReportModelList = new ArrayList<>(3);
  462. Map<String, Object> clinicMap = new HashMap<>(2);
  463. clinicMap.put("name", "门诊");
  464. clinicMap.put("value", clinic);
  465. eChartReportModelList.add(clinicMap);
  466. Map<String, Object> residentMap = new HashMap<>(2);
  467. residentMap.put("name", "住院");
  468. residentMap.put("value", resident);
  469. eChartReportModelList.add(residentMap);
  470. Map<String, Object> medicalExamMap = new HashMap<>(2);
  471. medicalExamMap.put("name", "体检");
  472. medicalExamMap.put("value", medicalExam);
  473. eChartReportModelList.add(medicalExamMap);
  474. List<Map> resultList = new ArrayList<>(1);
  475. Map<String, Object> dataMap = new HashMap<>(4);
  476. dataMap.put("name", null);
  477. dataMap.put("xData", null);
  478. dataMap.put("yData", null);
  479. dataMap.put("dataModels", eChartReportModelList);
  480. resultList.add(dataMap);
  481. Map<String, Long> resultMap = new HashMap<>(4);
  482. resultMap.put("clinic", clinic);
  483. resultMap.put("resident", resident);
  484. resultMap.put("medicalExam", medicalExam);
  485. resultMap.put("total", clinic + resident + medicalExam);
  486. return success(resultMap, resultList);
  487. }
  488. @RequestMapping(value = ServiceApi.Resources.GetArchiveDistribution, method = RequestMethod.GET)
  489. @ApiOperation(value = "健康档案 - 健康档案分布情况")
  490. public Envelop getArchiveDistribution() {
  491. //获取年龄字典
  492. /**
  493. List<SystemDictEntry> ageDictEntryList = statisticService.getSystemDictEntry((long)89);
  494. if (ageDictEntryList != null) {
  495. Map<String, Integer> ageMap = new LinkedHashMap<>();
  496. for (SystemDictEntry systemDictEntry : ageDictEntryList) {
  497. ageMap.put(systemDictEntry.getValue(), 0);
  498. }
  499. List<Object []> allGroup = statisticService.newStatisticsDemographicsAgeCount();
  500. Map<String, BigInteger> maleGroup = new HashMap<>(ageMap.size());
  501. Map<String, BigInteger> femaleGroup = new HashMap<>(ageMap.size());
  502. for(Object [] dataArr : allGroup) {
  503. String gender = (String) dataArr[2];
  504. String age = (String) dataArr[1];
  505. BigInteger count = (BigInteger) dataArr[0];
  506. if(gender.equals("1")) {
  507. maleGroup.put(age, count);
  508. }else {
  509. femaleGroup.put(age, count);
  510. }
  511. }
  512. List<String> xData = new ArrayList<>(ageMap.size());
  513. List<BigInteger> yData = new ArrayList<>(ageMap.size());
  514. List<String> xData1 = new ArrayList<>(ageMap.size());
  515. List<BigInteger> yData1 = new ArrayList<>(ageMap.size());
  516. for(String key : ageMap.keySet()) {
  517. xData.add(key);
  518. xData1.add(key);
  519. if(maleGroup.containsKey(key)) {
  520. yData.add(maleGroup.get(key));
  521. }else {
  522. yData.add(new BigInteger("0"));
  523. }
  524. if(femaleGroup.containsKey(key)) {
  525. yData1.add(femaleGroup.get(key));
  526. }else {
  527. yData1.add(new BigInteger("0"));
  528. }
  529. }
  530. List<Map> resultList = new ArrayList<>(2);
  531. Map<String, Object> resultMap = new HashMap<>(4);
  532. resultMap.put("name", "男");
  533. resultMap.put("dataModels", null);
  534. resultMap.put("xData", xData);
  535. resultMap.put("yData", yData);
  536. resultList.add(resultMap);
  537. Map<String, Object> resultMap1 = new HashMap<>(4);
  538. resultMap1.put("name", "女");
  539. resultMap1.put("dataModels", null);
  540. resultMap1.put("xData", xData1);
  541. resultMap1.put("yData", yData1);
  542. resultList.add(resultMap1);
  543. envelop.setSuccessFlg(true);
  544. envelop.setDetailModelList(resultList);
  545. return envelop;
  546. } else { //年龄字典为空的时候
  547. Map<String, Integer> ageMap = getDefaultAgeMap();
  548. List<Object []> allGroup = statisticService.newStatisticsDemographicsAgeCount();
  549. Map<String, BigInteger> maleGroup = new HashMap<>();
  550. Map<String, BigInteger> femaleGroup = new HashMap<>();
  551. for(Object [] dataArr : allGroup) {
  552. String gender = (String) dataArr[2];
  553. String age = (String) dataArr[1];
  554. BigInteger count = (BigInteger) dataArr[0];
  555. if(gender.equals("1")) {
  556. maleGroup.put(age, count);
  557. }else {
  558. femaleGroup.put(age, count);
  559. }
  560. }
  561. List<String> xData = new ArrayList<>();
  562. List<BigInteger> yData = new ArrayList<>();
  563. List<String> xData1 = new ArrayList<>();
  564. List<BigInteger> yData1 = new ArrayList<>();
  565. for(String key : ageMap.keySet()) {
  566. xData.add(key);
  567. xData1.add(key);
  568. if(maleGroup.containsKey(key)) {
  569. yData.add(maleGroup.get(key));
  570. }else {
  571. yData.add(new BigInteger("0"));
  572. }
  573. if(femaleGroup.containsKey(key)) {
  574. yData1.add(femaleGroup.get(key));
  575. }else {
  576. yData1.add(new BigInteger("0"));
  577. }
  578. }
  579. List<Map> resultList = new ArrayList<>(2);
  580. Map<String, Object> resultMap = new HashMap<>(4);
  581. resultMap.put("name", "男");
  582. resultMap.put("dataModels", null);
  583. resultMap.put("xData", xData);
  584. resultMap.put("yData", yData);
  585. resultList.add(resultMap);
  586. Map<String, Object> resultMap1 = new HashMap<>(4);
  587. resultMap1.put("name", "女");
  588. resultMap1.put("dataModels", null);
  589. resultMap1.put("xData", xData1);
  590. resultMap1.put("yData", yData1);
  591. resultList.add(resultMap1);
  592. envelop.setSuccessFlg(true);
  593. envelop.setDetailModelList(resultList);
  594. return envelop;
  595. }*/
  596. Map<String, Integer> ageMap = getDefaultAgeMap();
  597. List<Object []> allGroup = resourceCenterService.newStatisticsDemographicsAgeCount();
  598. Map<String, BigInteger> maleGroup = new HashMap<>();
  599. Map<String, BigInteger> femaleGroup = new HashMap<>();
  600. for (Object [] dataArr : allGroup) {
  601. String gender = (String) dataArr[2];
  602. String age = (String) dataArr[1];
  603. BigInteger count = (BigInteger) dataArr[0];
  604. if (gender.equals("1")) {
  605. maleGroup.put(age, count);
  606. } else {
  607. femaleGroup.put(age, count);
  608. }
  609. }
  610. List<String> xData = new ArrayList<>();
  611. List<BigInteger> yData = new ArrayList<>();
  612. List<String> xData1 = new ArrayList<>();
  613. List<BigInteger> yData1 = new ArrayList<>();
  614. for (String key : ageMap.keySet()) {
  615. xData.add(key);
  616. xData1.add(key);
  617. if (maleGroup.containsKey(key)) {
  618. yData.add(maleGroup.get(key));
  619. } else {
  620. yData.add(new BigInteger("0"));
  621. }
  622. if (femaleGroup.containsKey(key)) {
  623. yData1.add(femaleGroup.get(key));
  624. } else {
  625. yData1.add(new BigInteger("0"));
  626. }
  627. }
  628. List<Map> resultList = new ArrayList<>(2);
  629. Map<String, Object> resultMap = new HashMap<>(4);
  630. resultMap.put("name", "男");
  631. resultMap.put("dataModels", null);
  632. resultMap.put("xData", xData);
  633. resultMap.put("yData", yData);
  634. resultList.add(resultMap);
  635. Map<String, Object> resultMap1 = new HashMap<>(4);
  636. resultMap1.put("name", "女");
  637. resultMap1.put("dataModels", null);
  638. resultMap1.put("xData", xData1);
  639. resultMap1.put("yData", yData1);
  640. resultList.add(resultMap1);
  641. return success(resultList);
  642. }
  643. private Map<String, Integer> getDefaultAgeMap() {
  644. Map<String, Integer> map = new LinkedHashMap<>(5);
  645. map.put("0-6", 0);
  646. map.put("7-17", 0);
  647. map.put("18-40", 0);
  648. map.put("41-65", 0);
  649. map.put("> 65", 0);
  650. return map;
  651. }
  652. @RequestMapping(value = ServiceApi.Resources.GetStorageAnalysis, method = RequestMethod.GET)
  653. @ApiOperation(value = "健康档案 - 健康档案入库情况分析")
  654. public Envelop getStorageAnalysis() throws Exception {
  655. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  656. Calendar calendar = Calendar.getInstance();
  657. calendar.set(Calendar.HOUR_OF_DAY, 0);
  658. calendar.set(Calendar.MINUTE, 0);
  659. calendar.set(Calendar.SECOND, 0);
  660. calendar.set(Calendar.MILLISECOND, 0);
  661. Date now = DateUtils.addDays(calendar.getTime(), 1);
  662. Date before = DateUtils.addDays(now, -29);
  663. Map<String, Long> receiveGroup = resourceCenterService.getJsonArchiveReceiveDateGroup(before, now);
  664. Map<String, Long> finishGroup = resourceCenterService.getJsonArchiveFinishDateGroup(before, now);
  665. List<String> xData = new ArrayList<>(30);
  666. List<Long> yData = new ArrayList<>(30);
  667. List<String> xData1 = new ArrayList<>(30);
  668. List<Long> yData1 = new ArrayList<>(30);
  669. for (int i = 30; i >= 1; i --) {
  670. String _day = dateFormat.format(DateUtils.addDays(now, -i));
  671. //采集量
  672. xData.add(_day);
  673. if (receiveGroup.containsKey(_day)) {
  674. yData.add(receiveGroup.get(_day));
  675. } else {
  676. yData.add(0L);
  677. }
  678. //入库量
  679. xData1.add(_day);
  680. if (finishGroup.containsKey(_day)) {
  681. yData1.add(finishGroup.get(_day));
  682. } else {
  683. yData1.add(0L);
  684. }
  685. }
  686. List<Map> resultList = new ArrayList<>(2);
  687. Map<String, Object> resultMap = new HashMap<>(4);
  688. resultMap.put("name", "采集量");
  689. resultMap.put("dataModels", null);
  690. resultMap.put("xData", xData);
  691. resultMap.put("yData", yData);
  692. resultList.add(resultMap);
  693. Map<String, Object> resultMap1 = new HashMap<>(4);
  694. resultMap1.put("name", "入库量");
  695. resultMap1.put("dataModels", null);
  696. resultMap1.put("xData", xData1);
  697. resultMap1.put("yData", yData1);
  698. resultList.add(resultMap1);
  699. return success(resultList);
  700. }
  701. @RequestMapping(value = ServiceApi.Resources.GetElectronicMedicalSource, method = RequestMethod.GET)
  702. @ApiOperation(value = "电子病例 - 电子病例来源分布情况")
  703. public Envelop getElectronicMedicalSource() throws Exception {
  704. long clinic = solrUtil.count("HealthProfile", "event_type:0");
  705. Map<String, Object> clinicMap = new HashedMap();
  706. clinicMap.put("name", "门诊");
  707. clinicMap.put("value", clinic);
  708. long resident = solrUtil.count("HealthProfile", "event_type:1");
  709. Map<String, Object> residentMap = new HashedMap();
  710. residentMap.put("name", "住院");
  711. residentMap.put("value", resident);
  712. long medicalExam = solrUtil.count("HealthProfile", "event_type:2");
  713. Map<String, Object> medicalExamMap = new HashedMap();
  714. medicalExamMap.put("name", "体检");
  715. medicalExamMap.put("value", medicalExam);
  716. List<Map> dataModels = new ArrayList<>();
  717. dataModels.add(clinicMap);
  718. dataModels.add(residentMap);
  719. dataModels.add(medicalExamMap);
  720. List<Map> resultList = new ArrayList<>();
  721. Map<String, Object> dataMap = new HashMap<>();
  722. dataMap.put("name", null);
  723. dataMap.put("xData", null);
  724. dataMap.put("yData", null);
  725. dataMap.put("dataModels", dataModels);
  726. resultList.add(dataMap);
  727. Map<String, Object> resultMap = new HashMap<>();
  728. resultMap.put("门诊/住院/体检", clinic + resident + medicalExam);
  729. resultMap.put("门诊", clinic);
  730. resultMap.put("住院", resident);
  731. resultMap.put("体检", medicalExam);
  732. return success(resultMap, resultList);
  733. }
  734. @RequestMapping(value = ServiceApi.Resources.GetElectronicMedicalOrgDistributed, method = RequestMethod.GET)
  735. @ApiOperation(value = "电子病例 - 电子病历采集医院分布")
  736. public Envelop getElectronicMedicalOrgDistributed() throws Exception {
  737. int currentCityId = resourceCenterService.getCurrentCityId();
  738. FacetField facetField = solrUtil.getFacetField("HealthProfile", "org_code", null, 0, 0, 1000000, false);
  739. List<FacetField.Count> countList = facetField.getValues();
  740. Map<String, Long> dataMap = new HashMap<>(countList.size());
  741. for (FacetField.Count count : countList) {
  742. String orgCode = count.getName();
  743. Integer areaId = resourceCenterService.getOrgAreaByCode(orgCode, currentCityId);
  744. if (areaId != null && areaId != 0) {
  745. String orgName = resourceCenterService.getOrgNameByCode(orgCode);
  746. if (!StringUtils.isEmpty(orgName)) {
  747. long count1 = count.getCount();
  748. dataMap.put(orgName, count1);
  749. }
  750. }
  751. }
  752. return success(dataMap);
  753. }
  754. @RequestMapping(value = ServiceApi.Resources.GetElectronicMedicalDeptDistributed, method = RequestMethod.GET)
  755. @ApiOperation(value = "电子病例 - 电子病历采集科室分布")
  756. public Envelop getElectronicMedicalDeptDistributed() throws Exception{
  757. Envelop envelop = new Envelop();
  758. Envelop orgEnvelop = getElectronicMedicalOrgDistributed();
  759. if (orgEnvelop.isSuccessFlg() ) {
  760. Map result1 = (Map)orgEnvelop.getObj();
  761. if (result1.size() <= 0) {
  762. envelop.setSuccessFlg(true);
  763. envelop.setObj(new HashMap<>());
  764. return envelop;
  765. }
  766. } else {
  767. envelop.setSuccessFlg(false);
  768. envelop.setErrorCode(orgEnvelop.getErrorCode());
  769. envelop.setErrorMsg(orgEnvelop.getErrorMsg());
  770. envelop.setObj(new HashMap<>());
  771. return envelop;
  772. }
  773. FacetField facetField = solrUtil.getFacetField("HealthProfile", "EHR_000081", null, 0, 0, 1000000, false);
  774. List<FacetField.Count> countList = facetField.getValues();
  775. Map<String, Long> dataMap = new HashMap<>(countList.size());
  776. for (FacetField.Count count : countList) {
  777. String deptCode = count.getName();
  778. String deptName = redisService.getDictEntryValue("59083976eebd", "253", deptCode);
  779. if (!StringUtils.isEmpty(deptName)) {
  780. long count1 = count.getCount();
  781. dataMap.put(deptName, count1);
  782. }
  783. }
  784. envelop.setSuccessFlg(true);
  785. envelop.setObj(dataMap);
  786. return envelop;
  787. }
  788. @RequestMapping(value = ServiceApi.Resources.GetElectronicMedicalAcquisitionSituation, method = RequestMethod.GET)
  789. @ApiOperation(value = "电子病例 - 电子病历采集采集情况")
  790. public Envelop getElectronicMedicalAcquisitionSituation() throws Exception {
  791. Calendar calendar = Calendar.getInstance();
  792. calendar.set(Calendar.HOUR_OF_DAY, 0);
  793. calendar.set(Calendar.MINUTE, 0);
  794. calendar.set(Calendar.SECOND, 0);
  795. calendar.set(Calendar.MILLISECOND, 0);
  796. Date now = DateUtils.addDays(calendar.getTime(), 1);
  797. Date before = DateUtils.addDays(now, -30);
  798. List<RangeFacet> clinicList = solrUtil.getFacetDateRange("HealthProfile", "create_date", DateUtils.addHours(before, 8), DateUtils.addHours(now, 8), "+1DAY", "event_type:0");
  799. RangeFacet clinicRangeFacet = clinicList.get(0);
  800. List<RangeFacet.Count> clinicCount = clinicRangeFacet.getCounts();
  801. Map<String, Integer> dataMap1 = new LinkedHashMap<>(clinicCount.size());
  802. for (RangeFacet.Count count : clinicCount) {
  803. dataMap1.put(count.getValue().substring(0, 10), count.getCount());
  804. }
  805. List<RangeFacet> residentList = solrUtil.getFacetDateRange("HealthProfile", "create_date", DateUtils.addHours(before, 8), DateUtils.addHours(now, 8), "+1DAY", "event_type:1");
  806. RangeFacet residentRangeFacet = residentList.get(0);
  807. List<RangeFacet.Count> residentCount = residentRangeFacet.getCounts();
  808. Map<String, Integer> dataMap2 = new LinkedHashMap<>(residentCount.size());
  809. for (RangeFacet.Count count : residentCount) {
  810. dataMap2.put(count.getValue().substring(0, 10), count.getCount());
  811. }
  812. List<Map> resultList = new ArrayList<>(2);
  813. resultList.add(dataMap1);
  814. resultList.add(dataMap2);
  815. return success(resultList);
  816. }
  817. // ------------------------------- 统计相关 end ------------------------------------
  818. // ------------------------------- 大数据展示相关 start ------------------------------------
  819. @RequestMapping(value = ServiceApi.Resources.Achievements, method = RequestMethod.GET)
  820. @ApiOperation(value = "成果展示")
  821. public Envelop achievements() throws Exception {
  822. List<Map<String, Object>> resultList = new ArrayList<>();
  823. //数据采集
  824. List<Object[]> list1 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("EHR_Quality_Trend", "zkGuSIm2Fg");
  825. if (list1.size() > 0) {
  826. Map<String, Object> dataMap1 = new LinkedHashMap<>();
  827. Object [] data = list1.get(0);
  828. Integer id = (Integer) data[0];
  829. String name = (String) data[1];
  830. dataMap1.put("label", "数据采集");
  831. dataMap1.put("appId", "zkGuSIm2Fg");
  832. dataMap1.put("name", name);
  833. dataMap1.put("menuId", id);
  834. double total = resourceCenterService.getJsonArchiveTotalCount();
  835. dataMap1.put("total", total);
  836. Map<String, Object> dataMap2 = new HashMap<>();
  837. List<Map<String, Object>> pieList1 = new ArrayList<>();
  838. double count1 = resourceCenterService.getJsonArchiveCount("3");
  839. Map<String, Object> pieMap1 = new HashMap<>();
  840. pieMap1.put("成功总量", count1);
  841. pieList1.add(pieMap1);
  842. double count2 = resourceCenterService.getJsonArchiveCount("2");
  843. Map<String, Object> pieMap2 = new HashMap<>();
  844. pieMap2.put("失败总量", count2);
  845. pieList1.add(pieMap2);
  846. dataMap2.put("1", pieList1);
  847. dataMap1.put("view", dataMap2);
  848. resultList.add(dataMap1);
  849. }
  850. //数据存储
  851. List<Object[]> list2 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Ehr_Data_Gateway", "R1yHNdX5Ud");
  852. if (list2.size() > 0) {
  853. Map<String, Object> dataMap1 = new LinkedHashMap<>();
  854. Object [] data = list2.get(0);
  855. Integer id = (Integer) data[0];
  856. String name = (String) data[1];
  857. dataMap1.put("label", "数据存储");
  858. dataMap1.put("appId", "R1yHNdX5Ud");
  859. dataMap1.put("name", name);
  860. dataMap1.put("menuId", id);
  861. Map<String, Object> dataMap2 = new HashMap<>();
  862. List<Map<String, Object>> pieList1 = new ArrayList<>();
  863. long count1 = solrUtil.count("HealthProfile", "*:*");
  864. Map<String, Object> pieMap1 = new HashMap<>();
  865. pieMap1.put("patient", count1);
  866. pieList1.add(pieMap1);
  867. BigInteger count2 = resourceCenterService.getMedicalResourcesCount();
  868. Map<String, Object> pieMap2 = new HashMap<>();
  869. pieMap2.put("medicalResources", count2);
  870. pieList1.add(pieMap2);
  871. double count3 = resourceCenterService.getJsonArchiveCount("3");
  872. Map<String, Object> pieMap3 = new HashMap<>();
  873. pieMap3.put("healthArchive", count3);
  874. pieList1.add(pieMap3);
  875. long count4 = solrUtil.count("HealthProfile", "*:*");
  876. Map<String, Object> pieMap4 = new HashMap<>();
  877. pieMap4.put("electronicCases", count4);
  878. pieList1.add(pieMap4);
  879. dataMap2.put("1", pieList1);
  880. dataMap1.put("view", dataMap2);
  881. resultList.add(dataMap1);
  882. }
  883. return success(resultList);
  884. }
  885. @RequestMapping(value = ServiceApi.Resources.Visualization, method = RequestMethod.GET)
  886. @ApiOperation(value = "可视化")
  887. public Envelop visualization() throws Exception {
  888. List<Map<String, Object>> resultList = new ArrayList<>();
  889. //已配置视图
  890. List<Object[]> list1 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Resource_ResourceManage_Initial", "zkGuSIm2Fg");
  891. if (list1.size() > 0) {
  892. Map<String, Object> dataMap1 = new LinkedHashMap<>();
  893. Object [] data = list1.get(0);
  894. Integer id = (Integer) data[0];
  895. String name = (String) data[1];
  896. dataMap1.put("label", "已配置视图");
  897. dataMap1.put("appId", "zkGuSIm2Fg");
  898. dataMap1.put("name", name);
  899. dataMap1.put("menuId", id);
  900. BigInteger total = resourceCenterService.getTotalViewCount(null);
  901. dataMap1.put("total", total);
  902. //大分类
  903. Map<String, Object> dataMap2 = new HashMap<>();
  904. List<Map<String, Object>> pieList1 = new ArrayList<>();
  905. BigInteger dataSource1 = resourceCenterService.getTotalViewCount(1);
  906. Map<String, Object> pieMap1 = new LinkedHashMap<>();
  907. pieMap1.put("档案数据", dataSource1);
  908. pieList1.add(pieMap1);
  909. BigInteger dataSource2 = resourceCenterService.getTotalViewCount(2);
  910. Map<String, Object> pieMap2 = new LinkedHashMap<>();
  911. pieMap2.put("指标统计", dataSource2);
  912. pieList1.add(pieMap2);
  913. dataMap2.put("1", pieList1);
  914. //小分类
  915. List<Map<String, Object>> pieList2 = new ArrayList<>();
  916. List<Object[]> cateList = resourceCenterService.getResourceCategoryIdAndNameList();
  917. for (Object [] temp : cateList) {
  918. Map<String, Object> pieMap3 = new HashMap<>();
  919. String cateId = (String) temp[0];
  920. String cateName = (String) temp[1];
  921. BigInteger count1 = resourceCenterService.countResourceByResourceCateIdAndDataSource(cateId, 1);
  922. if (count1.compareTo(new BigInteger("0")) > 0) {
  923. pieMap3.put(cateName, count1);
  924. pieList2.add(pieMap3);
  925. }
  926. }
  927. for (Object [] temp : cateList) {
  928. Map<String, Object> pieMap3 = new HashMap<>();
  929. String cateId = (String) temp[0];
  930. String cateName = (String) temp[1];
  931. BigInteger count1 = resourceCenterService.countResourceByResourceCateIdAndDataSource(cateId, 2);
  932. if (count1.compareTo(new BigInteger("0")) > 0) {
  933. pieMap3.put(cateName, count1);
  934. pieList2.add(pieMap3);
  935. }
  936. }
  937. dataMap2.put("2", pieList2);
  938. dataMap1.put("view", dataMap2);
  939. resultList.add(dataMap1);
  940. }
  941. //已配置资源报表
  942. List<Object[]> list2 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Ehr_Resource_Report_Index", "zkGuSIm2Fg");
  943. if (list2.size() > 0) {
  944. Map<String, Object> dataMap1 = new LinkedHashMap<>();
  945. Object [] data = list2.get(0);
  946. Integer id = (Integer) data[0];
  947. String name = (String) data[1];
  948. dataMap1.put("label", "已配置资源报表");
  949. dataMap1.put("appId", "zkGuSIm2Fg");
  950. dataMap1.put("name", name);
  951. dataMap1.put("menuId", id);
  952. BigInteger total = resourceCenterService.getTotalReportCount();
  953. dataMap1.put("total", total);
  954. Map<String, Object> dataMap2 = new HashMap<>();
  955. List<Map<String, Object>> pieList1 = new ArrayList<>();
  956. List<Object[]> cateList = resourceCenterService.getReportCategoryIdAndNameList();
  957. for (Object [] temp : cateList) {
  958. Map<String, Object> pieMap3 = new HashMap<>();
  959. Integer cateId = (Integer) temp[0];
  960. String cateName = (String) temp[1];
  961. BigInteger count1 = resourceCenterService.countReportByReportCateId(cateId);
  962. if (count1.compareTo(new BigInteger("0")) > 0) {
  963. pieMap3.put(cateName, count1);
  964. pieList1.add(pieMap3);
  965. }
  966. }
  967. dataMap2.put("1", pieList1);
  968. dataMap1.put("view", dataMap2);
  969. resultList.add(dataMap1);
  970. }
  971. return success(resultList);
  972. }
  973. @RequestMapping(value = ServiceApi.Resources.DataAnalysis, method = RequestMethod.GET)
  974. @ApiOperation(value = "数据分析")
  975. public Envelop dataAnalysis() throws Exception {
  976. List<Map<String, Object>> resultList = new ArrayList<>();
  977. //已注册指标
  978. List<Object[]> list1 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Ehr_Zhibiao_Initial", "zkGuSIm2Fg");
  979. if (list1.size() > 0) {
  980. Map<String, Object> dataMap1 = new LinkedHashMap<>();
  981. Object [] data = list1.get(0);
  982. Integer id = (Integer) data[0];
  983. String name = (String) data[1];
  984. dataMap1.put("label", "已注册指标");
  985. dataMap1.put("appId", "zkGuSIm2Fg");
  986. dataMap1.put("name", name);
  987. dataMap1.put("menuId", id);
  988. BigInteger total = resourceCenterService.getTotalQuotaCount();
  989. dataMap1.put("total", total);
  990. Map<String, Object> dataMap2 = new HashMap<>();
  991. List<Map<String, Object>> pieList1 = new ArrayList<>();
  992. List<Object[]> cateList = resourceCenterService.getQuotaCategoryIdAndNameList();
  993. for (Object [] temp : cateList) {
  994. Map<String, Object> pieMap3 = new HashMap<>();
  995. Integer cateId = (Integer) temp[0];
  996. String cateName = (String) temp[1];
  997. BigInteger count1 = resourceCenterService.countQuotaByQuotaCateId(cateId);
  998. if (count1.compareTo(new BigInteger("0")) > 0) {
  999. pieMap3.put(cateName, count1);
  1000. pieList1.add(pieMap3);
  1001. }
  1002. }
  1003. dataMap2.put("1", pieList1);
  1004. dataMap1.put("view", dataMap2);
  1005. resultList.add(dataMap1);
  1006. }
  1007. return success(resultList);
  1008. }
  1009. @RequestMapping(value = ServiceApi.Resources.HierarchicalManagement, method = RequestMethod.GET)
  1010. @ApiOperation(value = "分级管理")
  1011. public Envelop hierarchicalManagement() throws Exception {
  1012. List<Map<String, Object>> resultList = new ArrayList<>();
  1013. //机构数据授权
  1014. List<Object[]> list1 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Ehr_Security_Org_Auth", "zkGuSIm2Fg");
  1015. if (list1.size() > 0) {
  1016. Map<String, Object> dataMap = new LinkedHashMap<>();
  1017. Object [] data = list1.get(0);
  1018. Integer id = (Integer) data[0];
  1019. String name = (String) data[1];
  1020. dataMap.put("label", "机构数据授权");
  1021. dataMap.put("appId", "zkGuSIm2Fg");
  1022. dataMap.put("name", name);
  1023. dataMap.put("menuId", id);
  1024. resultList.add(dataMap);
  1025. }
  1026. //应用授权
  1027. List<Object[]> list2 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("Ehr_Public_Thirdparty_App", "zkGuSIm2Fg");
  1028. if (list2.size() > 0) {
  1029. Map<String, Object> dataMap = new LinkedHashMap<>();
  1030. Object [] data = list2.get(0);
  1031. Integer id = (Integer) data[0];
  1032. String name = (String) data[1];
  1033. dataMap.put("label", "应用授权");
  1034. dataMap.put("appId", "zkGuSIm2Fg");
  1035. dataMap.put("name", name);
  1036. dataMap.put("menuId", id);
  1037. resultList.add(dataMap);
  1038. }
  1039. //角色授权
  1040. List<Object[]> list3 = resourceCenterService.findAppFeatureIdAndNameByAppIdAndCode("UserRoles_Initial", "zkGuSIm2Fg");
  1041. if (list3.size() > 0) {
  1042. Map<String, Object> dataMap = new LinkedHashMap<>();
  1043. Object [] data = list3.get(0);
  1044. Integer id = (Integer) data[0];
  1045. String name = (String) data[1];
  1046. dataMap.put("label", "角色授权");
  1047. dataMap.put("appId", "zkGuSIm2Fg");
  1048. dataMap.put("name", name);
  1049. dataMap.put("menuId", id);
  1050. resultList.add(dataMap);
  1051. }
  1052. return success(resultList);
  1053. }
  1054. // ------------------------------- 大数据展示相关 end ------------------------------------
  1055. }