costy-plus 1.0.80-0 → 1.0.82-0
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.
|
@@ -9,12 +9,12 @@ var T = (e, t, i) => t in e ? Y(e, t, { enumerable: !0, configurable: !0, writab
|
|
|
9
9
|
for (var i of j(t))
|
|
10
10
|
K.call(t, i) && T(e, i, t[i]);
|
|
11
11
|
return e;
|
|
12
|
-
},
|
|
12
|
+
}, S = (e, t) => V(e, _(t));
|
|
13
13
|
import U from "vue";
|
|
14
14
|
import Q from "../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js";
|
|
15
15
|
import "../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js";
|
|
16
16
|
import { Prop as w } from "../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js";
|
|
17
|
-
import { AnalysisMode as
|
|
17
|
+
import { AnalysisMode as M, throttling as O, getPrintLengthToPx as Z, getDataLenTimes as F, getDistance as $, getPointIdxForPx as x, LeadNameTexts as J } from "@costy-plus/utils";
|
|
18
18
|
import * as ee from "zrender";
|
|
19
19
|
import { Group as C, Text as W, Polyline as L, Line as b, Polygon as te, util as ie } from "zrender";
|
|
20
20
|
var ae = Object.defineProperty, se = Object.getOwnPropertyDescriptor, u = (e, t, i, a) => {
|
|
@@ -56,7 +56,7 @@ let g = class extends U {
|
|
|
56
56
|
}
|
|
57
57
|
get waveFromData() {
|
|
58
58
|
var e, t, i;
|
|
59
|
-
return ((e = this.formatEcgData) == null ? void 0 : e.analysisValueMode) ===
|
|
59
|
+
return ((e = this.formatEcgData) == null ? void 0 : e.analysisValueMode) === M.CompoundWave ? ((t = this.formatEcgData) == null ? void 0 : t.processedData.handleData.ComplexData) || [[]] : ((i = this.formatEcgData) == null ? void 0 : i.processedData.handleData.Data) || [[]];
|
|
60
60
|
}
|
|
61
61
|
get isSingleMode() {
|
|
62
62
|
return this.leadModel.column === 1 && this.leadModel.line === 1;
|
|
@@ -69,8 +69,8 @@ let g = class extends U {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
destroyed() {
|
|
72
|
-
var e, t, i, a, s, o, r, l, n, h, d,
|
|
73
|
-
this.sceneInsEventOff(), (e = this.rowAndColwaveFromGroup) == null || e.removeAll(), (t = this.singleWaveFromGroup) == null || t.removeAll(), (i = this.addwaveFromGroup) == null || i.removeAll(), (a = this.leadHeadGroup) == null || a.removeAll(), (s = this.splitLineGroup) == null || s.removeAll(), (o = this.leadHeadNameGroup) == null || o.removeAll(), (r = this.leadHeadOffAndDelGroup) == null || r.removeAll(), (l = this.rulerGroup) == null || l.removeAll(), (n = this.arrowGroup) == null || n.removeAll(), (h = this.heardBeatLineGroup) == null || h.removeAll(), (d = this.pacingGroup) == null || d.removeAll(), (
|
|
72
|
+
var e, t, i, a, s, o, r, l, n, h, d, f;
|
|
73
|
+
this.sceneInsEventOff(), (e = this.rowAndColwaveFromGroup) == null || e.removeAll(), (t = this.singleWaveFromGroup) == null || t.removeAll(), (i = this.addwaveFromGroup) == null || i.removeAll(), (a = this.leadHeadGroup) == null || a.removeAll(), (s = this.splitLineGroup) == null || s.removeAll(), (o = this.leadHeadNameGroup) == null || o.removeAll(), (r = this.leadHeadOffAndDelGroup) == null || r.removeAll(), (l = this.rulerGroup) == null || l.removeAll(), (n = this.arrowGroup) == null || n.removeAll(), (h = this.heardBeatLineGroup) == null || h.removeAll(), (d = this.pacingGroup) == null || d.removeAll(), (f = this.sceneIns) == null || f.dispose();
|
|
74
74
|
}
|
|
75
75
|
init() {
|
|
76
76
|
var e;
|
|
@@ -104,7 +104,7 @@ let g = class extends U {
|
|
|
104
104
|
this.initConfig(), this.drawLeadHead(), this.drawColSplitLine(), this.initSlidingWindowInfo(), this.drawPacing(), this.drawRulerNotes(), this.drawWaveFrom();
|
|
105
105
|
}
|
|
106
106
|
initConfig() {
|
|
107
|
-
var t, i, a, s, o, r, l, n, h, d,
|
|
107
|
+
var t, i, a, s, o, r, l, n, h, d, f;
|
|
108
108
|
this.rowAndColwaveFromGroup = new C({
|
|
109
109
|
name: "rowAndColwaveFrom"
|
|
110
110
|
}), this.singleWaveFromGroup = new C({
|
|
@@ -152,7 +152,7 @@ let g = class extends U {
|
|
|
152
152
|
heardBeat: null,
|
|
153
153
|
ele: null
|
|
154
154
|
}, this.leadNameList = ((r = this.formatEcgData) == null ? void 0 : r.processedData.otherParams.LeadName) || [], this.totalRows = this.leadModel.line + this.leadModel.add || 1, this.highestAndLowestPoint = (l = this.formatEcgData) == null ? void 0 : l.calcHighestAndLowestPoint(), this.isSingleMode)
|
|
155
|
-
this.splitBlockHeight = (((n = this.formatEcgData) == null ? void 0 : n.analysisValueMode) ===
|
|
155
|
+
this.splitBlockHeight = (((n = this.formatEcgData) == null ? void 0 : n.analysisValueMode) === M.CompoundWave ? Math.abs(this.highestAndLowestPoint.ComplexData.maxPoints) + Math.abs(this.highestAndLowestPoint.ComplexData.minPoints) : Math.abs(this.highestAndLowestPoint.Data.maxPoints) + Math.abs(this.highestAndLowestPoint.Data.minPoints)) + 22, this.splitBlockHeight > this.drawArea.height && (this.splitBlockHeight = this.drawArea.height / 6);
|
|
156
156
|
else {
|
|
157
157
|
let m = this.drawArea.height;
|
|
158
158
|
this.leadModel.isShowPacing && (m = this.drawArea.height - this.drawBottomPacH), this.splitBlockHeight = m / this.totalRows;
|
|
@@ -160,7 +160,7 @@ let g = class extends U {
|
|
|
160
160
|
this.dataTotalTimes = F(
|
|
161
161
|
this.waveFromData[0].length || 0,
|
|
162
162
|
((h = this.formatEcgData) == null ? void 0 : h.processedData.otherParams.SampleRate) || 0
|
|
163
|
-
), this.rulerStep = (((d = this.formatEcgData) == null ? void 0 : d.step) || 1) * (((
|
|
163
|
+
), this.rulerStep = (((d = this.formatEcgData) == null ? void 0 : d.step) || 1) * (((f = this.formatEcgData) == null ? void 0 : f.processedData.otherParams.SampleRate) || 1) / (this.gridConfig.cellMg * 2 + 2);
|
|
164
164
|
}
|
|
165
165
|
isLeadOff(e) {
|
|
166
166
|
var t;
|
|
@@ -173,18 +173,18 @@ let g = class extends U {
|
|
|
173
173
|
onDbClickWaveFrom(e, t) {
|
|
174
174
|
console.log("onDbClickWaveFrom", e);
|
|
175
175
|
const i = Date.now(), a = () => {
|
|
176
|
-
var
|
|
176
|
+
var f, m, p, v;
|
|
177
177
|
const s = e.target.name.split("_");
|
|
178
178
|
this.activeLeadIdx = +s[0];
|
|
179
179
|
const o = +s[1];
|
|
180
180
|
let r = 0, l = 0;
|
|
181
181
|
t === "single" ? (r = e.offsetX - this.singleWaveDataCopy[o].pos[0], l = this.singleWaveDataCopy[o].startInd) : t === "rowAndCol" ? (r = e.offsetX - this.waveDataCopy[o].pos[0], l = this.waveDataCopy[o].startInd || 0) : t === "add" && (r = e.offsetX - this.addWaveDataCopy[o].pos[0], l = this.addWaveDataCopy[o].startInd || 0);
|
|
182
|
-
let n = x(r, ((
|
|
182
|
+
let n = x(r, ((f = this.formatEcgData) == null ? void 0 : f.step) || 1);
|
|
183
183
|
n += l;
|
|
184
184
|
const h = ((m = this.formatEcgData) == null ? void 0 : m.processedData.otherParams.AnalyseValue) || [];
|
|
185
185
|
let d = null;
|
|
186
|
-
if (this.enlargeWaveMode ===
|
|
187
|
-
if (n <= h[1].KeyPosByBeat.Tend + 0.1 * (((
|
|
186
|
+
if (this.enlargeWaveMode === M.SelectedHeartbeat) {
|
|
187
|
+
if (n <= h[1].KeyPosByBeat.Tend + 0.1 * (((p = this.formatEcgData) == null ? void 0 : p.processedData.otherParams.SampleRate) || 0))
|
|
188
188
|
d = h[1];
|
|
189
189
|
else
|
|
190
190
|
for (let D = 1; D < h.length; D++)
|
|
@@ -194,7 +194,7 @@ let g = class extends U {
|
|
|
194
194
|
}
|
|
195
195
|
} else
|
|
196
196
|
d = h[0];
|
|
197
|
-
!d || (this.activeLeadAnalyseValue =
|
|
197
|
+
!d || (this.activeLeadAnalyseValue = S(I({}, d), {
|
|
198
198
|
BeatCount: h.length - 1
|
|
199
199
|
}), d = null, this.$emit("notifyActiveEnlargr"), this.isShowEnlargeWave = !0);
|
|
200
200
|
};
|
|
@@ -218,12 +218,12 @@ let g = class extends U {
|
|
|
218
218
|
x: e.event.touches[1].pageX,
|
|
219
219
|
y: e.event.touches[1].pageY
|
|
220
220
|
}) / this.sceneFirstDistance;
|
|
221
|
-
a <
|
|
221
|
+
a < 0.5 && (a = 0.5), this.sceneMagnification = a, this.zoomWave();
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
225
|
zoomWave() {
|
|
226
|
-
var e, t, i, a, s, o, r, l, n, h, d;
|
|
226
|
+
var e, t, i, a, s, o, r, l, n, h, d, f;
|
|
227
227
|
(e = this.rowAndColwaveFromGroup) == null || e.attr({
|
|
228
228
|
scaleX: this.sceneMagnification,
|
|
229
229
|
scaleY: this.sceneMagnification
|
|
@@ -245,16 +245,16 @@ let g = class extends U {
|
|
|
245
245
|
}), (r = this.leadHeadOffAndDelGroup) == null || r.attr({
|
|
246
246
|
scaleX: this.sceneMagnification,
|
|
247
247
|
scaleY: this.sceneMagnification
|
|
248
|
-
}), (
|
|
248
|
+
}), (n = this.rulerGroup) == null || n.attr({
|
|
249
249
|
scaleX: this.sceneMagnification,
|
|
250
|
-
scaleY: this.
|
|
251
|
-
}), (
|
|
250
|
+
scaleY: (l = this.rulerGroup) == null ? void 0 : l.scaleY
|
|
251
|
+
}), (h = this.arrowGroup) == null || h.attr({
|
|
252
252
|
scaleX: this.sceneMagnification,
|
|
253
253
|
scaleY: this.sceneMagnification
|
|
254
|
-
}), (
|
|
254
|
+
}), (d = this.heardBeatLineGroup) == null || d.attr({
|
|
255
255
|
scaleX: this.sceneMagnification,
|
|
256
256
|
scaleY: this.sceneMagnification
|
|
257
|
-
}), (
|
|
257
|
+
}), (f = this.pacingGroup) == null || f.attr({
|
|
258
258
|
scaleX: this.sceneMagnification,
|
|
259
259
|
scaleY: this.sceneMagnification
|
|
260
260
|
});
|
|
@@ -374,7 +374,7 @@ let g = class extends U {
|
|
|
374
374
|
(l = this.sceneIns) == null || l.add(this.leadHeadGroup);
|
|
375
375
|
}
|
|
376
376
|
drawColSplitLine() {
|
|
377
|
-
var s, o, r, l, n, h, d,
|
|
377
|
+
var s, o, r, l, n, h, d, f, m, p, v, D, H;
|
|
378
378
|
(s = this.splitLineGroup) == null || s.removeAll(), (o = this.sceneIns) == null || o.remove(this.splitLineGroup);
|
|
379
379
|
const e = (this.drawArea.width - this.leadHeadConfig.leadHedeWidth) / this.leadModel.column;
|
|
380
380
|
if (this.splitPoint = e, this.isSingleMode) {
|
|
@@ -388,7 +388,7 @@ let g = class extends U {
|
|
|
388
388
|
for (let P = 1; P <= this.leadModel.column - 1; P++) {
|
|
389
389
|
t = P * e + this.leadHeadConfig.leadHedeWidth, i = P * this.leadModel.line;
|
|
390
390
|
for (let y = 1; y <= this.leadModel.line && (a = (((d = this.formatEcgData) == null ? void 0 : d.processedData.otherParams.LeadName) || [])[y - 1 + i], a !== void 0); y++)
|
|
391
|
-
((
|
|
391
|
+
((f = this.formatEcgData) == null ? void 0 : f.gainName) === "\u80F8\u5BFC\u51CF\u534A" && /^V\w+/.test(this.LeadNameTextsPorps[a]) ? (p = this.splitLineGroup) == null || p.add(this.creatSplitLine(t, y * this.splitBlockHeight - (((m = this.formatEcgData) == null ? void 0 : m.sens) || 0) / 2 * 0.5, !0)) : (D = this.splitLineGroup) == null || D.add(this.creatSplitLine(t, y * this.splitBlockHeight - (((v = this.formatEcgData) == null ? void 0 : v.sens) || 0) * 0.5));
|
|
392
392
|
}
|
|
393
393
|
(H = this.sceneIns) == null || H.add(this.splitLineGroup);
|
|
394
394
|
}
|
|
@@ -420,8 +420,8 @@ let g = class extends U {
|
|
|
420
420
|
startInd: a,
|
|
421
421
|
endInd: s,
|
|
422
422
|
data: i.slice(a, s).map((h, d) => {
|
|
423
|
-
var
|
|
424
|
-
return [d * (((
|
|
423
|
+
var f;
|
|
424
|
+
return [d * (((f = this.formatEcgData) == null ? void 0 : f.step) || 0), -h];
|
|
425
425
|
})
|
|
426
426
|
});
|
|
427
427
|
}
|
|
@@ -438,8 +438,8 @@ let g = class extends U {
|
|
|
438
438
|
startInd: s,
|
|
439
439
|
endInd: o,
|
|
440
440
|
data: a.slice(s, o).map((h, d) => {
|
|
441
|
-
var
|
|
442
|
-
return [d * (((
|
|
441
|
+
var f;
|
|
442
|
+
return [d * (((f = this.formatEcgData) == null ? void 0 : f.step) || 0), -h];
|
|
443
443
|
})
|
|
444
444
|
});
|
|
445
445
|
}
|
|
@@ -461,20 +461,20 @@ let g = class extends U {
|
|
|
461
461
|
return e;
|
|
462
462
|
}
|
|
463
463
|
createSingleWaveFrom() {
|
|
464
|
-
var r, l, n, h, d,
|
|
464
|
+
var r, l, n, h, d, f, m;
|
|
465
465
|
(r = this.singleWaveFromGroup) == null || r.removeAll();
|
|
466
466
|
const e = (((l = this.formatEcgData) == null ? void 0 : l.processedData.otherParams.LeadName) || [])[this.singleModeInfo.defaultSelect] || 0;
|
|
467
467
|
let t = this.getRednerSinglePoints(), i = F(this.slidingWindowInfo.points || 0, ((n = this.formatEcgData) == null ? void 0 : n.processedData.otherParams.SampleRate) || 0);
|
|
468
468
|
const a = i;
|
|
469
469
|
let s = 0, o = 0;
|
|
470
|
-
for (let
|
|
470
|
+
for (let p = 0; p < t.length && !(t[p].pos[1] > this.drawArea.height + this.bottomAreaHeight); p++)
|
|
471
471
|
this.isLeadDel(e) || (s = parseInt(`${i / 1e3 / 60}`, 10), o = parseInt(`${i / 1e3 % 60}`, 10), s = o === 60 ? s += 1 : s, s = s === 0 ? "00" : s < 10 ? `0${s}` : s, o = o === 0 || o === 60 ? "00" : o < 10 ? `0${o}` : o, (h = this.singleWaveFromGroup) == null || h.add(new L({
|
|
472
472
|
cursor: "",
|
|
473
|
-
name: this.singleModeInfo.defaultSelect + "_" +
|
|
473
|
+
name: this.singleModeInfo.defaultSelect + "_" + p,
|
|
474
474
|
shape: {
|
|
475
|
-
points: t[
|
|
476
|
-
v + t[
|
|
477
|
-
D + t[
|
|
475
|
+
points: t[p].data.map(([v, D]) => [
|
|
476
|
+
v + t[p].pos[0],
|
|
477
|
+
D + t[p].pos[1]
|
|
478
478
|
])
|
|
479
479
|
},
|
|
480
480
|
style: {
|
|
@@ -484,18 +484,18 @@ let g = class extends U {
|
|
|
484
484
|
onclick: (v) => {
|
|
485
485
|
this.onDbClickWaveFrom(v, "single");
|
|
486
486
|
}
|
|
487
|
-
})), (
|
|
487
|
+
})), (f = this.singleWaveFromGroup) == null || f.add(new W({
|
|
488
488
|
cursor: "",
|
|
489
489
|
style: {
|
|
490
|
-
x: t[
|
|
491
|
-
y: t[
|
|
492
|
-
text:
|
|
490
|
+
x: t[p].pos[0],
|
|
491
|
+
y: t[p].pos[1] - (((d = this.formatEcgData) == null ? void 0 : d.sens) || 0) / 2,
|
|
492
|
+
text: p === 0 ? "00:00 \u5FC3\u7387" : `${s}:${o} \u5FC3\u7387`,
|
|
493
493
|
fontWeight: "bold",
|
|
494
494
|
fontSize: 14,
|
|
495
495
|
fill: "#FF0080",
|
|
496
496
|
fontFamily: this.fontFamily
|
|
497
497
|
}
|
|
498
|
-
})),
|
|
498
|
+
})), p > 0 && (i += a));
|
|
499
499
|
this.createLeadName(e, t[0].pos[0] - 10, t[0].pos[1] + 10), this.createLeadOffAndDel(e, t[0].pos[0] - 5, t[0].pos[1] - (((m = this.formatEcgData) == null ? void 0 : m.sens) || 0) / 2 - 15), this.singleWaveDataCopy = t, t = null;
|
|
500
500
|
}
|
|
501
501
|
createAddWaveFrom() {
|
|
@@ -559,7 +559,7 @@ let g = class extends U {
|
|
|
559
559
|
},
|
|
560
560
|
oncontextmenu: (o) => {
|
|
561
561
|
o.event.preventDefault(), this.$emit("notiifyLeadName", {
|
|
562
|
-
event:
|
|
562
|
+
event: S(I({}, o), {
|
|
563
563
|
name: this.LeadNameTextsPorps[e],
|
|
564
564
|
idx: e
|
|
565
565
|
}),
|
|
@@ -568,7 +568,7 @@ let g = class extends U {
|
|
|
568
568
|
},
|
|
569
569
|
onclick: (o) => {
|
|
570
570
|
this.$emit("notiifyLeadName", {
|
|
571
|
-
event:
|
|
571
|
+
event: S(I({}, o), {
|
|
572
572
|
name: this.LeadNameTextsPorps[e],
|
|
573
573
|
idx: e
|
|
574
574
|
}),
|
|
@@ -625,8 +625,8 @@ let g = class extends U {
|
|
|
625
625
|
if (this.leadModel.isContinuous)
|
|
626
626
|
s = t * 5;
|
|
627
627
|
else if (!this.leadModel.add && ((o = this.formatEcgData) == null ? void 0 : o.step)) {
|
|
628
|
-
const d = x(this.splitPoint, this.formatEcgData.step),
|
|
629
|
-
s = e +
|
|
628
|
+
const d = x(this.splitPoint, this.formatEcgData.step), f = F(d, ((r = this.formatEcgData) == null ? void 0 : r.processedData.otherParams.SampleRate) || 0) / 1e3;
|
|
629
|
+
s = e + f;
|
|
630
630
|
}
|
|
631
631
|
for (let d = e; d <= s; d = +(d + 0.1).toFixed(1))
|
|
632
632
|
d !== e && (i += this.rulerStep), d % 1 === 0 ? (a = this.canvasContainer.height - 10, (l = this.rulerGroup) == null || l.add(new W({
|
|
@@ -663,7 +663,7 @@ let g = class extends U {
|
|
|
663
663
|
(e = this.sceneIns) == null || e.add(this.leadHeadNameGroup), (t = this.sceneIns) == null || t.add(this.leadHeadOffAndDelGroup);
|
|
664
664
|
}
|
|
665
665
|
drawLoopArrow(e = 0) {
|
|
666
|
-
var l, n, h, d,
|
|
666
|
+
var l, n, h, d, f, m, p, v, D, H, P, y, z, B, N, k, R;
|
|
667
667
|
if (this.drawLoopArrowStartPosIdx = e, !this.heartFight.isShow)
|
|
668
668
|
return;
|
|
669
669
|
this.heartFight.mode && this.currentHeardBeat.heardBeat === null && (this.currentHeardBeat.heardBeat = ((l = this.formatEcgData) == null ? void 0 : l.heartBeatPosition[this.heartFight.defaultSelect]) || null, this.drawHeardBeatLine());
|
|
@@ -676,12 +676,12 @@ let g = class extends U {
|
|
|
676
676
|
fontFamily: this.fontFamily
|
|
677
677
|
};
|
|
678
678
|
let r = 0;
|
|
679
|
-
for (let
|
|
680
|
-
const c = (d = this.formatEcgData) == null ? void 0 : d.heartBeatPosition[
|
|
679
|
+
for (let G = 0; G < (((h = this.formatEcgData) == null ? void 0 : h.heartBeatPosition) || []).length; G++) {
|
|
680
|
+
const c = (d = this.formatEcgData) == null ? void 0 : d.heartBeatPosition[G];
|
|
681
681
|
if (r = ((c == null ? void 0 : c.position) || 0) - e, !(e > ((c == null ? void 0 : c.position) || 0)) && !(!this.leadModel.isContinuous && !this.leadModel.add && r > (this.slidingWindowInfo.points || 0)) && !(this.isSingleMode && this.singleModeInfo && r > (this.slidingWindowInfo.points || 0))) {
|
|
682
682
|
if (((c == null ? void 0 : c.position) || 0) - this.addSlidingWindowInfo.startInd > (this.addSlidingWindowInfo.points || 0))
|
|
683
683
|
break;
|
|
684
|
-
t = r * (((
|
|
684
|
+
t = r * (((f = this.formatEcgData) == null ? void 0 : f.step) || 0) + this.leadHeadConfig.leadHedeWidth - 9.5, s = 0, (v = this.arrowGroup) == null || v.add(new te({
|
|
685
685
|
name: "arrow_box",
|
|
686
686
|
shape: {
|
|
687
687
|
points: [
|
|
@@ -696,17 +696,17 @@ let g = class extends U {
|
|
|
696
696
|
]
|
|
697
697
|
},
|
|
698
698
|
style: {
|
|
699
|
-
fill: ((
|
|
699
|
+
fill: ((p = (m = this.currentHeardBeat) == null ? void 0 : m.heardBeat) == null ? void 0 : p.index) === (c == null ? void 0 : c.index) ? "blue" : "#ccc"
|
|
700
700
|
},
|
|
701
|
-
onclick: (
|
|
701
|
+
onclick: (E) => {
|
|
702
702
|
var X;
|
|
703
|
-
!this.heartFight.mode || (
|
|
703
|
+
!this.heartFight.mode || (E.target.attr({
|
|
704
704
|
style: { fill: "blue" }
|
|
705
705
|
}), (X = this.arrowGroup) == null || X.children().filter((A) => A.name === "arrow_box").forEach((A) => {
|
|
706
|
-
A.id !==
|
|
706
|
+
A.id !== E.target.id && A.attr({
|
|
707
707
|
style: { fill: "#ccc" }
|
|
708
708
|
});
|
|
709
|
-
}), this.arrowLoopClick(c,
|
|
709
|
+
}), this.arrowLoopClick(c, E.target));
|
|
710
710
|
}
|
|
711
711
|
})), this.heartFight.heartrate && (a = ((D = this.AssistCtx) == null ? void 0 : D.measureText(`${(c == null ? void 0 : c.heartrate) || ""}`).width) || 0, (H = this.arrowGroup) == null || H.add(new W({
|
|
712
712
|
cursor: "",
|
|
@@ -745,7 +745,7 @@ let g = class extends U {
|
|
|
745
745
|
this.$emit("notifyHeardBeat", ie.clone(e)), this.currentHeardBeat.heardBeat = e, this.currentHeardBeat.ele = t, this.drawHeardBeatLine();
|
|
746
746
|
}
|
|
747
747
|
drawHeardBeatLine(e = 0) {
|
|
748
|
-
var r, l, n, h, d,
|
|
748
|
+
var r, l, n, h, d, f;
|
|
749
749
|
if (!this.currentHeardBeat.heardBeat)
|
|
750
750
|
return;
|
|
751
751
|
(r = this.heardBeatLineGroup) == null || r.removeAll(), (l = this.sceneIns) == null || l.remove(this.heardBeatLineGroup);
|
|
@@ -754,21 +754,21 @@ let g = class extends U {
|
|
|
754
754
|
if (["Pstart", "Pend", "QRSstart", "QRSend", "Tstart", "Tend"].includes(m) && Object.prototype.hasOwnProperty.call(t, m)) {
|
|
755
755
|
i = (t[m] - this.slidingWindowInfo.startInd) * (((n = this.formatEcgData) == null ? void 0 : n.step) || 0);
|
|
756
756
|
e:
|
|
757
|
-
for (let
|
|
758
|
-
if (!(this.isLeadOff(
|
|
759
|
-
if (e > t[m] || !this.leadModel.isContinuous && t[m] - this.slidingWindowInfo.startInd > (this.slidingWindowInfo.points || 0) || (o = a[
|
|
757
|
+
for (let p = 0; p < a.length; p++)
|
|
758
|
+
if (!(this.isLeadOff(p) || this.isLeadDel(p))) {
|
|
759
|
+
if (e > t[m] || !this.leadModel.isContinuous && t[m] - this.slidingWindowInfo.startInd > (this.slidingWindowInfo.points || 0) || (o = a[p], this.leadModel.isContinuous && p > this.leadModel.line - 1))
|
|
760
760
|
break e;
|
|
761
761
|
(h = this.heardBeatLineGroup) == null || h.add(this.createHeardBeatLine(o.pos[0] + i, o.pos[1]));
|
|
762
762
|
}
|
|
763
763
|
e:
|
|
764
|
-
for (let
|
|
765
|
-
if (!(this.isLeadOff(this.longLeadConfig.leadIdxs[
|
|
764
|
+
for (let p = 0; p < s.length; p++)
|
|
765
|
+
if (!(this.isLeadOff(this.longLeadConfig.leadIdxs[p]) && this.isLeadDel(this.longLeadConfig.leadIdxs[p]))) {
|
|
766
766
|
if (e > t[m])
|
|
767
767
|
break e;
|
|
768
|
-
o = s[
|
|
768
|
+
o = s[p], (d = this.heardBeatLineGroup) == null || d.add(this.createHeardBeatLine(o.pos[0] + i, o.pos[1]));
|
|
769
769
|
}
|
|
770
770
|
}
|
|
771
|
-
(
|
|
771
|
+
(f = this.sceneIns) == null || f.add(this.heardBeatLineGroup), t = null, a = null, s = null;
|
|
772
772
|
}
|
|
773
773
|
createHeardBeatLine(e, t) {
|
|
774
774
|
return new b({
|
|
@@ -803,8 +803,8 @@ let g = class extends U {
|
|
|
803
803
|
this.waveDataCopy = t, this.addWaveDataCopy = i, (a = this.rowAndColwaveFromGroup) == null || a.eachChild((h, d) => {
|
|
804
804
|
d = d || 0, h.attr({
|
|
805
805
|
shape: {
|
|
806
|
-
points: t[d].data.map(([
|
|
807
|
-
|
|
806
|
+
points: t[d].data.map(([f, m]) => [
|
|
807
|
+
f + t[d].pos[0],
|
|
808
808
|
m + t[d].pos[1]
|
|
809
809
|
])
|
|
810
810
|
}
|
|
@@ -812,8 +812,8 @@ let g = class extends U {
|
|
|
812
812
|
}), (s = this.addwaveFromGroup) == null || s.eachChild((h, d) => {
|
|
813
813
|
d = d || 0, h.attr({
|
|
814
814
|
shape: {
|
|
815
|
-
points: i[d].data.map(([
|
|
816
|
-
|
|
815
|
+
points: i[d].data.map(([f, m]) => [
|
|
816
|
+
f + i[d].pos[0],
|
|
817
817
|
m + i[d].pos[1]
|
|
818
818
|
])
|
|
819
819
|
}
|
|
@@ -986,7 +986,7 @@ u([
|
|
|
986
986
|
], g.prototype, "ventricularRate", 2);
|
|
987
987
|
u([
|
|
988
988
|
w({
|
|
989
|
-
default:
|
|
989
|
+
default: M.CompoundWave
|
|
990
990
|
})
|
|
991
991
|
], g.prototype, "enlargeWaveMode", 2);
|
|
992
992
|
u([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var B=Object.defineProperty,N=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var z=(e,t,a)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,y=(e,t)=>{for(var a in t||(t={}))j.call(t,a)&&z(e,a,t[a]);if(O)for(var a of O(t))k.call(t,a)&&z(e,a,t[a]);return e},L=(e,t)=>N(e,T(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const R=require("vue"),X=require("../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js");require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js");const w=require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js"),v=require("@costy-plus/utils"),p=require("zrender"),_=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function $(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const Y=_(R),q=$(p);var V=Object.defineProperty,K=Object.getOwnPropertyDescriptor,g=(e,t,a,i)=>{for(var s=i>1?void 0:i?K(t,a):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(s=(i?r(t,a,s):r(s))||s);return i&&s&&V(t,a,s),s};exports.default=class extends Y.default{constructor(){super(...arguments),this.AssistCtx=Object.freeze(null),this.sceneIns=Object.freeze(null),this.leadHeadGroup=Object.freeze(null),this.splitLineGroup=Object.freeze(null),this.rowAndColwaveFromGroup=Object.freeze(null),this.singleWaveFromGroup=Object.freeze(null),this.addwaveFromGroup=Object.freeze(null),this.leadHeadNameGroup=Object.freeze(null),this.leadHeadOffAndDelGroup=Object.freeze(null),this.rulerGroup=Object.freeze(null),this.arrowGroup=Object.freeze(null),this.heardBeatLineGroup=Object.freeze(null),this.pacingGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),this.dataTotalTimes=Object.freeze(0),this.totalRows=Object.freeze(0),this.rulerStep=Object.freeze(0),this.drawLoopArrowStartPosIdx=Object.freeze(0),this.dbClickWaveFromTime=Object.freeze(0),this.currentHeardBeat={heardBeat:null,ele:null},this.loopArrowY=Object.freeze({add:0,rowAndCol:0}),this.fontFamily=Object.freeze("\u5FAE\u8F6F\u96C5\u9ED1"),this.ruleH=Object.freeze(40),this.bottomPacH=Object.freeze(20),this.drawBottomPacH=Object.freeze(this.bottomPacH+40),this.pacingh=Object.freeze(12),this.pacingPFontSize=Object.freeze(14),this.splitBlockHeight=0,this.splitPoint=0,this.slidingWindowInfo=Object.freeze({}),this.addSlidingWindowInfo=Object.freeze({}),this.highestAndLowestPoint=Object.freeze({Data:{maxPoints:0,minPoints:0},ComplexData:{maxPoints:0,minPoints:0}}),this.drawArea=Object.freeze({width:0,height:0}),this.vuescrollWH={width:0,height:0},this.waveDataCopy=[],this.addWaveDataCopy=[],this.singleWaveDataCopy=[],this.leadNameList=[],this.activeLeadIdx=-1,this.activeLeadAnalyseValue=null,this.sceneIsMouseDown=Object.freeze(!1),this.sceneIsMouseDownX=Object.freeze(0),this.isShowEnlargeWave=!1,this.sceneFirstDistance=Object.freeze(0),this.sceneMagnification=1}get canvasContainer(){var e;return{width:this.width,height:this.height-(this.scrollConfig.isShow&&parseInt(`${(e=this.scrollConfig.bar)==null?void 0:e.size}`)||0)||0}}get waveFromData(){var e,t,a;return((e=this.formatEcgData)==null?void 0:e.analysisValueMode)===v.AnalysisMode.CompoundWave?((t=this.formatEcgData)==null?void 0:t.processedData.handleData.ComplexData)||[[]]:((a=this.formatEcgData)==null?void 0:a.processedData.handleData.Data)||[[]]}get isSingleMode(){return this.leadModel.column===1&&this.leadModel.line===1}get MXEnlargeWaveWH(){let e=this.width,t=this.height;return this.MXEnlargeWaveWidth&&(e=this.MXEnlargeWaveWidth),this.MXEnlargeWaveHeight&&(t=this.MXEnlargeWaveHeight),{width:e,height:t}}destroyed(){var e,t,a,i,s,o,r,l,n,h,d,u;this.sceneInsEventOff(),(e=this.rowAndColwaveFromGroup)==null||e.removeAll(),(t=this.singleWaveFromGroup)==null||t.removeAll(),(a=this.addwaveFromGroup)==null||a.removeAll(),(i=this.leadHeadGroup)==null||i.removeAll(),(s=this.splitLineGroup)==null||s.removeAll(),(o=this.leadHeadNameGroup)==null||o.removeAll(),(r=this.leadHeadOffAndDelGroup)==null||r.removeAll(),(l=this.rulerGroup)==null||l.removeAll(),(n=this.arrowGroup)==null||n.removeAll(),(h=this.heardBeatLineGroup)==null||h.removeAll(),(d=this.pacingGroup)==null||d.removeAll(),(u=this.sceneIns)==null||u.dispose()}init(){var e;this.initWaveFormPeer(),this.combinationDrawing(),(e=this.formatEcgData)!=null&&e.processedData.otherParams.PosStart&&(this.scrollConfig.isShow?this.$nextTick(()=>{var t,a,i,s,o;this.scrollConfig.isNativeScroll?(i=this.$refs.nativeScroll)==null||i.scrollBy({left:(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.PosStart)||0)*(((a=this.formatEcgData)==null?void 0:a.step)||0),top:0}):this.$refs.vueScroll.scrollTo({dx:(((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.PosStart)||0)*(((o=this.formatEcgData)==null?void 0:o.step)||0)})}):(this.scrollWaveFrom(this.formatEcgData.processedData.otherParams.PosStart),this.scrollRuler(this.formatEcgData.processedData.otherParams.PosStart),this.scrollArrow(this.formatEcgData.processedData.otherParams.PosStart)))}initWaveFormPeer(){var a;(a=this.sceneIns)==null||a.dispose(),this.AssistCtx=null;const e=document.getElementById("wave-from-box");this.sceneIns=q.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});const t=document.getElementById("MXGrid");this.AssistCtx=t.getContext("2d"),this.sceneInsEventOff(),this.sceneIns.on("mousemove",this.sceneInsMousemove),this.sceneIns.on("mousedown",this.sceneInsMouseDown),this.sceneIns.on("mouseup",this.sceneInsMouseUp)}sceneInsEventOff(){var e,t,a;(e=this.sceneIns)==null||e.off("mousemove",this.sceneInsMousemove),(t=this.sceneIns)==null||t.off("mousedown",this.sceneInsMouseDown),(a=this.sceneIns)==null||a.off("mouseup",this.sceneInsMouseUp)}combinationDrawing(){this.initConfig(),this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawPacing(),this.drawRulerNotes(),this.drawWaveFrom()}initConfig(){var t,a,i,s,o,r,l,n,h,d,u;this.rowAndColwaveFromGroup=new p.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new p.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new p.Group({name:"addwaveFrom"}),this.leadHeadGroup=new p.Group({name:"leadHead"}),this.splitLineGroup=new p.Group({name:"splitLine"}),this.leadHeadNameGroup=new p.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new p.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new p.Group({name:"ruler"}),this.arrowGroup=new p.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new p.Group({name:"heardBeatLine"}),this.pacingGroup=new p.Group({name:"pacing"}),this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height;let e=this.canvasContainer.width;if(((a=(t=this.conventionalECGConfig)==null?void 0:t.ecgReviewSetting)==null?void 0:a.ecgareawidth)==="1"){const m=v.getPrintLengthToPx(((i=this.formatEcgData)==null?void 0:i.processedData.otherParams.SampleRate)||0)+this.leadHeadConfig.leadHedeWidth;m<=e&&(e=m)}else this.leadModel.isContinuous&&!this.isSingleMode&&(((s=this.formatEcgData)==null?void 0:s.dataPxLen)||0)<e-this.leadHeadConfig.leadHedeWidth&&(e=(((o=this.formatEcgData)==null?void 0:o.dataPxLen)||0)+this.leadHeadConfig.leadHedeWidth);if(this.drawArea={width:e,height:this.canvasContainer.height-this.bottomAreaHeight},this.slidingWindowInfo={points:0,startInd:0,endInd:0},this.addSlidingWindowInfo={points:0,startInd:0,endInd:0},this.loopArrowY={add:0,rowAndCol:0},this.currentHeardBeat={heardBeat:null,ele:null},this.leadNameList=((r=this.formatEcgData)==null?void 0:r.processedData.otherParams.LeadName)||[],this.totalRows=this.leadModel.line+this.leadModel.add||1,this.highestAndLowestPoint=(l=this.formatEcgData)==null?void 0:l.calcHighestAndLowestPoint(),this.isSingleMode)this.splitBlockHeight=(((n=this.formatEcgData)==null?void 0:n.analysisValueMode)===v.AnalysisMode.CompoundWave?Math.abs(this.highestAndLowestPoint.ComplexData.maxPoints)+Math.abs(this.highestAndLowestPoint.ComplexData.minPoints):Math.abs(this.highestAndLowestPoint.Data.maxPoints)+Math.abs(this.highestAndLowestPoint.Data.minPoints))+22,this.splitBlockHeight>this.drawArea.height&&(this.splitBlockHeight=this.drawArea.height/6);else{let m=this.drawArea.height;this.leadModel.isShowPacing&&(m=this.drawArea.height-this.drawBottomPacH),this.splitBlockHeight=m/this.totalRows}this.dataTotalTimes=v.getDataLenTimes(this.waveFromData[0].length||0,((h=this.formatEcgData)==null?void 0:h.processedData.otherParams.SampleRate)||0),this.rulerStep=(((d=this.formatEcgData)==null?void 0:d.step)||1)*(((u=this.formatEcgData)==null?void 0:u.processedData.otherParams.SampleRate)||1)/(this.gridConfig.cellMg*2+2)}isLeadOff(e){var t;return!!(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.LeadOff)||[]).includes(e)}isLeadDel(e){var t;return!!(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.LeadDelete)||[]).includes(e)}onDbClickWaveFrom(e,t){console.log("onDbClickWaveFrom",e);const a=Date.now(),i=()=>{var u,m,f,C;const s=e.target.name.split("_");this.activeLeadIdx=+s[0];const o=+s[1];let r=0,l=0;t==="single"?(r=e.offsetX-this.singleWaveDataCopy[o].pos[0],l=this.singleWaveDataCopy[o].startInd):t==="rowAndCol"?(r=e.offsetX-this.waveDataCopy[o].pos[0],l=this.waveDataCopy[o].startInd||0):t==="add"&&(r=e.offsetX-this.addWaveDataCopy[o].pos[0],l=this.addWaveDataCopy[o].startInd||0);let n=v.getPointIdxForPx(r,((u=this.formatEcgData)==null?void 0:u.step)||1);n+=l;const h=((m=this.formatEcgData)==null?void 0:m.processedData.otherParams.AnalyseValue)||[];let d=null;if(this.enlargeWaveMode===v.AnalysisMode.SelectedHeartbeat){if(n<=h[1].KeyPosByBeat.Tend+.1*(((f=this.formatEcgData)==null?void 0:f.processedData.otherParams.SampleRate)||0))d=h[1];else for(let D=1;D<h.length;D++)if(n>h[D-1].KeyPosByBeat.Tend+1&&n<h[D].KeyPosByBeat.Tend+.1*(((C=this.formatEcgData)==null?void 0:C.processedData.otherParams.SampleRate)||0)){d=h[D];break}}else d=h[0];!d||(this.activeLeadAnalyseValue=L(y({},d),{BeatCount:h.length-1}),d=null,this.$emit("notifyActiveEnlargr"),this.isShowEnlargeWave=!0)};a-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,i()):this.dbClickWaveFromTime=a}sceneInsMousemove(e){var t;if(e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown){if(!e.event.touches||e.event.touches.length===1)this.scrollConfig.isNativeScroll?(t=this.$refs.nativeScroll)==null||t.scrollBy({left:e.offsetX-this.sceneIsMouseDownX,top:0}):this.$refs.vueScroll.scrollBy({dx:e.offsetX-this.sceneIsMouseDownX});else if(e.event.touches.length===2){let i=v.getDistance({x:e.event.touches[0].pageX,y:e.event.touches[0].pageY},{x:e.event.touches[1].pageX,y:e.event.touches[1].pageY})/this.sceneFirstDistance;i<1&&(i=1),console.log("zoom",i),this.sceneMagnification=i,this.zoomWave()}}}zoomWave(){var e,t,a,i,s,o,r,l,n,h,d;(e=this.rowAndColwaveFromGroup)==null||e.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(t=this.leadHeadGroup)==null||t.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(a=this.addwaveFromGroup)==null||a.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(i=this.splitLineGroup)==null||i.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(s=this.singleWaveFromGroup)==null||s.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(o=this.leadHeadNameGroup)==null||o.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(r=this.leadHeadOffAndDelGroup)==null||r.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(l=this.rulerGroup)==null||l.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(n=this.arrowGroup)==null||n.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(h=this.heardBeatLineGroup)==null||h.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(d=this.pacingGroup)==null||d.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification})}sceneInsMouseDown(e){e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown=!0,!e.event.touches||e.event.touches.length===1?this.sceneIsMouseDownX=e.offsetX:e.event.touches.length===2&&(this.sceneFirstDistance=v.getDistance({x:e.event.touches[0].pageX,y:e.event.touches[0].pageY},{x:e.event.touches[1].pageX,y:e.event.touches[1].pageY}))}sceneInsMouseUp(e){e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown=!1}drawPacing(){var a,i,s,o,r,l,n;if(!this.leadModel.isShowPacing||!((i=(a=this.formatEcgData)==null?void 0:a.processedData.otherParams.PacingData)!=null&&i.length))return;(s=this.pacingGroup)==null||s.removeAll(),(o=this.sceneIns)==null||o.remove(this.pacingGroup);const e=this.leadHeadConfig.leadHedeWidth,t=this.canvasContainer.height-this.drawBottomPacH;(r=this.pacingGroup)==null||r.add(new p.Text({cursor:"",style:{x:e,y:t,text:"P",fontSize:this.pacingPFontSize,fill:this.leadConfig.lineColor,fontFamily:this.fontFamily}})),(l=this.pacingGroup)==null||l.add(new p.Polyline({cursor:"",name:"0_0",shape:{points:this.getPacinfPoints(e,t)},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth}})),(n=this.sceneIns)==null||n.add(this.pacingGroup)}getPacinfPoints(e,t){var a;return(((a=this.formatEcgData)==null?void 0:a.processedData.otherParams.PacingData)||[]).slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((i,s)=>{var o;return[e+s*(((o=this.formatEcgData)==null?void 0:o.step)||0),(i===1?t-this.pacingh:t)+this.pacingPFontSize]})}createLeadHead(e,t,a){var o;const i=this.leadHeadConfig.leadHedeWidth/4;let s=((o=this.formatEcgData)==null?void 0:o.sens)||0;return s=a?s/2:s,new p.Polyline({cursor:"",shape:{points:[[0+e,0+t],[i+e,0+t],[i+e,-s+t],[3*i+e,-s+t],[3*i+e,0+t],[4*i+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}creatSplitLine(e,t,a){var i,s;return new p.Line({cursor:"",shape:{x1:0+e,y1:0+t,x2:0+e,y2:(a?(((i=this.formatEcgData)==null?void 0:i.sens)||0)/2:((s=this.formatEcgData)==null?void 0:s.sens)||0)+t},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawLeadHead(){var a,i,s,o,r,l;(a=this.leadHeadGroup)==null||a.removeAll(),(i=this.sceneIns)==null||i.remove(this.leadHeadGroup);let e=0,t=!1;for(let n=1;n<=this.totalRows;n++)e=0,t=!1,n<=this.leadModel.line?e=(((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.LeadName)||[])[n-1]||0:n>this.leadModel.line&&n-this.leadModel.line<=this.leadModel.add&&(e=this.longLeadConfig.leadNames[n-this.leadModel.line-1]),((o=this.formatEcgData)==null?void 0:o.gainName)==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.LeadNameTextsPorps[e])&&(t=!0),(r=this.leadHeadGroup)==null||r.add(this.createLeadHead(0,n*this.splitBlockHeight,t));(l=this.sceneIns)==null||l.add(this.leadHeadGroup)}drawColSplitLine(){var s,o,r,l,n,h,d,u,m,f,C,D,I;(s=this.splitLineGroup)==null||s.removeAll(),(o=this.sceneIns)==null||o.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/this.leadModel.column;if(this.splitPoint=e,this.isSingleMode){const W=v.getDataLenTimes(Math.ceil(this.splitPoint/(((r=this.formatEcgData)==null?void 0:r.step)||1))||0,((l=this.formatEcgData)==null?void 0:l.processedData.otherParams.SampleRate)||0),P=parseInt(`${W/1e3%60}`,10);this.splitPoint=P*(((n=this.formatEcgData)==null?void 0:n.processedData.otherParams.SampleRate)||0)*(((h=this.formatEcgData)==null?void 0:h.step)||0)}let t=0,a=0,i=0;for(let W=1;W<=this.leadModel.column-1;W++){t=W*e+this.leadHeadConfig.leadHedeWidth,a=W*this.leadModel.line;for(let P=1;P<=this.leadModel.line&&(i=(((d=this.formatEcgData)==null?void 0:d.processedData.otherParams.LeadName)||[])[P-1+a],i!==void 0);P++)((u=this.formatEcgData)==null?void 0:u.gainName)==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.LeadNameTextsPorps[i])?(f=this.splitLineGroup)==null||f.add(this.creatSplitLine(t,P*this.splitBlockHeight-(((m=this.formatEcgData)==null?void 0:m.sens)||0)/2*.5,!0)):(D=this.splitLineGroup)==null||D.add(this.creatSplitLine(t,P*this.splitBlockHeight-(((C=this.formatEcgData)==null?void 0:C.sens)||0)*.5))}(I=this.sceneIns)==null||I.add(this.splitLineGroup)}initSlidingWindowInfo(){var i,s;const e=((i=this.formatEcgData)==null?void 0:i.step)||0,t=Math.ceil(this.splitPoint/e);this.slidingWindowInfo={points:t,startInd:0,endInd:t},this.scrollConfig.isShow&&!this.isSingleMode&&(this.vuescrollWH.width=this.canvasContainer.width+(((s=this.formatEcgData)==null?void 0:s.dataPxLen)||0)-this.splitPoint);const a=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:a,startInd:0,endInd:a}}getRednerSinglePoints(){let e=0,t=0;const a=this.waveFromData[this.singleModeInfo.defaultSelect]||[];let i=this.slidingWindowInfo.startInd||0,s=this.slidingWindowInfo.endInd||0;const o=[],r=Math.ceil(a.length/(this.slidingWindowInfo.points||1));for(let l=0;l<1;l++){e=l*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let n=1;n<=r;n++)t=n*this.splitBlockHeight,n>1&&(t*=.8,i=s,s=i+(this.slidingWindowInfo.points||0)),n===1&&(this.loopArrowY.rowAndCol=t),o.push({pos:[e,t],startInd:i,endInd:s,data:a.slice(i,s).map((h,d)=>{var u;return[d*(((u=this.formatEcgData)==null?void 0:u.step)||0),-h]})})}return o}getRednerPoints(){let e=0,t=0,a=0,i=[],s=this.slidingWindowInfo.startInd||0,o=this.slidingWindowInfo.endInd||0;const r=[];for(let l=0;l<this.leadModel.column;l++){e=l*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&l>0&&(s=o,o=s+(this.slidingWindowInfo.points||0));for(let n=1;n<=this.leadModel.line&&(t=n*this.splitBlockHeight,!(a>(this.waveFromData||[]).length-1));n++)i=this.waveFromData[a]||[],a++,n===1&&(this.loopArrowY.rowAndCol=t),r.push({pos:[e,t],startInd:s,endInd:o,data:i.slice(s,o).map((h,d)=>{var u;return[d*(((u=this.formatEcgData)==null?void 0:u.step)||0),-h]})})}return r}getAddRednerPoints(){const e=[],t=this.leadHeadConfig.leadHedeWidth;let a=0,i=0,s=[];for(let o=0;o<this.leadModel.add;o++)i=this.longLeadConfig.leadIdxs[o],a=(o+this.leadModel.line+1)*this.splitBlockHeight,s=this.waveFromData[i]||[],o===0&&(this.loopArrowY.add=a),e.push({pos:[t,a],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:s.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((r,l)=>{var n;return[l*(((n=this.formatEcgData)==null?void 0:n.step)||0),-r]})});return e}createSingleWaveFrom(){var r,l,n,h,d,u,m;(r=this.singleWaveFromGroup)==null||r.removeAll();const e=(((l=this.formatEcgData)==null?void 0:l.processedData.otherParams.LeadName)||[])[this.singleModeInfo.defaultSelect]||0;let t=this.getRednerSinglePoints(),a=v.getDataLenTimes(this.slidingWindowInfo.points||0,((n=this.formatEcgData)==null?void 0:n.processedData.otherParams.SampleRate)||0);const i=a;let s=0,o=0;for(let f=0;f<t.length&&!(t[f].pos[1]>this.drawArea.height+this.bottomAreaHeight);f++)this.isLeadDel(e)||(s=parseInt(`${a/1e3/60}`,10),o=parseInt(`${a/1e3%60}`,10),s=o===60?s+=1:s,s=s===0?"00":s<10?`0${s}`:s,o=o===0||o===60?"00":o<10?`0${o}`:o,(h=this.singleWaveFromGroup)==null||h.add(new p.Polyline({cursor:"",name:this.singleModeInfo.defaultSelect+"_"+f,shape:{points:t[f].data.map(([C,D])=>[C+t[f].pos[0],D+t[f].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:C=>{this.onDbClickWaveFrom(C,"single")}})),(u=this.singleWaveFromGroup)==null||u.add(new p.Text({cursor:"",style:{x:t[f].pos[0],y:t[f].pos[1]-(((d=this.formatEcgData)==null?void 0:d.sens)||0)/2,text:f===0?"00:00 \u5FC3\u7387":`${s}:${o} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),f>0&&(a+=i));this.createLeadName(e,t[0].pos[0]-10,t[0].pos[1]+10),this.createLeadOffAndDel(e,t[0].pos[0]-5,t[0].pos[1]-(((m=this.formatEcgData)==null?void 0:m.sens)||0)/2-15),this.singleWaveDataCopy=t,t=null}createAddWaveFrom(){var t,a;console.time("createAddWaveFrom");let e=this.getAddRednerPoints();for(let i=0;i<e.length;i++)this.isLeadDel(this.longLeadConfig.leadIdxs[i])||((t=this.addwaveFromGroup)==null||t.add(new p.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[i]+"_"+i,shape:{points:e[i].data.map(([s,o])=>[s+e[i].pos[0],o+e[i].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:s=>{this.onDbClickWaveFrom(s,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[i],e[i].pos[0],e[i].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[i],e[i].pos[0]-5,e[i].pos[1]-(((a=this.formatEcgData)==null?void 0:a.sens)||0)/2-15));console.timeEnd("createAddWaveFrom"),this.addWaveDataCopy=e,e=null}createRowAndColWaveFrom(){var a,i,s,o,r,l;console.time("createRowAndColWaveFrom"),(a=this.rowAndColwaveFromGroup)==null||a.removeAll();let e=this.getRednerPoints(),t=0;for(let n=0;n<e.length;n++)t=(((i=this.formatEcgData)==null?void 0:i.processedData.otherParams.LeadName)||[])[n]||0,this.isLeadDel(t)||(s=this.rowAndColwaveFromGroup)==null||s.add(new p.Polyline({cursor:"",name:n+"_"+n,shape:{points:e[n].data.map(([h,d])=>[h+e[n].pos[0],d+e[n].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:h=>{this.onDbClickWaveFrom(h,"rowAndCol")}})),n<this.leadModel.line?(this.createLeadName(t,e[n].pos[0],e[n].pos[1]-15),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(((o=this.formatEcgData)==null?void 0:o.sens)||0)/2-15)):(this.createLeadName(t,e[n].pos[0]+5,e[n].pos[1]-(((r=this.formatEcgData)==null?void 0:r.sens)||0)/2),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(((l=this.formatEcgData)==null?void 0:l.sens)||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,a,i=!1){var s;(s=this.leadHeadNameGroup)==null||s.add(new p.Text({style:{x:t,y:a,text:this.LeadNameTextsPorps[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:o=>{o.event.preventDefault(),this.$emit("notiifyLeadName",{event:L(y({},o),{name:this.LeadNameTextsPorps[e],idx:e}),isAdd:i})},onclick:o=>{this.$emit("notiifyLeadName",{event:L(y({},o),{name:this.LeadNameTextsPorps[e],idx:e}),isAdd:i})}}))}createLeadOffAndDel(e,t,a){var i;(this.isLeadOff(e)||this.isLeadDel(e))&&((i=this.leadHeadOffAndDelGroup)==null||i.add(new p.Text({cursor:"",style:{x:t,y:a,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}drawRulerNotes(){var i,s,o,r,l,n;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new p.Text({cursor:"",style:y({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),a=new p.Text({style:y({text:`${((i=this.formatEcgData)==null?void 0:i.gainName)==="\u80F8\u5BFC\u51CF\u534A"?(s=this.formatEcgData)==null?void 0:s.gainName:`${(o=this.formatEcgData)==null?void 0:o.gain}mm/mV`} ${(r=this.formatEcgData)==null?void 0:r.speed}mm/s`,x:this.leadHeadConfig.leadHedeWidth/2+20,y:this.canvasContainer.height-this.ruleH},e)});(l=this.sceneIns)==null||l.add(a),(n=this.sceneIns)==null||n.add(t)}drawRuler(e=0){var o,r,l,n,h;if(!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let a=this.leadHeadConfig.leadHedeWidth,i=0,s=t;if(this.leadModel.isContinuous)s=t*5;else if(!this.leadModel.add&&((o=this.formatEcgData)==null?void 0:o.step)){const d=v.getPointIdxForPx(this.splitPoint,this.formatEcgData.step),u=v.getDataLenTimes(d,((r=this.formatEcgData)==null?void 0:r.processedData.otherParams.SampleRate)||0)/1e3;s=e+u}for(let d=e;d<=s;d=+(d+.1).toFixed(1))d!==e&&(a+=this.rulerStep),d%1===0?(i=this.canvasContainer.height-10,(l=this.rulerGroup)==null||l.add(new p.Text({cursor:"",style:{x:a,y:i-15,text:d+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):i=this.canvasContainer.height-5,(n=this.rulerGroup)==null||n.add(new p.Line({cursor:"",shape:{x1:a,y1:i,x2:a,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(h=this.sceneIns)==null||h.add(this.rulerGroup)}drawWaveFrom(){var e,t,a;this.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(a=this.sceneIns)==null||a.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(),this.drawLoopArrow()}drawLeadHeadNameAndOffOrDel(){var e,t;(e=this.sceneIns)==null||e.add(this.leadHeadNameGroup),(t=this.sceneIns)==null||t.add(this.leadHeadOffAndDelGroup)}drawLoopArrow(e=0){var l,n,h,d,u,m,f,C,D,I,W,P,M,S,G,x,E;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;this.heartFight.mode&&this.currentHeardBeat.heardBeat===null&&(this.currentHeardBeat.heardBeat=((l=this.formatEcgData)==null?void 0:l.heartBeatPosition[this.heartFight.defaultSelect])||null,this.drawHeardBeatLine());let t=0,a=0;this.leadModel.add?a=this.loopArrowY.add-(((n=this.formatEcgData)==null?void 0:n.sens)||0)-this.splitBlockHeight/3.5:a=20;let i=0,s=0;const o={fontSize:12,fill:"red",fontFamily:this.fontFamily};let r=0;for(let F=0;F<(((h=this.formatEcgData)==null?void 0:h.heartBeatPosition)||[]).length;F++){const c=(d=this.formatEcgData)==null?void 0:d.heartBeatPosition[F];if(r=((c==null?void 0:c.position)||0)-e,!(e>((c==null?void 0:c.position)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&r>(this.slidingWindowInfo.points||0))&&!(this.isSingleMode&&this.singleModeInfo&&r>(this.slidingWindowInfo.points||0))){if(((c==null?void 0:c.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;t=r*(((u=this.formatEcgData)==null?void 0:u.step)||0)+this.leadHeadConfig.leadHedeWidth-9.5,s=0,(C=this.arrowGroup)==null||C.add(new p.Polygon({name:"arrow_box",shape:{points:[[4+t,0+a],[15+t,0+a],[15+t,10+a],[19+t,10+a],[9.5+t,22+a],[0+t,10+a],[4+t,10+a],[4+t,0+a]]},style:{fill:((f=(m=this.currentHeardBeat)==null?void 0:m.heardBeat)==null?void 0:f.index)===(c==null?void 0:c.index)?"blue":"#ccc"},onclick:A=>{var b;!this.heartFight.mode||(A.target.attr({style:{fill:"blue"}}),(b=this.arrowGroup)==null||b.children().filter(H=>H.name==="arrow_box").forEach(H=>{H.id!==A.target.id&&H.attr({style:{fill:"#ccc"}})}),this.arrowLoopClick(c,A.target))}})),this.heartFight.heartrate&&(i=((D=this.AssistCtx)==null?void 0:D.measureText(`${(c==null?void 0:c.heartrate)||""}`).width)||0,(I=this.arrowGroup)==null||I.add(new p.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.heartrate)||""}`},o)})),s+=12),this.heartFight.interval&&(i=((W=this.AssistCtx)==null?void 0:W.measureText(`${(c==null?void 0:c.interval)||""}`).width)||0,(P=this.arrowGroup)==null||P.add(new p.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.interval)||""}`},o)})),s+=12),this.heartFight.qrstCompany&&(i=((M=this.AssistCtx)==null?void 0:M.measureText(`${(c==null?void 0:c.qrstCompany)||""}`).width)||0,(S=this.arrowGroup)==null||S.add(new p.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.qrstCompany)||""}`},o)})),s+=12),this.heartFight.telectricalaxis&&(i=((G=this.AssistCtx)==null?void 0:G.measureText(`${(c==null?void 0:c.telectricalaxis)||""}`).width)||0,(x=this.arrowGroup)==null||x.add(new p.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.telectricalaxis)||""}`},o)})))}}(E=this.sceneIns)==null||E.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",p.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var r,l,n,h,d,u;if(!this.currentHeardBeat.heardBeat)return;(r=this.heardBeatLineGroup)==null||r.removeAll(),(l=this.sceneIns)==null||l.remove(this.heardBeatLineGroup);let t=this.formatEcgData.processedData.otherParams.AnalyseValue[this.currentHeardBeat.heardBeat.index].KeyPosByBeat,a=0,i=this.getRednerPoints(),s=this.getAddRednerPoints(),o;for(const m in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(m)&&Object.prototype.hasOwnProperty.call(t,m)){a=(t[m]-this.slidingWindowInfo.startInd)*(((n=this.formatEcgData)==null?void 0:n.step)||0);e:for(let f=0;f<i.length;f++)if(!(this.isLeadOff(f)||this.isLeadDel(f))){if(e>t[m]||!this.leadModel.isContinuous&&t[m]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(o=i[f],this.leadModel.isContinuous&&f>this.leadModel.line-1))break e;(h=this.heardBeatLineGroup)==null||h.add(this.createHeardBeatLine(o.pos[0]+a,o.pos[1]))}e:for(let f=0;f<s.length;f++)if(!(this.isLeadOff(this.longLeadConfig.leadIdxs[f])&&this.isLeadDel(this.longLeadConfig.leadIdxs[f]))){if(e>t[m])break e;o=s[f],(d=this.heardBeatLineGroup)==null||d.add(this.createHeardBeatLine(o.pos[0]+a,o.pos[1]))}}(u=this.sceneIns)==null||u.add(this.heardBeatLineGroup),t=null,i=null,s=null}createHeardBeatLine(e,t){return new p.Line({cursor:"",shape:{x1:e,y1:t-10,x2:e,y2:t+10},style:{stroke:"blue",lineWidth:1}})}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),this.scrollCommon(e.target.scrollLeft||0)}handleScroll(e,t,a){t.type==="horizontal"&&(t.scrollLeft=t.scrollLeft||0,this.scrollCommon(t.scrollLeft))}scrollCommon(e){var a;const t=v.getPointIdxForPx(e,((a=this.formatEcgData)==null?void 0:a.step)||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",t)}scrollWaveFrom(e){var i,s,o,r,l,n;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);let t=this.getRednerPoints(),a=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=a,(i=this.rowAndColwaveFromGroup)==null||i.eachChild((h,d)=>{d=d||0,h.attr({shape:{points:t[d].data.map(([u,m])=>[u+t[d].pos[0],m+t[d].pos[1]])}})}),(s=this.addwaveFromGroup)==null||s.eachChild((h,d)=>{d=d||0,h.attr({shape:{points:a[d].data.map(([u,m])=>[u+a[d].pos[0],m+a[d].pos[1]])}})}),this.leadModel.isShowPacing&&((r=(o=this.formatEcgData)==null?void 0:o.processedData.otherParams.PacingData)==null?void 0:r.length)&&((n=(l=this.pacingGroup)==null?void 0:l.childOfName("0_0"))==null||n.attr({shape:{points:this.getPacinfPoints(this.leadHeadConfig.leadHedeWidth,this.canvasContainer.height-this.drawBottomPacH)}})),t=null,a=null}scrollRuler(e){var a,i,s;(a=this.rulerGroup)==null||a.removeAll(),(i=this.sceneIns)==null||i.remove(this.rulerGroup);const t=v.getDataLenTimes(this.isSingleMode?0:e,((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.SampleRate)||0)/1e3;this.drawRuler(t)}scrollArrow(e){var t,a;(t=this.arrowGroup)==null||t.removeAll(),(a=this.sceneIns)==null||a.remove(this.arrowGroup),this.drawLoopArrow(e),this.drawHeardBeatLine(e)}};g([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);g([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);g([w.Prop({default:0,validator:e=>typeof e=="number"})],exports.default.prototype,"MXEnlargeWaveWidth",2);g([w.Prop({default:()=>v.LeadNameTexts})],exports.default.prototype,"LeadNameTextsPorps",2);g([w.Prop({default:0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"MXEnlargeWaveHeight",2);g([w.Prop({required:!0})],exports.default.prototype,"gridConfig",2);g([w.Prop({default:5,type:Number})],exports.default.prototype,"cellPoints",2);g([w.Prop({required:!0})],exports.default.prototype,"conventionalECGConfig",2);g([w.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);g([w.Prop({required:!0})],exports.default.prototype,"formatEcgData",2);g([w.Prop({required:!0})],exports.default.prototype,"leadModel",2);g([w.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);g([w.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);g([w.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1})})],exports.default.prototype,"heartFight",2);g([w.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"rulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"measurRulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"paralleRulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"magnifierRulerConfig",2);g([w.Prop({default:60})],exports.default.prototype,"ventricularRate",2);g([w.Prop({default:v.AnalysisMode.CompoundWave})],exports.default.prototype,"enlargeWaveMode",2);g([w.Prop({default:()=>[]})],exports.default.prototype,"enlargeGains",2);g([w.Prop({default:()=>[]})],exports.default.prototype,"enlargeSpeeds",2);g([w.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeInfo",2);g([w.Prop({default:!1})],exports.default.prototype,"isSyncAnalyseValueCheck",2);g([v.throttling(200)],exports.default.prototype,"zoomWave",1);g([v.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);g([v.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=g([X.default({name:"Methods"})],exports.default);
|
|
1
|
+
"use strict";var B=Object.defineProperty,N=Object.defineProperties;var T=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var z=(e,t,a)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,y=(e,t)=>{for(var a in t||(t={}))j.call(t,a)&&z(e,a,t[a]);if(O)for(var a of O(t))k.call(t,a)&&z(e,a,t[a]);return e},L=(e,t)=>N(e,T(t));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const R=require("vue"),X=require("../../node_modules/.pnpm/vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-class-component/dist/vue-class-component.esm.js");require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Emit.js");const w=require("../../node_modules/.pnpm/vue-property-decorator@9.1.2_vue-class-component@7.2.6_vue@2.6.14/node_modules/vue-property-decorator/lib/decorators/Prop.js"),v=require("@costy-plus/utils"),u=require("zrender"),_=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function $(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,i.get?i:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const Y=_(R),q=$(u);var V=Object.defineProperty,K=Object.getOwnPropertyDescriptor,g=(e,t,a,i)=>{for(var s=i>1?void 0:i?K(t,a):t,o=e.length-1,r;o>=0;o--)(r=e[o])&&(s=(i?r(t,a,s):r(s))||s);return i&&s&&V(t,a,s),s};exports.default=class extends Y.default{constructor(){super(...arguments),this.AssistCtx=Object.freeze(null),this.sceneIns=Object.freeze(null),this.leadHeadGroup=Object.freeze(null),this.splitLineGroup=Object.freeze(null),this.rowAndColwaveFromGroup=Object.freeze(null),this.singleWaveFromGroup=Object.freeze(null),this.addwaveFromGroup=Object.freeze(null),this.leadHeadNameGroup=Object.freeze(null),this.leadHeadOffAndDelGroup=Object.freeze(null),this.rulerGroup=Object.freeze(null),this.arrowGroup=Object.freeze(null),this.heardBeatLineGroup=Object.freeze(null),this.pacingGroup=Object.freeze(null),this.bottomAreaHeight=Object.freeze(55),this.dataTotalTimes=Object.freeze(0),this.totalRows=Object.freeze(0),this.rulerStep=Object.freeze(0),this.drawLoopArrowStartPosIdx=Object.freeze(0),this.dbClickWaveFromTime=Object.freeze(0),this.currentHeardBeat={heardBeat:null,ele:null},this.loopArrowY=Object.freeze({add:0,rowAndCol:0}),this.fontFamily=Object.freeze("\u5FAE\u8F6F\u96C5\u9ED1"),this.ruleH=Object.freeze(40),this.bottomPacH=Object.freeze(20),this.drawBottomPacH=Object.freeze(this.bottomPacH+40),this.pacingh=Object.freeze(12),this.pacingPFontSize=Object.freeze(14),this.splitBlockHeight=0,this.splitPoint=0,this.slidingWindowInfo=Object.freeze({}),this.addSlidingWindowInfo=Object.freeze({}),this.highestAndLowestPoint=Object.freeze({Data:{maxPoints:0,minPoints:0},ComplexData:{maxPoints:0,minPoints:0}}),this.drawArea=Object.freeze({width:0,height:0}),this.vuescrollWH={width:0,height:0},this.waveDataCopy=[],this.addWaveDataCopy=[],this.singleWaveDataCopy=[],this.leadNameList=[],this.activeLeadIdx=-1,this.activeLeadAnalyseValue=null,this.sceneIsMouseDown=Object.freeze(!1),this.sceneIsMouseDownX=Object.freeze(0),this.isShowEnlargeWave=!1,this.sceneFirstDistance=Object.freeze(0),this.sceneMagnification=1}get canvasContainer(){var e;return{width:this.width,height:this.height-(this.scrollConfig.isShow&&parseInt(`${(e=this.scrollConfig.bar)==null?void 0:e.size}`)||0)||0}}get waveFromData(){var e,t,a;return((e=this.formatEcgData)==null?void 0:e.analysisValueMode)===v.AnalysisMode.CompoundWave?((t=this.formatEcgData)==null?void 0:t.processedData.handleData.ComplexData)||[[]]:((a=this.formatEcgData)==null?void 0:a.processedData.handleData.Data)||[[]]}get isSingleMode(){return this.leadModel.column===1&&this.leadModel.line===1}get MXEnlargeWaveWH(){let e=this.width,t=this.height;return this.MXEnlargeWaveWidth&&(e=this.MXEnlargeWaveWidth),this.MXEnlargeWaveHeight&&(t=this.MXEnlargeWaveHeight),{width:e,height:t}}destroyed(){var e,t,a,i,s,o,r,l,n,h,d,f;this.sceneInsEventOff(),(e=this.rowAndColwaveFromGroup)==null||e.removeAll(),(t=this.singleWaveFromGroup)==null||t.removeAll(),(a=this.addwaveFromGroup)==null||a.removeAll(),(i=this.leadHeadGroup)==null||i.removeAll(),(s=this.splitLineGroup)==null||s.removeAll(),(o=this.leadHeadNameGroup)==null||o.removeAll(),(r=this.leadHeadOffAndDelGroup)==null||r.removeAll(),(l=this.rulerGroup)==null||l.removeAll(),(n=this.arrowGroup)==null||n.removeAll(),(h=this.heardBeatLineGroup)==null||h.removeAll(),(d=this.pacingGroup)==null||d.removeAll(),(f=this.sceneIns)==null||f.dispose()}init(){var e;this.initWaveFormPeer(),this.combinationDrawing(),(e=this.formatEcgData)!=null&&e.processedData.otherParams.PosStart&&(this.scrollConfig.isShow?this.$nextTick(()=>{var t,a,i,s,o;this.scrollConfig.isNativeScroll?(i=this.$refs.nativeScroll)==null||i.scrollBy({left:(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.PosStart)||0)*(((a=this.formatEcgData)==null?void 0:a.step)||0),top:0}):this.$refs.vueScroll.scrollTo({dx:(((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.PosStart)||0)*(((o=this.formatEcgData)==null?void 0:o.step)||0)})}):(this.scrollWaveFrom(this.formatEcgData.processedData.otherParams.PosStart),this.scrollRuler(this.formatEcgData.processedData.otherParams.PosStart),this.scrollArrow(this.formatEcgData.processedData.otherParams.PosStart)))}initWaveFormPeer(){var a;(a=this.sceneIns)==null||a.dispose(),this.AssistCtx=null;const e=document.getElementById("wave-from-box");this.sceneIns=q.init(e,{width:this.canvasContainer.width,height:this.canvasContainer.height,devicePixelRatio:2});const t=document.getElementById("MXGrid");this.AssistCtx=t.getContext("2d"),this.sceneInsEventOff(),this.sceneIns.on("mousemove",this.sceneInsMousemove),this.sceneIns.on("mousedown",this.sceneInsMouseDown),this.sceneIns.on("mouseup",this.sceneInsMouseUp)}sceneInsEventOff(){var e,t,a;(e=this.sceneIns)==null||e.off("mousemove",this.sceneInsMousemove),(t=this.sceneIns)==null||t.off("mousedown",this.sceneInsMouseDown),(a=this.sceneIns)==null||a.off("mouseup",this.sceneInsMouseUp)}combinationDrawing(){this.initConfig(),this.drawLeadHead(),this.drawColSplitLine(),this.initSlidingWindowInfo(),this.drawPacing(),this.drawRulerNotes(),this.drawWaveFrom()}initConfig(){var t,a,i,s,o,r,l,n,h,d,f;this.rowAndColwaveFromGroup=new u.Group({name:"rowAndColwaveFrom"}),this.singleWaveFromGroup=new u.Group({name:"singleWaveFrom"}),this.addwaveFromGroup=new u.Group({name:"addwaveFrom"}),this.leadHeadGroup=new u.Group({name:"leadHead"}),this.splitLineGroup=new u.Group({name:"splitLine"}),this.leadHeadNameGroup=new u.Group({name:"leadHeadName"}),this.leadHeadOffAndDelGroup=new u.Group({name:"leadHeadOffAndDel"}),this.rulerGroup=new u.Group({name:"ruler"}),this.arrowGroup=new u.Group({name:"arrowLoop"}),this.heardBeatLineGroup=new u.Group({name:"heardBeatLine"}),this.pacingGroup=new u.Group({name:"pacing"}),this.vuescrollWH.width=this.width,this.vuescrollWH.height=this.height;let e=this.canvasContainer.width;if(((a=(t=this.conventionalECGConfig)==null?void 0:t.ecgReviewSetting)==null?void 0:a.ecgareawidth)==="1"){const m=v.getPrintLengthToPx(((i=this.formatEcgData)==null?void 0:i.processedData.otherParams.SampleRate)||0)+this.leadHeadConfig.leadHedeWidth;m<=e&&(e=m)}else this.leadModel.isContinuous&&!this.isSingleMode&&(((s=this.formatEcgData)==null?void 0:s.dataPxLen)||0)<e-this.leadHeadConfig.leadHedeWidth&&(e=(((o=this.formatEcgData)==null?void 0:o.dataPxLen)||0)+this.leadHeadConfig.leadHedeWidth);if(this.drawArea={width:e,height:this.canvasContainer.height-this.bottomAreaHeight},this.slidingWindowInfo={points:0,startInd:0,endInd:0},this.addSlidingWindowInfo={points:0,startInd:0,endInd:0},this.loopArrowY={add:0,rowAndCol:0},this.currentHeardBeat={heardBeat:null,ele:null},this.leadNameList=((r=this.formatEcgData)==null?void 0:r.processedData.otherParams.LeadName)||[],this.totalRows=this.leadModel.line+this.leadModel.add||1,this.highestAndLowestPoint=(l=this.formatEcgData)==null?void 0:l.calcHighestAndLowestPoint(),this.isSingleMode)this.splitBlockHeight=(((n=this.formatEcgData)==null?void 0:n.analysisValueMode)===v.AnalysisMode.CompoundWave?Math.abs(this.highestAndLowestPoint.ComplexData.maxPoints)+Math.abs(this.highestAndLowestPoint.ComplexData.minPoints):Math.abs(this.highestAndLowestPoint.Data.maxPoints)+Math.abs(this.highestAndLowestPoint.Data.minPoints))+22,this.splitBlockHeight>this.drawArea.height&&(this.splitBlockHeight=this.drawArea.height/6);else{let m=this.drawArea.height;this.leadModel.isShowPacing&&(m=this.drawArea.height-this.drawBottomPacH),this.splitBlockHeight=m/this.totalRows}this.dataTotalTimes=v.getDataLenTimes(this.waveFromData[0].length||0,((h=this.formatEcgData)==null?void 0:h.processedData.otherParams.SampleRate)||0),this.rulerStep=(((d=this.formatEcgData)==null?void 0:d.step)||1)*(((f=this.formatEcgData)==null?void 0:f.processedData.otherParams.SampleRate)||1)/(this.gridConfig.cellMg*2+2)}isLeadOff(e){var t;return!!(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.LeadOff)||[]).includes(e)}isLeadDel(e){var t;return!!(((t=this.formatEcgData)==null?void 0:t.processedData.otherParams.LeadDelete)||[]).includes(e)}onDbClickWaveFrom(e,t){console.log("onDbClickWaveFrom",e);const a=Date.now(),i=()=>{var f,m,p,C;const s=e.target.name.split("_");this.activeLeadIdx=+s[0];const o=+s[1];let r=0,l=0;t==="single"?(r=e.offsetX-this.singleWaveDataCopy[o].pos[0],l=this.singleWaveDataCopy[o].startInd):t==="rowAndCol"?(r=e.offsetX-this.waveDataCopy[o].pos[0],l=this.waveDataCopy[o].startInd||0):t==="add"&&(r=e.offsetX-this.addWaveDataCopy[o].pos[0],l=this.addWaveDataCopy[o].startInd||0);let n=v.getPointIdxForPx(r,((f=this.formatEcgData)==null?void 0:f.step)||1);n+=l;const h=((m=this.formatEcgData)==null?void 0:m.processedData.otherParams.AnalyseValue)||[];let d=null;if(this.enlargeWaveMode===v.AnalysisMode.SelectedHeartbeat){if(n<=h[1].KeyPosByBeat.Tend+.1*(((p=this.formatEcgData)==null?void 0:p.processedData.otherParams.SampleRate)||0))d=h[1];else for(let D=1;D<h.length;D++)if(n>h[D-1].KeyPosByBeat.Tend+1&&n<h[D].KeyPosByBeat.Tend+.1*(((C=this.formatEcgData)==null?void 0:C.processedData.otherParams.SampleRate)||0)){d=h[D];break}}else d=h[0];!d||(this.activeLeadAnalyseValue=L(y({},d),{BeatCount:h.length-1}),d=null,this.$emit("notifyActiveEnlargr"),this.isShowEnlargeWave=!0)};a-this.dbClickWaveFromTime<400?(this.dbClickWaveFromTime=0,i()):this.dbClickWaveFromTime=a}sceneInsMousemove(e){var t;if(e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown){if(!e.event.touches||e.event.touches.length===1)this.scrollConfig.isNativeScroll?(t=this.$refs.nativeScroll)==null||t.scrollBy({left:e.offsetX-this.sceneIsMouseDownX,top:0}):this.$refs.vueScroll.scrollBy({dx:e.offsetX-this.sceneIsMouseDownX});else if(e.event.touches.length===2){let i=v.getDistance({x:e.event.touches[0].pageX,y:e.event.touches[0].pageY},{x:e.event.touches[1].pageX,y:e.event.touches[1].pageY})/this.sceneFirstDistance;i<.5&&(i=.5),this.sceneMagnification=i,this.zoomWave()}}}zoomWave(){var e,t,a,i,s,o,r,l,n,h,d,f;(e=this.rowAndColwaveFromGroup)==null||e.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(t=this.leadHeadGroup)==null||t.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(a=this.addwaveFromGroup)==null||a.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(i=this.splitLineGroup)==null||i.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(s=this.singleWaveFromGroup)==null||s.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(o=this.leadHeadNameGroup)==null||o.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(r=this.leadHeadOffAndDelGroup)==null||r.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(n=this.rulerGroup)==null||n.attr({scaleX:this.sceneMagnification,scaleY:(l=this.rulerGroup)==null?void 0:l.scaleY}),(h=this.arrowGroup)==null||h.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(d=this.heardBeatLineGroup)==null||d.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification}),(f=this.pacingGroup)==null||f.attr({scaleX:this.sceneMagnification,scaleY:this.sceneMagnification})}sceneInsMouseDown(e){e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown=!0,!e.event.touches||e.event.touches.length===1?this.sceneIsMouseDownX=e.offsetX:e.event.touches.length===2&&(this.sceneFirstDistance=v.getDistance({x:e.event.touches[0].pageX,y:e.event.touches[0].pageY},{x:e.event.touches[1].pageX,y:e.event.touches[1].pageY}))}sceneInsMouseUp(e){e.event.preventDefault(),e.event.stopPropagation(),this.sceneIsMouseDown=!1}drawPacing(){var a,i,s,o,r,l,n;if(!this.leadModel.isShowPacing||!((i=(a=this.formatEcgData)==null?void 0:a.processedData.otherParams.PacingData)!=null&&i.length))return;(s=this.pacingGroup)==null||s.removeAll(),(o=this.sceneIns)==null||o.remove(this.pacingGroup);const e=this.leadHeadConfig.leadHedeWidth,t=this.canvasContainer.height-this.drawBottomPacH;(r=this.pacingGroup)==null||r.add(new u.Text({cursor:"",style:{x:e,y:t,text:"P",fontSize:this.pacingPFontSize,fill:this.leadConfig.lineColor,fontFamily:this.fontFamily}})),(l=this.pacingGroup)==null||l.add(new u.Polyline({cursor:"",name:"0_0",shape:{points:this.getPacinfPoints(e,t)},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth}})),(n=this.sceneIns)==null||n.add(this.pacingGroup)}getPacinfPoints(e,t){var a;return(((a=this.formatEcgData)==null?void 0:a.processedData.otherParams.PacingData)||[]).slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((i,s)=>{var o;return[e+s*(((o=this.formatEcgData)==null?void 0:o.step)||0),(i===1?t-this.pacingh:t)+this.pacingPFontSize]})}createLeadHead(e,t,a){var o;const i=this.leadHeadConfig.leadHedeWidth/4;let s=((o=this.formatEcgData)==null?void 0:o.sens)||0;return s=a?s/2:s,new u.Polyline({cursor:"",shape:{points:[[0+e,0+t],[i+e,0+t],[i+e,-s+t],[3*i+e,-s+t],[3*i+e,0+t],[4*i+e,0+t]]},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}creatSplitLine(e,t,a){var i,s;return new u.Line({cursor:"",shape:{x1:0+e,y1:0+t,x2:0+e,y2:(a?(((i=this.formatEcgData)==null?void 0:i.sens)||0)/2:((s=this.formatEcgData)==null?void 0:s.sens)||0)+t},style:{stroke:this.leadHeadConfig.leadHedeColor,lineWidth:this.leadHeadConfig.leadHedeLineWidth}})}drawLeadHead(){var a,i,s,o,r,l;(a=this.leadHeadGroup)==null||a.removeAll(),(i=this.sceneIns)==null||i.remove(this.leadHeadGroup);let e=0,t=!1;for(let n=1;n<=this.totalRows;n++)e=0,t=!1,n<=this.leadModel.line?e=(((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.LeadName)||[])[n-1]||0:n>this.leadModel.line&&n-this.leadModel.line<=this.leadModel.add&&(e=this.longLeadConfig.leadNames[n-this.leadModel.line-1]),((o=this.formatEcgData)==null?void 0:o.gainName)==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.LeadNameTextsPorps[e])&&(t=!0),(r=this.leadHeadGroup)==null||r.add(this.createLeadHead(0,n*this.splitBlockHeight,t));(l=this.sceneIns)==null||l.add(this.leadHeadGroup)}drawColSplitLine(){var s,o,r,l,n,h,d,f,m,p,C,D,I;(s=this.splitLineGroup)==null||s.removeAll(),(o=this.sceneIns)==null||o.remove(this.splitLineGroup);const e=(this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/this.leadModel.column;if(this.splitPoint=e,this.isSingleMode){const W=v.getDataLenTimes(Math.ceil(this.splitPoint/(((r=this.formatEcgData)==null?void 0:r.step)||1))||0,((l=this.formatEcgData)==null?void 0:l.processedData.otherParams.SampleRate)||0),P=parseInt(`${W/1e3%60}`,10);this.splitPoint=P*(((n=this.formatEcgData)==null?void 0:n.processedData.otherParams.SampleRate)||0)*(((h=this.formatEcgData)==null?void 0:h.step)||0)}let t=0,a=0,i=0;for(let W=1;W<=this.leadModel.column-1;W++){t=W*e+this.leadHeadConfig.leadHedeWidth,a=W*this.leadModel.line;for(let P=1;P<=this.leadModel.line&&(i=(((d=this.formatEcgData)==null?void 0:d.processedData.otherParams.LeadName)||[])[P-1+a],i!==void 0);P++)((f=this.formatEcgData)==null?void 0:f.gainName)==="\u80F8\u5BFC\u51CF\u534A"&&/^V\w+/.test(this.LeadNameTextsPorps[i])?(p=this.splitLineGroup)==null||p.add(this.creatSplitLine(t,P*this.splitBlockHeight-(((m=this.formatEcgData)==null?void 0:m.sens)||0)/2*.5,!0)):(D=this.splitLineGroup)==null||D.add(this.creatSplitLine(t,P*this.splitBlockHeight-(((C=this.formatEcgData)==null?void 0:C.sens)||0)*.5))}(I=this.sceneIns)==null||I.add(this.splitLineGroup)}initSlidingWindowInfo(){var i,s;const e=((i=this.formatEcgData)==null?void 0:i.step)||0,t=Math.ceil(this.splitPoint/e);this.slidingWindowInfo={points:t,startInd:0,endInd:t},this.scrollConfig.isShow&&!this.isSingleMode&&(this.vuescrollWH.width=this.canvasContainer.width+(((s=this.formatEcgData)==null?void 0:s.dataPxLen)||0)-this.splitPoint);const a=Math.ceil((this.drawArea.width-this.leadHeadConfig.leadHedeWidth)/e);this.addSlidingWindowInfo={points:a,startInd:0,endInd:a}}getRednerSinglePoints(){let e=0,t=0;const a=this.waveFromData[this.singleModeInfo.defaultSelect]||[];let i=this.slidingWindowInfo.startInd||0,s=this.slidingWindowInfo.endInd||0;const o=[],r=Math.ceil(a.length/(this.slidingWindowInfo.points||1));for(let l=0;l<1;l++){e=l*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0;for(let n=1;n<=r;n++)t=n*this.splitBlockHeight,n>1&&(t*=.8,i=s,s=i+(this.slidingWindowInfo.points||0)),n===1&&(this.loopArrowY.rowAndCol=t),o.push({pos:[e,t],startInd:i,endInd:s,data:a.slice(i,s).map((h,d)=>{var f;return[d*(((f=this.formatEcgData)==null?void 0:f.step)||0),-h]})})}return o}getRednerPoints(){let e=0,t=0,a=0,i=[],s=this.slidingWindowInfo.startInd||0,o=this.slidingWindowInfo.endInd||0;const r=[];for(let l=0;l<this.leadModel.column;l++){e=l*this.splitPoint+this.leadHeadConfig.leadHedeWidth,t=0,this.leadModel.isContinuous&&l>0&&(s=o,o=s+(this.slidingWindowInfo.points||0));for(let n=1;n<=this.leadModel.line&&(t=n*this.splitBlockHeight,!(a>(this.waveFromData||[]).length-1));n++)i=this.waveFromData[a]||[],a++,n===1&&(this.loopArrowY.rowAndCol=t),r.push({pos:[e,t],startInd:s,endInd:o,data:i.slice(s,o).map((h,d)=>{var f;return[d*(((f=this.formatEcgData)==null?void 0:f.step)||0),-h]})})}return r}getAddRednerPoints(){const e=[],t=this.leadHeadConfig.leadHedeWidth;let a=0,i=0,s=[];for(let o=0;o<this.leadModel.add;o++)i=this.longLeadConfig.leadIdxs[o],a=(o+this.leadModel.line+1)*this.splitBlockHeight,s=this.waveFromData[i]||[],o===0&&(this.loopArrowY.add=a),e.push({pos:[t,a],startInd:this.addSlidingWindowInfo.startInd||0,endInd:this.addSlidingWindowInfo.endInd||0,data:s.slice(this.addSlidingWindowInfo.startInd,this.addSlidingWindowInfo.endInd).map((r,l)=>{var n;return[l*(((n=this.formatEcgData)==null?void 0:n.step)||0),-r]})});return e}createSingleWaveFrom(){var r,l,n,h,d,f,m;(r=this.singleWaveFromGroup)==null||r.removeAll();const e=(((l=this.formatEcgData)==null?void 0:l.processedData.otherParams.LeadName)||[])[this.singleModeInfo.defaultSelect]||0;let t=this.getRednerSinglePoints(),a=v.getDataLenTimes(this.slidingWindowInfo.points||0,((n=this.formatEcgData)==null?void 0:n.processedData.otherParams.SampleRate)||0);const i=a;let s=0,o=0;for(let p=0;p<t.length&&!(t[p].pos[1]>this.drawArea.height+this.bottomAreaHeight);p++)this.isLeadDel(e)||(s=parseInt(`${a/1e3/60}`,10),o=parseInt(`${a/1e3%60}`,10),s=o===60?s+=1:s,s=s===0?"00":s<10?`0${s}`:s,o=o===0||o===60?"00":o<10?`0${o}`:o,(h=this.singleWaveFromGroup)==null||h.add(new u.Polyline({cursor:"",name:this.singleModeInfo.defaultSelect+"_"+p,shape:{points:t[p].data.map(([C,D])=>[C+t[p].pos[0],D+t[p].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:C=>{this.onDbClickWaveFrom(C,"single")}})),(f=this.singleWaveFromGroup)==null||f.add(new u.Text({cursor:"",style:{x:t[p].pos[0],y:t[p].pos[1]-(((d=this.formatEcgData)==null?void 0:d.sens)||0)/2,text:p===0?"00:00 \u5FC3\u7387":`${s}:${o} \u5FC3\u7387`,fontWeight:"bold",fontSize:14,fill:"#FF0080",fontFamily:this.fontFamily}})),p>0&&(a+=i));this.createLeadName(e,t[0].pos[0]-10,t[0].pos[1]+10),this.createLeadOffAndDel(e,t[0].pos[0]-5,t[0].pos[1]-(((m=this.formatEcgData)==null?void 0:m.sens)||0)/2-15),this.singleWaveDataCopy=t,t=null}createAddWaveFrom(){var t,a;console.time("createAddWaveFrom");let e=this.getAddRednerPoints();for(let i=0;i<e.length;i++)this.isLeadDel(this.longLeadConfig.leadIdxs[i])||((t=this.addwaveFromGroup)==null||t.add(new u.Polyline({cursor:"",name:this.longLeadConfig.leadIdxs[i]+"_"+i,shape:{points:e[i].data.map(([s,o])=>[s+e[i].pos[0],o+e[i].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:s=>{this.onDbClickWaveFrom(s,"add")}})),this.createLeadName(this.longLeadConfig.leadNames[i],e[i].pos[0],e[i].pos[1]-15,!0),this.createLeadOffAndDel(this.longLeadConfig.leadIdxs[i],e[i].pos[0]-5,e[i].pos[1]-(((a=this.formatEcgData)==null?void 0:a.sens)||0)/2-15));console.timeEnd("createAddWaveFrom"),this.addWaveDataCopy=e,e=null}createRowAndColWaveFrom(){var a,i,s,o,r,l;console.time("createRowAndColWaveFrom"),(a=this.rowAndColwaveFromGroup)==null||a.removeAll();let e=this.getRednerPoints(),t=0;for(let n=0;n<e.length;n++)t=(((i=this.formatEcgData)==null?void 0:i.processedData.otherParams.LeadName)||[])[n]||0,this.isLeadDel(t)||(s=this.rowAndColwaveFromGroup)==null||s.add(new u.Polyline({cursor:"",name:n+"_"+n,shape:{points:e[n].data.map(([h,d])=>[h+e[n].pos[0],d+e[n].pos[1]])},style:{stroke:this.leadConfig.lineColor,lineWidth:this.leadConfig.lineWidth},onclick:h=>{this.onDbClickWaveFrom(h,"rowAndCol")}})),n<this.leadModel.line?(this.createLeadName(t,e[n].pos[0],e[n].pos[1]-15),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(((o=this.formatEcgData)==null?void 0:o.sens)||0)/2-15)):(this.createLeadName(t,e[n].pos[0]+5,e[n].pos[1]-(((r=this.formatEcgData)==null?void 0:r.sens)||0)/2),this.createLeadOffAndDel(t,e[n].pos[0]-5,e[n].pos[1]-(((l=this.formatEcgData)==null?void 0:l.sens)||0)/2+9));this.waveDataCopy=e,e=null}createLeadName(e,t,a,i=!1){var s;(s=this.leadHeadNameGroup)==null||s.add(new u.Text({style:{x:t,y:a,text:this.LeadNameTextsPorps[e],fontSize:this.leadConfig.fontSize,fill:this.leadConfig.lineColor,fontFamily:this.leadConfig.fontFamily},oncontextmenu:o=>{o.event.preventDefault(),this.$emit("notiifyLeadName",{event:L(y({},o),{name:this.LeadNameTextsPorps[e],idx:e}),isAdd:i})},onclick:o=>{this.$emit("notiifyLeadName",{event:L(y({},o),{name:this.LeadNameTextsPorps[e],idx:e}),isAdd:i})}}))}createLeadOffAndDel(e,t,a){var i;(this.isLeadOff(e)||this.isLeadDel(e))&&((i=this.leadHeadOffAndDelGroup)==null||i.add(new u.Text({cursor:"",style:{x:t,y:a,text:"X",fontWeight:"bold",fontSize:18,fill:"#E42c03",fontFamily:this.fontFamily}})))}drawRulerNotes(){var i,s,o,r,l,n;if(!this.rulerConfig.isShow)return;const e={fill:"#FF0080",fontSize:13,fontFamily:this.fontFamily},t=new u.Text({cursor:"",style:y({text:"(s)",x:this.leadHeadConfig.leadHedeWidth/2-8,y:this.canvasContainer.height-25},e)}),a=new u.Text({style:y({text:`${((i=this.formatEcgData)==null?void 0:i.gainName)==="\u80F8\u5BFC\u51CF\u534A"?(s=this.formatEcgData)==null?void 0:s.gainName:`${(o=this.formatEcgData)==null?void 0:o.gain}mm/mV`} ${(r=this.formatEcgData)==null?void 0:r.speed}mm/s`,x:this.leadHeadConfig.leadHedeWidth/2+20,y:this.canvasContainer.height-this.ruleH},e)});(l=this.sceneIns)==null||l.add(a),(n=this.sceneIns)==null||n.add(t)}drawRuler(e=0){var o,r,l,n,h;if(!this.rulerConfig.isShow)return;const t=this.dataTotalTimes/1e3;let a=this.leadHeadConfig.leadHedeWidth,i=0,s=t;if(this.leadModel.isContinuous)s=t*5;else if(!this.leadModel.add&&((o=this.formatEcgData)==null?void 0:o.step)){const d=v.getPointIdxForPx(this.splitPoint,this.formatEcgData.step),f=v.getDataLenTimes(d,((r=this.formatEcgData)==null?void 0:r.processedData.otherParams.SampleRate)||0)/1e3;s=e+f}for(let d=e;d<=s;d=+(d+.1).toFixed(1))d!==e&&(a+=this.rulerStep),d%1===0?(i=this.canvasContainer.height-10,(l=this.rulerGroup)==null||l.add(new u.Text({cursor:"",style:{x:a,y:i-15,text:d+"",fontSize:13,fontFamily:this.fontFamily,fill:"#FF0080"}}))):i=this.canvasContainer.height-5,(n=this.rulerGroup)==null||n.add(new u.Line({cursor:"",shape:{x1:a,y1:i,x2:a,y2:this.canvasContainer.height},style:{stroke:"#FF0080",lineWidth:2}}));(h=this.sceneIns)==null||h.add(this.rulerGroup)}drawWaveFrom(){var e,t,a;this.isSingleMode?(this.addWaveDataCopy=[],this.waveDataCopy=[],this.createSingleWaveFrom(),(e=this.sceneIns)==null||e.add(this.singleWaveFromGroup)):(this.singleWaveDataCopy=[],this.createAddWaveFrom(),this.createRowAndColWaveFrom(),(t=this.sceneIns)==null||t.add(this.rowAndColwaveFromGroup),(a=this.sceneIns)==null||a.add(this.addwaveFromGroup)),this.drawLeadHeadNameAndOffOrDel(),this.drawRuler(),this.drawLoopArrow()}drawLeadHeadNameAndOffOrDel(){var e,t;(e=this.sceneIns)==null||e.add(this.leadHeadNameGroup),(t=this.sceneIns)==null||t.add(this.leadHeadOffAndDelGroup)}drawLoopArrow(e=0){var l,n,h,d,f,m,p,C,D,I,W,P,M,S,G,x,E;if(this.drawLoopArrowStartPosIdx=e,!this.heartFight.isShow)return;this.heartFight.mode&&this.currentHeardBeat.heardBeat===null&&(this.currentHeardBeat.heardBeat=((l=this.formatEcgData)==null?void 0:l.heartBeatPosition[this.heartFight.defaultSelect])||null,this.drawHeardBeatLine());let t=0,a=0;this.leadModel.add?a=this.loopArrowY.add-(((n=this.formatEcgData)==null?void 0:n.sens)||0)-this.splitBlockHeight/3.5:a=20;let i=0,s=0;const o={fontSize:12,fill:"red",fontFamily:this.fontFamily};let r=0;for(let F=0;F<(((h=this.formatEcgData)==null?void 0:h.heartBeatPosition)||[]).length;F++){const c=(d=this.formatEcgData)==null?void 0:d.heartBeatPosition[F];if(r=((c==null?void 0:c.position)||0)-e,!(e>((c==null?void 0:c.position)||0))&&!(!this.leadModel.isContinuous&&!this.leadModel.add&&r>(this.slidingWindowInfo.points||0))&&!(this.isSingleMode&&this.singleModeInfo&&r>(this.slidingWindowInfo.points||0))){if(((c==null?void 0:c.position)||0)-this.addSlidingWindowInfo.startInd>(this.addSlidingWindowInfo.points||0))break;t=r*(((f=this.formatEcgData)==null?void 0:f.step)||0)+this.leadHeadConfig.leadHedeWidth-9.5,s=0,(C=this.arrowGroup)==null||C.add(new u.Polygon({name:"arrow_box",shape:{points:[[4+t,0+a],[15+t,0+a],[15+t,10+a],[19+t,10+a],[9.5+t,22+a],[0+t,10+a],[4+t,10+a],[4+t,0+a]]},style:{fill:((p=(m=this.currentHeardBeat)==null?void 0:m.heardBeat)==null?void 0:p.index)===(c==null?void 0:c.index)?"blue":"#ccc"},onclick:A=>{var b;!this.heartFight.mode||(A.target.attr({style:{fill:"blue"}}),(b=this.arrowGroup)==null||b.children().filter(H=>H.name==="arrow_box").forEach(H=>{H.id!==A.target.id&&H.attr({style:{fill:"#ccc"}})}),this.arrowLoopClick(c,A.target))}})),this.heartFight.heartrate&&(i=((D=this.AssistCtx)==null?void 0:D.measureText(`${(c==null?void 0:c.heartrate)||""}`).width)||0,(I=this.arrowGroup)==null||I.add(new u.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.heartrate)||""}`},o)})),s+=12),this.heartFight.interval&&(i=((W=this.AssistCtx)==null?void 0:W.measureText(`${(c==null?void 0:c.interval)||""}`).width)||0,(P=this.arrowGroup)==null||P.add(new u.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.interval)||""}`},o)})),s+=12),this.heartFight.qrstCompany&&(i=((M=this.AssistCtx)==null?void 0:M.measureText(`${(c==null?void 0:c.qrstCompany)||""}`).width)||0,(S=this.arrowGroup)==null||S.add(new u.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.qrstCompany)||""}`},o)})),s+=12),this.heartFight.telectricalaxis&&(i=((G=this.AssistCtx)==null?void 0:G.measureText(`${(c==null?void 0:c.telectricalaxis)||""}`).width)||0,(x=this.arrowGroup)==null||x.add(new u.Text({cursor:"",style:y({x:4+t-i*1.5,y:s+a,text:`${(c==null?void 0:c.telectricalaxis)||""}`},o)})))}}(E=this.sceneIns)==null||E.add(this.arrowGroup)}arrowLoopClick(e,t){this.$emit("notifyHeardBeat",u.util.clone(e)),this.currentHeardBeat.heardBeat=e,this.currentHeardBeat.ele=t,this.drawHeardBeatLine()}drawHeardBeatLine(e=0){var r,l,n,h,d,f;if(!this.currentHeardBeat.heardBeat)return;(r=this.heardBeatLineGroup)==null||r.removeAll(),(l=this.sceneIns)==null||l.remove(this.heardBeatLineGroup);let t=this.formatEcgData.processedData.otherParams.AnalyseValue[this.currentHeardBeat.heardBeat.index].KeyPosByBeat,a=0,i=this.getRednerPoints(),s=this.getAddRednerPoints(),o;for(const m in t)if(["Pstart","Pend","QRSstart","QRSend","Tstart","Tend"].includes(m)&&Object.prototype.hasOwnProperty.call(t,m)){a=(t[m]-this.slidingWindowInfo.startInd)*(((n=this.formatEcgData)==null?void 0:n.step)||0);e:for(let p=0;p<i.length;p++)if(!(this.isLeadOff(p)||this.isLeadDel(p))){if(e>t[m]||!this.leadModel.isContinuous&&t[m]-this.slidingWindowInfo.startInd>(this.slidingWindowInfo.points||0)||(o=i[p],this.leadModel.isContinuous&&p>this.leadModel.line-1))break e;(h=this.heardBeatLineGroup)==null||h.add(this.createHeardBeatLine(o.pos[0]+a,o.pos[1]))}e:for(let p=0;p<s.length;p++)if(!(this.isLeadOff(this.longLeadConfig.leadIdxs[p])&&this.isLeadDel(this.longLeadConfig.leadIdxs[p]))){if(e>t[m])break e;o=s[p],(d=this.heardBeatLineGroup)==null||d.add(this.createHeardBeatLine(o.pos[0]+a,o.pos[1]))}}(f=this.sceneIns)==null||f.add(this.heardBeatLineGroup),t=null,i=null,s=null}createHeardBeatLine(e,t){return new u.Line({cursor:"",shape:{x1:e,y1:t-10,x2:e,y2:t+10},style:{stroke:"blue",lineWidth:1}})}nativeScrollFunc(e){console.log("event",e,e.target.scrollLeft),this.scrollCommon(e.target.scrollLeft||0)}handleScroll(e,t,a){t.type==="horizontal"&&(t.scrollLeft=t.scrollLeft||0,this.scrollCommon(t.scrollLeft))}scrollCommon(e){var a;const t=v.getPointIdxForPx(e,((a=this.formatEcgData)==null?void 0:a.step)||1);this.scrollWaveFrom(t),this.scrollRuler(t),this.scrollArrow(t),this.$emit("notifyScrollPointIdx",t)}scrollWaveFrom(e){var i,s,o,r,l,n;this.slidingWindowInfo.startInd=e,this.slidingWindowInfo.endInd=e+(this.slidingWindowInfo.points||0),this.addSlidingWindowInfo.startInd=e,this.addSlidingWindowInfo.endInd=e+(this.addSlidingWindowInfo.points||0);let t=this.getRednerPoints(),a=this.getAddRednerPoints();this.waveDataCopy=t,this.addWaveDataCopy=a,(i=this.rowAndColwaveFromGroup)==null||i.eachChild((h,d)=>{d=d||0,h.attr({shape:{points:t[d].data.map(([f,m])=>[f+t[d].pos[0],m+t[d].pos[1]])}})}),(s=this.addwaveFromGroup)==null||s.eachChild((h,d)=>{d=d||0,h.attr({shape:{points:a[d].data.map(([f,m])=>[f+a[d].pos[0],m+a[d].pos[1]])}})}),this.leadModel.isShowPacing&&((r=(o=this.formatEcgData)==null?void 0:o.processedData.otherParams.PacingData)==null?void 0:r.length)&&((n=(l=this.pacingGroup)==null?void 0:l.childOfName("0_0"))==null||n.attr({shape:{points:this.getPacinfPoints(this.leadHeadConfig.leadHedeWidth,this.canvasContainer.height-this.drawBottomPacH)}})),t=null,a=null}scrollRuler(e){var a,i,s;(a=this.rulerGroup)==null||a.removeAll(),(i=this.sceneIns)==null||i.remove(this.rulerGroup);const t=v.getDataLenTimes(this.isSingleMode?0:e,((s=this.formatEcgData)==null?void 0:s.processedData.otherParams.SampleRate)||0)/1e3;this.drawRuler(t)}scrollArrow(e){var t,a;(t=this.arrowGroup)==null||t.removeAll(),(a=this.sceneIns)==null||a.remove(this.arrowGroup),this.drawLoopArrow(e),this.drawHeardBeatLine(e)}};g([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"width",2);g([w.Prop({required:!0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"height",2);g([w.Prop({default:0,validator:e=>typeof e=="number"})],exports.default.prototype,"MXEnlargeWaveWidth",2);g([w.Prop({default:()=>v.LeadNameTexts})],exports.default.prototype,"LeadNameTextsPorps",2);g([w.Prop({default:0,type:Number,validator:e=>typeof e=="number"})],exports.default.prototype,"MXEnlargeWaveHeight",2);g([w.Prop({required:!0})],exports.default.prototype,"gridConfig",2);g([w.Prop({default:5,type:Number})],exports.default.prototype,"cellPoints",2);g([w.Prop({required:!0})],exports.default.prototype,"conventionalECGConfig",2);g([w.Prop({default:()=>({leadHedeWidth:20,leadHedeColor:"#000",leadHedeLineWidth:2})})],exports.default.prototype,"leadHeadConfig",2);g([w.Prop({required:!0})],exports.default.prototype,"formatEcgData",2);g([w.Prop({required:!0})],exports.default.prototype,"leadModel",2);g([w.Prop({default:()=>({lineColor:"#000",lineWidth:1,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1",fontSize:15})})],exports.default.prototype,"leadConfig",2);g([w.Prop({default:()=>({leadIdxs:[1,6,10],leadNames:[1,6,10]})})],exports.default.prototype,"longLeadConfig",2);g([w.Prop({default:()=>({isShow:!1,mode:!1,defaultSelect:2,heartrate:!1,interval:!1,qrstCompany:!1,telectricalaxis:!1})})],exports.default.prototype,"heartFight",2);g([w.Prop({default:()=>({isShow:!0,isNativeScroll:!1,scrollPanel:{scrollingY:!1},bar:{keepShow:!0,size:"10px"}})})],exports.default.prototype,"scrollConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"rulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"measurRulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"paralleRulerConfig",2);g([w.Prop({default:()=>({isShow:!1})})],exports.default.prototype,"magnifierRulerConfig",2);g([w.Prop({default:60})],exports.default.prototype,"ventricularRate",2);g([w.Prop({default:v.AnalysisMode.CompoundWave})],exports.default.prototype,"enlargeWaveMode",2);g([w.Prop({default:()=>[]})],exports.default.prototype,"enlargeGains",2);g([w.Prop({default:()=>[]})],exports.default.prototype,"enlargeSpeeds",2);g([w.Prop({default:()=>({defaultSelect:1})})],exports.default.prototype,"singleModeInfo",2);g([w.Prop({default:!1})],exports.default.prototype,"isSyncAnalyseValueCheck",2);g([v.throttling(200)],exports.default.prototype,"zoomWave",1);g([v.throttling(200)],exports.default.prototype,"nativeScrollFunc",1);g([v.throttling(200)],exports.default.prototype,"handleScroll",1);exports.default=g([X.default({name:"Methods"})],exports.default);
|