瀏覽代碼

普通会诊未在24小时内完成规则逻辑修改

wangyu 4 年之前
父節點
當前提交
8ebef6131b
共有 1 個文件被更改,包括 93 次插入5 次删除
  1. 93 5
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON0280.java

+ 93 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON0280.java

@@ -5,16 +5,16 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
+import com.lantone.qc.pub.model.doc.consultation.ConsultationApplicationDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationDoc;
 import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
+import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.collections.ArrayStack;
 import org.springframework.stereotype.Component;
 
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @ClassName : CON0280
@@ -29,6 +29,69 @@ public class CON0280 extends QCCatalogue {
         if (inputInfo.getConsultationDocs() == null || inputInfo.getDoctorAdviceDocs().size() == 0) {
             return;
         }
+        List<ConsultationResultsDoc> consultationResultsDocs = ListUtil.newArrayList();//会诊结果单
+        List<ConsultationApplicationDoc> consultationApplicationDocs = ListUtil.newArrayList();//会诊申请单
+        for (ConsultationDoc consultationDoc : inputInfo.getConsultationDocs()) {
+            if (consultationDoc.getConsultationResultsDoc() != null) {
+                consultationResultsDocs.add(consultationDoc.getConsultationResultsDoc());
+            }
+            if (consultationDoc.getConsultationApplicationDoc() != null) {
+                consultationApplicationDocs.add(consultationDoc.getConsultationApplicationDoc());
+            }
+        }
+        Iterator<ConsultationResultsDoc> consultationResultsDocIterator = consultationResultsDocs.iterator();
+        Iterator<ConsultationApplicationDoc> consultationApplicationDocIterator = consultationApplicationDocs.iterator();
+        while (consultationResultsDocIterator.hasNext()) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(consultationResultsDocIterator.next().getStructureMap().get("记录日期")),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
+                consultationResultsDocIterator.remove();
+            }
+        }
+        while (consultationApplicationDocIterator.hasNext()) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(consultationApplicationDocIterator.next().getStructureMap().get("会诊时间")),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果接收未超过24小时,规则不判断
+                consultationResultsDocIterator.remove();
+            }
+        }
+        Collections.sort(consultationResultsDocs, new Comparator<ConsultationResultsDoc>() {
+            public int compare(ConsultationResultsDoc o1, ConsultationResultsDoc o2) {
+                return o1.getStructureMap().get("记录日期")
+                        .compareTo(o2.getStructureMap().get("记录日期"));
+            }
+        });
+        Collections.sort(consultationApplicationDocs, new Comparator<ConsultationApplicationDoc>() {
+            public int compare(ConsultationApplicationDoc o1, ConsultationApplicationDoc o2) {
+                return o1.getStructureMap().get("会诊时间")
+                        .compareTo(o2.getStructureMap().get("会诊时间"));
+            }
+        });
+        if (consultationResultsDocs.size() != consultationApplicationDocs.size()) {
+            status.set("-1");
+            return;
+        }
+        for (ConsultationApplicationDoc consultationApplicationDoc : consultationApplicationDocs) {
+            for (ConsultationResultsDoc consultationResultsDoc : consultationResultsDocs) {
+                if (consultationResultsDoc.getStructureMap().get("会诊医师").contains(consultationApplicationDoc.getStructureMap().get("签名")) && CatalogueUtil.compareTime(
+                        StringUtil.parseDateTime(consultationApplicationDoc.getStructureMap().get("记录日期")),
+                        StringUtil.parseDateTime(consultationResultsDoc.getStructureMap().get("会诊时间")),
+                        Long.valueOf(1))) {//结果单时间要比申请单大的
+                    if (!CatalogueUtil.compareTime(
+                            StringUtil.parseDateTime(consultationApplicationDoc.getStructureMap().get("记录日期")),
+                            StringUtil.parseDateTime(consultationResultsDoc.getStructureMap().get("会诊时间")),
+                            Long.valueOf(24 * 60))) {//未超过24小时
+                        status.set("-1");
+                        return ;
+                    }
+                }
+            }
+        }
+        /*if (inputInfo.getConsultationDocs() == null || inputInfo.getDoctorAdviceDocs().size() == 0) {
+            return;
+        }
         List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
         //医嘱按照医嘱开始时间排序
         List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
@@ -65,6 +128,31 @@ public class CON0280 extends QCCatalogue {
             }
             //            String applicationDateStr = structureMap.get("会诊申请日期");
             //            String arrivalDateStr = structureMap.get("会诊到达时间");
+        }*/
+    }
+
+    public static void main(String[] args) {
+        List<Integer> list1 = new ArrayList<>();
+        list1.add(1);
+        list1.add(2);
+        list1.add(3);
+        list1.add(4);
+        List<Integer> list2 = new ArrayList<>();
+        list2.add(1);
+        list2.add(2);
+        list2.add(3);
+        list2.add(5);
+        Iterator<Integer> iterator = list1.iterator();
+        Iterator<Integer> iterator1 = list2.iterator();
+        for (Integer i : list1) {
+            while (iterator1.hasNext())
+                if (i == iterator1.next()) {
+                    iterator1.remove();
+                }
+        }
+        for (Integer integer:
+             list2) {
+            System.out.println(integer);
         }
     }
 }