initbluai method
Implementation
Future<void> initbluai(
BuildContext context,
CustomColorTheme color,
ConfigurationModel tap,
) async {
try {
PermissionStatus permissionStatus = await Permission.camera.status;
if (permissionStatus.isGranted) {
camerapermission = true;
notifyListeners();
await BluaiSdk.initialize(
apiKey!,
"",
settings: InitializationSettings(
showInfoButton: false,
enableSummaryScreen: false,
showUserInterface: true,
onboardingMode: OnboardingMode.hidden,
),
// ),
).then((val) {
//log("initialize $val");
if (val == InitializationResult.success) {
intilization = true;
notifyListeners();
}
});
await BluaiSdk.setCustomColorTheme(color);
await BluaiSdk.setCameraMode(CameraMode.facingUser);
await BluaiSdk.setPrecisionMode(PrecisionMode.strict);
await BluaiSdk.setOperatingMode(OperatingMode.positioning);
await BluaiSdk.setCustomMeasurementConfig(
CustomMeasurementConfig(
instantMetrics: [Metric.heartRate, Metric.bloodPressure],
summaryMetrics: [
Metric.bloodPressure,
Metric.heartRate,
Metric.breathingRate,
Metric.hrvSdnn,
Metric.cardiacStress,
Metric.pnsActivity,
Metric.cardiacWorkload,
Metric.age,
Metric.bmi,
],
),
);
await BluaiSdk.setLanguage("en");
BluaiSdk.setEventCallback((event) async {
if (event == Event.measurementFinished) {
var results = await BluaiSdk.getMeasurementResults();
if (results != null) {
ScanModel scanModel = ScanModel();
scanModel.bloodPressure =
"${results.systolic_blood_pressure_mmhg?.toStringAsFixed(2).split(".")[0]}/${results.diastolic_blood_pressure_mmhg?.toStringAsFixed(2).split(".")[0]}";
scanModel.heartRate = "${results.heart_rate_bpm.toInt()}";
scanModel.breathingRate =
"${results.breathing_rate_bpm?.toInt()}";
scanModel.hrvsdnn = "${results.hrv_sdnn_ms?.toInt()}";
scanModel.stressindex = "${results.stress_index?.toInt()}";
scanModel.bmicategory = "${results.bmi_category}";
scanModel.bmi = "${results.bmi_kg_per_m2?.toInt()}";
scanModel.parasympatheticactivity =
"${results.parasympathetic_activity?.toInt()}";
scanModel.cardiacworkload =
"${results.cardiac_workload_mmhg_per_sec?.toInt()}";
scanModel.vascularage = "${results.age_years?.toInt()}";
//log("Warning ScanModel ${scanModel.toJson()}");
if (scanModel.toJson().values.any(
(e) => e == null || e == "null",
)) {
warningtoast(
title:
"Failed to capture your vitals data please restart and follow the guidelines provided.",
messge:
"Failed to capture your vitals data. Please restart and follow the guidelines provided.",
);
} else {
saveuser(context, tap: tap).then((val) {
terminatesdk().then((val) {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (_) => tap.child,
settings: RouteSettings(arguments: scanModel.toJson()),
),
(route) => false,
);
});
});
}
}
}
});
} else {
bool cameraOk = await checkCameraPermission();
if (cameraOk) {
initbluai(context, color, tap);
} else {
warningtoast(
messge: "Camera Permission is Required",
title: "Camera Permission",
);
}
}
} catch (ex) {
//log("Intlization Ex $ex");
}
}