SearchItemAggregate.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.diagbot.aggregate;
  2. import com.diagbot.dto.LisResult;
  3. import com.diagbot.dto.PacsResult;
  4. import com.diagbot.enums.FeatureTypeEnum;
  5. import com.diagbot.enums.SysTypeEnum;
  6. import com.diagbot.facade.TransferFacade;
  7. import com.diagbot.util.ListUtil;
  8. import com.diagbot.util.StringUtil;
  9. import com.diagbot.vo.SearchVo;
  10. import io.github.lvyahui8.spring.annotation.DataConsumer;
  11. import io.github.lvyahui8.spring.annotation.DataProvider;
  12. import io.github.lvyahui8.spring.annotation.InvokeParameter;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Component;
  16. import java.util.List;
  17. /**
  18. * @Description:
  19. * @Author:zhaops
  20. * @time: 2019/11/14 16:11
  21. */
  22. @Component
  23. public class SearchItemAggregate {
  24. @Autowired
  25. private TransferFacade transferFacade;
  26. @DataProvider("assembleSearchData")
  27. public SearchVo assembleSearchData(@InvokeParameter("searchVo") SearchVo searchVo,
  28. @InvokeParameter("isConnect") Boolean isConnect,
  29. @DataConsumer("setLisArr") List<LisResult> lisArr,
  30. @DataConsumer("setPacsStr") String pacs,
  31. @DataConsumer("setDiag") String diag,
  32. @DataConsumer("setDiseaseName") String diseaseName,
  33. @DataConsumer("setLisOrder") String lisOrder,
  34. @DataConsumer("setPacsOrder") String pacsOrder) {
  35. if (isConnect) {
  36. //化验转公表项处理
  37. searchVo.setLisArr(lisArr);
  38. //下面转换仅限数据引擎模式
  39. if (searchVo.getSysType().equals(SysTypeEnum.LTAPI_SERVICE.getKey())) {
  40. //辅检预处理
  41. searchVo.setPacs(pacs);
  42. //诊断预处理
  43. searchVo.setDiag(diag);
  44. //治疗方案诊断转换
  45. searchVo.setDiseaseName(diseaseName);
  46. //化验开单项
  47. searchVo.setLisOrder(lisOrder);
  48. //辅检开单项
  49. searchVo.setPacsOrder(pacsOrder);
  50. }
  51. }
  52. return searchVo;
  53. }
  54. /**
  55. * 化验增加公表项
  56. *
  57. * @param searchVo
  58. * @return
  59. */
  60. @DataProvider("setLisArr")
  61. public List<LisResult> setLisArr(@InvokeParameter("searchVo") SearchVo searchVo) {
  62. List<LisResult> lisArr = searchVo.getLisArr();
  63. lisArr = transferFacade.addLisUniqueName(lisArr, searchVo.getHosCode());
  64. return lisArr;
  65. }
  66. /**
  67. * 辅检转内部项目名称
  68. *
  69. * @param searchVo
  70. * @return
  71. */
  72. @DataProvider("setPacsStr")
  73. public String setPacsStr(@InvokeParameter("searchVo") SearchVo searchVo) {
  74. String pacs = "";
  75. if (StringUtil.isNotBlank(searchVo.getPacs())) {
  76. pacs += searchVo.getPacs() + ";";
  77. }
  78. List<PacsResult> pacsArr = searchVo.getPacsArr();
  79. if (ListUtil.isNotEmpty(pacsArr)) {
  80. List<PacsResult> convertPacsArr = transferFacade.addPacsUniqueName(pacsArr, searchVo.getHosCode());
  81. for (PacsResult pacsResult : convertPacsArr) {
  82. String pacsResultString = "";
  83. if (StringUtils.isNotBlank(pacsResult.getUniqueName())) {
  84. pacsResultString = pacsResult.getUniqueName() + ":";
  85. } else {
  86. pacsResultString = pacsResult.getName() + ":";
  87. }
  88. pacsResultString += pacsResult.getResult() + ";";
  89. pacs += pacsResultString;
  90. }
  91. }
  92. return pacs;
  93. }
  94. /**
  95. * 诊断转内部名称
  96. *
  97. * @param searchVo
  98. * @return
  99. */
  100. @DataProvider("setDiag")
  101. public String setDiag(@InvokeParameter("searchVo") SearchVo searchVo) {
  102. String diag = "";
  103. if (StringUtil.isNotBlank(searchVo.getDiag())) {
  104. diag = transferFacade.strConvert(searchVo.getDiag(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey());
  105. }
  106. return diag;
  107. }
  108. /**
  109. * 获取治疗方案诊断转内部名称
  110. *
  111. * @param searchVo
  112. * @return
  113. */
  114. @DataProvider("setDiseaseName")
  115. public String setDiseaseName(@InvokeParameter("searchVo") SearchVo searchVo) {
  116. String diseaseName = "";
  117. if (StringUtil.isNotBlank(searchVo.getDiseaseName())) {
  118. diseaseName = transferFacade.strConvert(searchVo.getDiseaseName(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Disease.getKey());
  119. }
  120. return diseaseName;
  121. }
  122. /**
  123. * 化验开单项映射公表名称
  124. *
  125. * @param searchVo
  126. * @return
  127. */
  128. @DataProvider("setLisOrder")
  129. public String setLisOrder(@InvokeParameter("searchVo") SearchVo searchVo) {
  130. String lisOrder = "";
  131. if (StringUtil.isNotBlank(searchVo.getLisOrder())) {
  132. lisOrder = transferFacade.strConvert(searchVo.getLisOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Lis.getKey());
  133. }
  134. return lisOrder;
  135. }
  136. /**
  137. * 辅检开单项转内部项目名称
  138. *
  139. * @param searchVo
  140. * @return
  141. */
  142. @DataProvider("setPacsOrder")
  143. public String setPacsOrder(@InvokeParameter("searchVo") SearchVo searchVo) {
  144. String pacsOrder = "";
  145. if (StringUtil.isNotBlank(searchVo.getPacsOrder())) {
  146. pacsOrder = transferFacade.strConvert(searchVo.getPacsOrder(), searchVo.getHosCode(), FeatureTypeEnum.Feature_Type_Pacs.getKey());
  147. }
  148. return pacsOrder;
  149. }
  150. }