Commit a5891084b565c02411362c9df89870415443ce49
1 parent
a22426fa79
Exists in
master
and in
6 other branches
两癌
Showing 2 changed files with 212 additions and 0 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CancerScreeningController.java
View file @
a589108
| ... | ... | @@ -260,5 +260,13 @@ |
| 260 | 260 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
| 261 | 261 | return cancerScreenService.setCancerExamineStatus(position,id, loginState.getId()); |
| 262 | 262 | } |
| 263 | + | |
| 264 | + @ResponseBody | |
| 265 | + @RequestMapping(method = RequestMethod.GET,value = "/exportCancerDatas") | |
| 266 | + @TokenRequired | |
| 267 | + public void exportCancerDatas(CancerExamineRequest cancerExamineRequest, HttpServletRequest request,HttpServletResponse response) { | |
| 268 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 269 | + cancerScreenService.exportCancerDatas(cancerExamineRequest, loginState.getId(),response); | |
| 270 | + } | |
| 263 | 271 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/CancerScreeningFacade.java
View file @
a589108
| ... | ... | @@ -14,7 +14,9 @@ |
| 14 | 14 | import com.lyms.platform.operate.web.request.BreastAfterVisitRequest; |
| 15 | 15 | import com.lyms.platform.operate.web.request.CancerExamineRequest; |
| 16 | 16 | import com.lyms.platform.operate.web.request.CancerScreeningRequest; |
| 17 | +import com.lyms.platform.operate.web.request.CervicalCancerListRequest; | |
| 17 | 18 | import com.lyms.platform.operate.web.result.CancerScreeningResult; |
| 19 | +import com.lyms.platform.operate.web.service.impl.CervicalCancerServiceImpl; | |
| 18 | 20 | import com.lyms.platform.operate.web.utils.CommonsHelper; |
| 19 | 21 | import com.lyms.platform.operate.web.utils.FunvCommonUtil; |
| 20 | 22 | import com.lyms.platform.operate.web.utils.ResponseUtil; |
| ... | ... | @@ -44,6 +46,8 @@ |
| 44 | 46 | import scala.util.parsing.combinator.testing.Str; |
| 45 | 47 | |
| 46 | 48 | import javax.servlet.http.HttpServletResponse; |
| 49 | +import java.io.IOException; | |
| 50 | +import java.io.OutputStream; | |
| 47 | 51 | import java.lang.reflect.Array; |
| 48 | 52 | import java.util.*; |
| 49 | 53 | |
| ... | ... | @@ -70,6 +74,8 @@ |
| 70 | 74 | private BreastAfterVisitService breastAfterVisitService; |
| 71 | 75 | @Autowired |
| 72 | 76 | private MongoTemplate mongoTemplate; |
| 77 | + @Autowired | |
| 78 | + private CervicalCancerServiceImpl cervicalCancerService; | |
| 73 | 79 | |
| 74 | 80 | /** |
| 75 | 81 | * 获取当前医院或院组内的两癌检查列表 |
| ... | ... | @@ -1194,6 +1200,204 @@ |
| 1194 | 1200 | .convertToNativeUpdate(ReflectionUtils.getUpdateField(cancerExamineModel)); |
| 1195 | 1201 | mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(cancerExamineModel.getId())), update, CancerExamineModel.class); |
| 1196 | 1202 | return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功"); |
| 1203 | + } | |
| 1204 | + | |
| 1205 | + public void exportCancerDatas(CancerExamineRequest request, Integer userId,HttpServletResponse response) { | |
| 1206 | + String hospitalId = autoMatchFacade.getHospitalId(userId); | |
| 1207 | + Organization organization = organizationService.getOrganization(Integer.parseInt(hospitalId)); | |
| 1208 | + Query query = new Query(); | |
| 1209 | + if (request.getPosition() == 1) | |
| 1210 | + { | |
| 1211 | + Criteria c = Criteria.where("hospitalId").is(hospitalId); | |
| 1212 | + query.addCriteria(c); | |
| 1213 | + } | |
| 1214 | + else if (request.getPosition() == 2) | |
| 1215 | + { | |
| 1216 | + Criteria c = Criteria.where("areaId").is(organization.getAreaId()); | |
| 1217 | + query.addCriteria(c); | |
| 1218 | + if (request.getPosition() != null) | |
| 1219 | + { | |
| 1220 | + Criteria c1 = Criteria.where("position").is(request.getPosition()); | |
| 1221 | + query.addCriteria(c1); | |
| 1222 | + } | |
| 1223 | + } | |
| 1224 | + else if (request.getPosition() == 3) | |
| 1225 | + { | |
| 1226 | + Criteria c = Criteria.where("cityId").is(organization.getCityId()); | |
| 1227 | + query.addCriteria(c); | |
| 1228 | + if (request.getPosition() != null) | |
| 1229 | + { | |
| 1230 | + Criteria c1 = Criteria.where("position").is(request.getPosition()); | |
| 1231 | + query.addCriteria(c1); | |
| 1232 | + } | |
| 1233 | + } | |
| 1234 | + | |
| 1235 | + if (StringUtils.isNotEmpty(request.getOptDate())) { | |
| 1236 | + String[] arrs = request.getOptDate().split(" - "); | |
| 1237 | + Date start = DateUtil.parseYMD(arrs[0]); | |
| 1238 | + Date end = DateUtil.parseYMD(arrs[1]); | |
| 1239 | + end = DateUtil.getDayLastSecond(end); | |
| 1240 | + query.addCriteria(Criteria.where("optDate").gte(start).lte(end)); | |
| 1241 | + } | |
| 1242 | + | |
| 1243 | + if (StringUtils.isNotEmpty(request.getExamineDate())) { | |
| 1244 | + String[] arrs = request.getExamineDate().split(" - "); | |
| 1245 | + Date start = DateUtil.parseYMD(arrs[0]); | |
| 1246 | + Date end = DateUtil.parseYMD(arrs[1]); | |
| 1247 | + end = DateUtil.getDayLastSecond(end); | |
| 1248 | + query.addCriteria(Criteria.where("examineDate").gte(start).lte(end)); | |
| 1249 | + } | |
| 1250 | + | |
| 1251 | + if (request.getStartYear() != null && request.getEndYear() != null) { | |
| 1252 | + query.addCriteria(Criteria.where("year").gte(request.getStartYear()).lte(request.getEndYear())); | |
| 1253 | + } | |
| 1254 | + if (request.getStartQuarter() != null && request.getEndquarter() != null) { | |
| 1255 | + query.addCriteria(Criteria.where("quarter").gte(request.getStartQuarter()).lte(request.getEndquarter())); | |
| 1256 | + } | |
| 1257 | + if (StringUtils.isNotEmpty(request.getOptUser())) | |
| 1258 | + { | |
| 1259 | + Criteria c = Criteria.where("optUser").is(request.getOptUser()); | |
| 1260 | + query.addCriteria(c); | |
| 1261 | + } | |
| 1262 | + | |
| 1263 | + if (StringUtils.isNotEmpty(request.getOptHospital())) | |
| 1264 | + { | |
| 1265 | + Criteria c = Criteria.where("optHospital").is(request.getOptUser()); | |
| 1266 | + query.addCriteria(c); | |
| 1267 | + } | |
| 1268 | + | |
| 1269 | + List <Map <String, Object>> datas = new ArrayList <>(); | |
| 1270 | + Criteria c = Criteria.where("type").is(request.getType()); | |
| 1271 | + query.addCriteria(c); | |
| 1272 | + List<CancerExamineModel> list = mongoTemplate.find(query, CancerExamineModel.class); | |
| 1273 | + | |
| 1274 | + if (CollectionUtils.isNotEmpty(list)) | |
| 1275 | + { | |
| 1276 | + for (CancerExamineModel model : list) | |
| 1277 | + { | |
| 1278 | + if (model.getType() == 1) | |
| 1279 | + { | |
| 1280 | + CervicalCancerListRequest cervicalCancerListRequest = new CervicalCancerListRequest(); | |
| 1281 | + cervicalCancerListRequest.setOrgProvinceId(model.getProvinceId()); | |
| 1282 | + cervicalCancerListRequest.setOrgCityId(model.getCityId()); | |
| 1283 | + cervicalCancerListRequest.setOrgAreaId(model.getAreaId()); | |
| 1284 | + cervicalCancerListRequest.setQuarter(model.getQuarter()); | |
| 1285 | + cervicalCancerListRequest.setYear(model.getYear()); | |
| 1286 | + List<Map<String, Object>> data = (List <Map <String, Object>>)cervicalCancerService.queryCervicalCancerCount( cervicalCancerListRequest, userId); | |
| 1287 | + datas.addAll(data); | |
| 1288 | + } | |
| 1289 | + else | |
| 1290 | + { | |
| 1291 | + CancerScreeningRequest cancerScreeningRequest = new CancerScreeningRequest(); | |
| 1292 | + cancerScreeningRequest.setOrgProvinceId(model.getProvinceId()); | |
| 1293 | + cancerScreeningRequest.setOrgCityId(model.getCityId()); | |
| 1294 | + cancerScreeningRequest.setOrgAreaId(model.getAreaId()); | |
| 1295 | + cancerScreeningRequest.setQuarter(model.getQuarter()); | |
| 1296 | + cancerScreeningRequest.setYear(model.getYear()); | |
| 1297 | + List<Map<String, Object>> data = (List <Map <String, Object>>)queryCancerScreeningCount(cancerScreeningRequest,userId).getObject(); | |
| 1298 | + datas.addAll(data); | |
| 1299 | + } | |
| 1300 | + | |
| 1301 | + } | |
| 1302 | + } | |
| 1303 | + try { | |
| 1304 | + OutputStream out = response.getOutputStream(); | |
| 1305 | + Map <String, String> cnames = new LinkedHashMap <>(); | |
| 1306 | + if (request.getType() == 1) | |
| 1307 | + { | |
| 1308 | + cnames.put("areaName","项目县(区)"); | |
| 1309 | + cnames.put("ndrws","年度任务数"); | |
| 1310 | + cnames.put("jcrs","检查人数"); | |
| 1311 | + cnames.put("jwjcrs","检查人数中既往接受过宫颈癌"); | |
| 1312 | + cnames.put("jars","结案人数"); | |
| 1313 | + cnames.put("zcrs","正常人数"); | |
| 1314 | + cnames.put("bsfjbgrs","报告人数"); | |
| 1315 | + cnames.put("bsfjb2ys","IIB级及以上"); | |
| 1316 | + cnames.put("tbsbgrs","报告人数"); | |
| 1317 | + cnames.put("tbsbdx","不典型鳞状上皮细胞(ASC-US)"); | |
| 1318 | + cnames.put("tbsbcw","不除外高度鳞状上皮内病变(ASC-H)"); | |
| 1319 | + cnames.put("tbsddl","低度鳞状上皮内病变(LSIL)"); | |
| 1320 | + cnames.put("tbsgd","高度鳞状上皮内病变(HSIL)"); | |
| 1321 | + cnames.put("tbslzxb","鳞状细胞癌(SCC)"); | |
| 1322 | + cnames.put("tbsbdxsp","不典型腺上细胞(AGC)"); | |
| 1323 | + cnames.put("tbsbdxgjg","不典型颈管腺细胞倾向瘤变"); | |
| 1324 | + cnames.put("tbsgjgywa","颈管原位癌"); | |
| 1325 | + cnames.put("tbsxa","腺癌"); | |
| 1326 | + cnames.put("rssc","实查"); | |
| 1327 | + cnames.put("rsky","异常/可疑"); | |
| 1328 | + cnames.put("ydjjcyc","应查"); | |
| 1329 | + cnames.put("ydjjcsc","实查"); | |
| 1330 | + cnames.put("ydjjcky","异常/可疑"); | |
| 1331 | + cnames.put("szdgrzs","总人数"); | |
| 1332 | + cnames.put("dcxydy","滴虫性阴道炎"); | |
| 1333 | + cnames.put("wyydjxjmjb","外阴阴道假丝酵母菌病"); | |
| 1334 | + cnames.put("xjxydb","细菌性阴道病"); | |
| 1335 | + cnames.put("wszqjrsy","外生殖器尖锐湿疣"); | |
| 1336 | + cnames.put("nynxgjy","粘液脓性宫颈炎"); | |
| 1337 | + cnames.put("gjxr","宫颈息肉"); | |
| 1338 | + cnames.put("qt","其他"); | |
| 1339 | + cnames.put("zgjl","子宫肌瘤"); | |
| 1340 | + cnames.put("szqt","其他良性疾病"); | |
| 1341 | + cnames.put("zzblyc","应查"); | |
| 1342 | + cnames.put("zzblsc","实查"); | |
| 1343 | + cnames.put("zzbldjbbb","低级别病变(原CIN1)"); | |
| 1344 | + cnames.put("zzblgjb","宫颈病变(原CIN2和CIN3)"); | |
| 1345 | + cnames.put("zzblrwxa","原位腺癌(AIS)"); | |
| 1346 | + cnames.put("zzblwxqra","微小浸润癌"); | |
| 1347 | + cnames.put("zzblqra","浸润癌"); | |
| 1348 | + cnames.put("zzblqt","其他恶性肿瘤"); | |
| 1349 | + cnames.put("sfqk","随访人数"); | |
| 1350 | + cnames.put("bjbb","治疗人数"); | |
| 1351 | + } | |
| 1352 | + else | |
| 1353 | + { | |
| 1354 | + cnames.put("areaName","项目县(区)"); | |
| 1355 | + cnames.put("ndrws","年度任务数"); | |
| 1356 | + cnames.put("jcrs","检查人数"); | |
| 1357 | + cnames.put("jwjcrs","检查人数中既往接受过乳腺癌检查的人数"); | |
| 1358 | + cnames.put("jars","结案人数"); | |
| 1359 | + cnames.put("csscrs","实查人数"); | |
| 1360 | + cnames.put("cs0j","0级"); | |
| 1361 | + cnames.put("cs1j","1级"); | |
| 1362 | + cnames.put("cs2j","2级"); | |
| 1363 | + cnames.put("cs3j","3级"); | |
| 1364 | + cnames.put("cs4j","4级"); | |
| 1365 | + cnames.put("cs5j","5级"); | |
| 1366 | + cnames.put("xxscrs","实查人数"); | |
| 1367 | + cnames.put("xx0j","0级"); | |
| 1368 | + cnames.put("xx1j","1级"); | |
| 1369 | + cnames.put("xx2j","2级"); | |
| 1370 | + cnames.put("xx3j","3级"); | |
| 1371 | + cnames.put("xx4j","4级"); | |
| 1372 | + cnames.put("xx5j","5级"); | |
| 1373 | + cnames.put("rxxl","乳腺纤维腺瘤"); | |
| 1374 | + cnames.put("rxtzl","乳腺导管内乳头状瘤"); | |
| 1375 | + cnames.put("rxqt","其他"); | |
| 1376 | + cnames.put("zzblycrs","应查人数"); | |
| 1377 | + cnames.put("zzblscrs","实查人数"); | |
| 1378 | + cnames.put("zzblbdx","不典型增生"); | |
| 1379 | + cnames.put("zzblxyywa","小叶原位癌"); | |
| 1380 | + cnames.put("zzbldgywa","导管原位癌"); | |
| 1381 | + cnames.put("zzblqrxdga","浸润性导管癌"); | |
| 1382 | + cnames.put("zzblqrxxya","浸润性小叶癌"); | |
| 1383 | + cnames.put("zzblqtzl","其他恶性肿瘤"); | |
| 1384 | + cnames.put("tnmyfqrs","应分期人数"); | |
| 1385 | + cnames.put("tnmhdfqrs","获得分期人数"); | |
| 1386 | + cnames.put("tnm0q","0期"); | |
| 1387 | + cnames.put("tnm1q","I期"); | |
| 1388 | + cnames.put("tnm2aq","IIA期"); | |
| 1389 | + cnames.put("tnm2bq","IIB期"); | |
| 1390 | + cnames.put("tnm3qys","III期及以上"); | |
| 1391 | + cnames.put("sfqksfrs","随访人数"); | |
| 1392 | + cnames.put("sfqkzlrs","治疗人数"); | |
| 1393 | + } | |
| 1394 | + response.setContentType("application/octet-stream"); | |
| 1395 | + response.setCharacterEncoding("UTF-8"); | |
| 1396 | + response.setHeader("Content-Disposition", "attachment;fileName=" + "datas.xls"); | |
| 1397 | + ExcelUtil.toExcel(out, datas, cnames); | |
| 1398 | + } catch (IOException e) { | |
| 1399 | + e.printStackTrace(); | |
| 1400 | + } | |
| 1197 | 1401 | } |
| 1198 | 1402 | } |