★ 安全操作项目
项目描述:安全操作项目旨在提高医疗设备的安全性,特别是在医生离开操作屏幕时,以减少非授权人员的误操作风险。为实现这一目标,我们采用多层次的保护措施,包括人脸识别、姿势检测以及二维码识别等技术。这些技术用于监测医生是否在工作区域内,并根据检测结果触发相应的安全响应机制。如果医生被检测到离开工作区域或操作屏幕,系统将立即采取措施,例如触发警报、锁定医疗设备,以确保患者数据和医疗设备的安全。
职责描述:
1、JNI接口独立开发。
2、回调函数处理。
3、WebSocket通信:确保与前端的实时数据交换。
核心技术
Java中调用C++代码
https://blog.csdn.net/weixin_43914278/article/details/127278471
某核心功能
基本思路就是传灵敏度的相关参数,获取回调信息,将byte数组信息转为base64,开发的时候配合写的前端代码https://blog.csdn.net/weixin_43914278/article/details/128216828
@Operation(summary = "开始数量追踪")
@PostMapping("/startFaceTrackingEx")
public CommonResult startFaceTrackingEx(@RequestBody StartFaceTrackingModel startFaceTrackingModel) {
if (faceStateMonitor.getTraceMode() != 0) {
return CommonResult.error("重复发送指令");
}
Boolean status = faceStateMonitor.startJniFaceTracingEx(startFaceTrackingModel.getMaxFaltCount(), startFaceTrackingModel.getSampleCount(), (int traceState, long eventTimePoint) -> {
//推送消息
Map<String, Object> map = new HashMap<>(2);
map.put("traceState", traceState);
map.put("eventTimePoint", eventTimePoint);
String jsonStr = JSONUtil.toJsonStr(map);
WebSocketMessageUtil.sendWebSocketMessage(WebSocketService.session, CommandTypeEnum.startJniFaceTracingEx.getCode(), jsonStr);
alarmByTraceState(traceState, eventTimePoint, CommandTypeEnum.startJniFaceTracingEx.getCode());
}, (imageBytes, width, height) -> {
//将图像通过webSocket发送给前端
if (WebSocketService.session != null) {
Map<String, Object> map = new HashMap<>(4);
map.put("imgBytes", Base64Utils.encode(imageBytes));
map.put("width", width);
map.put("height", height);
map.put("commandType", CommandTypeEnum.openJniCamera.getCode());
String jsonStr = JSONUtil.toJsonStr(map);
WebSocketMessageUtil.sendWebSocketMessage(WebSocketService.session, 200, jsonStr);
} else {
stopFaceTracking();
throw new RuntimeException("webSocket连接失败");
}
});
if (!status) {
return CommonResult.error();
}
return CommonResult.success();
}
后期放弃做app
后期计划推出了安卓方案,也从网上找到了相关的开源代码,也部分实现了该功能,但是考虑到项目安卓开发经验不足、go服务器源码无人能维护等原因未继续实现该功能。