@measurequick/measurequick-report-generator 1.0.68 → 1.0.70
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/graphics.js +2 -0
- package/index.js +2 -0
- package/mq-ptcs-report-generator.js +37 -0
- package/mq-system-vitals-report-generator.js +13 -10
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as mqReportGenerator from "./jspdf/mq-report-generator.js";
|
|
2
2
|
import * as mqSystemVitalsReportGenerator from "./mq-system-vitals-report-generator.js";
|
|
3
|
+
import * as mqPtcsReportGenerator from "./mq-ptcs-report-generator.js";
|
|
3
4
|
|
|
4
5
|
export function generateReport(reportType, payload) {
|
|
5
6
|
if (reportType == "mqStandard") reportType = "mqCooling";
|
|
@@ -7,6 +8,7 @@ export function generateReport(reportType, payload) {
|
|
|
7
8
|
case "mqCooling":
|
|
8
9
|
case "mqHeating": return mqReportGenerator.generateReport(reportType, payload);
|
|
9
10
|
case "mqSystemVitals": return mqSystemVitalsReportGenerator.generateReport(payload);
|
|
11
|
+
case "mqPtcs": return mqPtcsReportGenerator.generateReport(payload);
|
|
10
12
|
default: return false;
|
|
11
13
|
}
|
|
12
14
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { PDFDocument } from 'pdf-lib';
|
|
2
|
+
import * as base64 from './graphics.js';
|
|
3
|
+
|
|
4
|
+
export async function generateReport(payload) {
|
|
5
|
+
|
|
6
|
+
// fetch and load form
|
|
7
|
+
const formPdfBytes = _base64ToArrayBuffer(base64.ptcsPdfTemplate);
|
|
8
|
+
const pdfDoc = await PDFDocument.load(formPdfBytes);
|
|
9
|
+
|
|
10
|
+
// fetch resources
|
|
11
|
+
const iconRangeGreenBytes = _base64ToArrayBuffer(base64.iconRangeGreen);
|
|
12
|
+
|
|
13
|
+
// load resources
|
|
14
|
+
const iconRangeGreen = await pdfDoc.embedPng(iconRangeGreenBytes);
|
|
15
|
+
|
|
16
|
+
// get form for filling
|
|
17
|
+
const form = pdfDoc.getForm();
|
|
18
|
+
|
|
19
|
+
// fill form
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
// flatten and return as base64
|
|
23
|
+
//form.flatten();
|
|
24
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
25
|
+
return pdfBase64;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _base64ToArrayBuffer(base64) {
|
|
29
|
+
base64 = base64.replace(/^[^,]+,/, '').replace(/\s/g, '');
|
|
30
|
+
var binary_string = window.atob(base64);
|
|
31
|
+
var len = binary_string.length;
|
|
32
|
+
var bytes = new Uint8Array(len);
|
|
33
|
+
for (var i = 0; i < len; i++) {
|
|
34
|
+
bytes[i] = binary_string.charCodeAt(i);
|
|
35
|
+
}
|
|
36
|
+
return bytes.buffer;
|
|
37
|
+
}
|
|
@@ -4,7 +4,7 @@ import * as base64 from './graphics.js';
|
|
|
4
4
|
export async function generateReport(payload) {
|
|
5
5
|
|
|
6
6
|
// fetch and load form
|
|
7
|
-
const formPdfBytes = _base64ToArrayBuffer(base64.systemVitalsPdfTemplate)
|
|
7
|
+
const formPdfBytes = _base64ToArrayBuffer(base64.systemVitalsPdfTemplate);
|
|
8
8
|
const pdfDoc = await PDFDocument.load(formPdfBytes);
|
|
9
9
|
|
|
10
10
|
// fetch resources
|
|
@@ -55,8 +55,11 @@ export async function generateReport(payload) {
|
|
|
55
55
|
form.getButton("ImageDiagnostics1_af_image").setImage(iconFlagGreen);
|
|
56
56
|
form.getTextField("SystemDiagnostics1").setText("No system-wide issues were detected.");
|
|
57
57
|
}
|
|
58
|
+
if (payload.test.score_deduction) {
|
|
59
|
+
scoreDeduction = payload.test.score_deduction;
|
|
60
|
+
}
|
|
58
61
|
|
|
59
|
-
let systemScorePercentage = 100 - scoreDeduction;
|
|
62
|
+
let systemScorePercentage = +(100 - +(scoreDeduction.toFixed(0)));
|
|
60
63
|
let systemScoreGrade = getGradeFromScore(systemScorePercentage);
|
|
61
64
|
let systemScoreColor = getColorFromGrade(systemScoreGrade);
|
|
62
65
|
|
|
@@ -98,7 +101,7 @@ export async function generateReport(payload) {
|
|
|
98
101
|
form.getTextField('Subcooling').setText(`${textFields.subcooling} °${payload.units.temperature}`);
|
|
99
102
|
form.getTextField('CondenserApproach').setText(`${textFields.approach} °${payload.units.temperature}`);
|
|
100
103
|
form.getTextField('TemperatureSplit').setText(`${textFields.tempSplit} °${payload.units.temperature}`);
|
|
101
|
-
form.getTextField('TotalExternalStaticPressure').setText(`${textFields.tesp}
|
|
104
|
+
form.getTextField('TotalExternalStaticPressure').setText(`${textFields.tesp} inH2O`);
|
|
102
105
|
form.getTextField('FilterFaceVelocity').setText(`${textFields.fltrFace} FPM`);
|
|
103
106
|
|
|
104
107
|
// print targets and range icons
|
|
@@ -134,7 +137,7 @@ export async function generateReport(payload) {
|
|
|
134
137
|
}
|
|
135
138
|
|
|
136
139
|
// flatten and return as base64
|
|
137
|
-
form.flatten();
|
|
140
|
+
//form.flatten();
|
|
138
141
|
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
139
142
|
return pdfBase64;
|
|
140
143
|
}
|
|
@@ -173,12 +176,12 @@ function getTextFields(payload) {
|
|
|
173
176
|
"city": payload.site.location.city ? payload.site.location.city : "",
|
|
174
177
|
"state": payload.site.location.state ? `, ${payload.site.location.state}` : "",
|
|
175
178
|
"zip": payload.site.location.zip ? ` ${payload.site.location.zip}` : "",
|
|
176
|
-
"superheat": payload.test.data.superheat ? payload.test.data.superheat.toFixed(1) : "--",
|
|
177
|
-
"subcooling": payload.test.data.subcooling ? payload.test.data.subcooling.toFixed(1) : "--",
|
|
178
|
-
"approach": payload.test.data.approach ? payload.test.data.approach.toFixed(1) : "--",
|
|
179
|
-
"tempSplit": payload.test.data.temperature_split ? payload.test.data.temperature_split.toFixed(1) : "--",
|
|
180
|
-
"tesp": payload.test.data.pressure_static_total_external ? payload.test.data.pressure_static_total_external.toFixed(
|
|
181
|
-
"fltrFace": payload.test.data.velocity_face_filter1 ? payload.test.data.velocity_face_filter1.toFixed(1) : "--"
|
|
179
|
+
"superheat": payload.test.data.superheat ? (+payload.test.data.superheat).toFixed(1) : "--",
|
|
180
|
+
"subcooling": payload.test.data.subcooling ? (+payload.test.data.subcooling).toFixed(1) : "--",
|
|
181
|
+
"approach": payload.test.data.approach ? (+payload.test.data.approach).toFixed(1) : "--",
|
|
182
|
+
"tempSplit": payload.test.data.temperature_split ? (+payload.test.data.temperature_split).toFixed(1) : "--",
|
|
183
|
+
"tesp": payload.test.data.pressure_static_total_external ? (+payload.test.data.pressure_static_total_external).toFixed(2) : "--",
|
|
184
|
+
"fltrFace": payload.test.data.velocity_face_filter1 ? (+payload.test.data.velocity_face_filter1).toFixed(1) : "--"
|
|
182
185
|
}
|
|
183
186
|
}
|
|
184
187
|
|