|
@@ -0,0 +1,96 @@
|
|
|
|
+package com.lantone.qc.kernel.catalogue.hospital.changshaxy.crisisvaluereport;
|
|
|
|
+
|
|
|
|
+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.model.doc.CrisisValueReportDoc;
|
|
|
|
+import com.lantone.qc.pub.model.doc.LisDoc;
|
|
|
|
+import com.lantone.qc.pub.util.ListUtil;
|
|
|
|
+import com.lantone.qc.pub.util.StringUtil;
|
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
|
+
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @Description: 危急值记录中无危急值结果
|
|
|
|
+ * @author: rengb
|
|
|
|
+ * @time: 2020/3/19 19:54
|
|
|
|
+ */
|
|
|
|
+@Component
|
|
|
|
+public class CRI0384 extends QCCatalogue {
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
|
+ status.set("0");
|
|
|
|
+ List<CrisisValueReportDoc> crisisValueReportDocs = inputInfo.getCrisisValueReportDocs();
|
|
|
|
+ List<LisDoc> lisDocs = inputInfo.getLisDocs();
|
|
|
|
+ String key = getKeyByHospitalId();
|
|
|
|
+ if (ListUtil.isNotEmpty(crisisValueReportDocs)) {
|
|
|
|
+ crisisValueReportDocs.forEach(crisisValueReportDoc -> {
|
|
|
|
+ if (StringUtil.isNotBlank(crisisValueReportDoc.getStructureMap().get(key))) {
|
|
|
|
+ /* 台州相应数据需从危急值内容中截取 */
|
|
|
|
+ Boolean report = getReport(crisisValueReportDoc.getStructureMap().get(key),lisDocs);
|
|
|
|
+ if (!report) {
|
|
|
|
+ status.set("-1");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private Boolean getReport(String str,List<LisDoc> lisDoc) {
|
|
|
|
+ if(ListUtil.isEmpty(lisDoc)){
|
|
|
|
+ return false;
|
|
|
|
+ }else {
|
|
|
|
+ boolean flag=false;
|
|
|
|
+ for (LisDoc doc : lisDoc) {
|
|
|
|
+ String inspectionName="";
|
|
|
|
+ String inspectionItem="";
|
|
|
|
+ String results="";
|
|
|
|
+ String reportName = doc.getStructureMap().get("报告名称");
|
|
|
|
+ String inspectionResults = doc.getStructureMap().get("检验结果");
|
|
|
|
+ String unit = doc.getStructureMap().get("单位");
|
|
|
|
+ if(StringUtil.isEmpty(reportName) || StringUtil.isEmpty(inspectionResults) || StringUtil.isEmpty(unit)){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ inspectionName=reportName.substring(0,reportName.lastIndexOf("="));
|
|
|
|
+ inspectionItem=reportName.substring(reportName.lastIndexOf("=")+1,reportName.length());
|
|
|
|
+ if(inspectionName.contains(";")){
|
|
|
|
+ String[] split = inspectionName.split(";");
|
|
|
|
+ for (String s : split) {
|
|
|
|
+ if(str.contains(s)){
|
|
|
|
+ flag=true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(str.contains(inspectionName)){
|
|
|
|
+ flag=true;
|
|
|
|
+ }
|
|
|
|
+ if(!flag){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(!str.contains(inspectionItem)){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ results=inspectionResults+unit;
|
|
|
|
+ if(!str.contains(results)){
|
|
|
|
+ continue;
|
|
|
|
+ }else {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ private String getKeyByHospitalId() {
|
|
|
|
+ switch (Content.hospital_Id)
|
|
|
|
+ {
|
|
|
|
+ case "35": //湘雅
|
|
|
|
+ return "病历内容";
|
|
|
|
+ default:
|
|
|
|
+ return "内容";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|