12 changed files with 148 additions and 32 deletions
-
24README.md
-
1src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java
-
7src/main/java/a8k/hardware/type/a8kcanprotocol/A8kEcode.java
-
73src/main/java/a8k/service/appdevicectrl/AppEmergencySamplePosStateMgrService.java
-
2src/main/java/a8k/service/appdevicectrl/action/DO_EJECT_TUBEHOLDER.java
-
2src/main/java/a8k/service/appdevicectrl/action/DO_START.java
-
15src/main/java/a8k/service/appstate/AppA8kGStateService.java
-
20src/main/java/a8k/service/appstate/type/EmergencyPosRunState.java
-
8src/main/java/a8k/service/bak_appbase/progress/EmergencySampleProgress.java
-
8src/main/java/a8k/service/bak_appbase/progress/EmergencySampleState.java
-
2src/main/java/a8k/type/type/BloodType.java
-
18src/main/java/a8k/type/type/SupportBloodType.java
@ -0,0 +1,73 @@ |
|||
package a8k.service.appdevicectrl; |
|||
|
|||
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig; |
|||
import a8k.controler.extapi.utils.EnginnerPageActionParam; |
|||
import a8k.controler.extapi.utils.ExtApiFn; |
|||
import a8k.controler.extapi.utils.ExtApiTab; |
|||
import a8k.hardware.type.a8kcanprotocol.A8kEcode; |
|||
import a8k.service.appstate.AppA8kGStateService; |
|||
import a8k.service.appstate.type.EmergencyPosRunState; |
|||
import a8k.service.bak_appbase.progress.EmergencySampleState; |
|||
import a8k.type.exception.AppException; |
|||
import a8k.type.type.BloodType; |
|||
import jakarta.annotation.Resource; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
@ExtApiTab(cfg = ExtApiTabConfig.AppEmergencySamplePosStateMgrService) |
|||
@Component |
|||
public class AppEmergencySamplePosStateMgrService { |
|||
|
|||
@Resource |
|||
AppA8kGStateService gstate; |
|||
|
|||
/* |
|||
* 状态变化 |
|||
* |
|||
* 初始时: |
|||
* getEmergencyPosRunState() -> state = IDLE |
|||
* |
|||
* 提交样本配置后 |
|||
* getEmergencySampleSetting() -> state = PENDING |
|||
* |
|||
* 提交样本配置,且机器开始处理急诊样本时候 |
|||
* getEmergencyPosRunState() -> state = PROCESSING |
|||
* |
|||
* 机器处理完急诊样本后 |
|||
* getEmergencyPosRunState() -> state = FINISHED |
|||
*/ |
|||
|
|||
|
|||
/** |
|||
* 提交紧急样本设置 |
|||
* @param userid 用户ID |
|||
* @param barcodeid 样本条码 |
|||
* @param bloodType 血型 |
|||
* @param projIndexList |
|||
* |
|||
* 提交后就默认样本已经放置好了,所以需要前台提醒用户需要先暂停设备,放好样本 |
|||
*/ |
|||
@ExtApiFn(name = "提交紧急样本设置", group = "紧急样本设置") |
|||
public void commitEmergencySampleSetting(String userid, String barcodeid, BloodType bloodType,// |
|||
@EnginnerPageActionParam(name = "逗号分割项目列表(例子1,2,3)") String projIndexList) throws AppException { |
|||
EmergencyPosRunState state = gstate.getEmergencyPosRunState(); |
|||
if (state.state.equals(EmergencySampleState.IDLE) || state.state.equals(EmergencySampleState.FINISHED)) { |
|||
state.userid = userid; |
|||
state.bloodType = bloodType; |
|||
state.barcodeid = barcodeid; |
|||
state.projIndex.clear(); |
|||
for (String index : projIndexList.split(",")) { |
|||
state.projIndex.add(Integer.parseInt(index)); |
|||
} |
|||
state.state = EmergencySampleState.PENDING; |
|||
} else { |
|||
throw new AppException(A8kEcode.EmergencySampleIsProcessing.index); |
|||
} |
|||
} |
|||
|
|||
@ExtApiFn(name = "获取急诊样本位状态", group = "急诊样本位状态") |
|||
public EmergencyPosRunState getEmergencyPosRunState() { |
|||
return gstate.getEmergencyPosRunState(); |
|||
} |
|||
|
|||
|
|||
} |
@ -1,14 +1,16 @@ |
|||
package a8k.service.appstate.type; |
|||
|
|||
import a8k.type.sampleinfo.SampleInfo; |
|||
import a8k.service.bak_appbase.result.ReactionResult; |
|||
import a8k.service.bak_appbase.progress.EmergencySampleProgress; |
|||
import a8k.service.bak_appbase.progress.EmergencySampleState; |
|||
import a8k.type.type.BloodType; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
public class EmergencyPosRunState { |
|||
//急诊位状态 |
|||
public EmergencySampleProgress emergencySampleProgress = EmergencySampleProgress.IDLE; |
|||
//样本位状态 |
|||
SampleInfo sampleState = new SampleInfo(); //绑定的样本运行状态 |
|||
//急诊位反应结果 |
|||
public ReactionResult emergencyResult = new ReactionResult(); |
|||
public String userid = ""; //用户输入的样本ID,不做逻辑,只做展示 |
|||
public String barcodeid = ""; //用于请求用户信息的条码ID |
|||
public List<Integer> projIndex = new ArrayList<>(); //项目代码 |
|||
public BloodType bloodType = BloodType.WHOLE_BLOOD; //血型 |
|||
|
|||
public EmergencySampleState state = EmergencySampleState.IDLE; //急诊位状态 |
|||
} |
@ -1,8 +0,0 @@ |
|||
package a8k.service.bak_appbase.progress; |
|||
|
|||
public enum EmergencySampleProgress { |
|||
IDLE,// |
|||
WAITING_SAMPLE,// |
|||
PROCESSING,// |
|||
PROCESS_COMPLETE,// |
|||
} |
@ -0,0 +1,8 @@ |
|||
package a8k.service.bak_appbase.progress; |
|||
|
|||
public enum EmergencySampleState { |
|||
IDLE,// |
|||
PENDING,// |
|||
PROCESSING,// |
|||
FINISHED,// |
|||
} |
@ -0,0 +1,18 @@ |
|||
package a8k.type.type; |
|||
|
|||
//ID卡中的类型 |
|||
public enum SupportBloodType { |
|||
WHOLE_BLOOD(0),//全血 |
|||
PLASMA(1),//血浆 |
|||
SERUM(2), |
|||
SERUM_AND_PLASMA(3),//血清或者血浆 |
|||
WHOLE_BLOOD_AND_PLASMA(4),//全血和血浆 |
|||
WHOLE_BLOOD_AND_SERUM_AND_PLASMA(5),//全血和血清或者血浆 |
|||
URINE(6),//尿液 |
|||
FAECES(7),//粪便 |
|||
; |
|||
final int index; |
|||
SupportBloodType(int index) { |
|||
this.index = index; |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue