Explorar el Código

性能验证模块 开发 (二期) / 重构代码,相关测试代码移入测试类。

liyuan hace 1 año
padre
commit
ead26f3150
Se han modificado 15 ficheros con 352 adiciones y 301 borrados
  1. 1 31
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeAverageSlope.java
  2. 5 30
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeEP6A.java
  3. 1 31
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeRecoveryMethod.java
  4. 13 14
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVModel.java
  5. 1 39
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15.java
  6. 3 39
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionRepeatability.java
  7. 1 37
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessBiasAssessment.java
  8. 2 51
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessEP15Patient.java
  9. 1 29
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessRefernece.java
  10. 47 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/LinearRangeEP6ATest.java
  11. 56 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/PrecisionEP15Test.java
  12. 54 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/PrecisionRepeatabilityTest.java
  13. 55 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessBiasAssessmentTest.java
  14. 65 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessEP15PatientTest.java
  15. 47 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessReferneceTest.java

+ 1 - 31
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeAverageSlope.java

@@ -1,21 +1,12 @@
 package com.lc.ibps.components.verification.model2;
 
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
 import com.lc.ibps.components.verification.regression.PolynomialRegression;
-import com.lc.ibps.components.verification.report.ReportDataDTO;
-import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.report.TableDTO;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.math3.linear.MatrixUtils;
-import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 import org.apache.commons.math3.stat.regression.RegressionResults;
 import org.apache.commons.math3.stat.regression.SimpleRegression;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -103,7 +94,7 @@ public class LinearRangeAverageSlope extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,null);
+        return renderReportTemplate(this, null);
     }
 
 
@@ -117,25 +108,4 @@ public class LinearRangeAverageSlope extends PVModel {
         return new String[0];
     }
 
-
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("平均斜率", 1, 6,
-                null, 2, LocalDate.now(), true);
-        config.setTargetValue(new double[]{0, 24.56});
-        config.setKey(ModelEnum.LinearRangeAverageSlope.getKey());
-        double[][] data = {{-0.01, -0.01}, {5.00, 4.99}, {10.18, 10.05}, {14.65, 14.65}, {19.57, 19.65}, {24.02, 24.09}};
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-
-    }
 }

+ 5 - 30
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeEP6A.java

@@ -4,16 +4,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
 import com.lc.ibps.components.verification.regression.PolynomialRegression;
-import com.lc.ibps.components.verification.report.*;
+import com.lc.ibps.components.verification.report.ChartDTO;
+import com.lc.ibps.components.verification.report.TableDTO;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.math3.linear.MatrixUtils;
-import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 import org.apache.commons.math3.stat.StatUtils;
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.*;
 
 public class LinearRangeEP6A extends PVModel {
@@ -150,7 +146,7 @@ public class LinearRangeEP6A extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,null);
+        return renderReportTemplate(this, null);
     }
 
 
@@ -177,7 +173,7 @@ public class LinearRangeEP6A extends PVModel {
         config.put("yAxisLow", -0.1);
         config.put("data", JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect));
 
-        chartDTO.setOption(renderChartTemplate(config,1,"/scatter/linesForRange.ftl"));
+        chartDTO.setOption(renderChartTemplate(config, 1, "/scatter/linesForRange.ftl"));
         return chartDTO;
     }
 
@@ -192,7 +188,7 @@ public class LinearRangeEP6A extends PVModel {
         Map<String, Object> map = new HashMap<>();
         map.put("data", JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect));
 
-        chartDTO.setOption(renderChartTemplate(map,0,"/scatter/polynomialRegression.ftl"));
+        chartDTO.setOption(renderChartTemplate(map, 0, "/scatter/polynomialRegression.ftl"));
         return chartDTO;
     }
 
@@ -276,25 +272,4 @@ public class LinearRangeEP6A extends PVModel {
         return table;
     }
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("EP6-A线性评价", 1, 6,
-                null, 2, LocalDate.now(), true);
-        config.setTargetValue(new double[]{0, 24.56});
-        config.setKey(ModelEnum.LinearRangeEP6A.getKey());
-        double[][] data = {{-0.01, -0.01}, {5.00, 4.99}, {10.18, 10.05}, {14.65, 14.65}, {19.57, 19.65}, {24.02, 24.09}};
-
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-
-    }
 }

+ 1 - 31
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeRecoveryMethod.java

@@ -1,17 +1,7 @@
 package com.lc.ibps.components.verification.model2;
 
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.ReportDataDTO;
-import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.report.TableDTO;
-import org.apache.commons.math3.linear.MatrixUtils;
-import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
-
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 
 public class LinearRangeRecoveryMethod extends LinearRangeAverageSlope {
 
@@ -35,28 +25,8 @@ public class LinearRangeRecoveryMethod extends LinearRangeAverageSlope {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,null);
+        return renderReportTemplate(this, null);
     }
 
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("线性稀释回收法", 1, 6,
-                null, 2, LocalDate.now(), true);
-        config.setTargetValue(new double[]{0, 24.56});
-        config.setKey(ModelEnum.LinearRangeRecoveryMethod.getKey());
-        double[][] data = {{-0.01, -0.01}, {5.00, 4.99}, {10.18, 10.05}, {14.65, 14.65}, {19.57, 19.65}, {24.02, 24.09}};
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-
-    }
 }

+ 13 - 14
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVModel.java

@@ -10,7 +10,6 @@ import freemarker.cache.StringTemplateLoader;
 import freemarker.template.Configuration;
 import freemarker.template.Template;
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.math3.distribution.ChiSquaredDistribution;
 import org.apache.commons.math3.distribution.TDistribution;
@@ -29,7 +28,7 @@ public abstract class PVModel {
     private Map[] chartTemplate;
 
     private List<String> chartNames;
-    private boolean isSupportItems;
+    private final boolean isSupportItems;
     private String itemName;
     private int scale;
     private String units;
@@ -48,20 +47,20 @@ public abstract class PVModel {
         this.itemName = configVO.getItemName();
         this.isSupportItems = configVO.isSupportItems();
 
-        if(configVO.isUsingReportTemplate()){
+        if (configVO.isUsingReportTemplate()) {
             this.reportTemplate = configVO.getReportTemplate();
             cfg = new Configuration(Configuration.VERSION_2_3_30);
             StringTemplateLoader stringLoader = new StringTemplateLoader();
-            stringLoader.putTemplate(itemName+"Report", reportTemplate);
+            stringLoader.putTemplate(itemName + "Report", reportTemplate);
             cfg.setTemplateLoader(stringLoader);
-            if(StringUtils.isNotEmpty(configVO.getChartOption())) {
+            if (StringUtils.isNotEmpty(configVO.getChartOption())) {
                 chartTemplate = JSON.parseObject(configVO.getChartOption(), Map[].class);
                 chartNames = new ArrayList<>();
                 for (Map chart : chartTemplate) {
                     String value = (String) chart.get("value");
                     String label = (String) chart.get("label");
                     chartNames.add(label);
-                    stringLoader.putTemplate( label + "Chart", value.replaceAll("\\s*|\t|\r|\n", ""));
+                    stringLoader.putTemplate(label + "Chart", value.replaceAll("\\s*|\t|\r|\n", ""));
                 }
             }
         }
@@ -183,13 +182,13 @@ public abstract class PVModel {
                 .toArray();
     }
 
-    public  String[] sheetNames(){
-        if(isSupportItems) {
+    public String[] sheetNames() {
+        if (isSupportItems) {
             String[] strings = itemName.split(",");
             return strings;
         }
         return new String[]{itemName};
-    };
+    }
 
     public abstract String[] tableNames();
 
@@ -258,15 +257,15 @@ public abstract class PVModel {
     }
 
     protected String renderChartTemplate(Object ctx, int index, String filePath) {
-        return renderTemplate(ctx,chartNames.get(index)+"Chart",filePath);
+        return renderTemplate(ctx, chartNames.get(index) + "Chart", filePath);
     }
 
-    protected String renderReportTemplate(Object ctx,  String filePath) {
-        return renderTemplate(ctx,itemName+"Report",filePath);
+    protected String renderReportTemplate(Object ctx, String filePath) {
+        return renderTemplate(ctx, itemName + "Report", filePath);
     }
 
     private String renderTemplate(Object ctx, String name, String filePath) {
-        if(cfg != null) {
+        if (cfg != null) {
             Writer out = new StringWriter(2048);
 
             try {
@@ -277,7 +276,7 @@ public abstract class PVModel {
             }
 
             return out.toString();
-        } else{
+        } else {
             return EchartsFreemarkerUtils.generate(filePath, ctx);
         }
     }

+ 1 - 39
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15.java

@@ -1,19 +1,10 @@
 package com.lc.ibps.components.verification.model2;
 
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.EchartsFreemarkerUtils;
-import com.lc.ibps.components.verification.report.ReportDataDTO;
-import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.report.TableDTO;
-import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.math3.linear.MatrixUtils;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.*;
 
 public class PrecisionEP15 extends PVModel {
@@ -72,7 +63,7 @@ public class PrecisionEP15 extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,"/report/precisionEP15A2.ftl");
+        return renderReportTemplate(this, "/report/precisionEP15A2.ftl");
 
     }
 
@@ -112,33 +103,4 @@ public class PrecisionEP15 extends PVModel {
         return table;
     }
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("精密度", 5, 2,
-                null, 3, LocalDate.now(), true);
-        config.setRange(99);
-        config.setBatchCVSValue(3.2);
-        config.setDailyCVSValue(3.1);
-        config.setDecimal(3);
-        config.setUnits("mmg/L");
-        config.setKey(ModelEnum.PrecisionEP15.getKey());
-        RandomUtils.nextDouble();
-        double[][] data = new double[config.getDays()][config.getRepeatNum() * config.getSpecimensNum()];
-        for (int i = 0; i < config.getDays(); i++) {
-            for (int j = 0; j < config.getRepeatNum() * config.getSpecimensNum(); j++) {
-                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
-            }
-        }
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-    }
 }

+ 3 - 39
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionRepeatability.java

@@ -1,20 +1,11 @@
 package com.lc.ibps.components.verification.model2;
 
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.EchartsFreemarkerUtils;
-import com.lc.ibps.components.verification.report.ReportDataDTO;
-import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.report.TableDTO;
-import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.math3.linear.MatrixUtils;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,7 +21,7 @@ public class PrecisionRepeatability extends PVModel {
         super(data, configVO);
         this.batchCVSValue = configVO.getBatchCVSValue();
         this.teaFormat = getTEaFormat(configVO.getBatchCVS());
-        if(configVO.getDays() >1){
+        if (configVO.getDays() > 1) {
             RealMatrix realMatrix = MatrixUtils.createRealMatrix(data);
             this.data = realMatrix.transpose().getData();
             this.batchCVSValue = configVO.getDailyCVSValue();
@@ -57,7 +48,7 @@ public class PrecisionRepeatability extends PVModel {
 
         header.add("样本名");
         for (int i = 1; i <= data[0].length; i++) {
-            header.add(String.format("%s#%d",repeatNum>1?"重复":"天数", i));
+            header.add(String.format("%s#%d", repeatNum > 1 ? "重复" : "天数", i));
         }
         TableDTO table = new TableDTO();
         table.buildHeader(header.toArray(new String[header.size()]));
@@ -99,7 +90,7 @@ public class PrecisionRepeatability extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,"/report/precisionRepeatability.ftl");
+        return renderReportTemplate(this, "/report/precisionRepeatability.ftl");
     }
 
 
@@ -153,31 +144,4 @@ public class PrecisionRepeatability extends PVModel {
         this.teaFormat = teaFormat;
     }
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("test", 1, 2,
-                null, 10, LocalDate.now(), true);
-        config.setBatchCVS(0.25);
-        config.setBatchCVSValue(2.5);
-        config.setDecimal(3);
-        config.setUnits("mmg/L");
-        config.setKey(ModelEnum.PrecisionRepeatability.getKey());
-        RandomUtils.nextDouble();
-        double[][] data = new double[config.getSpecimensNum()][config.getRepeatNum()];
-        for (int i = 0; i < config.getSpecimensNum(); i++) {
-            for (int j = 0; j < config.getRepeatNum(); j++) {
-                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
-            }
-        }
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-    }
 }

+ 1 - 37
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessBiasAssessment.java

@@ -1,19 +1,11 @@
 package com.lc.ibps.components.verification.model2;
 
-import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.ReportDataDTO;
-import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.report.TableDTO;
-import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.math3.linear.MatrixUtils;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 import org.apache.commons.math3.stat.StatUtils;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -64,7 +56,7 @@ public class TruenessBiasAssessment extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,null);
+        return renderReportTemplate(this, null);
     }
 
 
@@ -78,32 +70,4 @@ public class TruenessBiasAssessment extends PVModel {
         return new String[0];
     }
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("偏倚评估", 5, 2,
-                null, 2, LocalDate.now(), true);
-        config.setRejectionRate(1);
-        config.setBatchCVSValue(3.2);
-        config.setDailyCVSValue(3.1);
-        config.setDecimal(3);
-        config.setUnits("mmg/L");
-        config.setKey(ModelEnum.TruenessBiasAssessment.getKey());
-        RandomUtils.nextDouble();
-        double[][] data = new double[config.getDays()][config.getRepeatNum() * config.getSpecimensNum()];
-        for (int i = 0; i < config.getDays(); i++) {
-            for (int j = 0; j < config.getRepeatNum() * config.getSpecimensNum(); j++) {
-                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
-            }
-        }
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
-        pvItemBuilder.buildPVModel(data);
-        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
-        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
-        String s1 = pvItemBuilder.getPvModel().generateResult();
-        System.out.println(s);
-        System.out.println(s1);
-    }
 }

+ 2 - 51
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessEP15Patient.java

@@ -4,17 +4,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
 import com.lc.ibps.components.verification.report.ChartDTO;
-import com.lc.ibps.components.verification.report.EchartsFreemarkerUtils;
-import com.lc.ibps.components.verification.report.SheetDTO;
 import com.lc.ibps.components.verification.report.TableDTO;
-import org.apache.commons.math3.linear.MatrixUtils;
-import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 import org.apache.commons.math3.stat.StatUtils;
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.HashMap;
 
 public class TruenessEP15Patient extends PVModel {
@@ -213,7 +206,7 @@ public class TruenessEP15Patient extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,"/report/truesnessUsingPatient.ftl");
+        return renderReportTemplate(this, "/report/truesnessUsingPatient.ftl");
     }
 
 
@@ -239,49 +232,7 @@ public class TruenessEP15Patient extends PVModel {
         config.put("yAxisUp", sdClaim);
         config.put("yAxisLow", -sdClaim);
         config.put("data", JSONObject.toJSONString(data, SerializerFeature.DisableCircularReferenceDetect));
-        chartDTO.setOption(renderChartTemplate(config,0,"/scatter/linesForRange.ftl"));
+        chartDTO.setOption(renderChartTemplate(config, 0, "/scatter/linesForRange.ftl"));
         return chartDTO;
     }
-
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("EP15-A2方法学比对", 1, 20,
-                null, 1, LocalDate.now(), true);
-        config.setMethodNum(2);
-        config.setClaimValue(3);
-        config.setUnits("mmol/L");
-        config.setKey(ModelEnum.TruenessEP15Patient.getKey());
-        double[][] data = {{125, 123},
-                {77, 74},
-                {320, 315},
-                {303, 296},
-                {29, 25},
-                {221, 218},
-                {44, 40},
-                {154, 154},
-                {388, 378},
-                {95, 94},
-                {238, 241},
-                {74, 71},
-                {310, 306},
-                {370, 370},
-                {100, 98},
-                {168, 162},
-                {54, 58},
-                {180, 183},
-                {210, 202},
-                {435, 430}};
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-        TruenessEP15Patient tr = new TruenessEP15Patient(transposeMatrix(data), config);
-
-        TableDTO tableDTO = tr.buildDataTableDTO();
-        SheetDTO[] sheetDTOS = tr.buildSheetDTO();
-        String s = tr.generateResult();
-
-//        ChiSquaredDistribution x2 = new ChiSquaredDistribution( 10 );
-//        double result = x2.inverseCumulativeProbability(1 - 0.05/2);//level
-        System.out.println(s);
-    }
 }

+ 1 - 29
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessRefernece.java

@@ -1,15 +1,10 @@
 package com.lc.ibps.components.verification.model2;
 
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.EchartsFreemarkerUtils;
-import com.lc.ibps.components.verification.report.SheetDTO;
 import com.lc.ibps.components.verification.report.TableDTO;
 import org.apache.commons.math3.linear.MatrixUtils;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.RealMatrixFormat;
 
-import java.text.DecimalFormat;
-import java.time.LocalDate;
 import java.util.*;
 
 public class TruenessRefernece extends PVModel {
@@ -83,7 +78,7 @@ public class TruenessRefernece extends PVModel {
 
     @Override
     public String generateResult() {
-        return renderReportTemplate(this,"/report/truesnessUsingRefernece.ftl");
+        return renderReportTemplate(this, "/report/truesnessUsingRefernece.ftl");
     }
 
     @Override
@@ -118,27 +113,4 @@ public class TruenessRefernece extends PVModel {
     }
 
 
-    public static void main(String[] args) {
-        InspectionConfigVO config = new InspectionConfigVO("EP15-A2定值参考物质验证", 5, 2,
-                null, 2, LocalDate.now(), true);
-        config.setUnits("mmol/L");
-        config.setTargetValue(new double[]{2.1, 2.2});
-        config.setKey(ModelEnum.TruenessRefernece.getKey());
-        double[][] data = {
-                {2.04, 2.09, 2.04, 2.09},
-                {2.15, 2.04, 2.04, 2.09},
-                {2.09, 1.98, 2.04, 2.09},
-                {2.15, 2.09, 2.04, 2.09},
-                {2.09, 2.04, 2.04, 2.09}};
-        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
-        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
-                "", ",", new DecimalFormat("0.00"));
-        System.out.println(matrixFormat.format(matrix));
-        TruenessRefernece tr = new TruenessRefernece(data, config);
-        TableDTO tableDTO = tr.buildDataTableDTO();
-        SheetDTO[] sheetDTOS = tr.buildSheetDTO();
-        String s = tr.generateResult();
-
-        System.out.println(s);
-    }
 }

+ 47 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/LinearRangeEP6ATest.java

@@ -0,0 +1,47 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.ReportDataDTO;
+import com.lc.ibps.components.verification.report.ReportFactory;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class LinearRangeEP6ATest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("EP6-A线性评价", 1, 6,
+                null, 2, LocalDate.now(), true);
+        config.setTargetValue(new double[]{0, 24.56});
+        config.setKey(ModelEnum.LinearRangeEP6A.getKey());
+        double[][] data = {{-0.01, -0.01}, {5.00, 4.99}, {10.18, 10.05}, {14.65, 14.65}, {19.57, 19.65}, {24.02, 24.09}};
+
+        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+                "", ",", new DecimalFormat("0.00"));
+        System.out.println(matrixFormat.format(matrix));
+
+        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
+        pvItemBuilder.buildPVModel(data);
+        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
+        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
+        String s1 = pvItemBuilder.getPvModel().generateResult();
+        System.out.println(s);
+        System.out.println(s1);
+
+    }
+}

+ 56 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/PrecisionEP15Test.java

@@ -0,0 +1,56 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.ReportDataDTO;
+import com.lc.ibps.components.verification.report.ReportFactory;
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class PrecisionEP15Test {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("精密度", 5, 2,
+                null, 3, LocalDate.now(), true);
+        config.setRange(99);
+        config.setBatchCVSValue(3.2);
+        config.setDailyCVSValue(3.1);
+        config.setDecimal(3);
+        config.setUnits("mmg/L");
+        config.setKey(ModelEnum.PrecisionEP15.getKey());
+        RandomUtils.nextDouble();
+        double[][] data = new double[config.getDays()][config.getRepeatNum() * config.getSpecimensNum()];
+        for (int i = 0; i < config.getDays(); i++) {
+            for (int j = 0; j < config.getRepeatNum() * config.getSpecimensNum(); j++) {
+                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
+            }
+        }
+        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+                "", ",", new DecimalFormat("0.00"));
+        System.out.println(matrixFormat.format(matrix));
+
+        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
+        pvItemBuilder.buildPVModel(data);
+        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
+        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
+        String s1 = pvItemBuilder.getPvModel().generateResult();
+        System.out.println(s);
+        System.out.println(s1);
+    }
+}

+ 54 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/PrecisionRepeatabilityTest.java

@@ -0,0 +1,54 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.ReportDataDTO;
+import com.lc.ibps.components.verification.report.ReportFactory;
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class PrecisionRepeatabilityTest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("test", 1, 2,
+                null, 10, LocalDate.now(), true);
+        config.setBatchCVS(0.25);
+        config.setBatchCVSValue(2.5);
+        config.setDecimal(3);
+        config.setUnits("mmg/L");
+        config.setKey(ModelEnum.PrecisionRepeatability.getKey());
+        RandomUtils.nextDouble();
+        double[][] data = new double[config.getSpecimensNum()][config.getRepeatNum()];
+        for (int i = 0; i < config.getSpecimensNum(); i++) {
+            for (int j = 0; j < config.getRepeatNum(); j++) {
+                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
+            }
+        }
+        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+                "", ",", new DecimalFormat("0.00"));
+        System.out.println(matrixFormat.format(matrix));
+        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
+        pvItemBuilder.buildPVModel(data);
+        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
+        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
+        String s1 = pvItemBuilder.getPvModel().generateResult();
+        System.out.println(s);
+        System.out.println(s1);
+    }
+}

+ 55 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessBiasAssessmentTest.java

@@ -0,0 +1,55 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.ReportDataDTO;
+import com.lc.ibps.components.verification.report.ReportFactory;
+import org.apache.commons.lang3.RandomUtils;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class TruenessBiasAssessmentTest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("偏倚评估", 5, 2,
+                null, 2, LocalDate.now(), true);
+        config.setRejectionRate(1);
+        config.setBatchCVSValue(3.2);
+        config.setDailyCVSValue(3.1);
+        config.setDecimal(3);
+        config.setUnits("mmg/L");
+        config.setKey(ModelEnum.TruenessBiasAssessment.getKey());
+        RandomUtils.nextDouble();
+        double[][] data = new double[config.getDays()][config.getRepeatNum() * config.getSpecimensNum()];
+        for (int i = 0; i < config.getDays(); i++) {
+            for (int j = 0; j < config.getRepeatNum() * config.getSpecimensNum(); j++) {
+                data[i][j] = RandomUtils.nextDouble(3.12, 3.45);
+            }
+        }
+        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+                "", ",", new DecimalFormat("0.00"));
+        System.out.println(matrixFormat.format(matrix));
+        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
+        pvItemBuilder.buildPVModel(data);
+        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
+        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
+        String s1 = pvItemBuilder.getPvModel().generateResult();
+        System.out.println(s);
+        System.out.println(s1);
+    }
+}

+ 65 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessEP15PatientTest.java

@@ -0,0 +1,65 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.SheetDTO;
+import com.lc.ibps.components.verification.report.TableDTO;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class TruenessEP15PatientTest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("EP15-A2方法学比对", 1, 20,
+                null, 1, LocalDate.now(), true);
+        config.setMethodNum(2);
+        config.setClaimValue(3);
+        config.setUnits("mmol/L");
+        config.setKey(ModelEnum.TruenessEP15Patient.getKey());
+        double[][] data = {{125, 123},
+                {77, 74},
+                {320, 315},
+                {303, 296},
+                {29, 25},
+                {221, 218},
+                {44, 40},
+                {154, 154},
+                {388, 378},
+                {95, 94},
+                {238, 241},
+                {74, 71},
+                {310, 306},
+                {370, 370},
+                {100, 98},
+                {168, 162},
+                {54, 58},
+                {180, 183},
+                {210, 202},
+                {435, 430}};
+//        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+//        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+//                "", ",", new DecimalFormat("0.00"));
+//        System.out.println(matrixFormat.format(matrix));
+////        TruenessEP15Patient tr = new TruenessEP15Patient(transposeMatrix(data), config);
+//
+//        TableDTO tableDTO = tr.buildDataTableDTO();
+//        SheetDTO[] sheetDTOS = tr.buildSheetDTO();
+//        String s = tr.generateResult();
+//
+////        ChiSquaredDistribution x2 = new ChiSquaredDistribution( 10 );
+////        double result = x2.inverseCumulativeProbability(1 - 0.05/2);//level
+//        System.out.println(s);
+    }
+}

+ 47 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/verification/model2/TruenessReferneceTest.java

@@ -0,0 +1,47 @@
+package com.lc.ibps.components.verification.model2;
+
+import com.lc.ibps.components.verification.model.InspectionConfigVO;
+import com.lc.ibps.components.verification.report.SheetDTO;
+import com.lc.ibps.components.verification.report.TableDTO;
+import org.apache.commons.math3.linear.MatrixUtils;
+import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.RealMatrixFormat;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.text.DecimalFormat;
+import java.time.LocalDate;
+
+import static org.junit.Assert.*;
+
+public class TruenessReferneceTest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @Test
+    public void calculate() {
+        InspectionConfigVO config = new InspectionConfigVO("EP15-A2定值参考物质验证", 5, 2,
+                null, 2, LocalDate.now(), true);
+        config.setUnits("mmol/L");
+        config.setTargetValue(new double[]{2.1, 2.2});
+        config.setKey(ModelEnum.TruenessRefernece.getKey());
+        double[][] data = {
+                {2.04, 2.09, 2.04, 2.09},
+                {2.15, 2.04, 2.04, 2.09},
+                {2.09, 1.98, 2.04, 2.09},
+                {2.15, 2.09, 2.04, 2.09},
+                {2.09, 2.04, 2.04, 2.09}};
+        RealMatrix matrix = MatrixUtils.createRealMatrix(data);
+        RealMatrixFormat matrixFormat = new RealMatrixFormat("", "", "", "\n",
+                "", ",", new DecimalFormat("0.00"));
+        System.out.println(matrixFormat.format(matrix));
+        TruenessRefernece tr = new TruenessRefernece(data, config);
+        TableDTO tableDTO = tr.buildDataTableDTO();
+        SheetDTO[] sheetDTOS = tr.buildSheetDTO();
+        String s = tr.generateResult();
+
+        System.out.println(s);
+    }
+}