Преглед на файлове

输血记录未在输注结束后24小时内完成

kongwz преди 5 години
родител
ревизия
3db84e3534
променени са 1 файла, в които са добавени 63 реда и са изтрити 0 реда
  1. 63 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

+ 63 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

@@ -0,0 +1,63 @@
+package com.lantone.qc.kernel.catalogue.clinicalblood;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : CLI0305
+ * @Description : 输血记录未在输注结束后24小时内完成
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class CLI0305 extends QCCatalogue {
+    public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm"; //输注时间
+    public static String FORMAT_LONG_CN_MI = "yyyy年MM月dd日HH时mm分"; //记录时间
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
+        if(clinicalBloodDocs != null && clinicalBloodDocs.size()>0){
+            for (ClinicalBloodDoc cliB:clinicalBloodDocs) {
+                Map<String, String> cliBStructureMap = cliB.getStructureMap();
+                String infusionDtae = cliBStructureMap.get("输注时间");
+                String infusion_begin= cliBStructureMap.get("输注开始");
+                String infusion_end = cliBStructureMap.get("输注结束");
+                String record_date= cliBStructureMap.get("记录时间");
+                if(StringUtils.isNotEmpty(infusionDtae) && StringUtils.isNotEmpty(record_date)){
+                    try {
+                        Date date_in = new SimpleDateFormat(DATE_TIME_FORMAT).parse(infusionDtae);
+                        Date date_out = new SimpleDateFormat(FORMAT_LONG_CN_MI).parse(record_date);
+                        Calendar from  =  Calendar.getInstance();
+                        from.setTime(date_in);
+                        Calendar  to  =  Calendar.getInstance();
+                        to.setTime(date_out);
+                        int fromYear = from.get(Calendar.DAY_OF_MONTH);
+                        int toYear = to.get(Calendar.DAY_OF_MONTH);
+                        int year = toYear  -  fromYear;
+                        if(year >= 1){
+                            status = "-1";
+                        }
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                }else if(StringUtils.isNotEmpty(infusion_begin) && StringUtils.isNotEmpty(infusion_end)){
+
+                }
+            }
+        }
+
+    }
+}