|
@@ -0,0 +1,72 @@
|
|
|
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.firstpagerecord;
|
|
|
+
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+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.ListUtil;
|
|
|
+import com.lantone.qc.pub.util.StringUtil;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ClassName : FIRP03258
|
|
|
+ * @Description : 首页-专病-主诊断-年龄-不符 急性支气管肺炎年龄应大于28天错误
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class FIRP03258 extends QCCatalogue {
|
|
|
+
|
|
|
+ public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
+ status.set("0");
|
|
|
+ if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
|
|
|
+ Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
|
|
|
+ List<Map<String, String>> outpatientEmergencyDiagList = (List) firstpageStructureMap.get(Content.dischargeDiag);
|
|
|
+ if (ListUtil.isEmpty(outpatientEmergencyDiagList)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<String> firstpageDischargeDiag = getFirstpageDischargeDiag(outpatientEmergencyDiagList);
|
|
|
+ if (!firstpageDischargeDiag.contains("急性支气管肺炎")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String admissionAge = (String)firstpageStructureMap.get(Content.age);
|
|
|
+ if (StringUtil.isNotBlank(admissionAge) && !admissionAge.contains("天")) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int age = removalUnit(admissionAge);
|
|
|
+ if (age < 28) {
|
|
|
+ status.set("-1");
|
|
|
+ info.set("患者年龄:" + age);
|
|
|
+ String xmlId = CatalogueUtil.getXmlId(firstpageStructureMap, Content.age);
|
|
|
+ id.set(xmlId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private int removalUnit(String admissionAge) {
|
|
|
+ int age = 0;
|
|
|
+ if (StringUtil.isNotBlank(admissionAge) && admissionAge.contains("岁")) {
|
|
|
+ admissionAge = admissionAge.replaceAll("[岁天]", "");
|
|
|
+ }
|
|
|
+ admissionAge = admissionAge.replaceAll("[^0-9]","");
|
|
|
+ if (CatalogueUtil.numbersOnly(admissionAge)) {
|
|
|
+ age = Integer.parseInt(admissionAge);
|
|
|
+ }
|
|
|
+ return age;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<String> getFirstpageDischargeDiag(List<Map<String, String>> outpatientEmergencyDiagList) {
|
|
|
+ List<String> firstpageDischargeDiag = new ArrayList<>();
|
|
|
+ for (Map<String, String> outpatientEmergencyDiag : outpatientEmergencyDiagList) {
|
|
|
+ String diag = outpatientEmergencyDiag.get(Content.diagnoseName);
|
|
|
+ if (StringUtil.isNotBlank(diag)) {
|
|
|
+ firstpageDischargeDiag.add(diag);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return firstpageDischargeDiag;
|
|
|
+ }
|
|
|
+}
|