diff --git a/src/main/java/a8k/app/a8ktype/type/ReactionResult.java b/src/main/java/a8k/app/a8ktype/type/ReactionResult.java index e2142ed..9d9ca23 100644 --- a/src/main/java/a8k/app/a8ktype/type/ReactionResult.java +++ b/src/main/java/a8k/app/a8ktype/type/ReactionResult.java @@ -26,25 +26,25 @@ public class ReactionResult { public List resultConverters = new ArrayList<>(); - public String getResult(Integer uintIndex) { - if (resultConverters.size() <= uintIndex) { - return null; - } - return resultConverters.get(uintIndex).convert(result); - } - - - public String getResult0() { //前端使用 - return getResult(0); - } - - public String getResult1() { //前端使用 - return getResult(1); - } - - public String getResult2() { //前端使用 - return getResult(2); - } + // public String getResult(Integer uintIndex) { + // if (resultConverters.size() <= uintIndex) { + // return null; + // } + // return resultConverters.get(uintIndex).convert(result); + // } + // + // + // public String getResult0() { //前端使用 + // return getResult(0); + // } + // + // public String getResult1() { //前端使用 + // return getResult(1); + // } + // + // public String getResult2() { //前端使用 + // return getResult(2); + // } public ReactionResult() {} //For Jackson Use diff --git a/src/main/java/a8k/app/dao/db/type/ReactionReport.java b/src/main/java/a8k/app/dao/db/type/ReactionReport.java index cee29bc..2bd262b 100644 --- a/src/main/java/a8k/app/dao/db/type/ReactionReport.java +++ b/src/main/java/a8k/app/dao/db/type/ReactionReport.java @@ -59,6 +59,7 @@ public class ReactionReport implements Serializable { //记录单个反应板的 @Schema(description = "项目ID卡版本号", example = "1") public Integer projInfoIdCardVersion; + @JsonIgnore public ProjInfo projInfo;//项目信息,用于追溯 //返回UTC时间戳 @@ -79,34 +80,11 @@ public class ReactionReport implements Serializable { //记录单个反应板的 public Integer subProjNum = 0; //子项目数量 - public String getSubProjectResult0() { - if (results.size() >= 1) { - return results.get(0).getResult0(); - } else { - return null; - } - } - - public String getSubProjectResult1() { - if (results.size() >= 2) { - return results.get(1).getResult0(); - } else { - return null; - } - } - - public String getSubProjectResult2() { - if (results.size() >= 3) { - return results.get(2).getResult0(); - } else { - return null; - } - } - @Schema(description = "详细结果") public List results = new java.util.ArrayList<>(); //结果 @Schema(description = "扫描结果") + @JsonIgnore public List detailOptData = new ArrayList<>();// 扫描上下文数据(包含原始结果,扫描参数,扫描原始数据) } diff --git a/src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java b/src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java index 66d0e53..121b9bc 100644 --- a/src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java +++ b/src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java @@ -7,13 +7,15 @@ import java.io.Serializable; public class A8kResultUnitConverter implements Serializable { // 结果 public A8kResultUnit uint; + public String uintstr = ""; public Double A; // 结果转换为单位2的函数A result2 = A * result1 + B 02EF public Double B; // 结果转换为单位2的函数B 02F4 public A8kResultUnitConverter(A8kResultUnit uint, Double A, Double B) { - this.uint = uint; - this.A = A; - this.B = B; + this.uint = uint; + this.A = A; + this.B = B; + this.uintstr = uint.unitstr; } public A8kResultUnitConverter() { diff --git a/src/main/java/a8k/app/dao/db/type/a8kidcard/zenum/A8kResultUnit.java b/src/main/java/a8k/app/dao/db/type/a8kidcard/zenum/A8kResultUnit.java index 5e64b84..2327041 100644 --- a/src/main/java/a8k/app/dao/db/type/a8kidcard/zenum/A8kResultUnit.java +++ b/src/main/java/a8k/app/dao/db/type/a8kidcard/zenum/A8kResultUnit.java @@ -1,7 +1,7 @@ package a8k.app.dao.db.type.a8kidcard.zenum; public enum A8kResultUnit { - Original(0, "original"), + Original(0, ""), noUint(1, ""), pgPml(2, "pg/mL"), ngPml(3, "ng/mL"), @@ -44,7 +44,7 @@ public enum A8kResultUnit { cfuPml(40, "CFU/mL"), sPco(41, "S/CO"), coi(42, "COI"), - index(43, "Index"), + index(43, ""), UNSUPPORT(-1, "UNSUPPORT"), ; diff --git a/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java b/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java index 2737082..6bdae8c 100644 --- a/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java +++ b/src/main/java/a8k/app/service/data/ReactionRecordMgrService.java @@ -113,6 +113,8 @@ public class ReactionRecordMgrService { return reactionReportDao.getPageDesc(pageNum, pageSize); } + + public ReactionReport findById(Integer id) { return reactionReportDao.findById(id); } diff --git a/src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java b/src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java index 735a40a..fd07d41 100644 --- a/src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java +++ b/src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java @@ -152,6 +152,10 @@ public class TubeStateMgrService { String sampleId = newSample(tube); tube.setSampleId(sampleId); + if (tube.getUserid() == null || tube.getUserid().isEmpty()) { + tube.setUserid(sampleId); + } + log.info("添加新的样本 试管ID:{}", tube.getSampleId()); for (Integer projId : tube.getProjIds()) { Consumable consumable = consumablesMgrService.reserveConsumable(projId); @@ -222,6 +226,9 @@ public class TubeStateMgrService { try { tube.setSampleId(newSample(tube)); + if (userid == null || userid.isEmpty()) { + userid = tube.getSampleId(); + } tube.setUserid(userid); tube.setBloodType(bloodType); tube.setSampleBarcode(sampleBarcode); @@ -241,7 +248,7 @@ public class TubeStateMgrService { } tube.setState(TubeState.TO_BE_PROCESSED); log.info("添加紧急样本设置成功 {}", ZJsonHelper.objectToJson(tube)); - UIMessage.info(log,"添加急诊任务"); + UIMessage.info(log, "添加急诊任务"); } catch (Exception e) { String sampleId = tube.getSampleId(); @@ -437,5 +444,4 @@ public class TubeStateMgrService { } - } diff --git a/src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java b/src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java index 6b4de44..b91a258 100644 --- a/src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java +++ b/src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java @@ -4,6 +4,7 @@ import a8k.SpringBootBeanUtil; import a8k.app.a8kproj.optalgo.type.OptScanResult; import a8k.app.a8ktype.device.BloodType; import a8k.app.a8ktype.exception.AppException; +import a8k.app.a8ktype.opttype.ReactionResultStatus; import a8k.app.a8ktype.state.SampleInfo; import a8k.app.a8ktype.type.ReactionResult; import a8k.app.dao.db.ReactionReportDao; @@ -51,11 +52,14 @@ public class FakeReactionRecordGeneratorPage { public void addSomeVirtualReactionRecord() throws AppException { var allproj = projInfoMgrService.getAllProjBuildInInfo(); for (var proj : allproj) { - addVirtualReactionRecord("SAMPLEID-123456", proj.projId); + addVirtualReactionRecord(false, "SAMPLEID-123456", proj.projId); + } + for (var proj : allproj) { + addVirtualReactionRecord(true, "SAMPLEID-123456", proj.projId); } } - public void addVirtualReactionRecord(String sampleId, Integer projNum) throws AppException { + public void addVirtualReactionRecord(Boolean error, String sampleId, Integer projNum) throws AppException { SampleInfo sampleInfo = new SampleInfo(); sampleInfo.sampleId = sampleId; @@ -67,22 +71,31 @@ public class FakeReactionRecordGeneratorPage { ProjInfo projInfo = new ProjInfo(projInfoMgrService.getProjBuildInInfo(projNum), ProjExtInfoCardFactory.buildProjExtInfoCard(1, "LOTID123")); - A8kResultBuilderFn resultBuilder0 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0); - A8kResultBuilderFn resultBuilder1 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0); - A8kResultBuilderFn resultBuilder2 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.iuPml, 2.0, 2.0, 3.0, 3.0); + A8kResultBuilderFn resultBuilder0 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.uPl, 2.0, 2.0, 3.0, 3.0); + A8kResultBuilderFn resultBuilder1 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.uPl, 2.0, 2.0, 3.0, 3.0); + A8kResultBuilderFn resultBuilder2 = new A8kResultBuilderFn(A8kResultUnit.coi, A8kResultUnit.iuPml, A8kResultUnit.uPl, 2.0, 2.0, 3.0, 3.0); List reactionResults = new ArrayList<>(); - for (int i = 0; i < projInfo.buildIn.getSubProjNum(); i++) { - if (i == 0) - reactionResults.add(new ReactionResult("Tn-I", "Tn-I", 1.0, resultBuilder0.toResultUnitConverters())); - if (i == 1) - reactionResults.add(new ReactionResult("CK-MB", "CK-MB", 2.0, resultBuilder1.toResultUnitConverters())); - if (i == 2) - reactionResults.add(new ReactionResult("Myoglobin", "MG", 3.0, resultBuilder2.toResultUnitConverters())); + if (!error) { + for (int i = 0; i < projInfo.buildIn.getSubProjNum(); i++) { + if (i == 0) + reactionResults.add(new ReactionResult("Tn-I", "Tn-I", 1.0, resultBuilder0.toResultUnitConverters())); + if (i == 1) + reactionResults.add(new ReactionResult("CK-MB", "CK-MB", 2.0, resultBuilder1.toResultUnitConverters())); + if (i == 2) + reactionResults.add(new ReactionResult("Myoglobin", "MG", 3.0, resultBuilder2.toResultUnitConverters())); + } + } else { + for (int i = 0; i < projInfo.buildIn.getSubProjNum(); i++) { + if (i == 0) + reactionResults.add(new ReactionResult("Tn-I", "Tn-I", ReactionResultStatus.ERROR_RESULT_OUT_OF_RANGE, "结果超出范围")); + if (i == 1) + reactionResults.add(new ReactionResult("CK-MB", "CK-MB", ReactionResultStatus.ERROR_LOST_PEAK_R, "R峰丢失")); + if (i == 2) + reactionResults.add(new ReactionResult("Myoglobin", "MG", ReactionResultStatus.ERROR_QUALITY_PEAK_DETECTION, "质峰检测错误")); + } } - - List optScanResults = new ArrayList<>(); if (projInfo.buildIn.getFoptCfg() != null) {