From a406eb1e0c8cdcd4d5cd74dffda279d5be0c9579 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Wed, 14 Jan 2026 14:16:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=9E=E9=AA=8C=E8=AF=95?= =?UTF-8?q?=E5=89=82=E9=85=8D=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lims/service/IExamineReagentService.java | 220 +++--- .../impl/ExamineReagentServiceImpl.java | 708 +++++++----------- .../impl/ExamineResultServiceImpl.java | 40 +- 3 files changed, 360 insertions(+), 608 deletions(-) diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IExamineReagentService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IExamineReagentService.java index e256f32..55ecd79 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IExamineReagentService.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IExamineReagentService.java @@ -24,118 +24,9 @@ public interface IExamineReagentService { */ Map> getGroupExcelData(int group, List excelData); - // 2010597883441655809 非洲猪瘟病毒阻断ELISA抗体检测试剂盒--青岛立见生物科技有限公司 - // 2010597883441655810 非洲猪瘟病毒(ASFV)阻断ELISA抗体检测试剂盒--北京鑫康生物技术开发有限公司 - // 2010597883441655811 非洲猪瘟病毒抗体阻断ELISA检测试剂盒--测易生物 - // 2010597883512958977 猪伪狂犬病病毒gE蛋白阻断ELISA抗体检测试剂盒--科前生物 - // 2010597883512958978 猪伪狂犬病病毒gB蛋自阻断ELIA抗体检测试剂盒--科前生物 - // 2010597883512958979 猪伪狂犬病毒gPI竞争ELISA抗体检测试剂盒--禾旭生物 - // 2010597883512958980 猪伪狂犬病毒gB竞争ELISA抗体检测试剂盒--禾旭生物 - // 2010597883512958981 猪瘟病毒ELISA抗体检测试剂盒--深圳市绿诗源生物技术有限公司 - // 2010597883512958982 猪瘟病毒阻断ELISA抗体检测试剂盒--科前生物 --有相同的 - // 2010597883512958983 猪瘟病毒间接ELISA抗体检测试剂盒--禾旭生物 --有相同的 - - /** - * 数据库ID:2010597883512958984 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(维伯鑫) - * 生产厂家:维伯鑫 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958984(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958985 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(绿诗源) - * 生产厂家:深圳市绿诗源生物技术有限公司 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958985(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958986 - * 试剂名称:猪繁殖与呼吸综合征病毒间接ELISA抗体检测试剂盒 - * 生产厂家:禾旭生物 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958986(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958987 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(测易) - * 生产厂家:测易生物 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958987(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958988 - * 试剂名称:猪口蹄疫病毒O型VP1间接ELISA抗体检测试剂盒 - * 生产厂家:洛阳莱普生信息科技有限公司 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958988(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958989 - * 试剂名称:禽白血病病毒J亚群ELISA抗体检测试剂盒 - * 生产厂家:哈尔滨国生生物科技股份有限公司 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958989(int group, Map> groupExcelData, - Map>>> map1, - List> list); - - /** - * 数据库ID:2010597883512958990 - * 试剂名称:禽白血病病毒AB亚群ELISA抗体检测试剂盒 - * 生产厂家:哈尔滨国生生物科技股份有限公司 - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - void reagent2010597883512958990(int group, Map> groupExcelData, - Map>>> map1, - List> list); - /** * 数据库ID:2010597883441655809 - * 试剂名称:非洲猪瘟病毒阻断ELISA抗体检测试剂盒-- + * 试剂名称:非洲猪瘟病毒阻断ELISA抗体检测试剂盒 * 生产厂家:青岛立见生物科技有限公司 * * @param group 填报实验结果的组数,每组9行,12列 @@ -146,6 +37,7 @@ public interface IExamineReagentService { void reagent2010597883441655809(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883441655810 * 试剂名称:非洲猪瘟病毒(ASFV)阻断ELISA抗体检测试剂盒 @@ -157,10 +49,11 @@ public interface IExamineReagentService { * @param list */ void reagent2010597883441655810(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883441655811 * 试剂名称:非洲猪瘟病毒抗体阻断ELISA检测试剂盒 - * 生产厂家:--测易生物 + * 生产厂家:测易生物 * * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -173,120 +66,181 @@ public interface IExamineReagentService { * 数据库ID:2010597883512958977 * 试剂名称:猪伪狂犬病病毒gE蛋白阻断ELISA抗体检测试剂盒 * 生产厂家:--科前生物 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655977(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958977(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958978 * 试剂名称:猪伪狂犬病病毒gB蛋自阻断ELIA抗体检测试剂盒 * 生产厂家:--科前生物 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655978(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958978(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958979 * 试剂名称:猪伪狂犬病毒gPI竞争ELISA抗体检测试剂盒 * 生产厂家:--禾旭生物 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655979(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958979(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958980 * 试剂名称:猪伪狂犬病毒gB竞争ELISA抗体检测试剂盒 * 生产厂家:---禾旭生物 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655980(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958980(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958981 * 试剂名称:猪瘟病毒ELISA抗体检测试剂盒 * 生产厂家:--深圳市绿诗源生物技术有限公司 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655981(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958981(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958982 * 试剂名称:猪瘟病毒阻断ELISA抗体检测试剂盒 * 生产厂家:--科前生物 --有相同的 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655982(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958982(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958983 * 试剂名称:猪瘟病毒间接ELISA抗体检测试剂盒 * 生产厂家:--禾旭生物 --有相同的 + * * @param group * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655983(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958983(int group, Map> groupExcelData, Map>>> map1, List> list); + /** * 数据库ID:2010597883512958984 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(维伯鑫) - * 生产厂家:--维伯鑫 - * @param group + * 生产厂家:维伯鑫 + * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655984(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958984(int group, Map> groupExcelData, + Map>>> map1, + List> list); + /** * 数据库ID:2010597883512958985 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(绿诗源) - * 生产厂家:--深圳市绿诗源生物技术有限公司 - * @param group + * 生产厂家:深圳市绿诗源生物技术有限公司 + * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655985(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958985(int group, Map> groupExcelData, + Map>>> map1, + List> list); + /** * 数据库ID:2010597883512958986 * 试剂名称:猪繁殖与呼吸综合征病毒间接ELISA抗体检测试剂盒 - * 生产厂家:--禾旭生物 --有相同的 - * @param group + * 生产厂家:禾旭生物 + * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655986(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958986(int group, Map> groupExcelData, + Map>>> map1, + List> list); + /** * 数据库ID:2010597883512958987 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(测易) - * 生产厂家:--测易生物 - * @param group + * 生产厂家:测易生物 + * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655987(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958987(int group, Map> groupExcelData, + Map>>> map1, + List> list); + /** * 数据库ID:2010597883512958988 * 试剂名称:猪口蹄疫病毒O型VP1间接ELISA抗体检测试剂盒 - * 生产厂家:--洛阳莱普生信息科技有限公司 - * @param group + * 生产厂家:洛阳莱普生信息科技有限公司 + * + * @param group 填报实验结果的组数,每组9行,12列 + * @param groupExcelData + * @param map1 + * @param list + */ + void reagent2010597883512958988(int group, Map> groupExcelData, + Map>>> map1, + List> list); + + /** + * 数据库ID:2010597883512958989 + * 试剂名称:禽白血病病毒J亚群ELISA抗体检测试剂盒 + * 生产厂家:哈尔滨国生生物科技股份有限公司 + * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ - void reagent2010597883441655988(int group, Map> groupExcelData, Map>>> map1, List> list); + void reagent2010597883512958989(int group, Map> groupExcelData, + Map>>> map1, + List> list); + + /** + * 数据库ID:2010597883512958990 + * 试剂名称:禽白血病病毒AB亚群ELISA抗体检测试剂盒 + * 生产厂家:哈尔滨国生生物科技股份有限公司 + * + * @param group 填报实验结果的组数,每组9行,12列 + * @param groupExcelData + * @param map1 + * @param list + */ + void reagent2010597883512958990(int group, Map> groupExcelData, + Map>>> map1, + List> list); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineReagentServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineReagentServiceImpl.java index 12a78ff..71234ff 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineReagentServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineReagentServiceImpl.java @@ -39,173 +39,21 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { return groupExcelData; } - /** - * 数据库ID:2010597883512958984 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(维伯鑫) - * 生产厂家:维伯鑫 - *

- * 1. 成立条件: 阴性对照孔OD均值≤0.2: 阳性对照孔OD均值≥0.6: - * 2. 计算方法: S/P值=(样本OD值-阴性对照OD平均值)/(阳性对照OD平均值-阴性对照OD平均值) - * 3. 结果判定: S/P值≥0.5则判断为阳性; S/P值<0.5则判断为阴性; - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - @Override - public void reagent2010597883512958984(int group, Map> groupExcelData, Map>>> map1, List> list) { - for (int i = 0; i < group; i++) { - List>> mapList = new ArrayList<>(); - List excels = groupExcelData.get(i + 1 + ""); - double negativeVal1 = Double.parseDouble(excels.get(0).getCode1()); - double negativeVal2 = Double.parseDouble(excels.get(1).getCode1()); - double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); - double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); - // 阴性对照平均值 - double negativeAvg = (negativeVal1 + negativeVal2) / 2; - // 阳性对照平均值 - double positiveAvg = (positiveVal1 + positiveVal2) / 2; - - // 成立条件校验 - if (negativeAvg <= 0.2 && positiveAvg >= 0.6) { - throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); - } - - for (int rowNum = 0; rowNum < excels.size(); rowNum++) { - // 行标头:前端渲染需要A、B、C.... - String a = String.valueOf((char) (rowNum + 65)); - - //取到一行记录 - ExamineExcel examineExcel = excels.get(rowNum); - int fieldsLength = examineExcel.getClass().getDeclaredFields().length - 1; - - Map> map2 = new HashMap<>(); - - String SP = "0.00"; - for (int colNum = 1; colNum <= fieldsLength; colNum++) { - String cellVal = getExamineCellData(examineExcel, colNum); - - Map mapResult = new HashMap<>(); - // colNum 是列,rowNum是行 ,我们定义index是一列列的定义 - int index = (colNum - 1) * 8 + rowNum + 1; - if (StringUtils.isNotBlank(cellVal)) { - if (rowNum > 5 || colNum > 1) { - if (positiveAvg != 0) { - SP = DECIMAL_FORMAT.format((Double.parseDouble(cellVal) - negativeAvg) / (positiveAvg - negativeAvg)); - } - mapResult.put("originResult", cellVal); - mapResult.put("value", SP); - mapResult.put("num", "1"); - if (Double.parseDouble(SP) < 0.5) { - mapResult.put("result", "阴性"); - } else { - mapResult.put("result", "阳性"); - } - } else { - mapResult.put("originResult", cellVal); - mapResult.put("num", ""); - } - } else { - mapResult.put("originResult", ""); - mapResult.put("num", ""); - } - mapResult.put("order", index + i * 96); - map2.put(a + colNum, mapResult); - list.add(mapResult); - } - mapList.add(map2); - } - - map1.put("g" + (i + 1), mapList); - } - } - - /** - * 数据库ID:2010597883512958985 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(绿诗源) - * 生产厂家:深圳市绿诗源生物技术有限公司 - *

- * 1. 成立条件: 阳性对照孔的OD均值≥0.60,阴性对照孔的平均 OD 值<0.40 - * 2. 计算方法: S/P=(样本OD450/630值-NCx)/(PCx-NCx), NCx表示阴性对照孔平均OD450/630值(0.05以下的数值按0.05计算), PCx表示阳1性对照孔平均OD450/630值: - * 3. 结果判定: S/P值≥0.20时,判为阳性; S/P值<0.20时,判为阴性; - * - * @param group 填报实验结果的组数,每组9行,12列 - * @param groupExcelData - * @param map1 - * @param list - */ - @Override - public void reagent2010597883512958985(int group, Map> groupExcelData, Map>>> map1, List> list) { - for (int i = 0; i < group; i++) { - List>> mapList = new ArrayList<>(); - List excels = groupExcelData.get(i + 1 + ""); - double negativeVal1 = Double.parseDouble(excels.get(0).getCode1()); - double negativeVal2 = Double.parseDouble(excels.get(1).getCode1()); - double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); - double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); - // 阴性对照平均值 - double negativeAvg = (negativeVal1 + negativeVal2) / 2; - // 阳性对照平均值 - double positiveAvg = (positiveVal1 + positiveVal2) / 2; - - // 成立条件校验 - if (negativeAvg < 0.3 && positiveAvg - negativeAvg >= 0.7) { - throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); - } - - for (int rowNum = 0; rowNum < excels.size(); rowNum++) { - // 行标头:前端渲染需要A、B、C.... - String a = String.valueOf((char) (rowNum + 65)); - - //取到一行记录 - ExamineExcel examineExcel = excels.get(rowNum); - int fieldsLength = examineExcel.getClass().getDeclaredFields().length - 1; - - Map> map2 = new HashMap<>(); - - String SP = "0.00"; - for (int colNum = 1; colNum <= fieldsLength; colNum++) { - String cellVal = getExamineCellData(examineExcel, colNum); - - Map mapResult = new HashMap<>(); - // colNum 是列,rowNum是行 ,我们定义index是一列列的定义 - int index = (colNum - 1) * 8 + rowNum + 1; - if (StringUtils.isNotBlank(cellVal)) { - if (rowNum > 5 || colNum > 1) { - if (positiveAvg != 0) { - SP = DECIMAL_FORMAT.format((Double.parseDouble(cellVal) - negativeAvg) / (positiveAvg - negativeAvg)); - } - mapResult.put("originResult", cellVal); - mapResult.put("value", SP); - mapResult.put("num", "1"); - if (Double.parseDouble(SP) < 0.2) { - mapResult.put("result", "阴性"); - } else { - mapResult.put("result", "阳性"); - } - } else { - mapResult.put("originResult", cellVal); - mapResult.put("num", ""); - } - } else { - mapResult.put("originResult", ""); - mapResult.put("num", ""); - } - mapResult.put("order", index + i * 96); - map2.put(a + colNum, mapResult); - list.add(mapResult); - } - mapList.add(map2); - } - - map1.put("g" + (i + 1), mapList); - } - } /** * 数据库ID:2010597883441655809 - * 试剂名称:非洲猪瘟病毒阻断ELISA抗体检测试剂盒-- + * 试剂名称:非洲猪瘟病毒阻断ELISA抗体检测试剂盒 * 生产厂家:青岛立见生物科技有限公司 + *

+     * 1. 成立条件:
+     *     ASFV B阴性对照血清的平均OD值即ODnc;ASFV B阳性对照血清的平均OD值即ODpc;待检样品的OD值即为ODs;
+     *     ODnc>0.5且PIpc>50,试验结果有效;否则,重新进行试验
+     * 2. 计算方法:
+     *     阳性对照血清阻断率:PIpc=100-ODpc/ODnc×100;
+     *     样品阻断率:PIs=100-ODs/ODnc×100。
+     * 3. 结果判定:
+     *     PIs>50,结果判为阳性;
+     *     PIs≤50,结果判为阴性。
+     * 
* * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -227,7 +75,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (!(negativeAvg>0.5 && (100 - (positiveAvg/negativeAvg ) * 100)>50 )) { + if (!(negativeAvg > 0.5 && (100 - (positiveAvg / negativeAvg) * 100) > 50)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -279,11 +127,23 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883441655810 * 试剂名称:非洲猪瘟病毒(ASFV)阻断ELISA抗体检测试剂盒 * 生产厂家:北京鑫康生物技术开发有限公司 * + *
+     * 1. 成立条件:
+     *     阴性对照OD平均值/阳性对照OD平均值≥4,结果有效。
+     * 2. 计算方法:
+     *     阻断率=(阴性对照平均值-样本OD值)/(阴性对照平均值-阳性对照平均值)x100%
+     * 3. 结果判定:
+     *     阻断率≥50%时,样品判定为阳性;
+     *     阻断率≤40%时,样品判定为阴性;
+     *     40%<阻断率<50%时,为可疑样本。
+     * 
+ * * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 @@ -304,7 +164,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (negativeAvg/positiveAvg<4) { + if (negativeAvg / positiveAvg < 4) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -358,10 +218,24 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883441655811 * 试剂名称:非洲猪瘟病毒抗体阻断ELISA检测试剂盒 - * 生产厂家:--测易生物 + * 生产厂家:测易生物 + * + *
+     * 1. 成立条件:
+     *     阴性对照OD450nm平均值>0.7;
+     *     阳性对照OD450nm平均值/阴性对照OD450mm平均值<0.3;
+     *     如果实验结果不成立,有可能是实验操作失误造成的,应按操作说明进行重复实验,
+     * 2. 计算方法:
+     *     S/N值=待测样品OD450nm值/阴性对照OD450nm均值
+     * 3. 结果判定:
+     *     S/N值≤0.4,判为阳性;
+     *     S/N 值>0.5,判为阴性;
+     *     0.4<S/N值<05,为可疑;
+     * 
* * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -437,17 +311,31 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958977 * 试剂名称:猪伪狂犬病病毒gE蛋白阻断ELISA抗体检测试剂盒 - * 生产厂家:--科前生物 + * 生产厂家:科前生物 + * + *
+     * 1. 成立条件:
+     *     阴性对照OD630nm平均值与阳性对照 OD630nm平均值之差≥0.3.
+     * 2. 计算方法:
+     *     S/N=样品OD630nm值/阴性对照OD630nm值平均值
+     *     S为样品OD630nm值,N为阴性对照OD630nm值平均值
+     * 3. 结果判定:
+     *     S/N值≤0.6,样品判为阳性;
+     *     S/N值>0.7,样品判为阴性;
+     *     0.6<S/N值≤0.7时,该样品判为可疑,可间隔2周后重新采样检测。
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655977(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958977(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -515,17 +403,32 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958978 * 试剂名称:猪伪狂犬病病毒gB蛋自阻断ELIA抗体检测试剂盒 - * 生产厂家:--科前生物 + * 生产厂家:科前生物 + * + *
+     * 1. 成立条件:
+     *     阳性对照OD630nm值均应≤0.4,
+     *     阴性对照OD630nm平均值与阳性对照 OD630nm平均值之差≥0.5.
+     * 2. 计算方法:
+     *     S/N=样品OD630nm值/阴性对照OD630nm值平均值
+     *     S为样品OD630nm值,N为阴性对照OD630nm值平均值
+     * 3. 结果判定:
+     *     S/N值≤0.6,样品判为阳性;
+     *     S/N值>0.7,样品判为阴性;
+     *     0.6<S/N值≤0.7时,该样品必须重新检测,若重测结果相同,则过一段时间后重新采样进行检测。
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655978(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958978(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -539,7 +442,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (!(positiveAvg!=0 && positiveAvg<=0.4 && negativeAvg/positiveAvg>=0.5)) { + if (!(positiveVal1 <= 0.4 && positiveVal2 <= 0.4 && negativeAvg - positiveAvg >= 0.5)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -593,17 +496,32 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958979 * 试剂名称:猪伪狂犬病毒gPI竞争ELISA抗体检测试剂盒 - * 生产厂家:--禾旭生物 + * 生产厂家:禾旭生物 + * + *
+     * 1. 成立条件:
+     *     阴性对照平均值(NCX)NCX=(NC1+NC2)/2
+     *     阳性对照平均值(PCX)PCX=(PC1+PC2)/2
+     *     成立条件:标准:NCX-PCX≥0.4,PCX≤0.3。
+     *     如果试验无效,试验中的操作值得怀疑,应按照操作说明书重做一次试验。
+     * 2. 计算方法:
+     *     S/N值=样品OD450/NCX
+     * 3. 结果判定:
+     *     如果S/N值≤0.35,样品应判定为抗体阳性
+     *     如果S/N值>0.35,样品应判定为抗体阴性。
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655979(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958979(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -669,17 +587,32 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958980 * 试剂名称:猪伪狂犬病毒gB竞争ELISA抗体检测试剂盒 - * 生产厂家:---禾旭生物 + * 生产厂家:禾旭生物 + * + *
+     * 1. 成立条件:
+     *     阴性对照平均值(NCX)NCX=(NC1+NC2)/2
+     *     阳性对照平均值(PCX)PCX=(PC1+PC2)/2
+     *     成立条件:标准:NCX-PCX≥0.4,PCX≤0.3。
+     *     如果试验无效,试验中的操作值得怀疑,应按照操作说明书重做一次试验。
+     * 2. 计算方法:
+     *     S/N值=样品OD450/NCX
+     * 3. 结果判定:
+     *     如果S/N值≤0.4,样品应判定为抗体阳性
+     *     如果S/N值>0.4,样品应判定为抗体阴性。
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655980(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958980(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -745,17 +678,31 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958981 * 试剂名称:猪瘟病毒ELISA抗体检测试剂盒 - * 生产厂家:--深圳市绿诗源生物技术有限公司 + * 生产厂家:深圳市绿诗源生物技术有限公司 + * + *
+     * 1. 成立条件:
+     *     阳性对照孔的平均OD值≥0.60,阴性对照孔的平均OD值<0.40:
+     * 2. 计算方法:
+     *     S/P=(样本OD450/630值-NCx)/(PCx-NCx),
+     *     NCx表示阴性对照孔平均OD450/630值(0.05以下的数值按0.05计算),
+     *     PCx表示阳1性对照孔平均OD450/630值:
+     * 3. 结果判定:
+     *     S/P≥0.25时判为阳性:
+     *     S/P<0.25时判为阴性;
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655981(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958981(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -765,7 +712,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); // 阴性对照平均值 double negativeAvg1 = ((negativeVal1 + negativeVal2) / 2); - double negativeAvg = negativeAvg1<=0.05?0.05:negativeAvg1; + double negativeAvg = negativeAvg1 <= 0.05 ? 0.05 : negativeAvg1; // 阳性对照平均值 double positiveAvg = (positiveVal1 + positiveVal2) / 2; @@ -822,17 +769,30 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958982 * 试剂名称:猪瘟病毒阻断ELISA抗体检测试剂盒 - * 生产厂家:--科前生物 --有相同的 + * 生产厂家:科前生物 --有相同的 + * + *
+     * 1. 成立条件:
+     *     阴性对照OD630nm值均应>0.50,阳性对照OD630nm值的阻断率>50%
+     * 2. 计算方法:
+     *     阻断率=(1-S/N)×100%
+     *     S为样品OD630nm值,N为阴性对照OD630nm值平均值
+     * 3. 结果判定:
+     *     若被检样品的阻断率≥35%判为阳性;
+     *     若被检样品的阻断率<35%判为阴性;
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655982(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958982(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -846,7 +806,9 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (!(negativeAvg>0.5 && (positiveAvg/negativeAvg)<0.5)) { + if (!(negativeVal1 > 0.5 && negativeVal2 > 0.5 + && (1 - (positiveVal1 / negativeAvg)) > 0.5 + && (1 - (positiveVal2 / negativeAvg)) > 0.5)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -898,17 +860,32 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958983 * 试剂名称:猪瘟病毒间接ELISA抗体检测试剂盒 - * 生产厂家:--禾旭生物 --有相同的 + * 生产厂家:禾旭生物 --有相同的 + * + *
+     * 1. 成立条件:
+     *     阴性对照平均值(NCX)NCX=(NC1+NC2)/2
+     *     阳性对照平均值(PCX)PCX=(PC1+PC2)/2
+     *     成立条件:标准:NCX<0.3,PCX>0.6。
+     *     如果试验无效,试验中的操作值得怀疑,应按照操作说明书重做一次试验。
+     * 2. 计算方法:
+     *     S/P值=样品OD450/PCX
+     * 3. 结果判定:
+     *     如果S/P值≥0.5,样品应判定为抗体阳性;
+     *     如果S/P值<0.5,样品应判定为抗体阴性;
+     * 
+ * * @param group * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655983(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958983(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -974,17 +951,30 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958984 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(维伯鑫) - * 生产厂家:--维伯鑫 - * @param group + * 生产厂家:维伯鑫 + * + *
+     * 1. 成立条件:
+     *     阴性对照;阴性对照孔OD均值≤0.2:
+     *     阳性对照:阳性对照孔OD均值≥0.6:
+     * 2. 计算方法:
+     *     S/P值=(样本OD值-阴性对照OD平均值)/(阳性对照OD平均值-阴性对照OD平均值)
+     * 3. 结果判定:
+     *     S/P值≥0.5则判断为阳性;
+     *     S/P值<0.5则判断为阴性;
+     * 
+ * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655984(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958984(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -993,12 +983,12 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); // 阴性对照平均值 - double negativeAvg = ((negativeVal1 + negativeVal2) / 2); + double negativeAvg = (negativeVal1 + negativeVal2) / 2; // 阳性对照平均值 double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (!(negativeAvg<=0.2 && positiveAvg>=0.6)) { + if (!(negativeAvg <= 0.2 && positiveAvg >= 0.6)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1021,13 +1011,13 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { int index = (colNum - 1) * 8 + rowNum + 1; if (StringUtils.isNotBlank(cellVal)) { if (rowNum > 5 || colNum > 1) { - if ((positiveAvg-negativeAvg)!=0) { - SP = DECIMAL_FORMAT.format(((Double.parseDouble(cellVal))-negativeAvg)/(positiveAvg-negativeAvg)); + if (positiveAvg != 0) { + SP = DECIMAL_FORMAT.format((Double.parseDouble(cellVal) - negativeAvg) / (positiveAvg - negativeAvg)); } mapResult.put("originResult", cellVal); mapResult.put("value", SP); mapResult.put("num", "1"); - if (Double.parseDouble(SP) <0.5) { + if (Double.parseDouble(SP) < 0.5) { mapResult.put("result", "阴性"); } else { mapResult.put("result", "阳性"); @@ -1050,248 +1040,31 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { map1.put("g" + (i + 1), mapList); } } + /** * 数据库ID:2010597883512958985 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(绿诗源) - * 生产厂家:--深圳市绿诗源生物技术有限公司 - * @param group - * @param groupExcelData - * @param map1 - * @param list - */ - @Override - public void reagent2010597883441655985(int group, Map> groupExcelData, Map>>> map1, List> list) { - for (int i = 0; i < group; i++) { - List>> mapList = new ArrayList<>(); - List excels = groupExcelData.get(i + 1 + ""); - double negativeVal1 = Double.parseDouble(excels.get(0).getCode1()); - double negativeVal2 = Double.parseDouble(excels.get(1).getCode1()); - double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); - double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); - // 阴性对照平均值 - double negativeAvg1 = ((negativeVal1 + negativeVal2) / 2); - double negativeAvg = negativeAvg1 <=0.05 ? 0.05:negativeAvg1; - // 阳性对照平均值 - double positiveAvg = (positiveVal1 + positiveVal2) / 2; - - // 成立条件校验 - if (!(positiveAvg>=0.6 && negativeAvg<0.4)) { - throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); - } - - for (int rowNum = 0; rowNum < excels.size(); rowNum++) { - // 行标头:前端渲染需要A、B、C.... - String a = String.valueOf((char) (rowNum + 65)); - - //取到一行记录 - ExamineExcel examineExcel = excels.get(rowNum); - int fieldsLength = examineExcel.getClass().getDeclaredFields().length - 1; - - Map> map2 = new HashMap<>(); - - String SP = "0.00"; - for (int colNum = 1; colNum <= fieldsLength; colNum++) { - String cellVal = getExamineCellData(examineExcel, colNum); - - Map mapResult = new HashMap<>(); - // colNum 是列,rowNum是行 ,我们定义index是一列列的定义 - int index = (colNum - 1) * 8 + rowNum + 1; - if (StringUtils.isNotBlank(cellVal)) { - if (rowNum > 5 || colNum > 1) { - if ((positiveAvg-negativeAvg)!=0) { - SP = DECIMAL_FORMAT.format(((Double.parseDouble(cellVal))-negativeAvg)/(positiveAvg-negativeAvg)); - } - mapResult.put("originResult", cellVal); - mapResult.put("value", SP); - mapResult.put("num", "1"); - if (Double.parseDouble(SP) <0.2) { - mapResult.put("result", "阴性"); - } else { - mapResult.put("result", "阳性"); - } - } else { - mapResult.put("originResult", cellVal); - mapResult.put("num", ""); - } - } else { - mapResult.put("originResult", ""); - mapResult.put("num", ""); - } - mapResult.put("order", index + i * 96); - map2.put(a + colNum, mapResult); - list.add(mapResult); - } - mapList.add(map2); - } - - map1.put("g" + (i + 1), mapList); - } - } - /** - * 数据库ID:2010597883512958986 - * 试剂名称:猪繁殖与呼吸综合征病毒间接ELISA抗体检测试剂盒 - * 生产厂家:--禾旭生物 --有相同的 - * @param group - * @param groupExcelData - * @param map1 - * @param list - */ - @Override - public void reagent2010597883441655986(int group, Map> groupExcelData, Map>>> map1, List> list) { - for (int i = 0; i < group; i++) { - List>> mapList = new ArrayList<>(); - List excels = groupExcelData.get(i + 1 + ""); - double negativeVal1 = Double.parseDouble(excels.get(0).getCode1()); - double negativeVal2 = Double.parseDouble(excels.get(1).getCode1()); - double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); - double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); - // 阴性对照平均值 - double negativeAvg1 = ((negativeVal1 + negativeVal2) / 2); - double negativeAvg = negativeAvg1 <=0.05 ? 0.05:negativeAvg1; - // 阳性对照平均值 - double positiveAvg = (positiveVal1 + positiveVal2) / 2; - - // 成立条件校验 - if (!((positiveAvg-negativeAvg)>=0.7 && negativeAvg<0.3)) { - throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); - } - - for (int rowNum = 0; rowNum < excels.size(); rowNum++) { - // 行标头:前端渲染需要A、B、C.... - String a = String.valueOf((char) (rowNum + 65)); - - //取到一行记录 - ExamineExcel examineExcel = excels.get(rowNum); - int fieldsLength = examineExcel.getClass().getDeclaredFields().length - 1; - - Map> map2 = new HashMap<>(); - - String SP = "0.00"; - for (int colNum = 1; colNum <= fieldsLength; colNum++) { - String cellVal = getExamineCellData(examineExcel, colNum); - - Map mapResult = new HashMap<>(); - // colNum 是列,rowNum是行 ,我们定义index是一列列的定义 - int index = (colNum - 1) * 8 + rowNum + 1; - if (StringUtils.isNotBlank(cellVal)) { - if (rowNum > 5 || colNum > 1) { - if (positiveAvg!=0) { - SP = DECIMAL_FORMAT.format((Double.parseDouble(cellVal))/positiveAvg); - } - mapResult.put("originResult", cellVal); - mapResult.put("value", SP); - mapResult.put("num", "1"); - if (Double.parseDouble(SP) <0.3) { - mapResult.put("result", "阴性"); - } else { - mapResult.put("result", "阳性"); - } - } else { - mapResult.put("originResult", cellVal); - mapResult.put("num", ""); - } - } else { - mapResult.put("originResult", ""); - mapResult.put("num", ""); - } - mapResult.put("order", index + i * 96); - map2.put(a + colNum, mapResult); - list.add(mapResult); - } - mapList.add(map2); - } - - map1.put("g" + (i + 1), mapList); - } - } - /** - * 数据库ID:2010597883512958987 - * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(测易) - * 生产厂家:--测易生物 - * @param group - * @param groupExcelData - * @param map1 - * @param list - */ - @Override - public void reagent2010597883441655987(int group, Map> groupExcelData, Map>>> map1, List> list) { - for (int i = 0; i < group; i++) { - List>> mapList = new ArrayList<>(); - List excels = groupExcelData.get(i + 1 + ""); - double negativeVal1 = Double.parseDouble(excels.get(0).getCode1()); - double negativeVal2 = Double.parseDouble(excels.get(1).getCode1()); - double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); - double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); - // 阴性对照平均值 - double negativeAvg1 = ((negativeVal1 + negativeVal2) / 2); - double negativeAvg = negativeAvg1 <=0.05 ? 0.05:negativeAvg1; - // 阳性对照平均值 - double positiveAvg = (positiveVal1 + positiveVal2) / 2; - - // 成立条件校验 - if (!((positiveAvg-negativeAvg)>=0.3 && negativeAvg<=0.5)) { - throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); - } - - for (int rowNum = 0; rowNum < excels.size(); rowNum++) { - // 行标头:前端渲染需要A、B、C.... - String a = String.valueOf((char) (rowNum + 65)); - - //取到一行记录 - ExamineExcel examineExcel = excels.get(rowNum); - int fieldsLength = examineExcel.getClass().getDeclaredFields().length - 1; - - Map> map2 = new HashMap<>(); - - String SP = "0.00"; - for (int colNum = 1; colNum <= fieldsLength; colNum++) { - String cellVal = getExamineCellData(examineExcel, colNum); - - Map mapResult = new HashMap<>(); - // colNum 是列,rowNum是行 ,我们定义index是一列列的定义 - int index = (colNum - 1) * 8 + rowNum + 1; - if (StringUtils.isNotBlank(cellVal)) { - if (rowNum > 5 || colNum > 1) { - if ((positiveAvg-negativeAvg)!=0) { - SP = DECIMAL_FORMAT.format(((Double.parseDouble(cellVal))-negativeAvg)/(positiveAvg-negativeAvg)); - } - mapResult.put("originResult", cellVal); - mapResult.put("value", SP); - mapResult.put("num", "1"); - if (Double.parseDouble(SP) <0.3) { - mapResult.put("result", "阴性"); - } else { - mapResult.put("result", "阳性"); - } - } else { - mapResult.put("originResult", cellVal); - mapResult.put("num", ""); - } - } else { - mapResult.put("originResult", ""); - mapResult.put("num", ""); - } - mapResult.put("order", index + i * 96); - map2.put(a + colNum, mapResult); - list.add(mapResult); - } - mapList.add(map2); - } - - map1.put("g" + (i + 1), mapList); - } - } - /** - * 数据库ID:2010597883512958988 - * 试剂名称:猪口蹄疫病毒O型VP1间接ELISA抗体检测试剂盒 - * 生产厂家:--洛阳莱普生信息科技有限公司 - * @param group + * 生产厂家:深圳市绿诗源生物技术有限公司 + * + *
+     * 1. 成立条件:
+     *     阳性对照孔的平均OD值≥0.60,阴性对照孔的平均 OD 值<0.40
+     * 2. 计算方法:
+     *     S/P=(样本OD450/630值-NCx)/(PCx-NCx),
+     *     NCx表示阴性对照孔平均OD450/630值(0.05以下的数值按0.05计算),
+     *     PCx表示阳1性对照孔平均OD450/630值:
+     * 3. 结果判定:
+     *     样本S/P值≥0.20时,判为阳性;
+     *     样品S/P值<0.20时,判为阴性;
+     * 
+ * + * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData * @param map1 * @param list */ @Override - public void reagent2010597883441655988(int group, Map> groupExcelData, Map>>> map1, List> list) { + public void reagent2010597883512958985(int group, Map> groupExcelData, Map>>> map1, List> list) { for (int i = 0; i < group; i++) { List>> mapList = new ArrayList<>(); List excels = groupExcelData.get(i + 1 + ""); @@ -1300,13 +1073,12 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveVal1 = Double.parseDouble(excels.get(2).getCode1()); double positiveVal2 = Double.parseDouble(excels.get(3).getCode1()); // 阴性对照平均值 - double negativeAvg1 = ((negativeVal1 + negativeVal2) / 2); - double negativeAvg = negativeAvg1 <=0.05 ? 0.05:negativeAvg1; + double negativeAvg = (negativeVal1 + negativeVal2) / 2; // 阳性对照平均值 double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (!((positiveAvg-negativeAvg)>=0.5 && negativeAvg<=0.3)) { + if (!(negativeAvg < 0.4 && positiveAvg >= 0.6)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1329,13 +1101,13 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { int index = (colNum - 1) * 8 + rowNum + 1; if (StringUtils.isNotBlank(cellVal)) { if (rowNum > 5 || colNum > 1) { - if ((positiveAvg-negativeAvg)!=0) { - SP = DECIMAL_FORMAT.format(((Double.parseDouble(cellVal))-negativeAvg)/(positiveAvg-negativeAvg)); + if (positiveAvg != 0) { + SP = DECIMAL_FORMAT.format((Double.parseDouble(cellVal) - negativeAvg) / (positiveAvg - negativeAvg)); } mapResult.put("originResult", cellVal); mapResult.put("value", SP); mapResult.put("num", "1"); - if (Double.parseDouble(SP) <0.3) { + if (Double.parseDouble(SP) < 0.2) { mapResult.put("result", "阴性"); } else { mapResult.put("result", "阳性"); @@ -1363,6 +1135,19 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { * 数据库ID:2010597883512958986 * 试剂名称:猪繁殖与呼吸综合征病毒间接ELISA抗体检测试剂盒 * 生产厂家:禾旭生物 + * + *
+     * 1. 成立条件:
+     *     阴性对照平均值(NCX)NCX=(NC1+NC2)/2
+     *     阳性对照平均值(PCX)PCX=(PC1+PC2)/2
+     *     成立条件标准:PCX-NCX≥0.7;NCX<0.3。
+     *     如果试验无效,试验中的操作值得怀疑,应按照操作说明书重做一次试验。
+     * 2. 计算方法:
+     *     S/P值=样品OD450/PCX
+     * 3. 结果判定:
+     *     如果S/P值≥0.3,样品应判定为抗体阳性;
+     *     如果S/P值<0.3,样品应判定为抗体阴性;
+     * 
*

* 1. 成立条件: 阴性对照平均值(NCX)NCX=(NC1+NC2)/2 阳性对照平均值(PCX)PCX=(PC1+PC2)/2 成立条件标准:PCX-NCX≥0.7;NCX<0.3。 * 2. 计算方法: S/P值=样品OD450/PCX @@ -1388,7 +1173,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (negativeAvg < 0.3 && positiveAvg - negativeAvg >= 0.7) { + if (!(negativeAvg < 0.3 && positiveAvg - negativeAvg >= 0.7)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1445,10 +1230,18 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { * 数据库ID:2010597883512958987 * 试剂名称:猪繁殖与呼吸综合征病毒ELISA抗体检测试剂盒(测易) * 生产厂家:测易生物 - *

- * 1. 成立条件: 阳性对照OD450nm平均值-阴性对照OD450mm平均值≥0.3; 阴性对照OD450mm平均值≤0.5; - * 2. 计算方法: S/P值=(待测样品OD450nm值-阴性对照OD450nm均值)/(阳性对照OD450nm均值-阴性对照OD450nm均值) - * 3. 结果判定: S/P值≥0.4,判为阳性; S/P值<0.3, 判为阴性; + * + *

+     * 1. 成立条件:
+     *     阳性对照OD450nm平均值-阴性对照OD450mm平均值≥0.3;
+     *     阴性对照OD450mm平均值≤0.5;
+     *     否则实验失效
+     * 2. 计算方法:
+     *     S/P值=(待测样品OD450nm值-阴性对照OD450nm均值)/(阳性对照OD450nm均值-阴性对照OD450nm均值)
+     * 3. 结果判定:
+     *     S/P值≥0.4,判为阳性;
+     *     S/P值<0.3, 判为阴性;
+     * 
* * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -1470,7 +1263,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (positiveAvg - negativeAvg >= 0.3 && negativeAvg <= 0.5) { + if (!(positiveAvg - negativeAvg >= 0.3 && negativeAvg <= 0.5)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1525,15 +1318,23 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { } } - /** * 数据库ID:2010597883512958988 * 试剂名称:猪口蹄疫病毒O型VP1间接ELISA抗体检测试剂盒 * 生产厂家:洛阳莱普生信息科技有限公司 - *

- * 1. 成立条件: 阴性对照平均值(NCX)NCX=(NC1+NC2)/2 阳性对照平均值(PCX)PCX=(PC1+PC2)/2 成立条件标准:PCX-NCX≥0.5;NCX≤0.3。 - * 2. 计算方法: S/P值=(样品-NCX)/(PCX-NCX) - * 3. 结果判定: S/P值≥0.3,样品应判定为抗体阳性; S/P值<0.3,样品应判定为抗体阴性; + * + *

+     * 1. 成立条件:
+     *     阴性对照平均值(NCX)NCX=(NC1+NC2)/2
+     *     阳性对照平均值(PCX)PCX=(PC1+PC2)/2
+     *     成立条件标准:PCX-NCX≥0.5;NCX≤0.3。
+     *     如果试验无效,试验中的操作值得怀疑,应按照操作说明书重做一次试验。
+     * 2. 计算方法:
+     *     S/P值=(样品-NCX)/(PCX-NCX)
+     * 3. 结果判定:
+     *     如果S/P值≥0.3,样品应判定为抗体阳性;
+     *     如果S/P值<0.3,样品应判定为抗体阴性;
+     * 
* * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -1555,7 +1356,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (positiveAvg - negativeAvg >= 0.5 && negativeAvg <= 0.3) { + if (!(positiveAvg - negativeAvg >= 0.5 && negativeAvg <= 0.3)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1612,10 +1413,17 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { * 数据库ID:2010597883512958989 * 试剂名称:禽白血病病毒J亚群ELISA抗体检测试剂盒 * 生产厂家:哈尔滨国生生物科技股份有限公司 - *

- * 1. 成立条件: 阳性对照血清OD450nm值均在0.55~1.25之间, 阴性对照血清OD450nm值均<0.10 - * 2. 计算方法: S/P值=(待检样品OD450nm值-阴性对照血清平均OD450nm值)/(阳性对照血清平均OD450nm值-阴性对照血清平均OD450nm值) - * 3. 结果判定: S/P 值≥0.3 时,判为阳性; S/P 值<0.3 时,判为阴性; + * + *

+     * 1. 成立条件:
+     *     阳性对照血清OD450nm值均在0.55~1.25之间,
+     *     阴性对照血清OD450nm值均<0.10
+     * 2. 计算方法:
+     *     S/P值=(待检样品OD450nm值-阴性对照血清平均OD450nm值)/(阳性对照血清平均OD450nm值-阴性对照血清平均OD450nm值)
+     * 3. 结果判定:
+     *     S/P 值≥0.3 时,判为阳性;
+     *     S/P 值<0.3 时,判为阴性;
+     * 
* * @param group 填报实验结果的组数,每组9行,12列 * @param groupExcelData @@ -1637,7 +1445,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (negativeVal1 < 0.10 && negativeVal2 < 0.10 && positiveVal1 >= 0.55 && positiveVal1 <= 1.25 && positiveVal2 >= 0.55 && positiveVal2 <= 1.25) { + if (!(negativeVal1 < 0.10 && negativeVal2 < 0.10 && positiveVal1 >= 0.55 && positiveVal1 <= 1.25 && positiveVal2 >= 0.55 && positiveVal2 <= 1.25)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } @@ -1719,7 +1527,7 @@ public class ExamineReagentServiceImpl implements IExamineReagentService { double positiveAvg = (positiveVal1 + positiveVal2) / 2; // 成立条件校验 - if (negativeVal1 < 0.10 && negativeVal2 < 0.10 && positiveVal1 >= 0.6 && positiveVal1 <= 1.3 && positiveVal2 >= 0.6 && positiveVal2 <= 1.3) { + if (!(negativeVal1 < 0.10 && negativeVal2 < 0.10 && positiveVal1 >= 0.6 && positiveVal1 <= 1.3 && positiveVal2 >= 0.6 && positiveVal2 <= 1.3)) { throw new ServiceException("第" + (i + 1) + "板阴阳性对照OD值条件不成立,请修改后重新上传!"); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java index bc42201..ee354cc 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java @@ -5624,32 +5624,22 @@ public class ExamineResultServiceImpl extends BaseServiceImpl