|
@@ -0,0 +1,57 @@
|
|
|
|
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.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 com.lantone.qc.pub.util.ListUtil;
|
|
|
|
+import com.lantone.qc.pub.util.StringUtil;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
+
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.regex.Matcher;
|
|
|
|
+import java.util.regex.Pattern;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @ClassName : CLI0569
|
|
|
|
+ * @Description : 输血记录血型未填写
|
|
|
|
+ * @Author : 楼辉荣
|
|
|
|
+ * @Date: 2020-03-06 17:28
|
|
|
|
+ */
|
|
|
|
+@Component
|
|
|
|
+public class CLI0569 extends QCCatalogue {
|
|
|
|
+ public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
|
+ status.set("0");
|
|
|
|
+ List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
|
|
|
|
+ if (ListUtil.isEmpty(clinicalBloodDocs)) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (clinicalBloodDocs != null && clinicalBloodDocs.size() > 0) {
|
|
|
|
+ int matchSum = 0;
|
|
|
|
+ for (ClinicalBloodDoc cliB : clinicalBloodDocs) {
|
|
|
|
+ Map<String, String> cliBStructureMap = cliB.getStructureMap();
|
|
|
|
+ String title = cliBStructureMap.get("标题");
|
|
|
|
+ if (StringUtil.isNotBlank(title) && title.contains("蛋白")) {
|
|
|
|
+ matchSum++;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ String record = cliBStructureMap.get("病历内容");
|
|
|
|
+ if (record.contains("A型") || record.contains("B型") || record.contains("AB型") || record.contains("O型")) {
|
|
|
|
+ matchSum++;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Pattern compile = Pattern.compile("[a-zA-Z]+型");
|
|
|
|
+ Matcher matcher = compile.matcher(StringUtil.removeBlank(record));
|
|
|
|
+ if (matcher.find()) {
|
|
|
|
+ matchSum++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (matchSum != clinicalBloodDocs.size()) {
|
|
|
|
+ status.set("-1");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+}
|