|
@@ -0,0 +1,97 @@
|
|
|
+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.model.doc.ClinicalBloodDoc;
|
|
|
+import com.lantone.qc.pub.model.doc.LisDoc;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ClassName : FIRP0188
|
|
|
+ * @Description :血型填写错误
|
|
|
+ * @Author : 贺聪聪
|
|
|
+ * @Date: 2022-8-3 10:58
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class FIRP03230 extends QCCatalogue {
|
|
|
+ public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
+ if (inputInfo.getFirstPageRecordDoc() == null){
|
|
|
+ status.set("0");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
|
|
|
+ Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
|
|
|
+ String bloodType = firstpageStructureMap.get(Content.bloodType);
|
|
|
+ if (bloodType == null){
|
|
|
+ status.set("0");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CatalogueUtil.isEmpty(bloodType) &&
|
|
|
+ (!bloodType.contains("A型") || !bloodType.contains("B型") || !bloodType.contains("O型") || !bloodType.contains("AB型")
|
|
|
+ || !bloodType.contains("不详") || !bloodType.contains("未查") || !bloodType.contains("A") || !bloodType.contains("B")
|
|
|
+ || !bloodType.contains("O") || !bloodType.contains("AB") || !bloodType.contains("1") || !bloodType.contains("2")
|
|
|
+ || !bloodType.contains("3") || !bloodType.contains("4") || !bloodType.contains("5") || !bloodType.contains("6"))){
|
|
|
+ status.set("-1");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ClinicalBloodDoc> clinicalBloodDocs = inputInfo.getClinicalBloodDocs();
|
|
|
+ if (clinicalBloodDocs !=null && clinicalBloodDocs.size()>0) {
|
|
|
+ if (!CatalogueUtil.isEmpty(bloodType) &&
|
|
|
+ (bloodType.contains("不详") || bloodType.contains("未查") || bloodType.contains("5") || bloodType.contains("6") || bloodType.contains("-"))){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Integer.valueOf(firstpageStructureMap.get("血费")) >0){
|
|
|
+ if (!CatalogueUtil.isEmpty(bloodType) &&
|
|
|
+ (bloodType.contains("不详") || bloodType.contains("未查") || bloodType.contains("5") || bloodType.contains("6") || bloodType.contains("-"))){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (inputInfo.getLisDocs() == null){
|
|
|
+ status.set("0");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<LisDoc> lisDocs = inputInfo.getLisDocs();
|
|
|
+ for (LisDoc lisDoc : lisDocs) {
|
|
|
+ Map<String, String> structureMap = lisDoc.getStructureMap();
|
|
|
+ String result = structureMap.get("AOB血型").replace(" ",null);
|
|
|
+ if (result.contains("A型") || result.contains("A")){
|
|
|
+ if (!bloodType.contains("1") || !bloodType.contains("A") || !bloodType.contains("A型")){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result.contains("B型") || result.contains("B")){
|
|
|
+ if (!bloodType.contains("2") || !bloodType.contains("B") || !bloodType.contains("B型")){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result.contains("O型") || result.contains("O")){
|
|
|
+ if (!bloodType.contains("3") || !bloodType.contains("O") || !bloodType.contains("O型")){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result.contains("AB型") || result.contains("AB")){
|
|
|
+ if (!bloodType.contains("4") || !bloodType.contains("AB") || !bloodType.contains("AB型")){
|
|
|
+ status.set("-1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|