@ovok/native 1.6.23 → 1.6.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js +1 -1
- package/lib/commonjs/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js +7 -1
- package/lib/commonjs/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js +37 -0
- package/lib/commonjs/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js +7 -1
- package/lib/commonjs/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js +13 -4
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js +3 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js +2 -0
- package/lib/commonjs/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +31 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +4 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +9 -4
- package/lib/commonjs/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js +28 -0
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-device.js +24 -3
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-device.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-record.js +98 -0
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-record.js.map +1 -0
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js +215 -55
- package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js.map +1 -1
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +16 -3
- package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
- package/lib/commonjs/modules/bt-management/types/clock-sync.js +1 -0
- package/lib/commonjs/modules/bt-management/types/clock-sync.js.map +1 -1
- package/lib/commonjs/modules/bt-management/utils/convert-ecg-diagnostic-flag.js +19 -27
- package/lib/commonjs/modules/bt-management/utils/convert-ecg-diagnostic-flag.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js +2 -2
- package/lib/module/modules/bt-device/constants/supported-device-catalog-entries.js.map +1 -1
- package/lib/module/modules/bt-device/constants/supported-devices.js +1 -1
- package/lib/module/modules/bt-device/constants/supported-devices.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js +7 -1
- package/lib/module/modules/bt-management/services/devices/bp2/bp2.device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js +37 -0
- package/lib/module/modules/bt-management/services/devices/bt-data-processor.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js +7 -1
- package/lib/module/modules/bt-management/services/devices/bt-managed-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js +13 -3
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.device-names.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js +4 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.name-match.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js +2 -0
- package/lib/module/modules/bt-management/services/devices/lepu/lepu.transports.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js +27 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js +4 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js +4 -5
- package/lib/module/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js +28 -0
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.bp-monitors.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-device.js +24 -3
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-device.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-record.js +92 -0
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-record.js.map +1 -0
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js +211 -50
- package/lib/module/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js +16 -3
- package/lib/module/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map +1 -1
- package/lib/module/modules/bt-management/types/clock-sync.js +1 -0
- package/lib/module/modules/bt-management/types/clock-sync.js.map +1 -1
- package/lib/module/modules/bt-management/types/device-measurement-map.js.map +1 -1
- package/lib/module/modules/bt-management/utils/convert-ecg-diagnostic-flag.js +19 -27
- package/lib/module/modules/bt-management/utils/convert-ecg-diagnostic-flag.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +9 -3
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +3 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts +3 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts +11 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts +2 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts +41 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts +50 -18
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts +10 -0
- package/lib/typescript/commonjs/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts +4 -1
- package/lib/typescript/commonjs/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/utils/convert-ecg-diagnostic-flag.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-device-catalog-entries.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-device/constants/supported-devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bp2/bp2.device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts +8 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-data-processor.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-managed-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts +9 -3
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.device-names.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.name-match.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts +3 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/lepu/lepu.transports.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts +3 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.blood-pressure-status.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.devices.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/standard-gatt/standard-gatt.profile.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts +11 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts +2 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-device.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts +41 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-record.d.ts.map +1 -0
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts +50 -18
- package/lib/typescript/module/src/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/viatom/viatom.bp-monitors.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/clock-sync.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts +10 -0
- package/lib/typescript/module/src/modules/bt-management/types/command-sequencer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts +4 -1
- package/lib/typescript/module/src/modules/bt-management/types/device-measurement-map.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/utils/convert-ecg-diagnostic-flag.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -3,34 +3,51 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VerovalEcgTransfer = void 0;
|
|
7
|
-
|
|
6
|
+
exports.VerovalEcgTransfer = exports.SET_TIME_DELAY_MS = exports.SEGMENT_BYTES = exports.RAW_TIMEOUT_MS = exports.PACKETS_PER_SEGMENT = exports.HEADER_PACKETS = exports.DOWNLOAD_WAIT = exports.DOWNLOAD_RAW = exports.DOWNLOAD_MODE = exports.DOWNLOAD_HEADER = exports.COMMAND_TIMEOUT_MS = void 0;
|
|
7
|
+
var _clockSync = require("../../../types/clock-sync.js");
|
|
8
|
+
var _hexToByte = require("../../../utils/hex-to-byte.js");
|
|
9
|
+
var _verovalEcgRecord = require("./veroval.ecg-record.js");
|
|
10
|
+
/* eslint-disable max-lines */
|
|
11
|
+
|
|
12
|
+
/** Every request is a fixed twenty-byte packet, zero filled after its command data. */
|
|
8
13
|
const PACKET_BYTES = 20;
|
|
9
14
|
const GROUP_INDEX = 1;
|
|
10
15
|
const COMMAND_INDEX = 2;
|
|
11
16
|
const PARAMETER_INDEX = 3;
|
|
12
17
|
const DOWNLOAD_GROUP = 4;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
18
|
+
const DOWNLOAD_WAIT = exports.DOWNLOAD_WAIT = 0;
|
|
19
|
+
const DOWNLOAD_MODE = exports.DOWNLOAD_MODE = 1;
|
|
20
|
+
const DOWNLOAD_HEADER = exports.DOWNLOAD_HEADER = 2;
|
|
21
|
+
const DOWNLOAD_RAW = exports.DOWNLOAD_RAW = 3;
|
|
22
|
+
const SETTINGS_GROUP = 7;
|
|
23
|
+
const SET_TIME_GROUP = 5;
|
|
24
|
+
const SETTINGS_COMMAND = 2;
|
|
16
25
|
const FRAME_GROUP_INDEX = 1;
|
|
17
26
|
const FRAME_COMMAND_INDEX = 2;
|
|
18
27
|
const FRAME_PACKET_INDEX = 3;
|
|
28
|
+
const MODE_USER_ONE_COUNT_INDEX = 3;
|
|
29
|
+
const MODE_USER_TWO_COUNT_INDEX = 4;
|
|
19
30
|
|
|
20
|
-
/** The
|
|
31
|
+
/** The device answers a header with five notifications of sixteen bytes each. */
|
|
21
32
|
const PAYLOAD_FROM = 4;
|
|
22
33
|
const PAYLOAD_BYTES = 16;
|
|
23
|
-
const HEADER_PACKETS = 5;
|
|
24
|
-
const PACKETS_PER_SEGMENT = 16;
|
|
25
|
-
const
|
|
34
|
+
const HEADER_PACKETS = exports.HEADER_PACKETS = 5;
|
|
35
|
+
const PACKETS_PER_SEGMENT = exports.PACKETS_PER_SEGMENT = 16;
|
|
36
|
+
const SEGMENT_BYTES = exports.SEGMENT_BYTES = PAYLOAD_BYTES * PACKETS_PER_SEGMENT;
|
|
37
|
+
const COMMAND_TIMEOUT_MS = exports.COMMAND_TIMEOUT_MS = 3_000;
|
|
38
|
+
const RAW_TIMEOUT_MS = exports.RAW_TIMEOUT_MS = 2_000;
|
|
39
|
+
const MAX_RETRIES = 2;
|
|
40
|
+
const SET_TIME_DELAY_MS = exports.SET_TIME_DELAY_MS = 1_500;
|
|
26
41
|
const BYTE_MASK = 0xff;
|
|
27
|
-
const
|
|
42
|
+
const byteAt = (frame, index) => {
|
|
43
|
+
const value = (0, _hexToByte.hexToByte)(frame[index] ?? "00");
|
|
44
|
+
return Number.isFinite(value) ? value : 0;
|
|
45
|
+
};
|
|
28
46
|
const toHex = byte => (byte & BYTE_MASK).toString(16).padStart(2, "0");
|
|
29
|
-
const
|
|
30
|
-
const
|
|
31
|
-
const packet = (write, command, parameters = []) => {
|
|
47
|
+
const isFrame = (frame, group, command) => byteAt(frame, FRAME_GROUP_INDEX) === group && byteAt(frame, FRAME_COMMAND_INDEX) === command;
|
|
48
|
+
const packet = (write, group, command, parameters = [], delayBeforeWriteMs) => {
|
|
32
49
|
const bytes = new Array(PACKET_BYTES).fill(0);
|
|
33
|
-
bytes[GROUP_INDEX] =
|
|
50
|
+
bytes[GROUP_INDEX] = group;
|
|
34
51
|
bytes[COMMAND_INDEX] = command;
|
|
35
52
|
parameters.forEach((value, index) => {
|
|
36
53
|
bytes[PARAMETER_INDEX + index] = value;
|
|
@@ -38,72 +55,215 @@ const packet = (write, command, parameters = []) => {
|
|
|
38
55
|
return {
|
|
39
56
|
...write,
|
|
40
57
|
frame: bytes.map(toHex),
|
|
41
|
-
withoutResponse: true
|
|
58
|
+
withoutResponse: true,
|
|
59
|
+
...(delayBeforeWriteMs === undefined ? {} : {
|
|
60
|
+
delayBeforeWriteMs
|
|
61
|
+
})
|
|
42
62
|
};
|
|
43
63
|
};
|
|
44
|
-
const
|
|
64
|
+
const payloadOf = frame => [...frame.slice(PAYLOAD_FROM, PAYLOAD_FROM + PAYLOAD_BYTES)];
|
|
65
|
+
const settingsCommand = write => packet(write, SETTINGS_GROUP, SETTINGS_COMMAND, [], SET_TIME_DELAY_MS);
|
|
66
|
+
const setTimeCommand = (write, clockSync, settings) => {
|
|
67
|
+
const parts = (0, _clockSync.getClockParts)(clockSync?.now?.() ?? new Date(), clockSync?.timezone);
|
|
68
|
+
return packet(write, SET_TIME_GROUP, SETTINGS_COMMAND, [parts.year % 100, parts.month, parts.day, parts.hours, parts.minutes, parts.seconds, settings[0] ?? 0, settings[1] ?? 0, settings[2] ?? 0]);
|
|
69
|
+
};
|
|
45
70
|
/**
|
|
46
|
-
* Downloads
|
|
47
|
-
*
|
|
48
|
-
* The exchange is a fixed walk rather than a conversation: ask for the download mode, then
|
|
49
|
-
* the header, then each second of the recording in turn. The device answers each request
|
|
50
|
-
* with a known number of twenty-byte packets, sixteen payload bytes each, so the transfer is
|
|
51
|
-
* paced by counting them. Notifications for live measurements, standby and device settings
|
|
52
|
-
* share the characteristic, so only the download group and command advance the transfer.
|
|
71
|
+
* Downloads all records from the Veroval ECG/BP monitor.
|
|
53
72
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
73
|
+
* The mode reply gives the number of records in each user memory. Headers are collected first;
|
|
74
|
+
* only then does the device enter raw-download mode. This matters because a blood-pressure
|
|
75
|
+
* record is complete in its header while an ECG needs one or more raw segments.
|
|
57
76
|
*/
|
|
58
77
|
class VerovalEcgTransfer {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
78
|
+
headerPacket = 0;
|
|
79
|
+
headerBytes = [];
|
|
80
|
+
recordIndex = 0;
|
|
81
|
+
expectedRecords = 0;
|
|
82
|
+
headers = [];
|
|
83
|
+
ecgHeaders = [];
|
|
84
|
+
ecgIndex = 0;
|
|
85
|
+
segment = 1;
|
|
86
|
+
rawPacket = 0;
|
|
87
|
+
segmentBytes = [];
|
|
88
|
+
rawBytes = [];
|
|
89
|
+
pendingTimeout = COMMAND_TIMEOUT_MS;
|
|
90
|
+
retries = 0;
|
|
91
|
+
settings = [0, 0, 0];
|
|
63
92
|
constructor(params) {
|
|
64
93
|
this.params = params;
|
|
94
|
+
this.phase = (0, _clockSync.isClockSyncEnabled)(params.clockSync) ? "settings" : "mode";
|
|
65
95
|
}
|
|
66
|
-
initialCommands = () => [
|
|
96
|
+
initialCommands = () => this.phase === "settings" ? this.remember([settingsCommand(this.params.write)], COMMAND_TIMEOUT_MS, true) : this.requestMode();
|
|
67
97
|
nextCommand = frame => {
|
|
68
98
|
if (this.phase === "done") {
|
|
69
99
|
return undefined;
|
|
70
100
|
}
|
|
101
|
+
if (this.phase === "settings") {
|
|
102
|
+
return this.nextSettings(frame);
|
|
103
|
+
}
|
|
71
104
|
if (this.phase === "mode") {
|
|
72
|
-
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
this.phase = "header";
|
|
76
|
-
this.packets = 0;
|
|
77
|
-
return [packet(this.params.write, DOWNLOAD_HEADER)];
|
|
105
|
+
return this.nextMode(frame);
|
|
78
106
|
}
|
|
79
107
|
if (this.phase === "header") {
|
|
80
|
-
|
|
81
|
-
|
|
108
|
+
return this.nextHeader(frame);
|
|
109
|
+
}
|
|
110
|
+
return this.nextRaw(frame);
|
|
111
|
+
};
|
|
112
|
+
commandTimeoutMs = () => this.phase === "done" ? undefined : this.pendingTimeout;
|
|
113
|
+
onCommandTimeout = () => {
|
|
114
|
+
if (!this.lastCommand || this.phase === "done") {
|
|
115
|
+
return {
|
|
116
|
+
terminal: true
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (this.retries >= MAX_RETRIES) {
|
|
120
|
+
this.phase = "done";
|
|
121
|
+
return {
|
|
122
|
+
terminal: true
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
this.retries += 1;
|
|
126
|
+
if (this.phase === "header") {
|
|
127
|
+
this.headerPacket = 0;
|
|
128
|
+
this.headerBytes = [];
|
|
129
|
+
}
|
|
130
|
+
if (this.phase === "raw") {
|
|
131
|
+
this.rawPacket = 0;
|
|
132
|
+
this.segmentBytes = [];
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
commands: [this.lastCommand]
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
commandProgress = frame => {
|
|
139
|
+
if (this.phase === "settings") {
|
|
140
|
+
return isFrame(frame, SETTINGS_GROUP, SETTINGS_COMMAND) ? "complete" : "ignored";
|
|
141
|
+
}
|
|
142
|
+
if (this.phase === "mode") {
|
|
143
|
+
return isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_MODE) ? "complete" : "ignored";
|
|
144
|
+
}
|
|
145
|
+
if (this.phase === "header") {
|
|
146
|
+
if (!isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_HEADER) || byteAt(frame, FRAME_PACKET_INDEX) !== this.headerPacket) {
|
|
147
|
+
return "ignored";
|
|
82
148
|
}
|
|
83
|
-
this.
|
|
84
|
-
|
|
149
|
+
return this.headerPacket + 1 === HEADER_PACKETS ? "complete" : "partial";
|
|
150
|
+
}
|
|
151
|
+
if (!isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_RAW) || byteAt(frame, FRAME_PACKET_INDEX) !== this.rawPacket) {
|
|
152
|
+
return "ignored";
|
|
85
153
|
}
|
|
86
|
-
|
|
154
|
+
return this.rawPacket + 1 === PACKETS_PER_SEGMENT ? "complete" : "partial";
|
|
155
|
+
};
|
|
156
|
+
nextSettings = frame => {
|
|
157
|
+
if (!isFrame(frame, SETTINGS_GROUP, SETTINGS_COMMAND)) {
|
|
87
158
|
return undefined;
|
|
88
159
|
}
|
|
89
|
-
this.
|
|
90
|
-
this.
|
|
91
|
-
return this.
|
|
160
|
+
this.settings = [byteAt(frame, 5), byteAt(frame, 6), byteAt(frame, 7)];
|
|
161
|
+
this.phase = "mode";
|
|
162
|
+
return this.remember([setTimeCommand(this.params.write, this.params.clockSync, this.settings), packet(this.params.write, DOWNLOAD_GROUP, DOWNLOAD_MODE)], COMMAND_TIMEOUT_MS);
|
|
92
163
|
};
|
|
93
|
-
|
|
164
|
+
nextMode = frame => {
|
|
165
|
+
if (!isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_MODE)) {
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
const userOne = byteAt(frame, MODE_USER_ONE_COUNT_INDEX);
|
|
169
|
+
const userTwo = byteAt(frame, MODE_USER_TWO_COUNT_INDEX);
|
|
170
|
+
this.expectedRecords = userOne + userTwo;
|
|
171
|
+
if (this.expectedRecords === 0) {
|
|
172
|
+
this.phase = "done";
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
this.headers = [];
|
|
176
|
+
this.recordIndex = 0;
|
|
177
|
+
return this.requestHeader(this.recordIndex);
|
|
178
|
+
};
|
|
179
|
+
nextHeader = frame => {
|
|
180
|
+
if (!isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_HEADER) || byteAt(frame, FRAME_PACKET_INDEX) !== this.headerPacket) {
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
this.headerBytes.push(...payloadOf(frame));
|
|
184
|
+
this.headerPacket += 1;
|
|
185
|
+
if (this.headerPacket < HEADER_PACKETS) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
const header = (0, _verovalEcgRecord.parseVerovalEcgHeader)(this.headerBytes);
|
|
189
|
+
if (header) {
|
|
190
|
+
this.headers.push(header);
|
|
191
|
+
}
|
|
192
|
+
this.recordIndex += 1;
|
|
193
|
+
if (this.recordIndex < this.expectedRecords) {
|
|
194
|
+
return this.requestHeader(this.recordIndex);
|
|
195
|
+
}
|
|
196
|
+
this.ecgHeaders = this.headers.filter(candidate => candidate.isEcg && !candidate.hasError && candidate.rawSize > 0);
|
|
197
|
+
this.headers.filter(candidate => !candidate.isEcg && !candidate.hasError).forEach(candidate => this.params.onRecord({
|
|
198
|
+
header: candidate
|
|
199
|
+
}));
|
|
200
|
+
if (this.ecgHeaders.length === 0) {
|
|
201
|
+
this.phase = "done";
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
this.ecgIndex = 0;
|
|
205
|
+
return this.remember([packet(this.params.write, DOWNLOAD_GROUP, DOWNLOAD_WAIT), ...this.requestRaw(this.ecgHeaders[0])], RAW_TIMEOUT_MS);
|
|
206
|
+
};
|
|
207
|
+
nextRaw = frame => {
|
|
208
|
+
if (!isFrame(frame, DOWNLOAD_GROUP, DOWNLOAD_RAW) || byteAt(frame, FRAME_PACKET_INDEX) !== this.rawPacket) {
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
this.segmentBytes.push(...payloadOf(frame));
|
|
212
|
+
this.rawPacket += 1;
|
|
213
|
+
if (this.rawPacket < PACKETS_PER_SEGMENT) {
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
216
|
+
this.rawBytes.push(...this.segmentBytes);
|
|
217
|
+
const header = this.ecgHeaders[this.ecgIndex];
|
|
218
|
+
if (!header) {
|
|
219
|
+
this.phase = "done";
|
|
220
|
+
return undefined;
|
|
221
|
+
}
|
|
222
|
+
if (this.rawBytes.length >= header.rawSize) {
|
|
223
|
+
this.params.onRecord({
|
|
224
|
+
header,
|
|
225
|
+
raw: this.rawBytes.slice(0, header.rawSize)
|
|
226
|
+
});
|
|
227
|
+
this.ecgIndex += 1;
|
|
228
|
+
if (this.ecgIndex >= this.ecgHeaders.length) {
|
|
229
|
+
this.phase = "done";
|
|
230
|
+
return undefined;
|
|
231
|
+
}
|
|
232
|
+
return this.remember(this.requestRaw(this.ecgHeaders[this.ecgIndex]), RAW_TIMEOUT_MS);
|
|
233
|
+
}
|
|
94
234
|
this.segment += 1;
|
|
95
|
-
|
|
96
|
-
|
|
235
|
+
return this.remember(this.requestSegment(header), RAW_TIMEOUT_MS);
|
|
236
|
+
};
|
|
237
|
+
requestMode = () => this.remember([packet(this.params.write, DOWNLOAD_GROUP, DOWNLOAD_MODE)], COMMAND_TIMEOUT_MS);
|
|
238
|
+
requestHeader = index => {
|
|
239
|
+
this.phase = "header";
|
|
240
|
+
this.headerPacket = 0;
|
|
241
|
+
this.headerBytes = [];
|
|
242
|
+
return this.remember([packet(this.params.write, DOWNLOAD_GROUP, DOWNLOAD_HEADER, [index])], COMMAND_TIMEOUT_MS);
|
|
243
|
+
};
|
|
244
|
+
requestRaw = header => {
|
|
245
|
+
if (!header) {
|
|
246
|
+
this.phase = "done";
|
|
247
|
+
return [];
|
|
97
248
|
}
|
|
98
|
-
this.
|
|
99
|
-
this.
|
|
100
|
-
return
|
|
249
|
+
this.segment = 1;
|
|
250
|
+
this.rawBytes = [];
|
|
251
|
+
return this.requestSegment(header);
|
|
101
252
|
};
|
|
102
|
-
requestSegment =
|
|
253
|
+
requestSegment = header => {
|
|
103
254
|
this.phase = "raw";
|
|
104
|
-
this.
|
|
105
|
-
this.
|
|
106
|
-
return [packet(this.params.write, DOWNLOAD_RAW,
|
|
255
|
+
this.rawPacket = 0;
|
|
256
|
+
this.segmentBytes = [];
|
|
257
|
+
return [packet(this.params.write, DOWNLOAD_GROUP, DOWNLOAD_RAW, [header.memorySlot - 1, header.sequence, this.segment])];
|
|
258
|
+
};
|
|
259
|
+
remember = (commands, timeout, preserveRetryCount = false) => {
|
|
260
|
+
const last = commands[commands.length - 1];
|
|
261
|
+
this.lastCommand = last;
|
|
262
|
+
this.pendingTimeout = timeout;
|
|
263
|
+
if (!preserveRetryCount) {
|
|
264
|
+
this.retries = 0;
|
|
265
|
+
}
|
|
266
|
+
return commands;
|
|
107
267
|
};
|
|
108
268
|
}
|
|
109
269
|
exports.VerovalEcgTransfer = VerovalEcgTransfer;
|
package/lib/commonjs/modules/bt-management/services/devices/veroval/veroval.ecg-transfer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PACKET_BYTES","GROUP_INDEX","COMMAND_INDEX","PARAMETER_INDEX","DOWNLOAD_GROUP","DOWNLOAD_MODE","DOWNLOAD_HEADER","DOWNLOAD_RAW","FRAME_GROUP_INDEX","FRAME_COMMAND_INDEX","FRAME_PACKET_INDEX","PAYLOAD_FROM","PAYLOAD_BYTES","HEADER_PACKETS","PACKETS_PER_SEGMENT","SEGMENTS","BYTE_MASK","BYTE_BITS","toHex","byte","toString","padStart","isDownloadFrame","frame","command","toLowerCase","isExpectedRawPacket","packetIndex","packet","write","parameters","bytes","Array","fill","forEach","value","index","map","withoutResponse","segmentParameters","segment","VerovalEcgTransfer","phase","packets","recording","constructor","params","initialCommands","nextCommand","undefined","requestSegment","push","slice","finishSegment","onRecording","exports"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.ecg-transfer.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clockSync","require","_hexToByte","_verovalEcgRecord","PACKET_BYTES","GROUP_INDEX","COMMAND_INDEX","PARAMETER_INDEX","DOWNLOAD_GROUP","DOWNLOAD_WAIT","exports","DOWNLOAD_MODE","DOWNLOAD_HEADER","DOWNLOAD_RAW","SETTINGS_GROUP","SET_TIME_GROUP","SETTINGS_COMMAND","FRAME_GROUP_INDEX","FRAME_COMMAND_INDEX","FRAME_PACKET_INDEX","MODE_USER_ONE_COUNT_INDEX","MODE_USER_TWO_COUNT_INDEX","PAYLOAD_FROM","PAYLOAD_BYTES","HEADER_PACKETS","PACKETS_PER_SEGMENT","SEGMENT_BYTES","COMMAND_TIMEOUT_MS","RAW_TIMEOUT_MS","MAX_RETRIES","SET_TIME_DELAY_MS","BYTE_MASK","byteAt","frame","index","value","hexToByte","Number","isFinite","toHex","byte","toString","padStart","isFrame","group","command","packet","write","parameters","delayBeforeWriteMs","bytes","Array","fill","forEach","map","withoutResponse","undefined","payloadOf","slice","settingsCommand","setTimeCommand","clockSync","settings","parts","getClockParts","now","Date","timezone","year","month","day","hours","minutes","seconds","VerovalEcgTransfer","headerPacket","headerBytes","recordIndex","expectedRecords","headers","ecgHeaders","ecgIndex","segment","rawPacket","segmentBytes","rawBytes","pendingTimeout","retries","constructor","params","phase","isClockSyncEnabled","initialCommands","remember","requestMode","nextCommand","nextSettings","nextMode","nextHeader","nextRaw","commandTimeoutMs","onCommandTimeout","lastCommand","terminal","commands","commandProgress","userOne","userTwo","requestHeader","push","header","parseVerovalEcgHeader","filter","candidate","isEcg","hasError","rawSize","onRecord","length","requestRaw","raw","requestSegment","memorySlot","sequence","timeout","preserveRetryCount","last"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/veroval/veroval.ecg-transfer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -31,8 +31,9 @@ const RT_DATA = 0x08;
|
|
|
31
31
|
*/
|
|
32
32
|
const CASE_SELECTOR_BYTES = [1, 7];
|
|
33
33
|
|
|
34
|
-
/** Header, realtime state,
|
|
35
|
-
const MIN_LENGTH_BYTES =
|
|
34
|
+
/** Header, realtime state, the result struct and its result code. */
|
|
35
|
+
const MIN_LENGTH_BYTES = 29;
|
|
36
|
+
const RESULT_CODE_INDEX = 28;
|
|
36
37
|
const READING = [{
|
|
37
38
|
name: "systolic",
|
|
38
39
|
byteIndexes: [20, 21],
|
|
@@ -64,6 +65,13 @@ const measuring = (selector, description) => ({
|
|
|
64
65
|
kind: "stream",
|
|
65
66
|
description
|
|
66
67
|
});
|
|
68
|
+
const rejectFailedResult = (reading, frame) => {
|
|
69
|
+
const resultCode = Number.parseInt(frame?.[RESULT_CODE_INDEX] ?? "00", 16);
|
|
70
|
+
if (resultCode !== 0) {
|
|
71
|
+
throw new Error(`Viatom blood-pressure measurement failed with result code 0x${resultCode.toString(16).padStart(2, "0")}`);
|
|
72
|
+
}
|
|
73
|
+
return reading;
|
|
74
|
+
};
|
|
67
75
|
|
|
68
76
|
/**
|
|
69
77
|
* The states the series reports, and what each means for a reading.
|
|
@@ -73,7 +81,11 @@ const measuring = (selector, description) => ({
|
|
|
73
81
|
* separates one measurement from the next, which is why the states in between are declared
|
|
74
82
|
* rather than ignored.
|
|
75
83
|
*/
|
|
76
|
-
const BP2_CASES = [
|
|
84
|
+
const BP2_CASES = [...["00", "01", "02", "03", "0a", "14", "ff"].map(state => ({
|
|
85
|
+
selector: `08${state}`,
|
|
86
|
+
kind: "idle",
|
|
87
|
+
description: "Monitor is connected but not measuring"
|
|
88
|
+
})), measuring("0804", "Cuff inflating or deflating"), result("0805", "Measurement finished"), measuring("080f", "Averaging run: a measurement is in progress"), measuring("0810", "Averaging run: waiting between measurements"), result("0811", "Averaging run finished, carrying the same payload")];
|
|
77
89
|
/**
|
|
78
90
|
* Declares one monitor of the BP2 series.
|
|
79
91
|
*
|
|
@@ -90,6 +102,7 @@ const viatomBpMonitor = (advertisedName, params) => (0, _lepuTransports.lepuDevi
|
|
|
90
102
|
cases: BP2_CASES.map(each => ({
|
|
91
103
|
...each
|
|
92
104
|
})),
|
|
105
|
+
decorateReading: rejectFailedResult,
|
|
93
106
|
...(params.expectedDeviceTypes ? {
|
|
94
107
|
expectedDeviceTypes: params.expectedDeviceTypes
|
|
95
108
|
} : {})
|
package/lib/commonjs/modules/bt-management/services/devices/viatom/viatom.bp-monitors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","READING","name","byteIndexes","byteOrder","encoding","unit","result","selector","description","kind","measurementTypeKey","MeasurementTypeKey","bloodPressure","fields","measuring","BP2_CASES","viatomBpMonitor","advertisedName","params","lepuDevice","id","toLowerCase","replace","nameMatch","lepuNameMatch","pollCommand","minLengthBytes","caseSelectorBytes","cases","
|
|
1
|
+
{"version":3,"names":["_core","require","_lepuNameMatch","_lepuTransports","RT_DATA","CASE_SELECTOR_BYTES","MIN_LENGTH_BYTES","RESULT_CODE_INDEX","READING","name","byteIndexes","byteOrder","encoding","unit","result","selector","description","kind","measurementTypeKey","MeasurementTypeKey","bloodPressure","fields","measuring","rejectFailedResult","reading","frame","resultCode","Number","parseInt","Error","toString","padStart","BP2_CASES","map","state","viatomBpMonitor","advertisedName","params","lepuDevice","id","toLowerCase","replace","nameMatch","lepuNameMatch","pollCommand","minLengthBytes","caseSelectorBytes","cases","each","decorateReading","expectedDeviceTypes","exports","bp2aMonitor","bp2tMonitor","bp2wMonitor","BP3_MODEL_NAMES"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/viatom/viatom.bp-monitors.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,6 +33,7 @@ const clockSyncCapabilityForDevice = deviceName => {
|
|
|
33
33
|
switch (deviceName) {
|
|
34
34
|
case _integratedDevices.IntegratedDevices.BC01:
|
|
35
35
|
case _integratedDevices.IntegratedDevices.MYSENSE:
|
|
36
|
+
case _integratedDevices.IntegratedDevices.VEROVAL_ECG:
|
|
36
37
|
return "supported";
|
|
37
38
|
case _integratedDevices.IntegratedDevices.VEROVAL_ACTIVITY:
|
|
38
39
|
return "unsupported";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_integratedDevices","require","isClockSyncEnabled","options","enabled","exports","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","IntegratedDevices","BC01","MYSENSE","VEROVAL_ACTIVITY"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAFA;;AAoBO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAACC,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAEtB,MAAMI,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AAAAxB,OAAA,CAAAC,aAAA,GAAAA,aAAA;AACO,MAAMwB,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAKC,oCAAiB,CAACC,IAAI;IAC3B,KAAKD,oCAAiB,CAACE,OAAO;
|
|
1
|
+
{"version":3,"names":["_integratedDevices","require","isClockSyncEnabled","options","enabled","exports","getClockParts","date","timezone","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","milliseconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","clockSyncCapabilityForDevice","deviceName","IntegratedDevices","BC01","MYSENSE","VEROVAL_ECG","VEROVAL_ACTIVITY"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/types/clock-sync.ts"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AAFA;;AAoBO,MAAMC,kBAAkB,GAAIC,OAA0B,IAC3DA,OAAO,EAAEC,OAAO,KAAK,KAAK;AAACC,OAAA,CAAAH,kBAAA,GAAAA,kBAAA;AAEtB,MAAMI,aAAa,GAAGA,CAC3BC,IAAU,EACVC,QAA2B,GAAG,OAAO,KAErCA,QAAQ,KAAK,KAAK,GACd;EACEC,IAAI,EAAEF,IAAI,CAACG,cAAc,CAAC,CAAC;EAC3BC,KAAK,EAAEJ,IAAI,CAACK,WAAW,CAAC,CAAC,GAAG,CAAC;EAC7BC,GAAG,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;EACtBC,KAAK,EAAER,IAAI,CAACS,WAAW,CAAC,CAAC;EACzBC,OAAO,EAAEV,IAAI,CAACW,aAAa,CAAC,CAAC;EAC7BC,OAAO,EAAEZ,IAAI,CAACa,aAAa,CAAC,CAAC;EAC7BC,YAAY,EAAEd,IAAI,CAACe,kBAAkB,CAAC;AACxC,CAAC,GACD;EACEb,IAAI,EAAEF,IAAI,CAACgB,WAAW,CAAC,CAAC;EACxBZ,KAAK,EAAEJ,IAAI,CAACiB,QAAQ,CAAC,CAAC,GAAG,CAAC;EAC1BX,GAAG,EAAEN,IAAI,CAACkB,OAAO,CAAC,CAAC;EACnBV,KAAK,EAAER,IAAI,CAACmB,QAAQ,CAAC,CAAC;EACtBT,OAAO,EAAEV,IAAI,CAACoB,UAAU,CAAC,CAAC;EAC1BR,OAAO,EAAEZ,IAAI,CAACqB,UAAU,CAAC,CAAC;EAC1BP,YAAY,EAAEd,IAAI,CAACsB,eAAe,CAAC;AACrC,CAAC;;AAEP;AAAAxB,OAAA,CAAAC,aAAA,GAAAA,aAAA;AACO,MAAMwB,4BAA4B,GACvCC,UAAkB,IACM;EACxB,QAAQA,UAAU;IAChB,KAAKC,oCAAiB,CAACC,IAAI;IAC3B,KAAKD,oCAAiB,CAACE,OAAO;IAC9B,KAAKF,oCAAiB,CAACG,WAAW;MAChC,OAAO,WAAW;IACpB,KAAKH,oCAAiB,CAACI,gBAAgB;MACrC,OAAO,aAAa;IACtB;MACE,OAAO,SAAS;EACpB;AACF,CAAC;AAAC/B,OAAA,CAAAyB,4BAAA,GAAAA,4BAAA","ignoreList":[]}
|
|
@@ -6,33 +6,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.convertEcgDiagnosticFlag = convertEcgDiagnosticFlag;
|
|
7
7
|
var _core = require("@ovok/core");
|
|
8
8
|
function convertEcgDiagnosticFlag(diagnosticFlag) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
case "ffffffff":
|
|
13
|
-
return _core.EcgDiagnosticFlag.POOR_WAVEFORM;
|
|
14
|
-
case "feffffff":
|
|
15
|
-
return _core.EcgDiagnosticFlag.LEAD_OFF;
|
|
16
|
-
case "01000000":
|
|
17
|
-
return _core.EcgDiagnosticFlag.HIGH_HR;
|
|
18
|
-
case "02000000":
|
|
19
|
-
return _core.EcgDiagnosticFlag.LOW_HR;
|
|
20
|
-
case "04000000":
|
|
21
|
-
return _core.EcgDiagnosticFlag.RR_IRREGULAR;
|
|
22
|
-
case "08000000":
|
|
23
|
-
return _core.EcgDiagnosticFlag.PVC;
|
|
24
|
-
case "00100000":
|
|
25
|
-
return _core.EcgDiagnosticFlag.CARDIAC_ARREST;
|
|
26
|
-
case "00200000":
|
|
27
|
-
return _core.EcgDiagnosticFlag.ATRIAL_FIBRILLATION;
|
|
28
|
-
case "00400000":
|
|
29
|
-
return _core.EcgDiagnosticFlag.QRS_WIDE;
|
|
30
|
-
case "00800000":
|
|
31
|
-
return _core.EcgDiagnosticFlag.QTC_LONG;
|
|
32
|
-
case "00010000":
|
|
33
|
-
return _core.EcgDiagnosticFlag.QTC_SHORT;
|
|
34
|
-
default:
|
|
35
|
-
return _core.EcgDiagnosticFlag.REGULAR;
|
|
9
|
+
const normalized = diagnosticFlag.toLowerCase();
|
|
10
|
+
if (normalized === "ffffffff") {
|
|
11
|
+
return _core.EcgDiagnosticFlag.POOR_WAVEFORM;
|
|
36
12
|
}
|
|
13
|
+
if (normalized === "feffffff") {
|
|
14
|
+
return _core.EcgDiagnosticFlag.LEAD_OFF;
|
|
15
|
+
}
|
|
16
|
+
if (!/^[0-9a-f]{8}$/.test(normalized)) {
|
|
17
|
+
return _core.EcgDiagnosticFlag.ERROR;
|
|
18
|
+
}
|
|
19
|
+
const bytes = normalized.match(/../g) ?? [];
|
|
20
|
+
const bitmask = bytes.reduce((value, byte, index) => value | Number.parseInt(byte, 16) << index * 8, 0);
|
|
21
|
+
if (bitmask === 0) {
|
|
22
|
+
return _core.EcgDiagnosticFlag.REGULAR;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// @ovok/core currently stores one diagnostic flag. Preserve the most clinically
|
|
26
|
+
// meaningful finding when firmware sets several bits, with AF taking precedence.
|
|
27
|
+
const priority = [[0x20, _core.EcgDiagnosticFlag.ATRIAL_FIBRILLATION], [0x10, _core.EcgDiagnosticFlag.CARDIAC_ARREST], [0x40, _core.EcgDiagnosticFlag.QRS_WIDE], [0x80, _core.EcgDiagnosticFlag.QTC_LONG], [0x100, _core.EcgDiagnosticFlag.QTC_SHORT], [0x01, _core.EcgDiagnosticFlag.HIGH_HR], [0x02, _core.EcgDiagnosticFlag.LOW_HR], [0x04, _core.EcgDiagnosticFlag.RR_IRREGULAR], [0x08, _core.EcgDiagnosticFlag.PVC]];
|
|
28
|
+
return priority.find(([bit]) => (bitmask & bit) !== 0)?.[1] ?? _core.EcgDiagnosticFlag.ERROR;
|
|
37
29
|
}
|
|
38
30
|
//# sourceMappingURL=convert-ecg-diagnostic-flag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_core","require","convertEcgDiagnosticFlag","diagnosticFlag","
|
|
1
|
+
{"version":3,"names":["_core","require","convertEcgDiagnosticFlag","diagnosticFlag","normalized","toLowerCase","EcgDiagnosticFlag","POOR_WAVEFORM","LEAD_OFF","test","ERROR","bytes","match","bitmask","reduce","value","byte","index","Number","parseInt","REGULAR","priority","ATRIAL_FIBRILLATION","CARDIAC_ARREST","QRS_WIDE","QTC_LONG","QTC_SHORT","HIGH_HR","LOW_HR","RR_IRREGULAR","PVC","find","bit"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/utils/convert-ecg-diagnostic-flag.ts"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,SAASC,wBAAwBA,CACtCC,cAAsB,EACH;EACnB,MAAMC,UAAU,GAAGD,cAAc,CAACE,WAAW,CAAC,CAAC;EAE/C,IAAID,UAAU,KAAK,UAAU,EAAE;IAC7B,OAAOE,uBAAiB,CAACC,aAAa;EACxC;EAEA,IAAIH,UAAU,KAAK,UAAU,EAAE;IAC7B,OAAOE,uBAAiB,CAACE,QAAQ;EACnC;EAEA,IAAI,CAAC,eAAe,CAACC,IAAI,CAACL,UAAU,CAAC,EAAE;IACrC,OAAOE,uBAAiB,CAACI,KAAK;EAChC;EAEA,MAAMC,KAAK,GAAGP,UAAU,CAACQ,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;EAE3C,MAAMC,OAAO,GAAGF,KAAK,CAACG,MAAM,CAC1B,CAACC,KAAK,EAAEC,IAAI,EAAEC,KAAK,KAAKF,KAAK,GAAIG,MAAM,CAACC,QAAQ,CAACH,IAAI,EAAE,EAAE,CAAC,IAAKC,KAAK,GAAG,CAAG,EAC1E,CACF,CAAC;EAED,IAAIJ,OAAO,KAAK,CAAC,EAAE;IACjB,OAAOP,uBAAiB,CAACc,OAAO;EAClC;;EAEA;EACA;EACA,MAAMC,QAAgD,GAAG,CACvD,CAAC,IAAI,EAAEf,uBAAiB,CAACgB,mBAAmB,CAAC,EAC7C,CAAC,IAAI,EAAEhB,uBAAiB,CAACiB,cAAc,CAAC,EACxC,CAAC,IAAI,EAAEjB,uBAAiB,CAACkB,QAAQ,CAAC,EAClC,CAAC,IAAI,EAAElB,uBAAiB,CAACmB,QAAQ,CAAC,EAClC,CAAC,KAAK,EAAEnB,uBAAiB,CAACoB,SAAS,CAAC,EACpC,CAAC,IAAI,EAAEpB,uBAAiB,CAACqB,OAAO,CAAC,EACjC,CAAC,IAAI,EAAErB,uBAAiB,CAACsB,MAAM,CAAC,EAChC,CAAC,IAAI,EAAEtB,uBAAiB,CAACuB,YAAY,CAAC,EACtC,CAAC,IAAI,EAAEvB,uBAAiB,CAACwB,GAAG,CAAC,CAC9B;EAED,OACET,QAAQ,CAACU,IAAI,CAAC,CAAC,CAACC,GAAG,CAAC,KAAK,CAACnB,OAAO,GAAGmB,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IACpD1B,uBAAiB,CAACI,KAAK;AAE3B","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { LEPU_DEVICE_NAMES } from "../../bt-management/services/devices/lepu/lepu.device-names.js";
|
|
3
|
+
import { LEPU_CATALOG_EXCLUDED_DEVICE_NAMES, LEPU_DEVICE_NAMES } from "../../bt-management/services/devices/lepu/lepu.device-names.js";
|
|
4
4
|
import { deviceImages } from "./device-images.js";
|
|
5
5
|
import { alivecorCredit, bundledAssetCredit, cosinussCredit, foraCredit, taidocCredit, transtekCredit, viatomBodyScaleCredit, viatomBp3Credit, viatomBp3Image, viatomEcgCredit, viatomEr1Image, viatomF4Image, viatomO2RingImage, viatomOximeterCredit } from "./supported-device-catalog-assets.js";
|
|
6
6
|
const modelKey = (model, index) => `devices.catalog.lepu-models.${index}-${model.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "")}`;
|
|
@@ -36,6 +36,6 @@ const catalogEntry = (name, nameKey, manufacturer, manufacturerKey, logo, credit
|
|
|
36
36
|
logo,
|
|
37
37
|
creditsForImage
|
|
38
38
|
});
|
|
39
|
-
const lepuViatomModelCatalog = LEPU_DEVICE_NAMES.map((model, index) => catalogEntry(model, modelKey(model, index), "Lepu Medical / Viatom", "devices.catalog.manufacturers.lepu-viatom", modelImage(model), modelCredit(model)));
|
|
39
|
+
const lepuViatomModelCatalog = LEPU_DEVICE_NAMES.filter(model => !LEPU_CATALOG_EXCLUDED_DEVICE_NAMES.includes(model)).map((model, index) => catalogEntry(model, modelKey(model, index), "Lepu Medical / Viatom", "devices.catalog.manufacturers.lepu-viatom", modelImage(model), modelCredit(model)));
|
|
40
40
|
export const additionalSupportedDevices = [catalogEntry("TaiDoc TD4216", "devices.catalog.taidoc-td4216.name", "TaiDoc Technology Corporation", "devices.catalog.manufacturers.taidoc", deviceImages.taidocTD4216DeviceImage, taidocCredit), catalogEntry("GlucoCheck Gold", "devices.catalog.glucocheck-gold.name", "GlucoCheck", "devices.catalog.manufacturers.glucocheck", deviceImages.glucocheckDeviceImage, bundledAssetCredit), catalogEntry("Andesfit TEMP", "devices.catalog.andesfit-temp.name", "Andesfit", "devices.catalog.manufacturers.andesfit", deviceImages.andesfitB33ADeviceImage, bundledAssetCredit), catalogEntry("FORA IR20", "devices.catalog.fora-ir20.name", "ForaCare", "devices.catalog.manufacturers.fora", deviceImages.foraIR20DeviceImage, foraCredit), catalogEntry("cosinuss° Two", "devices.catalog.cosinuss-two.name", "cosinuss°", "devices.catalog.manufacturers.cosinuss", deviceImages.cosinussDeviceImage, cosinussCredit), catalogEntry("FORA W550", "devices.catalog.fora-w550.name", "ForaCare", "devices.catalog.manufacturers.fora", deviceImages.foraW550DeviceImage, foraCredit), catalogEntry("Transtek GBS-2012-B", "devices.catalog.transtek-gbs-2012-b.name", "Transtek Electronics", "devices.catalog.manufacturers.transtek", deviceImages.telerpmDeviceImage, transtekCredit), catalogEntry("TaiDoc TD1107", "devices.catalog.taidoc-td1107.name", "TaiDoc Technology Corporation", "devices.catalog.manufacturers.taidoc", deviceImages.taidocTD1107DeviceImage, taidocCredit), catalogEntry("cosinuss° c-med° alpha", "devices.catalog.cosinuss-cmed-alpha.name", "cosinuss°", "devices.catalog.manufacturers.cosinuss", deviceImages.cosinussDeviceImage, cosinussCredit), catalogEntry("Pulmo80B", "devices.catalog.pulmo80b.name", "Lepu Medical", "devices.catalog.manufacturers.lepu", deviceImages.sp80bDeviceImage, bundledAssetCredit), catalogEntry("Lepu Le S5", "devices.catalog.lepu-le-s5.name", "Lepu Medical", "devices.catalog.manufacturers.lepu", deviceImages.viatomDeviceSmallImage, bundledAssetCredit), catalogEntry("AliveCor KardiaMobile", "devices.catalog.alivecor-kardiamobile.name", "AliveCor", "devices.catalog.manufacturers.alivecor", deviceImages.alivecorDeviceImage, alivecorCredit), catalogEntry("TeleBGM Gen1 BLE", "devices.catalog.telebgm-gen1.name", "TaiDoc Technology Corporation", "devices.catalog.manufacturers.taidoc", deviceImages.bgmDeviceImage, taidocCredit), ...lepuViatomModelCatalog];
|
|
41
41
|
//# sourceMappingURL=supported-device-catalog-entries.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LEPU_DEVICE_NAMES","deviceImages","alivecorCredit","bundledAssetCredit","cosinussCredit","foraCredit","taidocCredit","transtekCredit","viatomBodyScaleCredit","viatomBp3Credit","viatomBp3Image","viatomEcgCredit","viatomEr1Image","viatomF4Image","viatomO2RingImage","viatomOximeterCredit","modelKey","model","index","toLowerCase","replace","modelImage","test","modelCredit","catalogEntry","name","nameKey","manufacturer","manufacturerKey","logo","creditsForImage","lepuViatomModelCatalog","map","additionalSupportedDevices","taidocTD4216DeviceImage","glucocheckDeviceImage","andesfitB33ADeviceImage","foraIR20DeviceImage","cosinussDeviceImage","foraW550DeviceImage","telerpmDeviceImage","taidocTD1107DeviceImage","sp80bDeviceImage","viatomDeviceSmallImage","alivecorDeviceImage","bgmDeviceImage"],"sourceRoot":"../../../../../src","sources":["modules/bt-device/constants/supported-device-catalog-entries.ts"],"mappings":";;AAEA,
|
|
1
|
+
{"version":3,"names":["LEPU_CATALOG_EXCLUDED_DEVICE_NAMES","LEPU_DEVICE_NAMES","deviceImages","alivecorCredit","bundledAssetCredit","cosinussCredit","foraCredit","taidocCredit","transtekCredit","viatomBodyScaleCredit","viatomBp3Credit","viatomBp3Image","viatomEcgCredit","viatomEr1Image","viatomF4Image","viatomO2RingImage","viatomOximeterCredit","modelKey","model","index","toLowerCase","replace","modelImage","test","modelCredit","catalogEntry","name","nameKey","manufacturer","manufacturerKey","logo","creditsForImage","lepuViatomModelCatalog","filter","includes","map","additionalSupportedDevices","taidocTD4216DeviceImage","glucocheckDeviceImage","andesfitB33ADeviceImage","foraIR20DeviceImage","cosinussDeviceImage","foraW550DeviceImage","telerpmDeviceImage","taidocTD1107DeviceImage","sp80bDeviceImage","viatomDeviceSmallImage","alivecorDeviceImage","bgmDeviceImage"],"sourceRoot":"../../../../../src","sources":["modules/bt-device/constants/supported-device-catalog-entries.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -382,7 +382,7 @@ const definitionsFor = name => {
|
|
|
382
382
|
[IntegratedDevices.GLUCOCHECK]: [MeasurementTypeKey.bloodGlucose],
|
|
383
383
|
[IntegratedDevices.BGM]: [MeasurementTypeKey.bloodGlucose],
|
|
384
384
|
[IntegratedDevices.VEROVAL_DUO_CONTROL]: [MeasurementTypeKey.bloodPressure],
|
|
385
|
-
[IntegratedDevices.VEROVAL_ECG]: [MeasurementTypeKey.ecg],
|
|
385
|
+
[IntegratedDevices.VEROVAL_ECG]: [MeasurementTypeKey.ecg, MeasurementTypeKey.bloodPressure],
|
|
386
386
|
[IntegratedDevices.VEROVAL_ACTIVITY]: [MeasurementTypeKey.stepCount, MeasurementTypeKey.heartRate]
|
|
387
387
|
};
|
|
388
388
|
return integrated ? {
|