| 23 | // drg_group.GroupProxy /mnt/c/yb/yc/ba_group_info_java_202209.csv BAHM,BRXB,NL,NLT,XSECSTZ,CYKS,ZYTS,LYFS,ICD10_DRGS,ICD9_DRGS |
| 24 | |
| 25 | public class GroupProxy { |
| 26 | private static Map<String,String> ZD_INFO=read_dataFile("ICD","ZD_INFO"); |
| 27 | private static Map<String,String> SS_INFO=read_dataFile("ICD","SS_INFO"); |
| 28 | private static Map<String,String> ZD_MAP=read_dataFile("ICD","ZD_MAP"); |
| 29 | private static Map<String,String> SS_MAP=read_dataFile("ICD","SS_MAP"); |
| 30 | public static Messages checkMessages=new Messages(); |
| 31 | private Function<MedicalRecord,GroupResult> groupFunc=x->Grouper_chongqing_2022.group(x); |
| 32 | private boolean TRANS_CODE=false; |
| 33 | public GroupProxy(){ |
| 34 | } |
| 35 | public GroupProxy(boolean TRANS_CODE){ |
| 36 | this.TRANS_CODE=TRANS_CODE; |
| 37 | } |
| 38 | public GroupProxy(Function<MedicalRecord,GroupResult> groupFunc){ |
| 39 | this.groupFunc=groupFunc; |
| 40 | } |
| 41 | public GroupProxy(boolean TRANS_CODE,Function<MedicalRecord,GroupResult> groupFunc){ |
| 42 | this.TRANS_CODE=TRANS_CODE; |
| 43 | this.groupFunc=groupFunc; |
| 44 | } |
| 45 | private static DrgGroupStatus check(MedicalRecord record){ |
| 46 | try{ |
| 47 | if (record.gender.isEmpty()){ |
| 48 | checkMessages.putMessage(record.Index,"病人性别为空"); |
| 49 | return DrgGroupStatus.CHECK_FAILED; |
| 50 | } |
| 51 | if (record.age==0 && record.ageDay<=28 && record.weight==0){ |
| 52 | checkMessages.putMessage(record.Index,"新生儿的出生体重必须有值"); |
| 53 | return DrgGroupStatus.CHECK_FAILED; |
| 54 | } |
| 55 | if (record.zdList.length==0){ |
| 56 | checkMessages.putMessage(record.Index,"诊断信息为空"); |
| 57 | return DrgGroupStatus.CHECK_FAILED; |
| 58 | } |
| 59 | if (record.gender.indexOf(".")>=0){ |
| 60 | record.gender=record.gender.substring(0,record.gender.indexOf(".")); |
| 61 | }else if (record.gender.equals("男")){ |
| 62 | record.gender="1"; |
| 63 | }else if (record.gender.equals("女")){ |
| 64 | record.gender="2"; |
| 65 | } |
| 66 | if (record.dept.indexOf(".")>=0){ |
| 67 | record.dept=record.dept.substring(0,record.dept.indexOf(".")); |
| 68 | } |
| 69 | if (record.leavingType.indexOf(".")>=0){ |
| 70 | record.leavingType=record.leavingType.substring(0,record.leavingType.indexOf(".")); |
| 71 | } |
| 72 | }catch (Exception e) { |
| 73 | e.printStackTrace(); |
| 74 | checkMessages.putMessage(record.Index,"病案信息解析出错"); |
| 75 | return DrgGroupStatus.CHECK_FAILED; |
| 76 | } |
| 77 | for (String x:record.zdList){ |
| 78 | if (ZD_INFO.containsKey(x)){ |
| 79 | checkMessages.putMessage(record.Index, String.format("%s %s",x,ZD_INFO.get(x))); |
| 80 | }else{ |
| 81 | checkMessages.putMessage(record.Index, String.format("%s 未知名称",x)); |
| 82 | } |
nothing calls this directly
no test coverage detected