123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- import 'dart:convert';
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import 'package:vnoteapp/pages/check/widgets/exam_configurable/exam_card.dart';
- import 'package:vnoteapp/components/dialog_number.dart';
- import 'package:vnoteapp/pages/check/widgets/exam_device_connect_status/connect.dart';
- import 'package:vnoteapp/pages/check/widgets/exam_device_connect_status/connect_disconnected.dart';
- import 'package:vnoteapp/pages/check/widgets/exam_device_connect_status/connect_fail.dart';
- import 'package:vnoteapp/pages/check/widgets/exam_device_connect_status/connect_success.dart';
- import 'package:vnoteapp/pages/medical/controller.dart';
- import 'package:vnoteapp/pages/medical/models/worker.dart';
- class BloodSugar extends GetView<MedicalController> {
- const BloodSugar({super.key});
- @override
- Widget build(BuildContext context) {
- return Obx(() {
- var element = controller.state.medicalMenuList
- .firstWhere((element) => element.key == 'GLU');
- return Stack(
- children: [
- _buildTemperature(),
- _buildStutas(element.diagnosisWorkerStatus),
- ],
- );
- });
- }
- Widget _buildTemperature() {
- return ExamCard(
- title: '血糖',
- clickCard: () {
- _inputTemperature();
- },
- content: Container(
- alignment: Alignment.bottomRight,
- padding: const EdgeInsets.only(
- bottom: 20,
- right: 30,
- left: 40,
- ),
- constraints: const BoxConstraints(minHeight: 150),
- child: FittedBox(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- crossAxisAlignment: CrossAxisAlignment.end,
- children: [
- Obx(() {
- var element = controller.state.medicalMenuList
- .firstWhere((element) => element.key == 'GLU');
- String? value = element.diagnosisData;
- String text =
- value != null ? jsonDecode(value)['sugar'].toString() : '';
- return RichText(
- text: TextSpan(
- text: text,
- style: const TextStyle(
- fontSize: 80,
- color: Colors.black,
- ),
- children: const [
- TextSpan(
- text: 'mmol/L',
- style: TextStyle(fontSize: 25),
- )
- ],
- ),
- );
- })
- ],
- ),
- ),
- ),
- );
- }
- Future<void> _inputTemperature() async {
- String? result = await VDialogNumber(
- title: '血糖',
- initialValue: jsonDecode(
- controller.state.medicalMenuList.first.diagnosisData ?? '')['sugar'],
- ).show();
- if (result?.isNotEmpty ?? false) {
- jsonDecode(controller.state.medicalMenuList.first.diagnosisData ?? '')[
- 'sugar'] = result ?? '';
- }
- }
- Widget _buildStutas(diagnosisWorkerStatus) {
- switch (diagnosisWorkerStatus) {
- case WorkerStatus.connectionFailed:
- return const DeviceConnectFail();
- case WorkerStatus.connected:
- return const DeviceConnectSuccess();
- case WorkerStatus.connecting:
- return const DeviceConnect();
- case WorkerStatus.disconnected:
- return const DeviceConnectDisconnected();
- default:
- return const SizedBox();
- }
- }
- }
- // // ignore: must_be_immutable
- // class BloodSugar extends StatefulWidget {
- // const BloodSugar({
- // super.key,
- // });
- // @override
- // State<BloodSugar> createState() => _ExamBloodSugarState();
- // }
- // class _ExamBloodSugarState extends State<BloodSugar> {
- // var permissionManager = Get.find<IPermissionManager>();
- // var controller = Get.find<MedicalController>();
- // late final SugarDeviceWorker worker = SugarDeviceWorker(
- // mac: '60:98:66:C4:0E:51',
- // model: 'i-sens630',
- // );
- // /// 设备连接失败的状态
- // bool _connectFailStatus = false;
- // /// 设备连接中断的状态
- // bool _connectDisconnectedStatus = false;
- // /// 设备连接成功的状态
- // bool _connectSuccessStatus = false;
- // /// 设备是否连接中
- // bool _isConnect = false;
- // late String _value = controller.diagnosisDataValue['GLU']?['sugar'] ?? '';
- // @override
- // void initState() {
- // initSugar();
- // super.initState();
- // }
- // void workerAddListener() {
- // worker.successEvent.addListener(_onSuccess);
- // worker.connectErrorEvent.addListener(_onConnectFail);
- // worker.connectedEvent.addListener(_onConnectSuccess);
- // worker.disconnectedEvent.addListener(_onDisconnected);
- // }
- // Future<void> initSugar() async {
- // getPermission();
- // workerAddListener();
- // await connect();
- // await initData();
- // }
- // Future<void> initData() async {
- // await controller.readCachedRecord();
- // _value = controller.diagnosisDataValue['GLU']?['sugar'] ?? '';
- // setState(() {});
- // }
- // Future<void> connect() async {
- // _connectFailStatus = false;
- // _isConnect = true;
- // _connectSuccessStatus = false;
- // _connectDisconnectedStatus = false;
- // setState(() {});
- // await worker.connect();
- // }
- // Future<void> disconnect() async {
- // worker.connectErrorEvent.removeListener(_onConnectFail);
- // worker.connectedEvent.removeListener(_onConnectSuccess);
- // worker.successEvent.removeListener(_onSuccess);
- // worker.disconnectedEvent.removeListener(_onDisconnected);
- // await worker.disconnect();
- // }
- // @override
- // void dispose() {
- // disconnect();
- // super.dispose();
- // }
- // void _onSuccess(_, SugarExamData e) {
- // setState(() {
- // _value = e.sugar.toString();
- // controller.diagnosisDataValue['GLU'] = {'sugar': _value};
- // _isConnect = false;
- // });
- // }
- // void _onConnectFail(sender, e) {
- // print('连接设备失败');
- // _connectFailStatus = true;
- // _connectSuccessStatus = false;
- // _connectDisconnectedStatus = false;
- // _isConnect = false;
- // setState(() {});
- // }
- // void _onConnectSuccess(sender, e) {
- // _connectSuccessStatus = true;
- // _isConnect = false;
- // _connectFailStatus = false;
- // _connectDisconnectedStatus = false;
- // setState(() {});
- // }
- // void _onDisconnected(sender, e) {
- // print('设备连接中断');
- // _connectDisconnectedStatus = true;
- // _connectSuccessStatus = false;
- // _connectFailStatus = false;
- // _isConnect = false;
- // setState(() {});
- // }
- // Future<void> getPermission() async {
- // await permissionManager.requestLocationPermission();
- // await permissionManager.requestBluetoothConnectPermission();
- // await permissionManager.requestBluetoothAdvertisePermission();
- // await permissionManager.requestBluetoothScanPermission();
- // }
- // @override
- // Widget build(BuildContext context) {
- // return Stack(
- // children: [
- // _buildTemperature(),
- // if (_connectFailStatus)
- // DeviceConnectFail(
- // connect: () => connect(),
- // ),
- // if (_connectSuccessStatus) const DeviceConnectSuccess(),
- // if (_isConnect) const DeviceConnect(),
- // if (_connectDisconnectedStatus)
- // DeviceConnectDisconnected(
- // connect: () => connect(),
- // ),
- // ],
- // );
- // }
- // Widget _buildTemperature() {
- // return ExamCard(
- // title: '血糖',
- // clickCard: () {
- // _inputTemperature();
- // },
- // content: Container(
- // alignment: Alignment.bottomRight,
- // padding: const EdgeInsets.only(
- // bottom: 20,
- // right: 30,
- // left: 40,
- // ),
- // constraints: const BoxConstraints(minHeight: 150),
- // child: FittedBox(
- // child: Row(
- // mainAxisAlignment: MainAxisAlignment.end,
- // crossAxisAlignment: CrossAxisAlignment.end,
- // children: [
- // RichText(
- // text: TextSpan(
- // text: _value,
- // style: const TextStyle(
- // fontSize: 80,
- // color: Colors.black,
- // ),
- // children: const [
- // TextSpan(
- // text: 'mmol/L',
- // style: TextStyle(fontSize: 25),
- // )
- // ],
- // ),
- // ),
- // ],
- // ),
- // ),
- // ),
- // );
- // }
- // Future<void> _inputTemperature() async {
- // String? result = await VDialogNumber(
- // title: '血糖',
- // initialValue: _value,
- // ).show();
- // if (result?.isNotEmpty ?? false) {
- // _value = result ?? '';
- // }
- // }
- // }
|