Explorar el Código

Merge remote-tracking branch 'origin/dev-1.2' into dev-1.2

wangyu hace 5 años
padre
commit
690e1057ab

+ 17 - 12
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC0093.java

@@ -11,7 +11,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
-import java.util.Calendar;
 import java.util.Date;
 import java.util.Map;
 
@@ -36,7 +35,9 @@ public class FIRC0093 extends QCCatalogue {
                 if (StringUtils.isNotEmpty(couDate) && StringUtils.isNotEmpty(beDate)) {
                     Date date_in = StringUtil.parseDateTime(beDate);
                     Date date_out = StringUtil.parseDateTime(couDate);
-                    if (date_in == null || date_out == null) return;
+                    if (date_in == null || date_out == null) {
+                        return;
+                    }
                     boolean firc = CatalogueUtil.compareTime(date_in, date_out, 8 * 60L);
                     if (firc) {
                         status.set("-1");
@@ -44,16 +45,20 @@ public class FIRC0093 extends QCCatalogue {
                 }
             }
         } else {
-            Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
-            if (beHospitalizedDocStructureMap != null) {
-                String beDate = beHospitalizedDocStructureMap.get("入院日期");
-                if (StringUtils.isNotEmpty(beDate)) {
-                    Date date_in = StringUtil.parseDateTime(beDate);
-                    Date date_out = new Date();
-                    if (date_in == null) return;
-                    boolean firc = CatalogueUtil.compareTime(date_in, date_out, 8 * 60L);
-                    if (firc) {
-                        status.set("-1");
+            if (beHospitalizedDoc != null) {
+                Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
+                if (beHospitalizedDocStructureMap != null) {
+                    String beDate = beHospitalizedDocStructureMap.get("入院日期");
+                    if (StringUtils.isNotEmpty(beDate)) {
+                        Date date_in = StringUtil.parseDateTime(beDate);
+                        Date date_out = new Date();
+                        if (date_in == null) {
+                            return;
+                        }
+                        boolean firc = CatalogueUtil.compareTime(date_in, date_out, 8 * 60L);
+                        if (firc) {
+                            status.set("-1");
+                        }
                     }
                 }
             }

+ 3 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0173.java

@@ -21,13 +21,11 @@ import java.util.stream.Collectors;
 @Component
 public class FIRP0173 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() == null){
+        if (inputInfo.getFirstPageRecordDoc() == null || inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             return;
         }
-        if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null
-                && inputInfo.getBeHospitalizedDoc() != null
-                && inputInfo.getBeHospitalizedDoc().getPresentLabel() != null) {
+        if (inputInfo.getBeHospitalizedDoc().getPresentLabel() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             //病案首页门急诊诊断
             String outpatientEmergencyDiag = (String) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
@@ -37,7 +35,7 @@ public class FIRP0173 extends QCCatalogue {
             //现病史所有诊断
             List<Diag> presentDiags = inputInfo.getBeHospitalizedDoc().getPresentLabel().getDiags();
             for (Diag diag : presentDiags) {
-                if(diag.getHospitalDiagName().equals(outpatientEmergencyDiag)){
+                if (diag.getHospitalDiagName().equals(outpatientEmergencyDiag)) {
                     status.set("0");
                     return;
                 }

+ 15 - 19
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0220.java

@@ -20,29 +20,25 @@ import java.util.Map;
 @Component
 public class FIRP0220 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() == null) {
+        if (inputInfo.getFirstPageRecordDoc() == null || inputInfo.getBeHospitalizedDoc() == null) {
             status.set("0");
             return;
         }
-        if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null
-                && inputInfo.getBeHospitalizedDoc() != null
-                && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
-            Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-            String firstAdmissionDate = firstpageStructureMap.get(Content.admisTime);
-            String admissionDate = beHospitalStructureMap.get(Content.admisDate);
-            if (StringUtil.isEmpty(firstAdmissionDate) || StringUtil.isEmpty(admissionDate)) {
+        Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+        String firstAdmissionDate = firstpageStructureMap.get(Content.admisTime);
+        String admissionDate = beHospitalStructureMap.get(Content.admisDate);
+        if (StringUtil.isEmpty(firstAdmissionDate) || StringUtil.isEmpty(admissionDate)) {
+            status.set("0");
+            return;
+        }
+        Date firstDate = StringUtil.parseDateTime(firstAdmissionDate);
+        Date admisDate = StringUtil.parseDateTime(admissionDate);
+        if (firstDate != null && admisDate != null) {
+            if (firstDate.getYear() == admisDate.getYear() &&
+                    firstDate.getMonth() == admisDate.getMonth() &&
+                    firstDate.getDay() == admisDate.getDay()) {
                 status.set("0");
-                return;
-            }
-            Date firstDate = StringUtil.parseDateTime(firstAdmissionDate);
-            Date admisDate = StringUtil.parseDateTime(admissionDate);
-            if (firstDate != null && admisDate != null) {
-                if (firstDate.getYear() == admisDate.getYear() &&
-                        firstDate.getMonth() == admisDate.getMonth() &&
-                        firstDate.getDay() == admisDate.getDay()) {
-                    status.set("0");
-                }
             }
         }
     }

+ 6 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0127.java

@@ -60,6 +60,7 @@ public class THR0127 extends QCCatalogue {
             beginDate = DateUtil.dateZeroClear(DateUtil.addDate(beginDate, 1));
             int i = 1;
             String lastWardDateRange = "";
+            List<String> lastWardDateRangeList = new ArrayList<>();
             //每周的病历记录
             while (i >= 1) {
                 roundRecordThisWeek = extractWardRecord(allDoctorWradDocs, beginDate, hoursPerWeek, lastRecordDate);
@@ -67,6 +68,7 @@ public class THR0127 extends QCCatalogue {
                     break;
                 }
                 lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 6));
+                lastWardDateRangeList.add(lastWardDateRange);
                 roundRecordEveryWeek.add(roundRecordThisWeek);
                 beginDate = DateUtil.addDate(beginDate, 7);
                 i++;
@@ -75,13 +77,13 @@ public class THR0127 extends QCCatalogue {
                 status.set("0");
                 return;
             }
-            for (String roundRecord : roundRecordEveryWeek) {
-                int directorNum = CatalogueUtil.appearNumber(roundRecord.split(","), Content.director);
-                int dept_doctorNum = CatalogueUtil.appearNumber(roundRecord.split(","), Content.dept_doctor);
+            for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
+                int directorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.director);
+                int dept_doctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.dept_doctor);
                 if (directorNum + dept_doctorNum < 2) {
                     //每周无2次主任医师查房记录/科主任查房记录
                     status.set("-1");
-                    info.set(lastWardDateRange);
+                    info.set(lastWardDateRangeList.get(j));
                     return;
                 }
             }

+ 6 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0128.java

@@ -67,6 +67,7 @@ public class THR0128 extends QCCatalogue {
             beginDate = DateUtil.dateZeroClear(DateUtil.addDate(beginDate, 1));
             int i = 1;
             String lastWardDateRange = "";
+            List<String> lastWardDateRangeList = new ArrayList<>();
             //每周的病历记录
             while (i >= 1) {
                 roundRecordThisWeek = extractWardRecord(allDoctorWradDocs, beginDate, hoursPerWeek, lastRecordDate);
@@ -74,6 +75,7 @@ public class THR0128 extends QCCatalogue {
                     break;
                 }
                 lastWardDateRange = DateUtil.formatDate(beginDate) + "    ->    " + DateUtil.formatDate(DateUtil.addDate(beginDate, 6));
+                lastWardDateRangeList.add(lastWardDateRange);
                 roundRecordEveryWeek.add(roundRecordThisWeek);
                 beginDate = DateUtil.addDate(beginDate, 7);
                 i++;
@@ -91,16 +93,16 @@ public class THR0128 extends QCCatalogue {
                 if (indicationsNum < 3) {
                     //每周无3次主治医师查房记录
                     status.set("-1");
-                    info.set(lastWardDateRange);
+                    info.set(lastWardDateRangeList.get(j));
                     return;
                 }
             }
-            for (String roundRecord : roundRecordEveryWeek) {
-                int indicationsNum = CatalogueUtil.appearNumber(roundRecord.split(","), Content.attend);
+            for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
+                int indicationsNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
                 if (indicationsNum < 3) {
                     //每周无3次主治医师查房记录
                     status.set("-1");
-                    info.set(lastWardDateRange);
+                    info.set(lastWardDateRangeList.get(j));
                     return;
                 }
             }