Commit 9f0093b8e58fb0db63465e3aaadf37db6135d990

Authored by [wangbo]
1 parent 8b22f2e32b

产检页面诊断优化

Showing 12 changed files with 428 additions and 8 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java View file @ 9f0093b
... ... @@ -5407,6 +5407,52 @@
5407 5407 }
5408 5408 }
5409 5409  
  5410 +
  5411 + /**
  5412 + * 诊断因素
  5413 + */
  5414 + /*public static void zdyinshu(String fileName) {
  5415 + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:/spring/applicationContext_biz_patient1.xml");
  5416 + MongoTemplate mongoTemplate
  5417 + = (MongoTemplate) applicationContext.getBean("mongoTemplate");
  5418 + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray());
  5419 + File file = new File(fileName);
  5420 + Workbook wb = null;
  5421 + try {
  5422 + wb = Workbook.getWorkbook(file);
  5423 +
  5424 + Sheet s = wb.getSheet(0);
  5425 + System.out.println(s.getName() + " : ");
  5426 + int rows = s.getRows();
  5427 + if (rows > 0) {
  5428 + //遍历每行
  5429 + for (int i = 1; i < rows; i++) {
  5430 + System.out.println("rows=" + i);
  5431 + DiagnosisTestModel weightConfigModel = new DiagnosisTestModel();
  5432 +
  5433 + Cell[] cells = s.getRow(i);
  5434 + if (cells.length > 0) {
  5435 + for (int j = 0; j < cells.length; j++) {
  5436 + String str = cells[j].getContents().trim();
  5437 + switch (j) {
  5438 + case 0:
  5439 + weightConfigModel.setCoed(str);
  5440 + continue;
  5441 + case 1:
  5442 + weightConfigModel.setName(str);
  5443 + continue;
  5444 + }
  5445 + }
  5446 + }
  5447 + mongoTemplate.save(weightConfigModel);
  5448 + }
  5449 + }
  5450 + } catch (Exception e) {
  5451 + e.printStackTrace();
  5452 + }
  5453 + }*/
  5454 +
  5455 +
5410 5456 public static void main(String[] args) {
5411 5457 //weightWeek("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls");
5412 5458 // weightMange("F:\\体重与营养管理\\体重与营养管理第三版(北方)改标红“、冰淇淋”-晓萌.xls");
5413 5459  
5414 5460  
... ... @@ -5427,11 +5473,11 @@
5427 5473 //saveCdgwOrg("F:\\承德工位\\qhdorg.xls");
5428 5474 //babyReport("G:\\儿童膳食报告.xls");
5429 5475 // saveQhdbabyDiaginose("F:\\承德工位\\秦皇岛儿童诊断 - 副本.xls");
5430   - saveQhdWeight("F:\秦皇岛标准报告(1).xls");
  5476 + //saveQhdWeight("F:\秦皇岛标准报告(1).xls");
5431 5477  
5432   - dietaryIntake("F:\膳食摄入量推荐.xls");
  5478 + //dietaryIntake("F:\膳食摄入量推荐.xls");
5433 5479  
5434   -
  5480 + //zdyinshu("F:\\诊断因素.xls");
5435 5481 //saveQhdbabyDiaginose("F:\\承德工位\\秦皇岛儿童诊断 - 副本.xls");
5436 5482  
5437 5483  
5438 5484  
... ... @@ -5443,7 +5489,10 @@
5443 5489 // saveQhdWeight("F:\\text.xls");
5444 5490 // baby35Report("C:\\Users\\Administrator\\Desktop\\doc\\秦皇岛3-5月龄膳食报告\\3-5月龄儿童膳食报告内容.xls");
5445 5491 // baby35Report("C:\\Users\\Administrator\\Desktop\\doc\\秦皇岛3-5月龄膳食报告\\3-5月龄儿童膳食报告内容.xls");
  5492 +
  5493 +
5446 5494 }
  5495 +
5447 5496  
5448 5497 }
platform-common/src/main/java/com/lyms/platform/common/utils/ChinesePinYinUtil.java View file @ 9f0093b
  1 +package com.lyms.platform.common.utils;
  2 +
  3 +import net.sourceforge.pinyin4j.PinyinHelper;
  4 +import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  5 +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  6 +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  7 +import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
  8 +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  9 +
  10 +/**
  11 + * @author zk
  12 + * @Description: 中文拼音工具类
  13 + * @date 2018-05-21 14:52
  14 + */
  15 +public class ChinesePinYinUtil {
  16 + /**
  17 + * 得到 汉字的全拼
  18 + *
  19 + * @param src 中文字符串
  20 + * @return
  21 + */
  22 + public static String getPingYin(String src) {
  23 + HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
  24 + format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  25 + format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  26 + format.setVCharType(HanyuPinyinVCharType.WITH_V);
  27 + StringBuilder sb = new StringBuilder();
  28 + char[] srcArray = src.toCharArray();
  29 + try {
  30 + for (int i = 0; i < srcArray.length; i++) {
  31 + // 判断是否为汉字字符
  32 + if (java.lang.Character.toString(srcArray[i]).matches("[\\u4E00-\\u9FA5]+")) {
  33 + String[] targetArray = PinyinHelper.toHanyuPinyinStringArray(srcArray[i], format);
  34 + sb.append(targetArray[0]);
  35 + } else {
  36 + sb.append(java.lang.Character.toString(srcArray[i]));
  37 + }
  38 + }
  39 + return sb.toString();
  40 + } catch (BadHanyuPinyinOutputFormatCombination e1) {
  41 + e1.printStackTrace();
  42 + }
  43 + return sb.toString();
  44 + }
  45 +
  46 + /**
  47 + * 得到中文首字母,例如"专科"得到zk返回
  48 + *
  49 + * @param str 中文字符串
  50 + * @return
  51 + */
  52 + public static String getPinYinHeadChar(String str) {
  53 + StringBuilder sb = new StringBuilder();
  54 + for (int i = 0; i < str.length(); i++) {
  55 + char word = str.charAt(i);
  56 + String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
  57 + if (pinyinArray != null) {
  58 + sb.append(pinyinArray[0].charAt(0));
  59 + } else {
  60 + sb.append(word);
  61 + }
  62 + }
  63 + return sb.toString().toUpperCase();
  64 + }
  65 +
  66 + /**
  67 + * 将字符串转移为ASCII码
  68 + *
  69 + * @param cnStr 中文字符串
  70 + * @return
  71 + */
  72 + public static String getCnASCII(String cnStr) {
  73 + StringBuilder sb = new StringBuilder();
  74 + byte[] bGBK = cnStr.getBytes();
  75 + for (int i = 0; i < bGBK.length; i++) {
  76 + sb.append(Integer.toHexString(bGBK[i] & 0xff));
  77 + }
  78 + return sb.toString();
  79 + }
  80 +
  81 +
  82 + public static void main(String[] args) {
  83 + String cnStr = "孕次1次孕周7周";
  84 + System.out.println(getPingYin(cnStr));
  85 + System.out.println(getPinYinHeadChar(cnStr));
  86 + System.out.println(getCnASCII("专科"));
  87 + }
  88 +
  89 +
  90 +}
platform-dal/src/main/java/com/lyms/platform/pojo/AntExChuModel.java View file @ 9f0093b
... ... @@ -381,6 +381,11 @@
381 381 private String configItemId;
382 382  
383 383  
  384 + private String secondaryDiagnosisId;
  385 +
  386 + private String secondaryDiagnosis;
  387 +
  388 +
384 389 //甲状腺功能 添加
385 390 private String fTthree;
386 391  
... ... @@ -438,6 +443,22 @@
438 443 * 尿蛋白选项 其他 - 对应的值
439 444 */
440 445 private String ndbSelectOtherVal;
  446 +
  447 + public String getSecondaryDiagnosisId() {
  448 + return secondaryDiagnosisId;
  449 + }
  450 +
  451 + public void setSecondaryDiagnosisId(String secondaryDiagnosisId) {
  452 + this.secondaryDiagnosisId = secondaryDiagnosisId;
  453 + }
  454 +
  455 + public String getSecondaryDiagnosis() {
  456 + return secondaryDiagnosis;
  457 + }
  458 +
  459 + public void setSecondaryDiagnosis(String secondaryDiagnosis) {
  460 + this.secondaryDiagnosis = secondaryDiagnosis;
  461 + }
441 462  
442 463 public String getFuweiSelect() {
443 464 return fuweiSelect;
platform-dal/src/main/java/com/lyms/platform/pojo/AntenatalExaminationModel.java View file @ 9f0093b
... ... @@ -123,6 +123,13 @@
123 123 private String highriskDesc;
124 124 //诊断
125 125 private String diagnosis;
  126 +
  127 + //次要诊断
  128 + private String secondaryDiagnosisId;
  129 +
  130 + //次要诊断手入
  131 + private String secondaryDiagnosis;
  132 +
126 133 //分类
127 134 private String type;
128 135 private String typeYc;
129 136  
... ... @@ -334,9 +341,27 @@
334 341 */
335 342 private String ndbSelectOtherVal;
336 343  
  344 +
  345 + public String getSecondaryDiagnosisId() {
  346 + return secondaryDiagnosisId;
  347 + }
  348 +
  349 + public void setSecondaryDiagnosisId(String secondaryDiagnosisId) {
  350 + this.secondaryDiagnosisId = secondaryDiagnosisId;
  351 + }
  352 +
  353 + public String getSecondaryDiagnosis() {
  354 + return secondaryDiagnosis;
  355 + }
  356 +
  357 + public void setSecondaryDiagnosis(String secondaryDiagnosis) {
  358 + this.secondaryDiagnosis = secondaryDiagnosis;
  359 + }
  360 +
337 361 public String getFuweiSelect() {
338 362 return fuweiSelect;
339 363 }
  364 +
340 365  
341 366 public void setFuweiSelect(String fuweiSelect) {
342 367 this.fuweiSelect = fuweiSelect;
platform-dal/src/main/java/com/lyms/platform/pojo/DiagnosisTestModel.java View file @ 9f0093b
  1 +package com.lyms.platform.pojo;
  2 +
  3 +
  4 +import com.lyms.platform.common.result.BaseModel;
  5 +import org.springframework.data.mongodb.core.mapping.Document;
  6 +
  7 +@Document(collection = "lyms_diagnosis_text")
  8 +public class DiagnosisTestModel extends BaseModel {
  9 +
  10 + private String parentId;
  11 +
  12 + private String coed;
  13 +
  14 + private String name;
  15 +
  16 + private Integer enable;
  17 +
  18 + private String describe;
  19 +
  20 + private String color;
  21 +
  22 + private String type;
  23 +
  24 + private Integer yn;
  25 +
  26 + public String getParentId() {
  27 + return parentId;
  28 + }
  29 +
  30 + public void setParentId(String parentId) {
  31 + this.parentId = parentId;
  32 + }
  33 +
  34 + public String getCoed() {
  35 + return coed;
  36 + }
  37 +
  38 + public void setCoed(String coed) {
  39 + this.coed = coed;
  40 + }
  41 +
  42 + public String getName() {
  43 + return name;
  44 + }
  45 +
  46 + public void setName(String name) {
  47 + this.name = name;
  48 + }
  49 +
  50 + public Integer getEnable() {
  51 + return enable;
  52 + }
  53 +
  54 + public void setEnable(Integer enable) {
  55 + this.enable = enable;
  56 + }
  57 +
  58 + public String getDescribe() {
  59 + return describe;
  60 + }
  61 +
  62 + public void setDescribe(String describe) {
  63 + this.describe = describe;
  64 + }
  65 +
  66 + public String getColor() {
  67 + return color;
  68 + }
  69 +
  70 + public void setColor(String color) {
  71 + this.color = color;
  72 + }
  73 +
  74 + public String getType() {
  75 + return type;
  76 + }
  77 +
  78 + public void setType(String type) {
  79 + this.type = type;
  80 + }
  81 +
  82 + public Integer getYn() {
  83 + return yn;
  84 + }
  85 +
  86 + public void setYn(Integer yn) {
  87 + this.yn = yn;
  88 + }
  89 +}
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/AntenatalExaminationController.java View file @ 9f0093b
... ... @@ -461,5 +461,14 @@
461 461 return antExRecordFacade.querOne(loginState.getId(), pid);
462 462 }
463 463  
  464 + /***
  465 + * 临时添加
  466 + * */
  467 + /* @RequestMapping(value = "/zd", method = RequestMethod.GET)
  468 + @ResponseBody
  469 + public List<String> zd() {
  470 + return antExRecordFacade.zd();
  471 + }*/
  472 +
464 473 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyBuildController.java View file @ 9f0093b
... ... @@ -695,7 +695,5 @@
695 695 doc.save(response.getOutputStream(), SaveFormat.PDF);
696 696 }
697 697 }
698   -
699   -
700 698 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java View file @ 9f0093b
... ... @@ -23,6 +23,7 @@
23 23 import com.lyms.platform.pojo.*;
24 24 import com.lyms.platform.query.*;
25 25 import jdk.nashorn.internal.ir.LiteralNode;
  26 +import net.sourceforge.pinyin4j.PinyinHelper;
26 27 import org.apache.commons.collections.CollectionUtils;
27 28 import org.apache.commons.lang.math.NumberUtils;
28 29 import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -1009,6 +1010,50 @@
1009 1010  
1010 1011 }
1011 1012 }
  1013 + }
  1014 +
  1015 + /**
  1016 + * 临时
  1017 + */
  1018 + /* public List<String> zd() {
  1019 + List<String> list = new ArrayList<>();
  1020 + List<DiagnosisTestModel> list1 = mongoTemplate.findAll(DiagnosisTestModel.class);
  1021 + for (DiagnosisTestModel testModel : list1) {
  1022 + if (StringUtils.isNotEmpty(testModel.getName())) {
  1023 + BasicConfig basicConfig = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is("5768e5cf0cf2eaac7ba44a18").and("describe").is(testModel.getCoed()).and("name").is(testModel.getName())), BasicConfig.class);
  1024 + if (basicConfig == null) {
  1025 + BasicConfig diagnosisTest = new BasicConfig();
  1026 + diagnosisTest.setParentId("5768e5cf0cf2eaac7ba44a18");
  1027 + diagnosisTest.setCode(this.getPinYinHeadChar(testModel.getName()));
  1028 + diagnosisTest.setName(testModel.getName());
  1029 + diagnosisTest.setEnable(1);
  1030 + diagnosisTest.setDescribe(testModel.getCoed());
  1031 + diagnosisTest.setColor(testModel.getName());
  1032 + diagnosisTest.setYn(YnEnums.YES.getId());
  1033 + diagnosisTest.setType(77);//防止错误可以修好
  1034 + mongoTemplate.insert(diagnosisTest);
  1035 +
  1036 + list.add(testModel.getCoed());
  1037 + }
  1038 +
  1039 + }
  1040 + }
  1041 + return list;
  1042 + }*/
  1043 +
  1044 +
  1045 + public static String getPinYinHeadChar(String str) {
  1046 + StringBuilder sb = new StringBuilder();
  1047 + for (int i = 0; i < str.length(); i++) {
  1048 + char word = str.charAt(i);
  1049 + String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
  1050 + if (pinyinArray != null) {
  1051 + sb.append(pinyinArray[0].charAt(0));
  1052 + } else {
  1053 + sb.append(word);
  1054 + }
  1055 + }
  1056 + return sb.toString().toUpperCase();
1012 1057 }
1013 1058  
1014 1059  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java View file @ 9f0093b
... ... @@ -320,8 +320,6 @@
320 320  
321 321 isPatient = true;
322 322 }
323   -
324   -
325 323 if (downQueryRequest.getStartDueDate() != null) {//预产期开始日期
326 324 patientsQuery.setDueDateStart(downQueryRequest.getStartDueDate());
327 325 isPatient = true;
... ... @@ -402,6 +400,9 @@
402 400 }
403 401 if (downQueryRequest.getLevel() != null) {//高危等级
404 402 patientsQuery.setrLevel(downQueryRequest.getLevel());
  403 + //只查孕妇
  404 + patientsQuery.setType(1);
  405 + patientsQuery.setLastMensesStart(DateUtil.getMonth(10));//只查询当前时间十个月前的数据 考虑性能问题
405 406 isPatient = true;
406 407 }
407 408 if (downQueryRequest.getRiskFactorId() != null) {//高危因素
... ... @@ -1116,7 +1117,6 @@
1116 1117  
1117 1118  
1118 1119 }
1119   -
1120 1120  
1121 1121 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java View file @ 9f0093b
... ... @@ -1392,6 +1392,10 @@
1392 1392  
1393 1393 map.put("birthDefectTodo", data.getBirthDefectTodo());
1394 1394 map.put("diagnosisOther", data.getDiagnosisOther());
  1395 + //次要诊断手入
  1396 + map.put("secondaryDiagnosis", data.getSecondaryDiagnosis());
  1397 +
  1398 +
1395 1399 map.put("username", patients.getUsername());
1396 1400 map.put("birth", DateUtil.getyyyy_MM_dd(patients.getBirth()));
1397 1401 map.put("age", UnitUtils.unitSplice(DateUtil.getAge(patients.getBirth()), UnitConstants.SUI));
... ... @@ -2024,6 +2028,34 @@
2024 2028 }
2025 2029 }
2026 2030 map.put("diagnosis", diagnosis);
  2031 +
  2032 +
  2033 +
  2034 +
  2035 +
  2036 + /* 次要诊断次要 */
  2037 + String secondaryDiagnosisId = "";
  2038 + if (org.apache.commons.lang.StringUtils.isNotEmpty(data.getSecondaryDiagnosisId())) {
  2039 + List<String> temp = JsonUtil.toList(data.getSecondaryDiagnosisId(), String.class);
  2040 + if (CollectionUtils.isNotEmpty(temp)) {
  2041 +
  2042 + StringBuilder sb = new StringBuilder();
  2043 +
  2044 + for (String sId : temp) {
  2045 + sb.append(FunvCommonUtil.getBaseicConfigByid(sId, basicConfigService)).append(",");
  2046 + }
  2047 + if (sb.toString().endsWith(",")) {
  2048 + secondaryDiagnosisId = sb.substring(0, sb.length() - 1);
  2049 + } else {
  2050 + secondaryDiagnosisId = sb.toString();
  2051 + }
  2052 + }
  2053 + }
  2054 + map.put("secondaryDiagnosisId", secondaryDiagnosisId);
  2055 +
  2056 +
  2057 +
  2058 +
2027 2059 map.put("treatOpinion", data.getTreatOpinion());
2028 2060 map.put("dirOpinion", data.getDirOpinion());
2029 2061 map.put("quicken", QuickenEnums.getName(data.getQuicken()));
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExAddRequest.java View file @ 9f0093b
... ... @@ -110,6 +110,13 @@
110 110 private String highriskDesc;
111 111 //诊断
112 112 private List diagnosis;
  113 +
  114 + //次要诊断
  115 + private List<String> secondaryDiagnosisId;
  116 +
  117 + //次要诊断手入
  118 + private String secondaryDiagnosis;
  119 +
113 120 //分类
114 121 private String type;
115 122 //异常
... ... @@ -321,6 +328,23 @@
321 328  
322 329 private Integer screeningState;
323 330  
  331 +
  332 + public List<String> getSecondaryDiagnosisId() {
  333 + return secondaryDiagnosisId;
  334 + }
  335 +
  336 + public void setSecondaryDiagnosisId(List<String> secondaryDiagnosisId) {
  337 + this.secondaryDiagnosisId = secondaryDiagnosisId;
  338 + }
  339 +
  340 + public String getSecondaryDiagnosis() {
  341 + return secondaryDiagnosis;
  342 + }
  343 +
  344 + public void setSecondaryDiagnosis(String secondaryDiagnosis) {
  345 + this.secondaryDiagnosis = secondaryDiagnosis;
  346 + }
  347 +
324 348 public Integer getScreeningState() {
325 349 return screeningState;
326 350 }
... ... @@ -1093,6 +1117,11 @@
1093 1117 @Override
1094 1118 public AntenatalExaminationModel convertToDataModel() {
1095 1119 AntenatalExaminationModel examinationModel = new AntenatalExaminationModel();
  1120 + if (null != secondaryDiagnosisId) {
  1121 + examinationModel.setSecondaryDiagnosisId(JsonUtil.array2JsonString(secondaryDiagnosisId));
  1122 + }
  1123 + examinationModel.setSecondaryDiagnosis(secondaryDiagnosis);
  1124 +
1096 1125 examinationModel.setSendMsg(isSendMsg);
1097 1126 examinationModel.setScreenResult(screenResult);
1098 1127 examinationModel.setResultSupple(resultSupple);
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AntExcAddRequest.java View file @ 9f0093b
... ... @@ -178,6 +178,10 @@
178 178 private String resultSupple;
179 179 // 诊断
180 180 private List diagnosis;
  181 +
  182 + //次要诊断
  183 + private List<String> secondaryDiagnosisId;
  184 +
181 185 //处理意见
182 186 private String treatOpinion;
183 187 //指导意见
... ... @@ -431,6 +435,23 @@
431 435 */
432 436 private Integer screeningState;
433 437  
  438 +
  439 + public List<String> getSecondaryDiagnosisId() {
  440 + return secondaryDiagnosisId;
  441 + }
  442 +
  443 + public void setSecondaryDiagnosisId(List<String> secondaryDiagnosisId) {
  444 + this.secondaryDiagnosisId = secondaryDiagnosisId;
  445 + }
  446 +
  447 + public String getSecondaryDiagnosis() {
  448 + return secondaryDiagnosis;
  449 + }
  450 +
  451 + public void setSecondaryDiagnosis(String secondaryDiagnosis) {
  452 + this.secondaryDiagnosis = secondaryDiagnosis;
  453 + }
  454 +
434 455 public Integer getScreeningState() {
435 456 return screeningState;
436 457 }
... ... @@ -1043,6 +1064,10 @@
1043 1064 * 其他的诊断意见
1044 1065 */
1045 1066 private String diagnosisOther;
  1067 + //次要整段手入内容
  1068 + private String secondaryDiagnosis;
  1069 +
  1070 +
1046 1071 //新生儿死亡备注
1047 1072 private String neoDeathTodo;
1048 1073 //出生缺陷儿备注
... ... @@ -1945,6 +1970,14 @@
1945 1970 @Override
1946 1971 public AntExChuModel convertToDataModel() {
1947 1972 AntExChuModel antExChuModel = new AntExChuModel();
  1973 + //次要诊断
  1974 + if (null != secondaryDiagnosisId) {
  1975 + antExChuModel.setSecondaryDiagnosisId(JsonUtil.array2JsonString(secondaryDiagnosisId));
  1976 + }
  1977 +
  1978 +
  1979 + antExChuModel.setSecondaryDiagnosis(secondaryDiagnosis);
  1980 +
1948 1981 antExChuModel.setSendMsg(isSendMsg);
1949 1982 antExChuModel.setScreenResult(screenResult);
1950 1983 antExChuModel.setResultSupple(resultSupple);