@medicus.ai/medicus-report-pdf-generator 1.3.3 → 1.3.5
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/config/Pha.json +20 -3
- package/index.js +1 -1
- package/lib/wellbeing_report_generator.js +68 -7
- package/package.json +1 -1
- package/test.js +3 -2
- package/testing-reports/pha/with-wellbeing-full-data.js +735 -733
package/config/Pha.json
CHANGED
|
@@ -25,9 +25,26 @@
|
|
|
25
25
|
"list_icons_font_color": "#0F2062",
|
|
26
26
|
"insights_font_color": "#1A3A7A",
|
|
27
27
|
"signature": "Team Medicus",
|
|
28
|
-
"labs-logo":{
|
|
29
|
-
"labcorp":"data:image/png;base64,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",
|
|
30
|
-
"wp":"data:image/png;base64,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"
|
|
28
|
+
"labs-logo": {
|
|
29
|
+
"labcorp": "data:image/png;base64,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",
|
|
30
|
+
"wp": "data:image/png;base64,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"
|
|
31
|
+
},
|
|
32
|
+
"labs-logo-aliases": {
|
|
33
|
+
"labcorp": [
|
|
34
|
+
"lab corp",
|
|
35
|
+
"lab_corp",
|
|
36
|
+
"lab-corp",
|
|
37
|
+
"lab.corp",
|
|
38
|
+
"LabCorp",
|
|
39
|
+
"Lab Corp"
|
|
40
|
+
],
|
|
41
|
+
"wp": [
|
|
42
|
+
"WP Laboratories LLC",
|
|
43
|
+
"wp",
|
|
44
|
+
"w.p",
|
|
45
|
+
"w-p",
|
|
46
|
+
"w_p"
|
|
47
|
+
]
|
|
31
48
|
},
|
|
32
49
|
"corporate_report": {
|
|
33
50
|
"logo": "data:image/png;base64,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",
|
package/index.js
CHANGED
|
@@ -235,7 +235,7 @@ module.exports = {
|
|
|
235
235
|
showHeaderLogo || true
|
|
236
236
|
);
|
|
237
237
|
|
|
238
|
-
const fileBuffer = await generatePDFReport({ ...html, client: reportData.client });
|
|
238
|
+
const fileBuffer = await generatePDFReport({ ...html, client: reportData.client, footer: decodedJSON?.footer });
|
|
239
239
|
|
|
240
240
|
if (isDebugging) {
|
|
241
241
|
console.log('3: save PDF buffer');
|
|
@@ -112,6 +112,7 @@ const loadClientConfig = (clientName = 'default') => {
|
|
|
112
112
|
// Map config values with defaults
|
|
113
113
|
config.logo = clientConfig['logo'] || "";
|
|
114
114
|
config.labs_logos = clientConfig['labs-logo'] || [];
|
|
115
|
+
config.labs_logo_aliases = clientConfig['labs-logo-aliases'] || {};
|
|
115
116
|
config.title = clientConfig['title'] || "";
|
|
116
117
|
config.bulbIcon = clientConfig['bulb_icon'] || "";
|
|
117
118
|
config.bulb_icon_font_color = clientConfig['bulb_icon_font_color'] || "";
|
|
@@ -151,6 +152,53 @@ const loadClientConfig = (clientName = 'default') => {
|
|
|
151
152
|
return config;
|
|
152
153
|
};
|
|
153
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Normalize a string for matching (lowercase, trim, collapse spaces/underscores/hyphens).
|
|
157
|
+
* "Lab Corp", "lab Corp", "lab corp", "lab_corp", "labcorp" all match as the same.
|
|
158
|
+
* @param {string} str - Raw string to normalize
|
|
159
|
+
* @returns {string} Normalized string
|
|
160
|
+
*/
|
|
161
|
+
const normalizeForMatch = (str) =>
|
|
162
|
+
String(str || '')
|
|
163
|
+
.trim()
|
|
164
|
+
.toLowerCase()
|
|
165
|
+
.replace(/[\s_-]+/g, '');
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Resolve selectedLabs to canonical config keys using config keys + aliases.
|
|
169
|
+
* @param {string[]} selectedLabs - Raw lab names from API
|
|
170
|
+
* @param {object} labsConfig - e.g. config.labs_logos
|
|
171
|
+
* @param {object} aliasesConfig - e.g. config.labs_logo_aliases
|
|
172
|
+
* @returns {string[]} Canonical keys present in labsConfig
|
|
173
|
+
*/
|
|
174
|
+
const normalizeSelectedLabs = (selectedLabs, labsConfig, aliasesConfig = {}) => {
|
|
175
|
+
const labs = labsConfig && typeof labsConfig === 'object' ? labsConfig : {};
|
|
176
|
+
const keys = Object.keys(labs);
|
|
177
|
+
const seen = new Set();
|
|
178
|
+
|
|
179
|
+
for (const raw of selectedLabs || []) {
|
|
180
|
+
const normalized = normalizeForMatch(raw);
|
|
181
|
+
if (!normalized) continue;
|
|
182
|
+
|
|
183
|
+
const direct = keys.find(k => normalizeForMatch(k) === normalized);
|
|
184
|
+
if (direct && !seen.has(direct)) {
|
|
185
|
+
seen.add(direct);
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
for (const [key, aliases] of Object.entries(aliasesConfig)) {
|
|
190
|
+
if (!labs[key]) continue;
|
|
191
|
+
const match = (aliases || []).some(a => normalizeForMatch(a) === normalized);
|
|
192
|
+
if (match && !seen.has(key)) {
|
|
193
|
+
seen.add(key);
|
|
194
|
+
break;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return [...seen];
|
|
200
|
+
};
|
|
201
|
+
|
|
154
202
|
const icons = {
|
|
155
203
|
"wellbeing_element_alcohol": "M 10.667969 5.144531 L 19.332031 5.144531 C 19.5 5.144531 19.65625 5.238281 19.710938 5.375 C 21.007812 8.671875 21.394531 10.714844 21.394531 12.316406 C 21.394531 15.285156 18.53125 17.695312 15 17.695312 C 11.46875 17.695312 8.605469 15.285156 8.605469 12.316406 C 8.605469 10.714844 8.988281 8.671875 10.289062 5.375 C 10.34375 5.238281 10.5 5.144531 10.667969 5.144531 Z M 9.804688 12.316406 C 9.804688 14.648438 11.785156 16.09375 15 16.339844 C 17.796875 16.550781 20.195312 14.71875 20.195312 12.316406 L 20.195312 11.929688 L 9.804688 11.929688 Z M 9.804688 12.316406 M 17.796875 24.140625 L 17.398438 24.140625 C 16.296875 24.140625 15.398438 23.378906 15.398438 22.445312 L 15.394531 18.28125 C 15.394531 17.945312 15.6875 17.667969 16.078125 17.613281 C 17.324219 17.433594 18.445312 16.953125 19.332031 16.261719 C 19.332031 16.261719 18.003906 17.015625 15 17.015625 C 11.996094 17.015625 10.667969 16.261719 10.667969 16.261719 C 11.558594 16.953125 12.675781 17.433594 13.921875 17.613281 C 14.3125 17.667969 14.605469 17.945312 14.601562 18.28125 L 14.601562 22.445312 C 14.601562 23.378906 13.703125 24.140625 12.601562 24.140625 L 12.203125 24.140625 C 11.980469 24.140625 11.804688 24.292969 11.804688 24.480469 C 11.804688 24.667969 11.980469 24.820312 12.203125 24.820312 L 17.796875 24.820312 C 18.019531 24.820312 18.195312 24.667969 18.195312 24.480469 C 18.195312 24.292969 18.019531 24.140625 17.796875 24.140625 Z M 17.796875 24.140625",
|
|
156
204
|
"wellbeing_element_blue_mood": "M 19.351562 7.859375 C 19.640625 6.664062 20.308594 5.144531 21.085938 5.144531 C 22.121094 5.144531 22.972656 7.855469 22.972656 8.882812 C 22.972656 9.371094 22.78125 9.8125 22.472656 10.148438 C 24.007812 11.851562 24.859375 14.066406 24.855469 16.363281 C 24.855469 21.527344 20.636719 25.714844 15.429688 25.714844 C 10.222656 25.714844 6 21.527344 6 16.363281 C 6 11.199219 10.222656 7.011719 15.429688 7.011719 C 16.828125 7.011719 18.15625 7.316406 19.351562 7.859375 Z M 12.191406 15.734375 C 12.636719 15.734375 13 15.375 13 14.933594 C 13 14.488281 12.636719 14.128906 12.191406 14.128906 C 11.75 14.128906 11.386719 14.488281 11.382812 14.933594 C 11.382812 15.375 11.746094 15.734375 12.191406 15.734375 Z M 18.835938 15.734375 C 19.28125 15.734375 19.644531 15.375 19.644531 14.933594 C 19.644531 14.488281 19.28125 14.128906 18.835938 14.128906 C 18.394531 14.128906 18.03125 14.488281 18.027344 14.933594 C 18.027344 15.375 18.390625 15.734375 18.835938 15.734375 Z M 12.929688 20.742188 C 13.726562 20.632812 14.59375 20.574219 15.53125 20.574219 C 16.464844 20.574219 17.3125 20.628906 18.066406 20.742188 C 17.785156 20.328125 17.5 20.023438 17.207031 19.835938 C 16.765625 19.550781 16.429688 19.3125 15.601562 19.3125 C 14.773438 19.3125 14.234375 19.554688 13.777344 19.835938 C 13.472656 20.019531 13.1875 20.324219 12.929688 20.742188 Z M 19.351562 7.859375 C 19.253906 8.257812 19.199219 8.625 19.199219 8.882812 C 19.199219 9.910156 20.046875 10.753906 21.085938 10.753906 C 21.632812 10.753906 22.128906 10.519531 22.472656 10.148438 C 21.601562 9.175781 20.539062 8.398438 19.351562 7.859375 Z M 9.941406 13.4375 L 10.421875 14.148438 L 12.554688 12.710938 L 12.074219 12 Z M 18.355469 12.832031 L 20.488281 14.269531 L 20.96875 13.558594 L 18.835938 12.121094 Z M 18.355469 12.832031",
|
|
@@ -1110,6 +1158,7 @@ let generateHTMLWellbeingReportWithSmartReport = async (data, isDebugging, clien
|
|
|
1110
1158
|
|
|
1111
1159
|
// Load client configuration
|
|
1112
1160
|
loadClientConfig(client);
|
|
1161
|
+
const normalizedLabs = normalizeSelectedLabs(selectedLabs, config.labs_logos, config.labs_logo_aliases);
|
|
1113
1162
|
localeService.setLocale(language);
|
|
1114
1163
|
debugLog("pdf language:", language);
|
|
1115
1164
|
|
|
@@ -1435,8 +1484,8 @@ let generateHTMLWellbeingReportWithSmartReport = async (data, isDebugging, clien
|
|
|
1435
1484
|
historyData,
|
|
1436
1485
|
profileInfo,
|
|
1437
1486
|
language,
|
|
1438
|
-
selectedLabs,
|
|
1439
|
-
pdfHeader: cleanStyledHeader(renderedPdfHeader, profileInfo, language, clientName,
|
|
1487
|
+
selectedLabs: normalizedLabs,
|
|
1488
|
+
pdfHeader: cleanStyledHeader(renderedPdfHeader, profileInfo, language, clientName, normalizedLabs, showHeaderLogo)
|
|
1440
1489
|
};
|
|
1441
1490
|
};
|
|
1442
1491
|
|
|
@@ -1615,25 +1664,37 @@ const cleanStyledHeader = (html, profileInfo, language = 'ar', clientName = 'med
|
|
|
1615
1664
|
/**
|
|
1616
1665
|
* Get PDF footer template HTML (client-specific contact info)
|
|
1617
1666
|
* @param {string} [client='mediclinic'] - Client identifier: 'mediclinic' | 'pha' | other
|
|
1618
|
-
* @param {array} [selectedLabs=[]] - Selected divisions/labs (e.g. ['wp'])
|
|
1667
|
+
* @param {array} [selectedLabs=[]] - Selected divisions/labs (e.g. ['wp'], ['labcorp'])
|
|
1668
|
+
* @param {object} [footerFromData] - Footer data from input (e.g. { address: "123 Main St..." }) for PHA + LabCorp
|
|
1619
1669
|
* @returns {string} Footer template HTML
|
|
1620
1670
|
*/
|
|
1621
|
-
const getPdfFooterTemplate = (client = 'mediclinic', selectedLabs = []) => {
|
|
1671
|
+
const getPdfFooterTemplate = (client = 'mediclinic', selectedLabs = [], footerFromData = null) => {
|
|
1622
1672
|
const clientKey = (client || 'mediclinic').toLocaleLowerCase();
|
|
1623
1673
|
const isPhaWithWp = clientKey === 'pha' && selectedLabs?.some(lab => lab?.toLowerCase() === 'wp');
|
|
1674
|
+
const isPhaWithLabcorp = clientKey === 'pha' && selectedLabs?.some(lab => lab?.toLowerCase() === 'labcorp');
|
|
1675
|
+
const footerAddress =
|
|
1676
|
+
(footerFromData && typeof footerFromData === 'object' && footerFromData.address) ? String(footerFromData.address) : null;
|
|
1624
1677
|
let contactBlock = '';
|
|
1625
1678
|
if (clientKey === 'mediclinic') {
|
|
1626
1679
|
contactBlock = `
|
|
1627
1680
|
<div style="font-family: 'Open Sans', sans-serif; font-feature-settings: 'tnum';">Telephone: 800 20 33</div>
|
|
1628
1681
|
<div style="font-family: 'Open Sans', sans-serif;">Email: info@mediclinic.ae</div>`;
|
|
1629
1682
|
} else if (clientKey === 'pha') {
|
|
1630
|
-
//
|
|
1631
|
-
|
|
1683
|
+
// PHA + LabCorp: use address from data.footer (fallback to no-address if footer missing)
|
|
1684
|
+
// PHA + WP: use static footer (106 W 3rd St...)
|
|
1685
|
+
// PHA + no lab: hide address (Tel + Email only)
|
|
1686
|
+
if (isPhaWithLabcorp && footerAddress) {
|
|
1687
|
+
contactBlock = `
|
|
1688
|
+
<div style="font-family: 'Open Sans', sans-serif;">Address: ${footerAddress}</div>
|
|
1689
|
+
<div style="font-family: 'Open Sans', sans-serif; font-feature-settings: 'tnum';">Tel: (877) 345-7775</div>
|
|
1690
|
+
<div style="font-family: 'Open Sans', sans-serif;">Email: processing@wellness-partners.org</div>`;
|
|
1691
|
+
} else if (isPhaWithWp) {
|
|
1632
1692
|
contactBlock = `
|
|
1633
1693
|
<div style="font-family: 'Open Sans', sans-serif;">Address: 106 W 3rd St, McCook, NE 69001</div>
|
|
1634
1694
|
<div style="font-family: 'Open Sans', sans-serif; font-feature-settings: 'tnum';">Telephone: (877) 345-7775</div>
|
|
1635
1695
|
<div style="font-family: 'Open Sans', sans-serif;">Email: processing@wellness-partners.org</div>`;
|
|
1636
1696
|
} else {
|
|
1697
|
+
// PHA with no lab, or PHA + LabCorp without footer address: hide address line
|
|
1637
1698
|
contactBlock = `
|
|
1638
1699
|
<div style="font-family: 'Open Sans', sans-serif; font-feature-settings: 'tnum';">Tel: (877) 345-7775</div>
|
|
1639
1700
|
<div style="font-family: 'Open Sans', sans-serif;">Email: processing@wellness-partners.org</div>`;
|
|
@@ -1718,7 +1779,7 @@ const generatePDFReport = async (data, hideWellbeingUI = false) => {
|
|
|
1718
1779
|
try {
|
|
1719
1780
|
const contentHtml = data.html;
|
|
1720
1781
|
const OUT_FILE = data.outputFile;
|
|
1721
|
-
const footerTemplate = getPdfFooterTemplate(data.client, data.selectedLabs);
|
|
1782
|
+
const footerTemplate = getPdfFooterTemplate(data.client, data.selectedLabs, data.footer);
|
|
1722
1783
|
|
|
1723
1784
|
// Launch browser and setup page
|
|
1724
1785
|
const browser = await launchExtendedBrowser();
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -36,7 +36,7 @@ async function generateTestPDF() {
|
|
|
36
36
|
true,
|
|
37
37
|
client,
|
|
38
38
|
"en",
|
|
39
|
-
['
|
|
39
|
+
['Lab Corp'],
|
|
40
40
|
true
|
|
41
41
|
);
|
|
42
42
|
|
|
@@ -47,11 +47,12 @@ async function generateTestPDF() {
|
|
|
47
47
|
defaultConfig = require(configPath);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
// Generate the raw PDF buffer
|
|
50
|
+
// Generate the raw PDF buffer (pass data.footer for PHA + LabCorp address)
|
|
51
51
|
const fileBuffer = await generatePDFReport({
|
|
52
52
|
...html,
|
|
53
53
|
client: client,
|
|
54
54
|
logo: defaultConfig.logo,
|
|
55
|
+
footer: data.footer,
|
|
55
56
|
});
|
|
56
57
|
|
|
57
58
|
// Write original PDF
|