Forráskód Böngészése

台州手术记录规则添加

hujing 5 éve
szülő
commit
42d9dea75d

+ 42 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0644.java

@@ -0,0 +1,42 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+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.operation.OperationDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * @Description: 未记录术中并发症情况
+ * @author: 胡敬
+ * @time: 2020/3/30 10:05
+ */
+public class OPE0644 extends QCCatalogue {
+
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
+        status.set("0");
+        boolean isOperativePatient = true;//是手术患者(暂时默认是)
+        if (isOperativePatient) {
+            List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+            if (ListUtil.isNotEmpty(operationDocs)) {
+                long count = operationDocs.stream().filter(operationDoc -> {
+                    boolean flag = false;
+                    if (operationDoc.getOperationRecordDoc() != null
+                            && StringUtil.isBlank(operationDoc.getOperationRecordDoc().getStructureMap().get("术中并发症"))) {
+                        flag = true;
+                    }
+                    return true;
+                }).count();
+                if (count > 0) {
+                    status.set("-1");
+                }
+            }
+        }
+    }
+
+}

+ 50 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0645.java

@@ -0,0 +1,50 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.consultation.ConsultationDoc;
+import com.lantone.qc.pub.model.doc.consultation.ConsultationResultsDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : OPE0645
+ * @Description : 未记录术中耗材情况
+ * @Author : 胡敬
+ * @Date: 2020-03-30 10:10
+ */
+@Component
+public class OPE0645 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        boolean isOperativePatient = true;//是手术患者(暂时默认是)
+        if (isOperativePatient) {
+            List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+            if (operationDocs.size() == 0) {
+                return;
+            }
+            for (OperationDoc operationDoc : operationDocs) {
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc == null) {
+                    continue;
+                }
+                Map<String, String> operationRecordStructureMap = operationRecordDoc.getStructureMap();
+                String operationDuringStr = operationRecordStructureMap.get("手术经过及处理(包括患者的体位、切口处理、病灶所见及手术步骤等)");
+                if (CatalogueUtil.isEmpty(operationDuringStr)) {
+                    continue;
+                }
+                String intraoperativeConsumables = operationDuringStr.substring(operationDuringStr.indexOf("术中耗材") + 1);
+                if (CatalogueUtil.isEmpty(intraoperativeConsumables)) {
+                    status.set("-1");
+                    return;
+                }
+            }
+        }
+    }
+}

+ 42 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0646.java

@@ -0,0 +1,42 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+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.operation.OperationDoc;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * @Description: 未记录术中输血情况
+ * @author: 胡敬
+ * @time: 2020/3/30 10:20
+ */
+public class OPE0646 extends QCCatalogue {
+
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
+        status.set("0");
+        boolean isOperativePatient = true;//是手术患者(暂时默认是)
+        if (isOperativePatient) {
+            List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+            if (ListUtil.isNotEmpty(operationDocs)) {
+                long count = operationDocs.stream().filter(operationDoc -> {
+                    boolean flag = false;
+                    if (operationDoc.getOperationRecordDoc() != null
+                            && StringUtil.isBlank(operationDoc.getOperationRecordDoc().getStructureMap().get("输血情况"))) {
+                        flag = true;
+                    }
+                    return true;
+                }).count();
+                if (count > 0) {
+                    status.set("-1");
+                }
+            }
+        }
+    }
+
+}

+ 52 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0647.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : OPE0647
+ * @Description : 手术记录未在术后24h内完成
+ * @Author : 胡敬
+ * @Date: 2020-03-30 10:22
+ */
+@Component
+public class OPE0647 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        boolean isOperativePatient = true;//是手术患者(暂时默认是)
+        if (isOperativePatient) {
+            List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+            if (operationDocs.size() == 0) {
+                return;
+            }
+            for (OperationDoc operationDoc : operationDocs) {
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc == null) {
+                    continue;
+                }
+                Map<String, String> operationRecordStructureMap = operationRecordDoc.getStructureMap();
+                String operationEndDateStr = operationRecordStructureMap.get("手术结束时间");
+                String operationRecordDateStr = operationRecordStructureMap.get("记录时间");
+                if (CatalogueUtil.isEmpty(operationEndDateStr) || CatalogueUtil.isEmpty(operationRecordDateStr)) {
+                    continue;
+                }
+                boolean compareTime = CatalogueUtil.compareTime(StringUtil.parseDateTime(operationEndDateStr),
+                        StringUtil.parseDateTime(operationRecordDateStr),
+                        (long) (24 * 60));
+                if (compareTime) {
+                    status.set("-1");
+                    return;
+                }
+            }
+        }
+    }
+}