Commit a5891084b565c02411362c9df89870415443ce49

Authored by liquanyu
1 parent a22426fa79

两癌

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 }