Explorar o código

病案首页规则添加

hujing %!s(int64=5) %!d(string=hai) anos
pai
achega
7f5e20e58a
Modificáronse 18 ficheiros con 513 adicións e 2 borrados
  1. 11 2
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0157.java
  2. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0159.java
  3. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0163.java
  4. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0164.java
  5. 30 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0199.java
  6. 32 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0200.java
  7. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0201.java
  8. 32 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0202.java
  9. 32 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0220.java
  10. 32 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0225.java
  11. 30 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0273.java
  12. 29 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0274.java
  13. 34 0
      kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0275.java
  14. 21 0
      kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java
  15. 65 0
      public/src/main/java/com/lantone/qc/pub/Content.java
  16. 10 0
      public/src/main/java/com/lantone/qc/pub/model/doc/FirstPageRecordDoc.java
  17. 10 0
      public/src/main/java/com/lantone/qc/pub/model/doc/LeaveHospitalDoc.java
  18. 29 0
      public/src/main/java/com/lantone/qc/pub/util/StringUtil.java

+ 11 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0157.java

@@ -1,20 +1,29 @@
 package com.lantone.qc.kernel.catalogue.firstpagerecord;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
 /**
- * @ClassName : CLI0001
- * @Description : 无输血/血制品病程记录
+ * @ClassName : FIRP0157
+ * @Description : 患者姓名未填写
  * @Author : 楼辉荣
  * @Date: 2020-03-06 17:28
  */
 @Component
 public class FIRP0157 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String name = firstpageStructureMap.get(Content.name);
+            if (StringUtil.isNotBlank(name)){
+                status = "0";
+            }
+        }
     }
 }

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0159.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0159
+ * @Description : 患者性别未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:28
+ */
+@Component
+public class FIRP0159 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String gender = firstpageStructureMap.get(Content.gender);
+            if (StringUtil.isNotBlank(gender)){
+                status = "0";
+            }
+        }
+    }
+}

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0163.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0163
+ * @Description : 身份证项没有填写
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:28
+ */
+@Component
+public class FIRP0163 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String idcardInfo = firstpageStructureMap.get(Content.idcard_info);
+            if (StringUtil.isNotBlank(idcardInfo)){
+                status = "0";
+            }
+        }
+    }
+}

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0164.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0164
+ * @Description : 婚姻状况没有填写
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:31
+ */
+@Component
+public class FIRP0164 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String marry = firstpageStructureMap.get(Content.marry);
+            if (StringUtil.isNotBlank(marry)){
+                status = "0";
+            }
+        }
+    }
+}

+ 30 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0199.java

@@ -0,0 +1,30 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0199
+ * @Description : 新生儿出生体重未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:30
+ */
+@Component
+public class FIRP0199 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornWeight = firstpageStructureMap.get(Content.newbornWeight);
+            if (StringUtil.isNotBlank(newbornWeight)){
+                status = "0";
+            }
+        }
+    }
+}

+ 32 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0200.java

@@ -0,0 +1,32 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0200
+ * @Description : 新生儿出生体重填写错误
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:28
+ */
+@Component
+public class FIRP0200 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornWeightStr = firstpageStructureMap.get(Content.newbornWeight);
+            if (!CatalogueUtil.isEmpty(newbornWeightStr)) {
+                int newbornWeight = Integer.parseInt(newbornWeightStr);
+                if (newbornWeight >= 1 && newbornWeight <= 10) {
+                    status = "0";
+                }
+            }
+        }
+    }
+}

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0201.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0201
+ * @Description : 新生儿入院体重未填写
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:28
+ */
+@Component
+public class FIRP0201 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornAdmisWeight = firstpageStructureMap.get(Content.newbornAdmisWeight);
+            if (!CatalogueUtil.isEmpty(newbornAdmisWeight)){
+                status = "0";
+            }
+        }
+    }
+}

+ 32 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0202.java

@@ -0,0 +1,32 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0202
+ * @Description : 新生儿入院体重填写错误
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:28
+ */
+@Component
+public class FIRP0202 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornAdmisWeightStr = firstpageStructureMap.get(Content.newbornAdmisWeight);
+            if (!CatalogueUtil.isEmpty(newbornAdmisWeightStr)) {
+                int newbornAdmisWeight = Integer.parseInt(newbornAdmisWeightStr);
+                if (newbornAdmisWeight >= 1 && newbornAdmisWeight <= 10) {
+                    status = "0";
+                }
+            }
+        }
+    }
+}

+ 32 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0220.java

@@ -0,0 +1,32 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0220
+ * @Description : 入院时间与入院记录时间不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:10
+ */
+@Component
+public class FIRP0220 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && 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 (CatalogueUtil.equalsDate(firstAdmissionDate, admissionDate, "yyyy-MM-ddH")) {
+                status = "0";
+            }
+        }
+    }
+}

+ 32 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0225.java

@@ -0,0 +1,32 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0225
+ * @Description : 出院时间与出院记录时间不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:10
+ */
+@Component
+public class FIRP0225 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
+            String firstDischargeTime = firstpageStructureMap.get(Content.dischargeTime);//病案首页出院时间
+            String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);//出院小结出院时间
+            if (CatalogueUtil.equalsDate(firstDischargeTime, dischargeTime, "yyyy-MM-ddH")) {
+                status = "0";
+            }
+        }
+    }
+}

+ 30 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0273.java

@@ -0,0 +1,30 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0273
+ * @Description : 新生儿年龄错误
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:24
+ */
+@Component
+public class FIRP0273 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornAge = firstpageStructureMap.get(Content.newbornAge);
+            if (!CatalogueUtil.isEmpty(newbornAge) && Integer.parseInt(newbornAge) <= 28){
+                //新生儿年龄单位为天,小于28天算通过
+                status = "0";
+            }
+        }
+    }
+}

+ 29 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0274.java

@@ -0,0 +1,29 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0274
+ * @Description : 新生儿年龄未填
+ * @Author : 胡敬
+ * @Date: 2020-03-14 16:10
+ */
+@Component
+public class FIRP0274 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String newbornAge = firstpageStructureMap.get(Content.newbornAge);
+            if (!CatalogueUtil.isEmpty(newbornAge)){
+                status = "0";
+            }
+        }
+    }
+}

+ 34 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0275.java

@@ -0,0 +1,34 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0275
+ * @Description : 实际住院天数与出院小结不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-14 17:10
+ */
+@Component
+public class FIRP0275 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
+            String firstDischargeTime = firstpageStructureMap.get(Content.actualStay);//病案首页出院时间
+            String dischargeTime = leaveHospitalStructureMap.get(Content.stayLength);//出院小结出院时间
+            if (StringUtil.isNotBlank(firstDischargeTime) && StringUtil.isNotBlank(dischargeTime)
+                    && firstDischargeTime.equals(dischargeTime)) {
+                status = "0";
+            }
+        }
+    }
+}

+ 21 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/CatalogueUtil.java

@@ -8,6 +8,8 @@ import com.lantone.qc.pub.util.StringUtil;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -116,4 +118,23 @@ public class CatalogueUtil {
         return retDiags;
     }
 
+    /**
+     * 对比两个String类型的Date是否一致
+     * @param firstDateStr
+     * @param secondDateStr
+     * @param datePattren
+     * @return
+     */
+    public static boolean equalsDate(String firstDateStr, String secondDateStr, String datePattren) {
+        if (!isEmpty(firstDateStr) && !isEmpty(secondDateStr)) {
+            Date firstDate = StringUtil.parseDateTime(firstDateStr);
+            Date secondDate = StringUtil.parseDateTime(secondDateStr);
+            SimpleDateFormat fmt = new SimpleDateFormat(datePattren);
+            if (firstDate != null && secondDate != null && fmt.format(firstDate).equals(fmt.format(secondDate))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
 }

+ 65 - 0
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -123,5 +123,70 @@ public class Content {
     public static final String doctor_rank = "医师等级";
     public static final String round_doctor = "查房医师";
 
+    public static final String newbornAge = "不足1周岁年龄";
+    public static final String newbornWeight = "新生儿出生体重";
+    public static final String newbornAdmisWeight = "新生儿入院体重";
+
+    public static final String admisTime = "入院时间"; //病案首页用
+    public static final String admisDate = "入院日期"; //入院记录用
+    public static final String dischargeTime = "出院时间";
+    public static final String actualStay = "实际住院";//病案首页用
+    public static final String stayLength = "住院天数";//出院小结用
+
     public static final String timestamp = "timestamp";
+
+    public static String[] DateFormats = {
+            "yyyy年MM月dd日HH时mm分",
+            "yyyy年MM月dd日H时mm分",
+            "yyyy年MM月dd日HH时m分",
+            "yyyy年MM月dd日H时m分",
+            "yyyy年M月dd日HH时mm分",
+            "yyyy年M月dd日H时mm分",
+            "yyyy年M月dd日HH时m分",
+            "yyyy年M月dd日H时m分",
+            "yyyy年MM月d日HH时mm分",
+            "yyyy年MM月d日H时mm分",
+            "yyyy年MM月d日HH时m分",
+            "yyyy年MM月d日H时m分",
+            "yyyy年M月d日HH时mm分",
+            "yyyy年M月d日H时mm分",
+            "yyyy年M月d日HH时m分",
+            "yyyy年M月d日H时m分",
+            "yyyy-MM-ddHH:mm",
+            "yyyy-MM-ddHH:m",
+            "yyyy-MM-ddH:mm",
+            "yyyy-MM-ddH:m",
+            "yyyy-M-ddHH:mm",
+            "yyyy-M-ddHH:m",
+            "yyyy-M-ddH:mm",
+            "yyyy-M-ddH:m",
+            "yyyy-MM-dHH:mm",
+            "yyyy-MM-dHH:m",
+            "yyyy-MM-dH:mm",
+            "yyyy-MM-dH:m",
+            "yyyy-M-dHH:mm",
+            "yyyy-M-dHH:m",
+            "yyyy-M-dH:mm",
+            "yyyy-M-dH:m",
+            "yyyy-MM-dd",
+            "yyyy年MM月dd日H时",
+            "yyyy/MM/ddHH:mm:ss",
+            "yyyy/MM/ddHH:mm",
+            "yyyy/MM/ddHH:m",
+            "yyyy/MM/ddH:mm",
+            "yyyy/MM/ddH:m",
+            "yyyy/M/ddHH:mm",
+            "yyyy/M/ddHH:m",
+            "yyyy/M/ddH:mm",
+            "yyyy/M/ddH:m",
+            "yyyy/MM/dHH:mm",
+            "yyyy/MM/dHH:m",
+            "yyyy/MM/dH:mm",
+            "yyyy/MM/dH:m",
+            "yyyy/M/dHH:mm",
+            "yyyy/M/dHH:m",
+            "yyyy/M/dH:mm",
+            "yyyy/M/dH:m",
+            "yyyy/MM/dd",
+    };
 }

+ 10 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/FirstPageRecordDoc.java

@@ -1,10 +1,20 @@
 package com.lantone.qc.pub.model.doc;
 
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @ClassName : FirstPageRecordDoc
  * @Description : 病案首页
  * @Author : 楼辉荣
  * @Date: 2020-03-03 19:05
  */
+@Getter
+@Setter
 public class FirstPageRecordDoc {
+    //病案首页所有结构化信息存储
+    private Map<String, String> structureMap = new HashMap<>();
 }

+ 10 - 0
public/src/main/java/com/lantone/qc/pub/model/doc/LeaveHospitalDoc.java

@@ -1,10 +1,20 @@
 package com.lantone.qc.pub.model.doc;
 
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @ClassName : LeaveHospitalDoc
  * @Description : 出院小结
  * @Author : 楼辉荣
  * @Date: 2020-03-03 18:58
  */
+@Getter
+@Setter
 public class LeaveHospitalDoc {
+    //出院小结所有结构化信息存储
+    private Map<String, String> structureMap = new HashMap<>();
 }

+ 29 - 0
public/src/main/java/com/lantone/qc/pub/util/StringUtil.java

@@ -1,9 +1,13 @@
 package com.lantone.qc.pub.util;
 
+import com.lantone.qc.pub.Content;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 import java.util.regex.Matcher;
@@ -170,4 +174,29 @@ public class StringUtil {
 //        return Sets.difference(sourceSet, targetSet).isEmpty() && Sets.difference(targetSet, sourceSet).isEmpty();
 //    }
 
+    /**
+     * 解析时间
+     *
+     * @param datetime
+     * @return
+     */
+    public static Date parseDateTime(String datetime) {
+        Date date = null;
+        try {
+            datetime = remove_ctl(datetime);
+
+            if (datetime.contains("至")) {
+                datetime = datetime.split("至")[1].replaceAll("[\\u4e00-\\u9fa5]", "");
+            }
+
+            if (datetime.length() > 0) {
+                date = DateUtils.parseDate(datetime, Content.DateFormats);
+            }
+        } catch (ParseException ex) {
+            ex.printStackTrace();
+        } finally {
+            return date;
+        }
+    }
+
 }