@medicus.ai/medicus-report-pdf-generator 1.0.235 → 1.0.237
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/assets/wellbeing/css/nasco_report.css +57 -26
- package/config/bionext.json +4 -4
- package/config/sanusx.json +2 -2
- package/index.js +14 -18
- package/lib/corporate_report_generator.js +5 -13
- package/package.json +2 -4
- package/templates/wellbeing/blocks/header.html +12 -12
- package/lib/encrypt_decrypt.js +0 -58
|
@@ -2656,7 +2656,7 @@ ul li::before {
|
|
|
2656
2656
|
|
|
2657
2657
|
.score-details-title {
|
|
2658
2658
|
font-size: 18px;
|
|
2659
|
-
font-weight:
|
|
2659
|
+
font-weight: normal;
|
|
2660
2660
|
text-align: center;
|
|
2661
2661
|
margin-top: -80px;
|
|
2662
2662
|
display: block;
|
|
@@ -2732,8 +2732,8 @@ div[key="healthRisk"] span.score-details-title {
|
|
|
2732
2732
|
}
|
|
2733
2733
|
|
|
2734
2734
|
.score-description {
|
|
2735
|
-
font-size:
|
|
2736
|
-
font-weight:
|
|
2735
|
+
font-size: 12px;
|
|
2736
|
+
font-weight: 400;
|
|
2737
2737
|
font-stretch: normal;
|
|
2738
2738
|
font-style: normal;
|
|
2739
2739
|
line-height: 1.3;
|
|
@@ -2742,7 +2742,8 @@ div[key="healthRisk"] span.score-details-title {
|
|
|
2742
2742
|
padding: 0;
|
|
2743
2743
|
transition: 0.4s all;
|
|
2744
2744
|
color: rgb(139, 139, 167);
|
|
2745
|
-
margin
|
|
2745
|
+
margin: 5px auto auto;
|
|
2746
|
+
width: 270px;
|
|
2746
2747
|
}
|
|
2747
2748
|
|
|
2748
2749
|
.score-list {
|
|
@@ -2754,7 +2755,7 @@ div[key="healthRisk"] span.score-details-title {
|
|
|
2754
2755
|
padding: 0;
|
|
2755
2756
|
width: 88%;
|
|
2756
2757
|
line-height: 1.1;
|
|
2757
|
-
float:left;
|
|
2758
|
+
float: left;
|
|
2758
2759
|
margin-bottom: 0;
|
|
2759
2760
|
}
|
|
2760
2761
|
|
|
@@ -2799,11 +2800,13 @@ div[key="healthRisk"] .score-list {
|
|
|
2799
2800
|
letter-spacing: -0.32px;
|
|
2800
2801
|
margin-right: 3px;
|
|
2801
2802
|
}
|
|
2803
|
+
|
|
2802
2804
|
.percentage-meter-content[key="healthRisk"] .list-score {
|
|
2803
2805
|
font-size: 10px;
|
|
2804
2806
|
vertical-align: -webkit-baseline-middle;
|
|
2805
2807
|
margin-top: 5px;
|
|
2806
2808
|
}
|
|
2809
|
+
|
|
2807
2810
|
.list-text {
|
|
2808
2811
|
padding-left: 1px;
|
|
2809
2812
|
font-size: 11px;
|
|
@@ -2925,7 +2928,6 @@ div[key="healthRisk"] .score-list {
|
|
|
2925
2928
|
}
|
|
2926
2929
|
|
|
2927
2930
|
.tips-text {
|
|
2928
|
-
opacity: 0.6;
|
|
2929
2931
|
font-size: 13px;
|
|
2930
2932
|
font-stretch: normal;
|
|
2931
2933
|
font-style: normal;
|
|
@@ -2937,6 +2939,11 @@ div[key="healthRisk"] .score-list {
|
|
|
2937
2939
|
.speedometer-container {
|
|
2938
2940
|
text-align: center;
|
|
2939
2941
|
display: inline-block;
|
|
2942
|
+
width: 159px;
|
|
2943
|
+
}
|
|
2944
|
+
|
|
2945
|
+
div#screenshot {
|
|
2946
|
+
text-align: center;
|
|
2940
2947
|
}
|
|
2941
2948
|
|
|
2942
2949
|
.meter-image.ui.image {
|
|
@@ -2960,11 +2967,11 @@ div[key="healthRisk"] .score-list {
|
|
|
2960
2967
|
width: 112px;
|
|
2961
2968
|
margin-left: auto;
|
|
2962
2969
|
margin-top: 1rem;
|
|
2963
|
-
margin-right:
|
|
2970
|
+
margin-right: 2px;
|
|
2964
2971
|
}
|
|
2965
2972
|
|
|
2966
2973
|
.needle-container.loading_Meter1 {
|
|
2967
|
-
margin-right:
|
|
2974
|
+
margin-right: 11px;
|
|
2968
2975
|
}
|
|
2969
2976
|
|
|
2970
2977
|
.speedometer-value {
|
|
@@ -3008,7 +3015,7 @@ div[key="healthRisk"] .score-list {
|
|
|
3008
3015
|
}
|
|
3009
3016
|
|
|
3010
3017
|
.ukv-logo.ui.image {
|
|
3011
|
-
width:
|
|
3018
|
+
width: 147px;
|
|
3012
3019
|
height: auto;
|
|
3013
3020
|
}
|
|
3014
3021
|
|
|
@@ -3062,11 +3069,23 @@ div[key="healthRisk"] .score-list {
|
|
|
3062
3069
|
float: right;
|
|
3063
3070
|
}
|
|
3064
3071
|
|
|
3072
|
+
.first-section-scores {
|
|
3073
|
+
width: 100%;
|
|
3074
|
+
float: left;
|
|
3075
|
+
border: 1px solid rgba(171, 204, 58, 1);
|
|
3076
|
+
border-radius: 16px;
|
|
3077
|
+
padding: 18px 38px;
|
|
3078
|
+
margin-top: 24px;
|
|
3079
|
+
box-sizing: border-box;
|
|
3080
|
+
}
|
|
3081
|
+
|
|
3065
3082
|
.pdf-top-info-content {
|
|
3066
3083
|
background: #f2f2fa;
|
|
3067
|
-
padding:
|
|
3084
|
+
padding: 7px 19px 14px 16px;
|
|
3068
3085
|
box-sizing: border-box;
|
|
3069
|
-
width: 100
|
|
3086
|
+
width: 100%;
|
|
3087
|
+
border-bottom-left-radius: 16px;
|
|
3088
|
+
border-bottom-right-radius: 16px;
|
|
3070
3089
|
}
|
|
3071
3090
|
|
|
3072
3091
|
.pdf-top-info-bg {
|
|
@@ -3075,6 +3094,7 @@ div[key="healthRisk"] .score-list {
|
|
|
3075
3094
|
right: 0;
|
|
3076
3095
|
width: 100%;
|
|
3077
3096
|
height: 62px;
|
|
3097
|
+
display: none;
|
|
3078
3098
|
|
|
3079
3099
|
}
|
|
3080
3100
|
|
|
@@ -3091,14 +3111,15 @@ div[key="healthRisk"] .score-list {
|
|
|
3091
3111
|
color: rgb(139, 139, 167);
|
|
3092
3112
|
font-size: 10px;
|
|
3093
3113
|
margin-bottom: 4px;
|
|
3114
|
+
display: inline-block;
|
|
3094
3115
|
}
|
|
3095
3116
|
|
|
3096
3117
|
.report-info-description {
|
|
3097
3118
|
color: rgb(0, 0, 153);
|
|
3098
|
-
font-size:
|
|
3099
|
-
line-height:
|
|
3100
|
-
margin-top:
|
|
3101
|
-
font-weight:
|
|
3119
|
+
font-size: 15px;
|
|
3120
|
+
line-height: 20px;
|
|
3121
|
+
margin-top: 7px;
|
|
3122
|
+
font-weight: normal;
|
|
3102
3123
|
}
|
|
3103
3124
|
|
|
3104
3125
|
.row.score-section .eight.wide {
|
|
@@ -3106,7 +3127,7 @@ div[key="healthRisk"] .score-list {
|
|
|
3106
3127
|
}
|
|
3107
3128
|
|
|
3108
3129
|
.row.score-section .eight.wide {
|
|
3109
|
-
width:
|
|
3130
|
+
width: 41%;
|
|
3110
3131
|
}
|
|
3111
3132
|
|
|
3112
3133
|
.row.score-section .eight.wide:last-child {
|
|
@@ -3115,14 +3136,20 @@ div[key="healthRisk"] .score-list {
|
|
|
3115
3136
|
|
|
3116
3137
|
.report-header {
|
|
3117
3138
|
color: rgb(139, 139, 167);
|
|
3118
|
-
font-size:
|
|
3139
|
+
font-size: 24px;
|
|
3119
3140
|
margin-top: 4px;
|
|
3120
3141
|
margin-bottom: 20px;
|
|
3121
3142
|
letter-spacing: -0.9px;
|
|
3143
|
+
display: inline-block;
|
|
3144
|
+
margin-top: 0px;
|
|
3122
3145
|
}
|
|
3123
3146
|
|
|
3124
3147
|
.report-logo {
|
|
3125
3148
|
margin-top: -10px;
|
|
3149
|
+
margin-top: -10px;
|
|
3150
|
+
display: inline-block;
|
|
3151
|
+
float: left;
|
|
3152
|
+
margin-right: 10px;
|
|
3126
3153
|
}
|
|
3127
3154
|
|
|
3128
3155
|
.user-profile-img {
|
|
@@ -3145,6 +3172,7 @@ div[key="healthRisk"] .score-list {
|
|
|
3145
3172
|
float: right;
|
|
3146
3173
|
text-align: right;
|
|
3147
3174
|
width: 25%;
|
|
3175
|
+
margin-top: 10px;
|
|
3148
3176
|
}
|
|
3149
3177
|
|
|
3150
3178
|
.scores-note img {
|
|
@@ -3159,6 +3187,8 @@ div[key="healthRisk"] .score-list {
|
|
|
3159
3187
|
display: inline-block;
|
|
3160
3188
|
color: rgb(0, 0, 153);
|
|
3161
3189
|
letter-spacing: -0.27pt;
|
|
3190
|
+
margin: 0;
|
|
3191
|
+
padding: 0
|
|
3162
3192
|
}
|
|
3163
3193
|
|
|
3164
3194
|
.footer {
|
|
@@ -3239,15 +3269,16 @@ h5.recommended-tips-title {
|
|
|
3239
3269
|
box-sizing: border-box;
|
|
3240
3270
|
}
|
|
3241
3271
|
|
|
3242
|
-
.diagnostikare h5.recommended-tips-title{
|
|
3272
|
+
.diagnostikare h5.recommended-tips-title {
|
|
3243
3273
|
font-weight: normal;
|
|
3244
3274
|
}
|
|
3275
|
+
|
|
3245
3276
|
.insight-container.insight-container-with-img .tips-text {
|
|
3246
|
-
width:
|
|
3277
|
+
width: 61%;
|
|
3247
3278
|
display: inline-block;
|
|
3248
3279
|
color: rgb(0, 0, 153);
|
|
3249
3280
|
letter-spacing: -0.25px;
|
|
3250
|
-
font-size:
|
|
3281
|
+
font-size: 11px;
|
|
3251
3282
|
line-height: 1.5;
|
|
3252
3283
|
margin-right: 10%;
|
|
3253
3284
|
vertical-align: top;
|
|
@@ -3259,7 +3290,7 @@ h5.recommended-tips-title {
|
|
|
3259
3290
|
}
|
|
3260
3291
|
|
|
3261
3292
|
.insight-container .chunk-image {
|
|
3262
|
-
width:
|
|
3293
|
+
width: 20%;
|
|
3263
3294
|
margin-top: 11px;
|
|
3264
3295
|
display: inline-block;
|
|
3265
3296
|
}
|
|
@@ -3276,7 +3307,7 @@ h5.recommended-tips-title {
|
|
|
3276
3307
|
|
|
3277
3308
|
.insight-container.insight-container-without-img {
|
|
3278
3309
|
margin-top: 10px;
|
|
3279
|
-
width:
|
|
3310
|
+
width: 90%;
|
|
3280
3311
|
}
|
|
3281
3312
|
|
|
3282
3313
|
.ui.stackable.three-column .left-align:last-child .insight-container.insight-container-without-img {
|
|
@@ -3330,8 +3361,9 @@ h5.recommended-tips-title {
|
|
|
3330
3361
|
margin-right: -13px;
|
|
3331
3362
|
}
|
|
3332
3363
|
|
|
3333
|
-
.psychological-score
|
|
3334
|
-
|
|
3364
|
+
.psychological-score {
|
|
3365
|
+
text-align: center;
|
|
3366
|
+
width: 100%;
|
|
3335
3367
|
}
|
|
3336
3368
|
|
|
3337
3369
|
.score-description strong {
|
|
@@ -3377,11 +3409,10 @@ div[key="mind"] .score-details-title {
|
|
|
3377
3409
|
margin-right: -20px;
|
|
3378
3410
|
}
|
|
3379
3411
|
|
|
3380
|
-
.score-description,
|
|
3381
3412
|
.list-text,
|
|
3382
3413
|
.insight-container-without-img .tips-text,
|
|
3383
3414
|
.scores-note p {
|
|
3384
|
-
font-size:
|
|
3415
|
+
font-size: 11px !important;
|
|
3385
3416
|
}
|
|
3386
3417
|
|
|
3387
3418
|
.scores-parts {
|
package/config/bionext.json
CHANGED
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"disclaimer-text-color": "rgb(51, 51, 51)",
|
|
15
15
|
"top-box-background": "#f7fbfd",
|
|
16
16
|
"footer-background": "#f7fbfd",
|
|
17
|
-
"body_font_color": "
|
|
18
|
-
"list_icons_font_color": "
|
|
19
|
-
"insights_font_color": "
|
|
17
|
+
"body_font_color": "#333333",
|
|
18
|
+
"list_icons_font_color": "#333333",
|
|
19
|
+
"insights_font_color": "#333333",
|
|
20
20
|
"signature": "Team Medicus",
|
|
21
21
|
"corporate_report":{
|
|
22
22
|
"logo":"data:image/png;base64,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",
|
|
23
23
|
"main_color": "rgb(95, 156, 200)",
|
|
24
|
-
"report_date_color": "
|
|
24
|
+
"report_date_color": "#333333",
|
|
25
25
|
"section_title_color": "rgb(171, 204, 58)",
|
|
26
26
|
"section_title_border_color": "#5F9CC8",
|
|
27
27
|
"chart_title": "rgb(51, 51, 51)",
|
package/config/sanusx.json
CHANGED
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"corporate_report":{
|
|
21
21
|
"logo": "data:image/png;base64,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",
|
|
22
22
|
"main_color": "rgb(23, 107, 97)",
|
|
23
|
-
"report_date_color": "
|
|
23
|
+
"report_date_color": "rgb(139, 139, 167)",
|
|
24
24
|
"section_title_color": "rgb(23, 107, 97)",
|
|
25
25
|
"section_title_border_color": "rgb(112, 162, 147)",
|
|
26
26
|
"chart_title": "rgb(139, 139, 167)",
|
|
27
27
|
"summary_background":"#e5f5fc",
|
|
28
|
-
"relation_content_border_color":"rgba(
|
|
28
|
+
"relation_content_border_color":"rgba(0, 0, 153, 0.3)",
|
|
29
29
|
"relation_content_bg":"#f2f2ff",
|
|
30
30
|
"table_tr_even_bg":"rgb(237, 237, 248)",
|
|
31
31
|
"recommends_bg":"rgba(0, 0, 153, 0.05)",
|
package/index.js
CHANGED
|
@@ -5,8 +5,6 @@ const {fork} = require('child_process');
|
|
|
5
5
|
const {join} = require('path');
|
|
6
6
|
const {sendNascoEmail, sendEmailNotification} = require('./lib/sendEmail')
|
|
7
7
|
const {generatePDFCorporateReport, generateHTMLCorporateReport} = require('./lib/corporate_report_generator')
|
|
8
|
-
const encryptDecrypt = require('./lib/encrypt_decrypt');
|
|
9
|
-
|
|
10
8
|
module.exports = {
|
|
11
9
|
generateHTMLStaging,
|
|
12
10
|
generateMedicusPDF: async (base64Object, isDebugging, isDownloadable, onlyHTML) => {
|
|
@@ -89,12 +87,8 @@ module.exports = {
|
|
|
89
87
|
|
|
90
88
|
},
|
|
91
89
|
generateNascoPDF: async (data, isDebugging, isDownloadable, shouldSendEmail) => {
|
|
92
|
-
|
|
93
90
|
let reportData = JSON.parse(data)
|
|
94
|
-
let
|
|
95
|
-
let sentData=reportData.data
|
|
96
|
-
let ecbDecrypted = encryptDecrypt.ecbDecrypt(sentData, encryptionKey)
|
|
97
|
-
let xorDecrypted = encryptDecrypt.XORDecrypt(ecbDecrypted.toString(), encryptionKey)
|
|
91
|
+
let base64Object = reportData.data
|
|
98
92
|
let LOGS = '';
|
|
99
93
|
let LOGS_FILE_PATH = __dirname + '/output/LOGS.txt';
|
|
100
94
|
let PDF_FILE_PATH = __dirname + '/output/nasco-sample.pdf';
|
|
@@ -120,11 +114,18 @@ module.exports = {
|
|
|
120
114
|
if (isDebugging) {
|
|
121
115
|
console.log('2: save json string');
|
|
122
116
|
LOGS += '2: save json string' + '\n' + '=============' + '\n';
|
|
123
|
-
LOGS +=
|
|
117
|
+
LOGS += base64Object + '\n\n\n';
|
|
118
|
+
}
|
|
119
|
+
// 2: save decoded json string
|
|
120
|
+
const json = Buffer.from(base64Object, 'base64').toString('utf8');
|
|
121
|
+
if (isDebugging) {
|
|
122
|
+
console.log('2: save decoded json string');
|
|
123
|
+
LOGS += '2: save decoded json string' + '\n' + '=============' + '\n';
|
|
124
|
+
LOGS += json + '\n\n\n';
|
|
124
125
|
}
|
|
125
126
|
|
|
126
127
|
// 3: save decoded json
|
|
127
|
-
const decodedJSON = JSON.parse(
|
|
128
|
+
const decodedJSON = JSON.parse(json);
|
|
128
129
|
if (isDebugging) {
|
|
129
130
|
console.log('3: save decoded json string')
|
|
130
131
|
LOGS += '3: save decoded json' + '\n' + '=============' + '\n';
|
|
@@ -164,14 +165,9 @@ module.exports = {
|
|
|
164
165
|
return fileBuffer;
|
|
165
166
|
} else {
|
|
166
167
|
if (shouldSendEmail)
|
|
167
|
-
|
|
168
|
-
else
|
|
169
|
-
|
|
170
|
-
let ecbEncrypted = encryptDecrypt.ecbEncrypt(xorEncrypted.toString(), encryptionKey)
|
|
171
|
-
console.log("ecbEncrypted",ecbEncrypted)
|
|
172
|
-
return ecbEncrypted;
|
|
173
|
-
}
|
|
174
|
-
|
|
168
|
+
return await sendNascoEmail(decodedJSON, PDF_FILE_PATH, mailConfig,reportData.client)
|
|
169
|
+
else
|
|
170
|
+
return base64data;
|
|
175
171
|
}
|
|
176
172
|
},
|
|
177
173
|
sendEmail: async (json) => {
|
|
@@ -217,7 +213,7 @@ module.exports = {
|
|
|
217
213
|
|
|
218
214
|
|
|
219
215
|
let html = await generateHTMLCorporateReport(decodedJSON, isDebugging);
|
|
220
|
-
|
|
216
|
+
|
|
221
217
|
|
|
222
218
|
// 3: save PDF buffer
|
|
223
219
|
let fileBuffer = await generatePDFCorporateReport(html);
|
|
@@ -141,7 +141,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
|
|
|
141
141
|
'.element-summary-text,.summary-bg{background: ' + summary_background + ' !important;}' +
|
|
142
142
|
'.relation-content,table.data-by-gender th{border-color: ' + relation_content_border_color + ' !important;}' +
|
|
143
143
|
'.relation-content{background: ' + relation_content_bg + ' !important;}' +
|
|
144
|
-
|
|
144
|
+
'table.data-by-gender tbody tr:nth-child(even){background-color: ' + table_tr_even_bg + ' !important;}' +
|
|
145
145
|
'.report-date,table.data-by-gender th,table.data-by-gender tbody tr:first-child td,.sources-title{color: ' + report_date_color + ' !important;}' +
|
|
146
146
|
'.recommends-section{background: ' + recommends_bg + ' !important;}' +
|
|
147
147
|
|
|
@@ -174,7 +174,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
|
|
|
174
174
|
}
|
|
175
175
|
/*check relations*/
|
|
176
176
|
if (!empty(element.relations)) {
|
|
177
|
-
console.log("element.relations",
|
|
177
|
+
console.log("element.relations",element.relations.length)
|
|
178
178
|
element.relations.map((relation) => {
|
|
179
179
|
$("#" + pageId + " .relations-section-container .relations-section-titles").append("<div class='single-relation'>" +
|
|
180
180
|
"<div class='relation-title'>" + relation.title + "</div>" +
|
|
@@ -197,18 +197,10 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
|
|
|
197
197
|
})
|
|
198
198
|
tabelHeaderHTML += '</thead>'
|
|
199
199
|
let tabelBody = element.dataByGender.slice(1)
|
|
200
|
-
let dataByGenderHTML = '<tbody>'
|
|
201
|
-
let countTrs = 0
|
|
200
|
+
let dataByGenderHTML = '<tbody>'
|
|
202
201
|
tabelBody.map((genderData) => {
|
|
203
|
-
countTrs = countTrs + 1;
|
|
204
202
|
dataByGenderHTML += "<tr>"
|
|
205
|
-
let CountTds = 0
|
|
206
203
|
genderData.map((td) => {
|
|
207
|
-
CountTds++;
|
|
208
|
-
let colSpan = 1
|
|
209
|
-
if (CountTds === 1 && countTrs ===1) {
|
|
210
|
-
colSpan = 2
|
|
211
|
-
}
|
|
212
204
|
dataByGenderHTML += "<td>" + td.value + "</td>"
|
|
213
205
|
})
|
|
214
206
|
dataByGenderHTML += "</tr>"
|
|
@@ -217,7 +209,7 @@ let generateHTMLCorporateReport = async (data, isDebugging) => {
|
|
|
217
209
|
$("#" + pageId + " .data-by-gender").append(tabelHeaderHTML);
|
|
218
210
|
$("#" + pageId + " .data-by-gender").append(dataByGenderHTML);
|
|
219
211
|
} else {
|
|
220
|
-
|
|
212
|
+
$("#" + pageId + " .data-by-gender").remove();
|
|
221
213
|
}
|
|
222
214
|
|
|
223
215
|
if (!empty(element.recommends)) {
|
|
@@ -317,7 +309,7 @@ let generatePDFCorporateReport = async (data) => {
|
|
|
317
309
|
displayHeaderFooter: true,
|
|
318
310
|
margin: {
|
|
319
311
|
top: 0,
|
|
320
|
-
bottom:
|
|
312
|
+
bottom: 60,
|
|
321
313
|
right: 0,
|
|
322
314
|
left: 0
|
|
323
315
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medicus.ai/medicus-report-pdf-generator",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Nasco corporate report - latest update in
|
|
3
|
+
"version": "1.0.237",
|
|
4
|
+
"description": "Nasco corporate report - latest update in 13/2/2023 - update Nasco PDF design",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"start": "node index.js"
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"canvas": "^2.6.1",
|
|
17
17
|
"canvas-constructor": "^3.2.0",
|
|
18
18
|
"chart.js": "^2.7.3",
|
|
19
|
-
"crypto-js": "^4.1.1",
|
|
20
19
|
"express": "^4.16.4",
|
|
21
20
|
"get-canvas-context": "^1.0.2",
|
|
22
21
|
"hummus": "1.0.111",
|
|
@@ -36,7 +35,6 @@
|
|
|
36
35
|
},
|
|
37
36
|
"devDependencies": {
|
|
38
37
|
"@babel/core": "^7.2.2",
|
|
39
|
-
"atob": "^2.1.2",
|
|
40
38
|
"babel-core": "^6.26.3",
|
|
41
39
|
"babel-loader": "^8.0.5",
|
|
42
40
|
"babel-polyfill": "^6.26.0",
|
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
<img class='ukv-logo ui image' src="{{logo}}"/>
|
|
5
5
|
</div>
|
|
6
6
|
<div class="report-header">{{reportHeader}}</div>
|
|
7
|
-
<div class="
|
|
7
|
+
<div class="user-profile-img">
|
|
8
|
+
<img class="first-level-border-color" src="{{userImage}}"/>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="patient-name first-level-font-color">{{patientName}}</div>
|
|
11
|
+
<div class="patient-info">
|
|
12
|
+
{{patientOld}} {{yearsOld}}, {{patientGender}}
|
|
13
|
+
</div>
|
|
14
|
+
<div class="report-date">
|
|
15
|
+
{{reportDate}}
|
|
16
|
+
</div>
|
|
8
17
|
</div>
|
|
9
18
|
<div class="pdf-top-info first-level-border-color">
|
|
10
19
|
<div class="pdf-top-info-content top-box-bg">
|
|
11
|
-
|
|
12
|
-
<img class="first-level-border-color" src="{{userImage}}"/>
|
|
13
|
-
</div>
|
|
14
|
-
<div class="patient-name first-level-font-color">{{patientName}}</div>
|
|
15
|
-
<div class="patient-info">
|
|
16
|
-
{{patientOld}} {{yearsOld}}, {{patientGender}}
|
|
17
|
-
</div>
|
|
18
|
-
<div class="report-date">
|
|
19
|
-
{{reportDate}}
|
|
20
|
-
</div>
|
|
20
|
+
|
|
21
21
|
<div class="report-info-description first-level-font-color">
|
|
22
22
|
{{reportHeaderDescription}}
|
|
23
23
|
</div>
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
</svg>
|
|
31
31
|
</div>
|
|
32
32
|
</div>
|
|
33
|
-
|
|
34
33
|
<div class="scores-note">
|
|
35
34
|
<p class="first-level-font-color">{{scoresNote}}</p>
|
|
36
35
|
<img src="{{bulbIcon}}">
|
|
37
36
|
</div>
|
|
37
|
+
<div class="first-section-scores"></div>
|
|
38
38
|
</div>
|
package/lib/encrypt_decrypt.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
const CryptoJS = require('crypto-js');
|
|
2
|
-
let atob = require('atob');
|
|
3
|
-
|
|
4
|
-
function ecbEncrypt(data, key) {
|
|
5
|
-
let encJson = CryptoJS.AES.encrypt(JSON.stringify(data), key).toString();
|
|
6
|
-
return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(encJson));
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
function ecbDecrypt(data, key) {
|
|
10
|
-
var keys = CryptoJS.enc.Utf8.parse(key);
|
|
11
|
-
let base64 = CryptoJS.enc.Base64.parse(data);
|
|
12
|
-
let src = CryptoJS.enc.Base64.stringify(base64);
|
|
13
|
-
var decrypt = CryptoJS.AES.decrypt(src, keys, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
|
|
14
|
-
return decrypt.toString(CryptoJS.enc.Utf8);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
function XORDecrypt(input, key) {
|
|
19
|
-
var decodedText = atob(input);
|
|
20
|
-
var plainText = '';
|
|
21
|
-
var length = decodedText.length;
|
|
22
|
-
|
|
23
|
-
for (var i = 0; i < length; i++) {
|
|
24
|
-
plainText += String.fromCharCode(decodedText.charCodeAt(i) ^ key.charCodeAt(Math.floor(i % key.length)));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return plainText;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function XOREncrypt(input, key){
|
|
31
|
-
var c = '';
|
|
32
|
-
while (key.length < input.length) {
|
|
33
|
-
key += key;
|
|
34
|
-
}
|
|
35
|
-
for(var i=0; i<input.length; i++) {
|
|
36
|
-
var value1 = input[i].charCodeAt(0);
|
|
37
|
-
var value2 = key[i].charCodeAt(0);
|
|
38
|
-
|
|
39
|
-
var xorValue = value1 ^ value2;
|
|
40
|
-
|
|
41
|
-
var xorValueAsHexString = xorValue.toString("16");
|
|
42
|
-
|
|
43
|
-
if (xorValueAsHexString.length < 2) {
|
|
44
|
-
xorValueAsHexString = "0" + xorValueAsHexString;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
c += xorValueAsHexString;
|
|
48
|
-
}
|
|
49
|
-
return c;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
module.exports =
|
|
53
|
-
{
|
|
54
|
-
ecbEncrypt,
|
|
55
|
-
ecbDecrypt,
|
|
56
|
-
XORDecrypt,
|
|
57
|
-
XOREncrypt
|
|
58
|
-
}
|