Browse Source

update

tags/v0
zhaohe 7 months ago
parent
commit
867c1f176e
  1. 38
      src/main/java/a8k/app/a8ktype/type/ReactionResult.java
  2. 26
      src/main/java/a8k/app/dao/db/type/ReactionReport.java
  3. 2
      src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java
  4. 4
      src/main/java/a8k/app/dao/db/type/a8kidcard/zenum/A8kResultUnit.java
  5. 2
      src/main/java/a8k/app/service/data/ReactionRecordMgrService.java
  6. 8
      src/main/java/a8k/app/service/statemgr/TubeStateMgrService.java
  7. 27
      src/main/java/a8k/extui/page/test/frond_end_test/FakeReactionRecordGeneratorPage.java

38
src/main/java/a8k/app/a8ktype/type/ReactionResult.java

@ -26,25 +26,25 @@ public class ReactionResult {
public List<A8kResultUnitConverter> 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

26
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<ReactionResult> results = new java.util.ArrayList<>(); //结果
@Schema(description = "扫描结果")
@JsonIgnore
public List<OptScanResult> detailOptData = new ArrayList<>();// 扫描上下文数据(包含原始结果扫描参数扫描原始数据)
}

2
src/main/java/a8k/app/dao/db/type/a8kidcard/A8kResultUnitConverter.java

@ -7,6 +7,7 @@ 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
@ -14,6 +15,7 @@ public class A8kResultUnitConverter implements Serializable {
this.uint = uint;
this.A = A;
this.B = B;
this.uintstr = uint.unitstr;
}
public A8kResultUnitConverter() {

4
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"),
;

2
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);
}

8
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);
@ -437,5 +444,4 @@ public class TubeStateMgrService {
}
}

27
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,12 +71,13 @@ 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<ReactionResult> reactionResults = new ArrayList<>();
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()));
@ -81,8 +86,16 @@ public class FakeReactionRecordGeneratorPage {
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<OptScanResult> optScanResults = new ArrayList<>();
if (projInfo.buildIn.getFoptCfg() != null) {

Loading…
Cancel
Save