ProfileBasicService.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package com.yihu.ehr.profile.service;
  2. import com.yihu.ehr.profile.family.ResourceCells;
  3. import com.yihu.ehr.profile.feign.CDADocumentClient;
  4. import com.yihu.ehr.profile.feign.ResourceClient;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.util.StringUtils;
  8. import java.util.*;
  9. /**
  10. * @author progr1mmer
  11. * @date Created on 2018/5/31.
  12. */
  13. public abstract class ProfileBasicService {
  14. @Value("${spring.application.id}")
  15. protected String appId;
  16. @Autowired
  17. protected ResourceClient resource;
  18. @Autowired
  19. protected RedisService redisService;
  20. @Autowired
  21. protected CDADocumentClient cdaService;
  22. protected Map<String, Object> simpleEvent (Map<String, Object> detailsEvent, String searchParam) {
  23. Map<String, Object> simpleEvent = new HashMap<>();
  24. simpleEvent.put("profileId", detailsEvent.get(ResourceCells.ROWKEY));
  25. simpleEvent.put("orgCode", detailsEvent.get(ResourceCells.ORG_CODE));
  26. simpleEvent.put("orgName", detailsEvent.get(ResourceCells.ORG_NAME));
  27. simpleEvent.put("demographicId", detailsEvent.get(ResourceCells.DEMOGRAPHIC_ID));
  28. simpleEvent.put("cdaVersion", detailsEvent.get(ResourceCells.CDA_VERSION));
  29. simpleEvent.put("eventDate", detailsEvent.get(ResourceCells.EVENT_DATE));
  30. simpleEvent.put("profileType", detailsEvent.get(ResourceCells.PROFILE_TYPE));
  31. simpleEvent.put("eventType", detailsEvent.get(ResourceCells.EVENT_TYPE));
  32. simpleEvent.put("eventNo", detailsEvent.get(ResourceCells.EVENT_NO));
  33. //诊断名称
  34. String healthProblemName = "";
  35. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.DIAGNOSIS_NAME))) {
  36. healthProblemName = ((String) detailsEvent.get(ResourceCells.DIAGNOSIS_NAME)).replaceAll(";", "、");
  37. } else if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.DIAGNOSIS))) {
  38. String [] diagnosisCode = ((String) detailsEvent.get(ResourceCells.DIAGNOSIS)).split(";");
  39. for (String code : diagnosisCode) {
  40. String name = redisService.getIcd10Name(code);
  41. if (!StringUtils.isEmpty(name)) {
  42. healthProblemName += name + "、";
  43. }
  44. }
  45. } else if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.HEALTH_PROBLEM_NAME))) {
  46. healthProblemName = ((String) detailsEvent.get(ResourceCells.HEALTH_PROBLEM_NAME)).replaceAll(";", "、");
  47. } else if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.HEALTH_PROBLEM))) {
  48. String [] _hpCode = ((String) detailsEvent.get(ResourceCells.HEALTH_PROBLEM)).split(";");
  49. for (String code : _hpCode) {
  50. String name = redisService.getHealthProblem(code);
  51. if (!StringUtils.isEmpty(name)) {
  52. healthProblemName += name + "、";
  53. }
  54. }
  55. }
  56. simpleEvent.put("healthProblemName", healthProblemName);
  57. if (!StringUtils.isEmpty(searchParam)) {
  58. Set<String> searchSet = new HashSet<>();
  59. //诊断检索数据
  60. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.DIAGNOSIS_NAME))) {
  61. String [] data = detailsEvent.get(ResourceCells.DIAGNOSIS_NAME).toString().split(";");
  62. for (String datum : data) {
  63. searchSet.add(datum);
  64. }
  65. }
  66. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.DIAGNOSIS))) {
  67. String [] data = detailsEvent.get(ResourceCells.DIAGNOSIS).toString().split(";");
  68. for (String datum : data) {
  69. String name = redisService.getIcd10Name(datum);
  70. if (!StringUtils.isEmpty(name)) {
  71. searchSet.add(name);
  72. }
  73. }
  74. }
  75. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.HEALTH_PROBLEM_NAME))) {
  76. String [] data = detailsEvent.get(ResourceCells.HEALTH_PROBLEM_NAME).toString().split(";");
  77. for (String datum : data) {
  78. searchSet.add(datum);
  79. }
  80. }
  81. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.HEALTH_PROBLEM))) {
  82. String [] data = detailsEvent.get(ResourceCells.HEALTH_PROBLEM).toString().split(";");
  83. for (String datum : data) {
  84. String name = redisService.getHealthProblem(datum);
  85. if (!StringUtils.isEmpty(name)) {
  86. searchSet.add(name);
  87. }
  88. }
  89. }
  90. String orgName = "";
  91. if (!StringUtils.isEmpty(detailsEvent.get(ResourceCells.ORG_NAME))) {
  92. orgName = (String) detailsEvent.get(ResourceCells.ORG_NAME);
  93. }
  94. String disease = org.apache.commons.lang3.StringUtils.join(searchSet.toArray(),";");
  95. if (disease.contains(searchParam) || orgName.contains(searchParam)) {
  96. return simpleEvent;
  97. } else {
  98. return null;
  99. }
  100. }
  101. return simpleEvent;
  102. }
  103. }