Commit 90a47395fe712c796c94531d52ffa74e4cf13dd6
1 parent
ac586f9a6a
Exists in
master
and in
6 other branches
update code
Showing 2 changed files with 142 additions and 14 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntenatalExaminationFacade.java
View file @
90a4739
| ... | ... | @@ -43,6 +43,7 @@ |
| 43 | 43 | import org.springframework.data.mongodb.core.MongoTemplate; |
| 44 | 44 | import org.springframework.data.mongodb.core.query.Criteria; |
| 45 | 45 | import org.springframework.data.mongodb.core.query.Query; |
| 46 | +import org.springframework.data.mongodb.core.query.Update; | |
| 46 | 47 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| 47 | 48 | import org.springframework.stereotype.Component; |
| 48 | 49 | import org.springframework.util.StopWatch; |
| ... | ... | @@ -509,6 +510,18 @@ |
| 509 | 510 | e.printStackTrace(); |
| 510 | 511 | } |
| 511 | 512 | |
| 513 | + try { | |
| 514 | + //处方计划 | |
| 515 | + if (antExamModel.getNextCheckTime() != null) | |
| 516 | + { | |
| 517 | + patients = patientsService.findOnePatientById(antExamModel.getParentId()); | |
| 518 | + updateTrackCount(antExamModel.getCheckDate(), antExamModel.getNextCheckTime(),patients); | |
| 519 | + } | |
| 520 | + } catch (Exception e) { | |
| 521 | + e.printStackTrace(); | |
| 522 | + } | |
| 523 | + | |
| 524 | + | |
| 512 | 525 | } |
| 513 | 526 | }); |
| 514 | 527 | |
| ... | ... | @@ -1158,8 +1171,11 @@ |
| 1158 | 1171 | } |
| 1159 | 1172 | |
| 1160 | 1173 | try { |
| 1161 | - //追访统计 | |
| 1162 | - saveTrackCount(DateUtil.parseYMD(excAddRequest.getNextCheckTime()), patients); | |
| 1174 | + if (excAddRequest.getNextCheckTime() != null) | |
| 1175 | + { | |
| 1176 | + //追访统计 | |
| 1177 | + saveTrackCount(DateUtil.parseYMD(excAddRequest.getNextCheckTime()), patients); | |
| 1178 | + } | |
| 1163 | 1179 | } catch (Exception e) { |
| 1164 | 1180 | e.printStackTrace(); |
| 1165 | 1181 | } |
| 1166 | 1182 | |
| 1167 | 1183 | |
| 1168 | 1184 | |
| 1169 | 1185 | |
| 1170 | 1186 | |
| 1171 | 1187 | |
| 1172 | 1188 | |
| ... | ... | @@ -1169,29 +1185,116 @@ |
| 1169 | 1185 | |
| 1170 | 1186 | public void saveTrackCount(Date nextCheckTime,Patients patients) |
| 1171 | 1187 | { |
| 1188 | + TrackCountRecord record = new TrackCountRecord(); | |
| 1189 | + record.setPid(patients.getHospitalId()); | |
| 1190 | + record.setPatientId(patients.getId()); | |
| 1191 | + record.setNextCheckTime(nextCheckTime); | |
| 1192 | + record.setCreated(new Date()); | |
| 1193 | + record.setModified(new Date()); | |
| 1194 | + mongoTemplate.save(record); | |
| 1195 | + } | |
| 1196 | + | |
| 1197 | + public void updateTrackCount(Date checkTime,Date nextCheckTime,Patients patients) | |
| 1198 | + { | |
| 1199 | + TrackDayConfig trackDayConfig = mongoTemplate.findOne(Query.query(Criteria.where("hospitalId").is(patients.getHospitalId())), TrackDayConfig.class); | |
| 1200 | + if (trackDayConfig == null || trackDayConfig.getConfis() == null || trackDayConfig.getConfis().size() == 0) | |
| 1201 | + { | |
| 1202 | + return; | |
| 1203 | + } | |
| 1204 | + | |
| 1172 | 1205 | AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); |
| 1173 | 1206 | antExRecordQuery.setPid(patients.getPid()); |
| 1174 | 1207 | List<AntExRecordModel> recordModels = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); |
| 1175 | - if (CollectionUtils.isNotEmpty(recordModels)) | |
| 1208 | + if (CollectionUtils.isNotEmpty(recordModels) && recordModels.size() > 1) | |
| 1176 | 1209 | { |
| 1177 | - AntExRecordModel recordModel = recordModels.get(0); | |
| 1178 | -// if () | |
| 1179 | -// { | |
| 1180 | -// | |
| 1181 | -// } | |
| 1210 | + TrackCountRecord record = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid())).with(new Sort(Sort.Direction.DESC, "created")), TrackCountRecord.class); | |
| 1211 | + AntExRecordModel recordModel = recordModels.get(1); | |
| 1212 | + if (DateUtil.getyyyy_MM_dd(recordModel.getNextCheckTime()).equals(DateUtil.getyyyy_MM_dd(nextCheckTime))) | |
| 1213 | + { | |
| 1214 | + | |
| 1215 | + record.setZsCheckStatus(1); | |
| 1216 | + Query query = Query.query(Criteria.where("_id").is(record.getId())); | |
| 1217 | + Update update = MongoConvertHelper | |
| 1218 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); | |
| 1219 | + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); | |
| 1220 | + } | |
| 1221 | + else if (checkTime.getTime() < DateUtil.addDay(recordModel.getNextCheckTime(),4).getTime() && checkTime.getTime() > recordModel.getNextCheckTime().getTime()) | |
| 1222 | + { | |
| 1223 | + record.setJsCheckStatus(1); | |
| 1224 | + Query query = Query.query(Criteria.where("_id").is(record.getId())); | |
| 1225 | + Update update = MongoConvertHelper | |
| 1226 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); | |
| 1227 | + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); | |
| 1228 | + } | |
| 1229 | + else if (checkTime.getTime() > DateUtil.addDay(recordModel.getNextCheckTime(),3).getTime()) | |
| 1230 | + { | |
| 1231 | + record.setLoseStatus(1); | |
| 1232 | + Query query = Query.query(Criteria.where("_id").is(record.getId())); | |
| 1233 | + Update update = MongoConvertHelper | |
| 1234 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); | |
| 1235 | + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); | |
| 1236 | + } | |
| 1237 | + //有效期召回人次 | |
| 1238 | + List<Map<String, String>> configs = trackDayConfig.getConfis(); | |
| 1239 | + String riskLevelId = patients.getRiskLevelId(); | |
| 1240 | + if (StringUtils.isNotEmpty(riskLevelId) && !"[]".equals(riskLevelId)) | |
| 1241 | + { | |
| 1242 | + List<String> rlevel = JsonUtil.jkstr2Obj(patients.getRiskLevelId(), List.class); | |
| 1243 | + Integer day = getTrackDay(rlevel, configs); | |
| 1244 | + if (day != null) | |
| 1245 | + { | |
| 1246 | + if (checkTime.getTime() < DateUtil.addDay(recordModel.getNextCheckTime(),day+1).getTime() && checkTime.getTime() >= recordModel.getNextCheckTime().getTime()) | |
| 1247 | + { | |
| 1248 | + record.setBackStatus(1); | |
| 1249 | + Query query = Query.query(Criteria.where("_id").is(record.getId())); | |
| 1250 | + Update update = MongoConvertHelper | |
| 1251 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); | |
| 1252 | + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); | |
| 1253 | + } | |
| 1254 | + } | |
| 1255 | + } | |
| 1256 | + saveTrackCount(recordModel.getNextCheckTime(), patients); | |
| 1182 | 1257 | } |
| 1183 | 1258 | } |
| 1184 | 1259 | |
| 1185 | - public void updateTrackCount(Date nextCheckTime,Patients patients) | |
| 1260 | + private Integer getTrackDay(List<String> rlevel,List<Map<String,String>> configs) | |
| 1186 | 1261 | { |
| 1187 | - AntExRecordQuery antExRecordQuery = new AntExRecordQuery(); | |
| 1188 | - antExRecordQuery.setPid(patients.getPid()); | |
| 1189 | - List<AntExRecordModel> recordModels = recordService.queryAntExRecords(antExRecordQuery, Sort.Direction.DESC, "checkTime"); | |
| 1190 | - if (CollectionUtils.isNotEmpty(recordModels)) | |
| 1262 | + Integer day = null; | |
| 1263 | + //紫色 | |
| 1264 | + if (rlevel.contains("224b2329-cb82-4da3-a071-8527f8283aab")) | |
| 1191 | 1265 | { |
| 1192 | - AntExRecordModel recordModel = recordModels.get(0); | |
| 1266 | + day = getDay(configs,"224b2329-cb82-4da3-a071-8527f8283aab"); | |
| 1267 | + } | |
| 1268 | + // | |
| 1269 | + else if (rlevel.contains("eb146c03-b19f-4e28-b85f-fda574b2283b")) | |
| 1270 | + { | |
| 1271 | + day = getDay(configs,"eb146c03-b19f-4e28-b85f-fda574b2283b"); | |
| 1272 | + } | |
| 1273 | + else if (rlevel.contains("49a36aea-c5b6-4162-87d2-9eb3c6ec00c2")) | |
| 1274 | + { | |
| 1275 | + day = getDay(configs,"49a36aea-c5b6-4162-87d2-9eb3c6ec00c2"); | |
| 1276 | + } | |
| 1277 | + else if (rlevel.contains("315107bd-91fe-42a1-9237-752f3c046a40")) | |
| 1278 | + { | |
| 1279 | + day = getDay(configs,"315107bd-91fe-42a1-9237-752f3c046a40"); | |
| 1280 | + } | |
| 1281 | + else if (rlevel.contains("e637b361-99cf-41eb-84f2-f0dab596e928")) | |
| 1282 | + { | |
| 1283 | + day = getDay(configs,"e637b361-99cf-41eb-84f2-f0dab596e928"); | |
| 1284 | + } | |
| 1285 | + return day; | |
| 1286 | + } | |
| 1193 | 1287 | |
| 1288 | + private Integer getDay(List<Map<String,String>> configs,String rlevel) | |
| 1289 | + { | |
| 1290 | + for (Map<String, String> config : configs) | |
| 1291 | + { | |
| 1292 | + if (config.get("riskLevel").equals(rlevel)) | |
| 1293 | + { | |
| 1294 | + return Integer.parseInt(config.get("day")); | |
| 1295 | + } | |
| 1194 | 1296 | } |
| 1297 | + return null; | |
| 1195 | 1298 | } |
| 1196 | 1299 | |
| 1197 | 1300 | public void saveCheckItem(Date nextCheckTime,Patients patients) |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/TrackDownServiceImpl.java
View file @
90a4739
| ... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 | import org.springframework.data.mongodb.core.MongoTemplate; |
| 18 | 18 | import org.springframework.data.mongodb.core.query.Criteria; |
| 19 | 19 | import org.springframework.data.mongodb.core.query.Query; |
| 20 | +import org.springframework.data.mongodb.core.query.Update; | |
| 20 | 21 | import org.springframework.stereotype.Service; |
| 21 | 22 | import org.springframework.util.StopWatch; |
| 22 | 23 | |
| 23 | 24 | |
| ... | ... | @@ -930,7 +931,31 @@ |
| 930 | 931 | trackDownService.add(trackDown); |
| 931 | 932 | String recordId = trackDown.getTrackDownRecId(); |
| 932 | 933 | updateRecordStatus(trackDown, recordId); |
| 934 | + updateTrackCount(trackDown.getParentId()); | |
| 933 | 935 | return RespBuilder.buildSuccess(trackDown.getId()); |
| 936 | + } | |
| 937 | + | |
| 938 | + | |
| 939 | + /** | |
| 940 | + * 追访统计 | |
| 941 | + * @param patientId | |
| 942 | + */ | |
| 943 | + private void updateTrackCount(String patientId) | |
| 944 | + { | |
| 945 | + Patients patients = patientsService.findOnePatientById(patientId); | |
| 946 | + if (patients != null) | |
| 947 | + { | |
| 948 | + TrackCountRecord record = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patients.getPid())).with(new Sort(Sort.Direction.DESC, | |
| 949 | + "created")), TrackCountRecord.class); | |
| 950 | + if (record != null) | |
| 951 | + { | |
| 952 | + record.setTrackStatus(record.getTrackStatus() == null ? 1 : record.getTrackStatus() + 1); | |
| 953 | + Query query = Query.query(Criteria.where("_id").is(record.getId())); | |
| 954 | + Update update = MongoConvertHelper | |
| 955 | + .convertToNativeUpdate(ReflectionUtils.getUpdateField(record)); | |
| 956 | + mongoTemplate.updateFirst(query, update, TrackCountRecord.class); | |
| 957 | + } | |
| 958 | + } | |
| 934 | 959 | } |
| 935 | 960 | |
| 936 | 961 | /** |