Commit 4e6225293f42458b9c6965c69b7efd67ea1e13d1
1 parent
8a952a6865
Exists in
master
and in
6 other branches
产检当天无法出结果的辅助检查项,有结果时自动写入产检报告页面
Showing 1 changed file with 270 additions and 1 deletions
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/LisServiceImpl.java
View file @
4e62252
| 1 | 1 | package com.lyms.platform.permission.service.impl; |
| 2 | 2 | |
| 3 | +import com.lyms.platform.biz.service.AntenatalExaminationService; | |
| 4 | +import com.lyms.platform.biz.service.PatientsService; | |
| 3 | 5 | import com.lyms.platform.common.constants.ErrorCodeConstants; |
| 6 | +import com.lyms.platform.common.enums.YnEnums; | |
| 4 | 7 | import com.lyms.platform.common.result.BaseResponse; |
| 5 | 8 | import com.lyms.platform.common.utils.JsonUtil; |
| 6 | 9 | import com.lyms.platform.permission.DataAccessLayerService; |
| 7 | 10 | |
| ... | ... | @@ -9,7 +12,16 @@ |
| 9 | 12 | import com.lyms.platform.permission.model.LisReportModel; |
| 10 | 13 | import com.lyms.platform.permission.model.LisReportQuery; |
| 11 | 14 | import com.lyms.platform.permission.service.LisService; |
| 15 | +import com.lyms.platform.permission.service.OrganizationService; | |
| 16 | +import com.lyms.platform.pojo.AntExChuModel; | |
| 17 | +import com.lyms.platform.pojo.AntenatalExaminationModel; | |
| 12 | 18 | import com.lyms.platform.pojo.BasicConfig; |
| 19 | +import com.lyms.platform.pojo.Patients; | |
| 20 | +import com.lyms.platform.query.AntExChuQuery; | |
| 21 | +import com.lyms.platform.query.AntExQuery; | |
| 22 | +import com.lyms.platform.query.PatientsQuery; | |
| 23 | +import net.sf.json.JSONArray; | |
| 24 | +import net.sf.json.JSONObject; | |
| 13 | 25 | import org.apache.commons.collections.CollectionUtils; |
| 14 | 26 | import org.codehaus.jackson.type.TypeReference; |
| 15 | 27 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -28,7 +40,12 @@ |
| 28 | 40 | |
| 29 | 41 | @Autowired |
| 30 | 42 | private MasterLisMapper masterLisMapper; |
| 31 | - | |
| 43 | + @Autowired | |
| 44 | + private AntenatalExaminationService antExService; | |
| 45 | + @Autowired | |
| 46 | + private PatientsService patientsService; | |
| 47 | + @Autowired | |
| 48 | + private OrganizationService organizationService; | |
| 32 | 49 | @Override |
| 33 | 50 | public BaseResponse saveLisData(final List<LisReportModel> lisList,ThreadPoolTaskExecutor commonThreadPool) { |
| 34 | 51 | try { |
| ... | ... | @@ -129,6 +146,16 @@ |
| 129 | 146 | try { |
| 130 | 147 | masterLisMapper.deleteLisData(model); |
| 131 | 148 | masterLisMapper.saveLisData(model); |
| 149 | + | |
| 150 | + //临时用一下,未确定使用查询方式 | |
| 151 | + LisReportQuery lisReportQuery = new LisReportQuery(); | |
| 152 | + lisReportQuery.setLisId(model.getLisId()); | |
| 153 | + lisReportQuery.setVcCardNo(model.getVcCardNo()); | |
| 154 | + lisReportQuery.setHospitalId(model.getHospitalId()); | |
| 155 | + | |
| 156 | + List<LisReportModel> lisReportModels = masterLisMapper.queryLisDataByModel(lisReportQuery); | |
| 157 | + saveLisUpdateData(lisReportModels.get(0)); | |
| 158 | + | |
| 132 | 159 | } catch (Exception e) |
| 133 | 160 | { |
| 134 | 161 | continue; |
| ... | ... | @@ -137,6 +164,248 @@ |
| 137 | 164 | } |
| 138 | 165 | countDownLatch.countDown(); |
| 139 | 166 | } |
| 167 | + } | |
| 168 | + | |
| 169 | + /** | |
| 170 | + * 根据孕妇,修改检查项为空,检查项结果 | |
| 171 | + * @param model | |
| 172 | + */ | |
| 173 | + private void saveLisUpdateData(LisReportModel model) { | |
| 174 | + | |
| 175 | + //1获取孕妇pid | |
| 176 | + PatientsQuery patientsQuery = new PatientsQuery(); | |
| 177 | + patientsQuery.setHospitalId(model.getHospitalId()); | |
| 178 | + patientsQuery.setVcCardNo(model.getVcCardNo()); | |
| 179 | + patientsQuery.setName(model.getName()); | |
| 180 | + patientsQuery.setSort("created"); | |
| 181 | + List<Patients> list = patientsService.queryPatient(patientsQuery); | |
| 182 | + Patients patients = list.get(list.size()-1); | |
| 183 | + | |
| 184 | + //2 判断更新初诊还是复诊 | |
| 185 | + AntExQuery antExQuery = new AntExQuery(); | |
| 186 | + antExQuery.setYn(YnEnums.YES.getId()); | |
| 187 | + antExQuery.setParentId(patients.getId()); | |
| 188 | + List<AntenatalExaminationModel> AntenatalExaminationModels = antExService.queryAntenatalExamination(antExQuery.convertToQuery()); //复诊记录 | |
| 189 | + if (CollectionUtils.isEmpty(AntenatalExaminationModels)){ | |
| 190 | + AntExChuQuery antExChuQuery = new AntExChuQuery(); | |
| 191 | + antExChuQuery.setYn(YnEnums.YES.getId()); | |
| 192 | + antExChuQuery.setParentId(patients.getId()); | |
| 193 | + List<AntExChuModel> antExChuModels = antExService.queryAntExChu(antExChuQuery);//初诊记录 | |
| 194 | + if (CollectionUtils.isNotEmpty(antExChuModels)) { | |
| 195 | + AntExChuModel antExChuModel = antExChuModels.get(antExChuModels.size() - 1); | |
| 196 | + AntExChuModel antExChuModel1 = new AntExChuModel(); | |
| 197 | + //3 更新初诊记录 | |
| 198 | + antExChuModelUpadte(model, antExChuModel, antExChuModel1); | |
| 199 | + antExService.updateAntExChu(antExChuModel1,antExChuModel.getId()); | |
| 200 | + } | |
| 201 | + }else { | |
| 202 | + AntenatalExaminationModel antenatalExaminationModel= AntenatalExaminationModels.get(AntenatalExaminationModels.size() - 1); | |
| 203 | + AntenatalExaminationModel antenatalExaminationModel1 = new AntenatalExaminationModel(); | |
| 204 | + //3 更新复诊记录 | |
| 205 | + fuZhenUpdate(model, antenatalExaminationModel, antenatalExaminationModel1); | |
| 206 | + antExService.updateOneAnt(antenatalExaminationModel1,antenatalExaminationModel.getId()); | |
| 207 | + } | |
| 208 | + } | |
| 209 | + | |
| 210 | + /** | |
| 211 | + * 更新复诊记录 | |
| 212 | + * @param model | |
| 213 | + * @param antenatalExaminationModel | |
| 214 | + * @param antenatalExaminationModel1 | |
| 215 | + */ | |
| 216 | + private void fuZhenUpdate(LisReportModel model, AntenatalExaminationModel antenatalExaminationModel, AntenatalExaminationModel antenatalExaminationModel1) { | |
| 217 | + if("".equals(antenatalExaminationModel.getHemoglobin()) || antenatalExaminationModel.getHemoglobin()==null){ | |
| 218 | + antenatalExaminationModel1.setHemoglobin(getCodeValue(model, "HGB")); //血红蛋白 | |
| 219 | + } | |
| 220 | + if("".equals(antenatalExaminationModel.getUrineProtein()) || antenatalExaminationModel.getUrineProtein()==null){ | |
| 221 | + antenatalExaminationModel1.setUrineProtein(getCodeValue(model, "PRO")); //尿蛋白 | |
| 222 | + } | |
| 223 | + | |
| 224 | + if("".equals(antenatalExaminationModel.getTtita()) || antenatalExaminationModel.getTtita()==null){ | |
| 225 | + antenatalExaminationModel1.setTtita(getCodeValue(model, "T3")); // 总三碘甲状腺原氨酸(TT3) | |
| 226 | + } | |
| 227 | + if("".equals(antenatalExaminationModel.getTotalThy()) || antenatalExaminationModel.getTotalThy()==null){ | |
| 228 | + antenatalExaminationModel1.setTotalThy(getCodeValue(model, "T4")); // //总甲状腺素(TT4) | |
| 229 | + } | |
| 230 | + if("".equals(antenatalExaminationModel.getFtita()) || antenatalExaminationModel.getFtita()==null){ | |
| 231 | + antenatalExaminationModel1.setFtita(getCodeValue(model, "FT3")); // //游离三碘甲状腺原氨酸(FT3) | |
| 232 | + } | |
| 233 | + if("".equals(antenatalExaminationModel.getFreeThy()) || antenatalExaminationModel.getFreeThy()==null){ | |
| 234 | + antenatalExaminationModel1.setFreeThy(getCodeValue(model, "FT4")); //游离甲状腺素(FT4) | |
| 235 | + } | |
| 236 | + if("".equals(antenatalExaminationModel.getPta()) || antenatalExaminationModel.getPta()==null){ | |
| 237 | + antenatalExaminationModel1.setPta(getCodeValue(model, "PT")); //凝血酶原活动度(PT%) | |
| 238 | + } | |
| 239 | + if("".equals(antenatalExaminationModel.getActPar()) || antenatalExaminationModel.getActPar()==null){ | |
| 240 | + antenatalExaminationModel1.setActPar(getCodeValue(model, "APTT")); //活化部分凝血活酶时间(APTT) | |
| 241 | + } | |
| 242 | + if("".equals(antenatalExaminationModel.getThrTime()) || antenatalExaminationModel.getThrTime()==null){ | |
| 243 | + antenatalExaminationModel1.setThrTime(getCodeValue(model, "TT")); //凝血酶时间(TT) | |
| 244 | + } | |
| 245 | + if("".equals(antenatalExaminationModel.getFibrin()) || antenatalExaminationModel.getFibrin()==null){ | |
| 246 | + antenatalExaminationModel1.setFibrin(getCodeValue(model, "FIB")); //纤维蛋白原(FIB) | |
| 247 | + } | |
| 248 | + | |
| 249 | + if("".equals(antenatalExaminationModel.getDimer()) || antenatalExaminationModel.getDimer()==null){ | |
| 250 | + antenatalExaminationModel1.setDimer(getCodeValue(model, "D-Dimer")); //D-二聚体(D-Dimer) | |
| 251 | + } | |
| 252 | + | |
| 253 | + if("".equals(antenatalExaminationModel.getTotalChol()) || antenatalExaminationModel.getTotalChol()==null){ | |
| 254 | + antenatalExaminationModel1.setTotalChol(getCodeValue(model, "TC")); //总胆固醇(TC) | |
| 255 | + } | |
| 256 | + if("".equals(antenatalExaminationModel.getTricer()) || antenatalExaminationModel.getTricer()==null){ | |
| 257 | + antenatalExaminationModel1.setTricer(getCodeValue(model, "TG")); //甘油三酯(TG) | |
| 258 | + } | |
| 259 | + if("".equals(antenatalExaminationModel.getHighDens()) || antenatalExaminationModel.getHighDens()==null){ | |
| 260 | + antenatalExaminationModel1.setHighDens(getCodeValue(model, "HDL-C")); //高密度脂蛋白胆固醇(HDL-C) | |
| 261 | + } | |
| 262 | + if("".equals(antenatalExaminationModel.getLowDens()) || antenatalExaminationModel.getLowDens()==null){ | |
| 263 | + antenatalExaminationModel1.setLowDens(getCodeValue(model, "LDL-C")); //低密度脂蛋白胆固醇(LDL-C) | |
| 264 | + } | |
| 265 | + | |
| 266 | + } | |
| 267 | + | |
| 268 | + /** | |
| 269 | + * 更新初诊记录 | |
| 270 | + * @param model | |
| 271 | + * @param antExChuModel | |
| 272 | + * @param antExChuModel1 | |
| 273 | + */ | |
| 274 | + private void antExChuModelUpadte(LisReportModel model, AntExChuModel antExChuModel, AntExChuModel antExChuModel1) { | |
| 275 | + if("".equals(antExChuModel.getXhdb()) || antExChuModel.getXhdb()==null){//血红蛋白 | |
| 276 | + antExChuModel1.setXhdb(getCodeValue(model, "HGB")); | |
| 277 | + } | |
| 278 | + if("".equals(antExChuModel.getBxbjs()) || antExChuModel.getBxbjs()==null){//白细胞计数 | |
| 279 | + antExChuModel1.setBxbjs(getCodeValue(model, "WBC")); | |
| 280 | + } | |
| 281 | + if("".equals(antExChuModel.getPlatelet()) || antExChuModel.getPlatelet()==null){//血小板 | |
| 282 | + antExChuModel1.setPlatelet(getCodeValue(model, "PLT")); | |
| 283 | + } | |
| 284 | + if("".equals(antExChuModel.getNdb()) || antExChuModel.getNdb()==null){//尿蛋白 | |
| 285 | + antExChuModel1.setNdb(getCodeValue(model, "PRO")); | |
| 286 | + } | |
| 287 | + | |
| 288 | + if("".equals(antExChuModel.getUrineKetone()) || antExChuModel.getUrineKetone()==null){//尿酮体 | |
| 289 | + antExChuModel1.setUrineKetone(getCodeValue(model, "KET")); | |
| 290 | + } | |
| 291 | + if("".equals(antExChuModel.getBld()) || antExChuModel.getBld()==null){//尿潜血 | |
| 292 | + antExChuModel1.setBld(getCodeValue(model, "BLD")); | |
| 293 | + } | |
| 294 | + if("".equals(antExChuModel.getAbo()) || antExChuModel.getAbo()==null){//血型 | |
| 295 | + antExChuModel1.setAbo(getCodeValue(model, "ABO")); | |
| 296 | + } | |
| 297 | + if("".equals(antExChuModel.getRh()) || antExChuModel.getRh()==null){//RH血型 | |
| 298 | + antExChuModel1.setRh(getCodeValue(model, "RH")); | |
| 299 | + } | |
| 300 | + if("".equals(antExChuModel.getBloodSugar()) || antExChuModel.getBloodSugar()==null){//血糖 | |
| 301 | + antExChuModel1.setBloodSugar(getCodeValue(model, "GLU")); | |
| 302 | + } | |
| 303 | + if("".equals(antExChuModel.getXqgbzam()) || antExChuModel.getXqgbzam()==null){//血清谷丙转氨酶 | |
| 304 | + antExChuModel1.setXqgbzam(getCodeValue(model, "ALT")); | |
| 305 | + } | |
| 306 | + if("".equals(antExChuModel.getXqgczam()) || antExChuModel.getXqgczam()==null){//血清谷草转氨酶 | |
| 307 | + antExChuModel1.setXqgczam(getCodeValue(model, "AST")); | |
| 308 | + } | |
| 309 | + | |
| 310 | + if("".equals(antExChuModel.getAlbumin()) || antExChuModel.getAlbumin()==null){//白蛋白 | |
| 311 | + antExChuModel1.setAlbumin(getCodeValue(model, "ALB")); | |
| 312 | + } | |
| 313 | + if("".equals(antExChuModel.getTotalBilirubin()) || antExChuModel.getTotalBilirubin()==null){//总胆红素 | |
| 314 | + antExChuModel1.setTotalBilirubin(getCodeValue(model, "TBIL")); | |
| 315 | + } | |
| 316 | + if("".equals(antExChuModel.getJhBilirubin()) || antExChuModel.getJhBilirubin()==null){//结合胆红素 | |
| 317 | + antExChuModel1.setJhBilirubin(getCodeValue(model, "DBIL")); | |
| 318 | + } | |
| 319 | + if("".equals(antExChuModel.getBg()) || antExChuModel.getBg()==null){//丙肝 | |
| 320 | + antExChuModel1.setBg(getCodeValue(model, "HCV")); | |
| 321 | + } | |
| 322 | + if("".equals(antExChuModel.getYgbmky()) || antExChuModel.getYgbmky()==null){//乙肝表面抗原 | |
| 323 | + antExChuModel1.setYgbmky(getCodeValue(model, "HBsAg")); | |
| 324 | + } | |
| 325 | + if("".equals(antExChuModel.getYgbmkt()) || antExChuModel.getYgbmkt()==null){//乙肝表面抗体 | |
| 326 | + antExChuModel1.setYgbmkt(getCodeValue(model, "HBsAb")); | |
| 327 | + } | |
| 328 | + if("".equals(antExChuModel.getYgeky()) || antExChuModel.getYgeky()==null){//乙肝e抗原 | |
| 329 | + antExChuModel1.setYgeky(getCodeValue(model, "HBeAg")); | |
| 330 | + } | |
| 331 | + if("".equals(antExChuModel.getYgekt()) || antExChuModel.getYgekt()==null){//乙肝e抗体 | |
| 332 | + antExChuModel1.setYgekt(getCodeValue(model, "HBeAb")); | |
| 333 | + } | |
| 334 | + if("".equals(antExChuModel.getYghxkt()) || antExChuModel.getYghxkt()==null){//乙肝核心抗体 | |
| 335 | + antExChuModel1.setYghxkt(getCodeValue(model, "HBcAb")); | |
| 336 | + } | |
| 337 | + if("".equals(antExChuModel.getXqjq()) || antExChuModel.getXqjq()==null){//血清肌 | |
| 338 | + antExChuModel1.setXqjq(getCodeValue(model, "CRE")); | |
| 339 | + } | |
| 340 | + if("".equals(antExChuModel.getXnsd()) || antExChuModel.getXnsd()==null){//血尿素氮 | |
| 341 | + antExChuModel1.setXnsd(getCodeValue(model, "UREA")); | |
| 342 | + } | |
| 343 | + if("".equals(antExChuModel.getSyjg()) || antExChuModel.getSyjg()==null){//实验结果 | |
| 344 | + antExChuModel1.setSyjg(getCodeValue(model, "TP1")); | |
| 345 | + } | |
| 346 | + if("".equals(antExChuModel.getHivkt()) || antExChuModel.getHivkt()==null){//hit抗体检测 | |
| 347 | + antExChuModel1.setHivkt(getCodeValue(model, "HIV1")); | |
| 348 | + } | |
| 349 | + | |
| 350 | + if("".equals(antExChuModel.getYdqjd()) || antExChuModel.getYdqjd()==null){//阴道清洁度 | |
| 351 | + antExChuModel1.setYdqjd(getCodeValue(model, "QJD")); | |
| 352 | + } | |
| 353 | + if("".equals(antExChuModel.getTtita()) || antExChuModel.getTtita()==null){ | |
| 354 | + antExChuModel1.setTtita(getCodeValue(model, "T3")); // 总三碘甲状腺原氨酸(TT3) | |
| 355 | + } | |
| 356 | + if("".equals(antExChuModel.getTotalThy()) || antExChuModel.getTotalThy()==null){ | |
| 357 | + antExChuModel1.setTotalThy(getCodeValue(model, "T4")); //总甲状腺素(TT4) | |
| 358 | + } | |
| 359 | + if("".equals(antExChuModel.getFtita()) || antExChuModel.getFtita()==null){ | |
| 360 | + antExChuModel1.setFtita(getCodeValue(model, "FT3")); // //游离三碘甲状腺原氨酸(FT3) | |
| 361 | + } | |
| 362 | + if("".equals(antExChuModel.getFreeThy()) || antExChuModel.getFreeThy()==null){ | |
| 363 | + antExChuModel1.setFreeThy(getCodeValue(model, "FT4")); //游离甲状腺素(FT4) | |
| 364 | + } | |
| 365 | + if("".equals(antExChuModel.getPta()) || antExChuModel.getPta()==null){ | |
| 366 | + antExChuModel1.setPta(getCodeValue(model, "PT")); //凝血酶原活动度(PT%) | |
| 367 | + } | |
| 368 | + if("".equals(antExChuModel.getActPar()) || antExChuModel.getActPar()==null){ | |
| 369 | + antExChuModel1.setActPar(getCodeValue(model, "APTT")); //活化部分凝血活酶时间(APTT) | |
| 370 | + } | |
| 371 | + if("".equals(antExChuModel.getThrTime()) || antExChuModel.getThrTime()==null){ | |
| 372 | + antExChuModel1.setThrTime(getCodeValue(model, "TT")); //凝血酶时间(TT) | |
| 373 | + } | |
| 374 | + if("".equals(antExChuModel.getFibrin()) || antExChuModel.getFibrin()==null){ | |
| 375 | + antExChuModel1.setFibrin(getCodeValue(model, "FIB")); //纤维蛋白原(FIB) | |
| 376 | + } | |
| 377 | + | |
| 378 | + if("".equals(antExChuModel.getDimer()) || antExChuModel.getDimer()==null){ | |
| 379 | + antExChuModel1.setDimer(getCodeValue(model, "D-Dimer")); //D-二聚体(D-Dimer) | |
| 380 | + } | |
| 381 | + | |
| 382 | + if("".equals(antExChuModel.getTotalChol()) || antExChuModel.getTotalChol()==null){ | |
| 383 | + antExChuModel1.setTotalChol(getCodeValue(model, "TC")); //总胆固醇(TC) | |
| 384 | + } | |
| 385 | + if("".equals(antExChuModel.getTricer()) || antExChuModel.getTricer()==null){ | |
| 386 | + antExChuModel1.setTricer(getCodeValue(model, "TG")); //甘油三酯(TG) | |
| 387 | + } | |
| 388 | + if("".equals(antExChuModel.getHighDens()) || antExChuModel.getHighDens()==null){ | |
| 389 | + antExChuModel1.setHighDens(getCodeValue(model, "HDL-C")); //高密度脂蛋白胆固醇(HDL-C) | |
| 390 | + } | |
| 391 | + if("".equals(antExChuModel.getLowDens()) || antExChuModel.getLowDens()==null){ | |
| 392 | + antExChuModel1.setLowDens(getCodeValue(model, "LDL-C")); //低密度脂蛋白胆固醇(LDL-C) | |
| 393 | + } | |
| 394 | + | |
| 395 | + } | |
| 396 | + | |
| 397 | + | |
| 398 | + private String getCodeValue(LisReportModel model, String codeStr) { | |
| 399 | + JSONArray jsonArray=JSONArray.fromObject(model.getItemJson()); | |
| 400 | + for (int i = 0; i < jsonArray.size(); i++) { | |
| 401 | + Object o=jsonArray.get(i); | |
| 402 | + JSONObject jsonObject2=JSONObject.fromObject(o); | |
| 403 | + String code = (String)jsonObject2.get("code"); | |
| 404 | + if (code.equals(codeStr)){ | |
| 405 | + return (String)jsonObject2.get("result"); | |
| 406 | + } | |
| 407 | + } | |
| 408 | + return null; | |
| 140 | 409 | } |
| 141 | 410 | } |