@baravak/risloo-profile-cli 4.84.0 → 4.86.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.
@@ -0,0 +1,219 @@
1
+ {
2
+ "id": "$X1HXXXXX",
3
+ "scale": {
4
+ "id": "$ISI-93",
5
+ "title": "شاخص شدت بی‌خوابی مورین"
6
+ },
7
+ "chain": null,
8
+ "version": "1",
9
+ "edition": "صادقی‌نیت",
10
+ "edition_version": null,
11
+ "client": {
12
+ "id": "GH966XXXX",
13
+ "name": "مراجع"
14
+ },
15
+ "room": {
16
+ "id": "RS96XXXX",
17
+ "manager": {
18
+ "id": "GH9XXXXX",
19
+ "name": "درمانگر",
20
+ "user_id": "IR9XXXX"
21
+ },
22
+ "center": {
23
+ "id": "RS966XXXX",
24
+ "acceptation": null,
25
+ "status": "active",
26
+ "type": "personal_clinic",
27
+ "detail": {
28
+ "title": "درمانگر"
29
+ }
30
+ },
31
+ "acceptation": null,
32
+ "status": "active",
33
+ "type": "personal_clinic"
34
+ },
35
+ "case": null,
36
+ "code": null,
37
+ "created_at": 1694157079,
38
+ "started_at": 1694157198,
39
+ "scored_at": 1694242467,
40
+ "closed_at": 1694160574,
41
+ "total_amount": 100000,
42
+ "prepayment": true,
43
+ "purchased": true,
44
+ "amount": 100000,
45
+ "description": "برای هر پرسش، لطفاً گزینه‌ای را که پاسخ شما را بهتر از همه توصیف می‌کند **انتخاب کنید**.\n\nلطفاً **شدت فعلی** (یعنی **دو هفتهٔ اخیر**) مشکل یا مشکلات بی‌خوابی خود را درجه‌بندی کنید.\n\nلطفا فقط یک گزینه را انتخاب نمایید",
46
+ "items": [
47
+ {
48
+ "type": "text",
49
+ "text": "به سختی به خواب رفتن",
50
+ "answer": {
51
+ "type": "optional",
52
+ "options": [
53
+ "بدون مشکل",
54
+ "کم",
55
+ "متوسط",
56
+ "شدید",
57
+ "بسیار شدید"
58
+ ]
59
+ },
60
+ "user_answered": "4"
61
+ },
62
+ {
63
+ "type": "text",
64
+ "text": "به سختی در خواب باقی ماندن",
65
+ "answer": {
66
+ "type": "optional",
67
+ "options": [
68
+ "بدون مشکل",
69
+ "کم",
70
+ "متوسط",
71
+ "شدید",
72
+ "بسیار شدید"
73
+ ]
74
+ },
75
+ "user_answered": "4"
76
+ },
77
+ {
78
+ "type": "text",
79
+ "text": "مشکل زود بیدار شدن بیش از حد (صبح خیلی زود بیدارشدن)",
80
+ "answer": {
81
+ "type": "optional",
82
+ "options": [
83
+ "بدون مشکل",
84
+ "کم",
85
+ "متوسط",
86
+ "شدید",
87
+ "بسیار شدید"
88
+ ]
89
+ },
90
+ "user_answered": "4"
91
+ },
92
+ {
93
+ "type": "text",
94
+ "text": "از وضعیت اخیر خواب خود تا چه حد راضی یا ناراضی هستید ؟",
95
+ "answer": {
96
+ "type": "optional",
97
+ "options": [
98
+ "خیلی راضی",
99
+ "راضی",
100
+ "متوسط",
101
+ "ناراضی",
102
+ "خیلی ناراضی"
103
+ ]
104
+ },
105
+ "user_answered": "3"
106
+ },
107
+ {
108
+ "type": "text",
109
+ "text": "فکر می کنید مشکل خواب در ایجاد اختلال در کیفیت زندگی شما تا چه حد برای دیگران قابل توجه است؟",
110
+ "answer": {
111
+ "type": "optional",
112
+ "options": [
113
+ "اصلا",
114
+ "کمی",
115
+ "متوسط",
116
+ "زیاد",
117
+ "خیلی زیاد"
118
+ ]
119
+ },
120
+ "user_answered": "3"
121
+ },
122
+ {
123
+ "type": "text",
124
+ "text": "تا چه حد نسبت به مشکل اخیر خواب خود نگران یا مشوش هستید؟",
125
+ "answer": {
126
+ "type": "optional",
127
+ "options": [
128
+ "اصلا",
129
+ "کمی",
130
+ "متوسط",
131
+ "زیاد",
132
+ "خیلی زیاد"
133
+ ]
134
+ },
135
+ "user_answered": "4"
136
+ },
137
+ {
138
+ "type": "text",
139
+ "text": "به نظر شما مشکل خواب تا چه اندازه با عملکرد روزانه شما تداخل دارد؟ (مثل خستگی روزانه، توانایی عملکرد حین کار/ وظایف روزانه، تمرکز، حافظه، خلق و غیره)",
140
+ "answer": {
141
+ "type": "optional",
142
+ "options": [
143
+ "اصلا",
144
+ "کمی",
145
+ "متوسط",
146
+ "زیاد",
147
+ "خیلی زیاد"
148
+ ]
149
+ },
150
+ "user_answered": "3"
151
+ }
152
+ ],
153
+ "prerequisites": [
154
+ {
155
+ "type": "text",
156
+ "label": "gender",
157
+ "text": "جنسیت",
158
+ "answer": {
159
+ "type": "select",
160
+ "options": [
161
+ "زن",
162
+ "مرد"
163
+ ]
164
+ },
165
+ "alias": "gender",
166
+ "force": true,
167
+ "user_answered": "1"
168
+ },
169
+ {
170
+ "type": "text",
171
+ "label": "age",
172
+ "text": "سن",
173
+ "answer": {
174
+ "type": "number"
175
+ },
176
+ "alias": "age",
177
+ "force": true,
178
+ "user_answered": "35"
179
+ },
180
+ {
181
+ "type": "text",
182
+ "label": "education",
183
+ "text": "تحصیلات",
184
+ "answer": {
185
+ "type": "select",
186
+ "options": [
187
+ "ابتدایی اول",
188
+ "ابتدایی دوم",
189
+ "متوسطه اول",
190
+ "متوسطه دوم",
191
+ "دیپلم",
192
+ "کارشناسی",
193
+ "کارشناسی ارشد",
194
+ "پزشکی عمومی",
195
+ "متخصص",
196
+ "دکتری تخصصی",
197
+ "حوزوی مقدمات",
198
+ "حوزوی سطح۱",
199
+ "حوزوی سطح۲",
200
+ "حوزوی سطح۳",
201
+ "حوزوی سطح۴"
202
+ ]
203
+ },
204
+ "alias": "education",
205
+ "force": true,
206
+ "user_answered": "6"
207
+ }
208
+ ],
209
+ "cornometer": 743,
210
+ "score": {
211
+ "status": "valid",
212
+ "nocturnal": 11,
213
+ "daytime": 7,
214
+ "total": 18,
215
+ "severity": "moderate"
216
+ },
217
+ "score_current_version": "1.0.0",
218
+ "score_last_version": "1.0.0"
219
+ }
@@ -0,0 +1,365 @@
1
+ {
2
+ "id": "$X1HXXXXX",
3
+ "scale": {
4
+ "id": "$PSQI-93",
5
+ "title": "شاخص کیفیت خواب پیتزبورگ"
6
+ },
7
+ "chain": null,
8
+ "version": "1",
9
+ "edition": "فرهی مقدم",
10
+ "edition_version": null,
11
+ "client": {
12
+ "id": "GH966XXXX",
13
+ "name": "مراجع"
14
+ },
15
+ "room": {
16
+ "id": "RS96XXXX",
17
+ "manager": {
18
+ "id": "GH9XXXXX",
19
+ "name": "درمانگر",
20
+ "user_id": "IR9XXXX"
21
+ },
22
+ "center": {
23
+ "id": "RS966XXXX",
24
+ "acceptation": null,
25
+ "status": "active",
26
+ "type": "personal_clinic",
27
+ "detail": {
28
+ "title": "درمانگر"
29
+ }
30
+ },
31
+ "acceptation": null,
32
+ "status": "active",
33
+ "type": "personal_clinic"
34
+ },
35
+ "case": null,
36
+ "code": null,
37
+ "created_at": 1694157079,
38
+ "started_at": 1694157198,
39
+ "scored_at": 1694242467,
40
+ "closed_at": 1694160574,
41
+ "total_amount": 100000,
42
+ "prepayment": true,
43
+ "purchased": true,
44
+ "amount": 100000,
45
+ "description": "سؤالات زیر مربوط به عادات معمول خواب شما **فقط** در ماه گذشته می‌باشد. جواب‌های شما باید مشخص‌کننده صحیح‌ترین پاسخ در **اکثر** ایام ماه گذشته باشد، لطفاً به تمام سؤالات پاسخ دهید.",
46
+ "items": [
47
+ {
48
+ "type": "text",
49
+ "text": "در طی ماه گذشته معمولاً شب‌ها ساعت چند به رختخواب می‌رفتید؟ (ساعت را به صورت عددی بین ۰ تا ۲۳ بنویسید)",
50
+ "description": "ساعت رفتن به رختخواب",
51
+ "answer": {
52
+ "type": "number"
53
+ },
54
+ "user_answered": "23"
55
+ },
56
+ {
57
+ "type": "text",
58
+ "text": "در طی ماه گذشته معمولاً هر شب چقدر طول می‌کشید تا به خواب بروید (به دقیقه)؟",
59
+ "description": "تعداد دقایق",
60
+ "answer": {
61
+ "type": "number"
62
+ },
63
+ "user_answered": "40"
64
+ },
65
+ {
66
+ "type": "text",
67
+ "text": "در طی ماه گذشته معمولاً صبح‌ها چه ساعتی از رختخواب بلند شده‌اید؟ (ساعت را به صورت عددی بین ۰ تا ۲۳ بنویسید)",
68
+ "description": "ساعت بلند شدن",
69
+ "answer": {
70
+ "type": "number"
71
+ },
72
+ "user_answered": "7"
73
+ },
74
+ {
75
+ "type": "text",
76
+ "text": "در طی ماه گذشته هر شب عملاً چند ساعت خوابیده‌اید؟ (ممکن است با تعداد ساعت‌هایی که در رختخواب گذرانده‌اید متفاوت باشد)",
77
+ "description": "تعداد ساعات خواب در هر شب — به ساعت؛ کسر ساعت را اعشاری وارد کنید، مثلاً 6.5 برای شش ساعت و نیم",
78
+ "answer": {
79
+ "type": "number"
80
+ },
81
+ "user_answered": "5.5"
82
+ },
83
+ {
84
+ "type": "text",
85
+ "text": "به خواب نرفتن در عرض 30 دقیقه",
86
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
87
+ "answer": {
88
+ "type": "optional",
89
+ "options": [
90
+ "هیچ مورد در طی ماه گذشته",
91
+ "کمتر از یک مورد در هفته",
92
+ "یک یا دو بار در هفته",
93
+ "سه بار یا بیشتر در هفته"
94
+ ]
95
+ },
96
+ "user_answered": "3"
97
+ },
98
+ {
99
+ "type": "text",
100
+ "text": "بیدار شدن در نیمه‌شب یا صبح زود",
101
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
102
+ "answer": {
103
+ "type": "optional",
104
+ "options": [
105
+ "هیچ مورد در طی ماه گذشته",
106
+ "کمتر از یک مورد در هفته",
107
+ "یک یا دو بار در هفته",
108
+ "سه بار یا بیشتر در هفته"
109
+ ]
110
+ },
111
+ "user_answered": "4"
112
+ },
113
+ {
114
+ "type": "text",
115
+ "text": "بلند شدن از رختخواب برای رفتن به دستشویی",
116
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
117
+ "answer": {
118
+ "type": "optional",
119
+ "options": [
120
+ "هیچ مورد در طی ماه گذشته",
121
+ "کمتر از یک مورد در هفته",
122
+ "یک یا دو بار در هفته",
123
+ "سه بار یا بیشتر در هفته"
124
+ ]
125
+ },
126
+ "user_answered": "2"
127
+ },
128
+ {
129
+ "type": "text",
130
+ "text": "مشکل در نفس کشیدن",
131
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
132
+ "answer": {
133
+ "type": "optional",
134
+ "options": [
135
+ "هیچ مورد در طی ماه گذشته",
136
+ "کمتر از یک مورد در هفته",
137
+ "یک یا دو بار در هفته",
138
+ "سه بار یا بیشتر در هفته"
139
+ ]
140
+ },
141
+ "user_answered": "1"
142
+ },
143
+ {
144
+ "type": "text",
145
+ "text": "سرفه و خروپف با صدای بلند",
146
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
147
+ "answer": {
148
+ "type": "optional",
149
+ "options": [
150
+ "هیچ مورد در طی ماه گذشته",
151
+ "کمتر از یک مورد در هفته",
152
+ "یک یا دو بار در هفته",
153
+ "سه بار یا بیشتر در هفته"
154
+ ]
155
+ },
156
+ "user_answered": "1"
157
+ },
158
+ {
159
+ "type": "text",
160
+ "text": "احساس سرمای شدید",
161
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
162
+ "answer": {
163
+ "type": "optional",
164
+ "options": [
165
+ "هیچ مورد در طی ماه گذشته",
166
+ "کمتر از یک مورد در هفته",
167
+ "یک یا دو بار در هفته",
168
+ "سه بار یا بیشتر در هفته"
169
+ ]
170
+ },
171
+ "user_answered": "1"
172
+ },
173
+ {
174
+ "type": "text",
175
+ "text": "احساس گرمای شدید",
176
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
177
+ "answer": {
178
+ "type": "optional",
179
+ "options": [
180
+ "هیچ مورد در طی ماه گذشته",
181
+ "کمتر از یک مورد در هفته",
182
+ "یک یا دو بار در هفته",
183
+ "سه بار یا بیشتر در هفته"
184
+ ]
185
+ },
186
+ "user_answered": "1"
187
+ },
188
+ {
189
+ "type": "text",
190
+ "text": "خواب بد دیدن",
191
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
192
+ "answer": {
193
+ "type": "optional",
194
+ "options": [
195
+ "هیچ مورد در طی ماه گذشته",
196
+ "کمتر از یک مورد در هفته",
197
+ "یک یا دو بار در هفته",
198
+ "سه بار یا بیشتر در هفته"
199
+ ]
200
+ },
201
+ "user_answered": "2"
202
+ },
203
+ {
204
+ "type": "text",
205
+ "text": "درد داشتن",
206
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
207
+ "answer": {
208
+ "type": "optional",
209
+ "options": [
210
+ "هیچ مورد در طی ماه گذشته",
211
+ "کمتر از یک مورد در هفته",
212
+ "یک یا دو بار در هفته",
213
+ "سه بار یا بیشتر در هفته"
214
+ ]
215
+ },
216
+ "user_answered": "3"
217
+ },
218
+ {
219
+ "type": "text",
220
+ "text": "اگر موارد دیگری وجود داشته است، لطفاً توضیح دهید (تعداد دفعات آن را نیز مشخص بفرمایید):",
221
+ "category": "برای سؤالات باقی‌مانده بهترین پاسخ را علامت بزنید. لطفاً به تمام سؤالات پاسخ دهید.\n\nدر طی ماه گذشته چند بار به دلایل زیر در خوابیدن مشکل داشته‌اید (تعداد دفعات را مشخص بفرمایید):",
222
+ "answer": {
223
+ "type": "optional",
224
+ "description": {
225
+ "text": "موارد دیگر را اینجا توضیح دهید"
226
+ },
227
+ "options": [
228
+ "هیچ مورد در طی ماه گذشته",
229
+ "کمتر از یک مورد در هفته",
230
+ "یک یا دو بار در هفته",
231
+ "سه بار یا بیشتر در هفته"
232
+ ]
233
+ },
234
+ "user_answered": "2",
235
+ "user_description": "پای بی‌قرار"
236
+ },
237
+ {
238
+ "type": "text",
239
+ "text": "به‌طور کلی کیفیت خواب خود را در طی ماه گذشته چگونه ارزیابی می‌کنید؟",
240
+ "answer": {
241
+ "type": "optional",
242
+ "options": [
243
+ "خیلی خوب",
244
+ "نسبتاً خوب",
245
+ "نسبتاً بد",
246
+ "خیلی بد"
247
+ ]
248
+ },
249
+ "user_answered": "3"
250
+ },
251
+ {
252
+ "type": "text",
253
+ "text": "در طی ماه گذشته چند بار جهت خواب رفتن از دارو استفاده کرده‌اید؟ (چه با تجویز پزشک و چه بدون نسخه)",
254
+ "answer": {
255
+ "type": "optional",
256
+ "options": [
257
+ "هیچ مورد در طی ماه گذشته",
258
+ "کمتر از یک مورد در هفته",
259
+ "یک یا دو بار در هفته",
260
+ "سه بار یا بیشتر در هفته"
261
+ ]
262
+ },
263
+ "user_answered": "1"
264
+ },
265
+ {
266
+ "type": "text",
267
+ "text": "در طی ماه گذشته چند بار جهت بیدار ماندن حین رانندگی، غذا خوردن یا شرکت در فعالیت اجتماعی دچار مشکل شده‌اید؟",
268
+ "answer": {
269
+ "type": "optional",
270
+ "options": [
271
+ "هیچ مورد در طی ماه گذشته",
272
+ "کمتر از یک مورد در هفته",
273
+ "یک یا دو بار در هفته",
274
+ "سه بار یا بیشتر در هفته"
275
+ ]
276
+ },
277
+ "user_answered": "2"
278
+ },
279
+ {
280
+ "type": "text",
281
+ "text": "در طی ماه گذشته برای اینکه اشتیاق کافی جهت انجام دادن کار را در خود حفظ کنید، چقدر مشکل داشته‌اید؟",
282
+ "answer": {
283
+ "type": "optional",
284
+ "options": [
285
+ "هیچ مشکلی نداشتم",
286
+ "خیلی کم مشکل داشتم",
287
+ "تا حدی مشکل داشتم",
288
+ "مشکل زیادی داشتم"
289
+ ]
290
+ },
291
+ "user_answered": "3"
292
+ }
293
+ ],
294
+ "prerequisites": [
295
+ {
296
+ "type": "text",
297
+ "label": "gender",
298
+ "text": "جنسیت",
299
+ "answer": {
300
+ "type": "select",
301
+ "options": [
302
+ "زن",
303
+ "مرد"
304
+ ]
305
+ },
306
+ "alias": "gender",
307
+ "force": true,
308
+ "user_answered": "1"
309
+ },
310
+ {
311
+ "type": "text",
312
+ "label": "age",
313
+ "text": "سن",
314
+ "answer": {
315
+ "type": "number"
316
+ },
317
+ "alias": "age",
318
+ "force": true,
319
+ "user_answered": "35"
320
+ },
321
+ {
322
+ "type": "text",
323
+ "label": "education",
324
+ "text": "تحصیلات",
325
+ "answer": {
326
+ "type": "select",
327
+ "options": [
328
+ "ابتدایی اول",
329
+ "ابتدایی دوم",
330
+ "متوسطه اول",
331
+ "متوسطه دوم",
332
+ "دیپلم",
333
+ "کارشناسی",
334
+ "کارشناسی ارشد",
335
+ "پزشکی عمومی",
336
+ "متخصص",
337
+ "دکتری تخصصی",
338
+ "حوزوی مقدمات",
339
+ "حوزوی سطح۱",
340
+ "حوزوی سطح۲",
341
+ "حوزوی سطح۳",
342
+ "حوزوی سطح۴"
343
+ ]
344
+ },
345
+ "alias": "education",
346
+ "force": true,
347
+ "user_answered": "6"
348
+ }
349
+ ],
350
+ "cornometer": 743,
351
+ "score": {
352
+ "status": "valid",
353
+ "subjective_quality": 2,
354
+ "latency": 2,
355
+ "duration": 2,
356
+ "efficiency": 2,
357
+ "disturbances": 1,
358
+ "medication": 0,
359
+ "daytime_dysfunction": 2,
360
+ "total": 11,
361
+ "screening": "positive"
362
+ },
363
+ "score_current_version": "1.0.0",
364
+ "score_last_version": "1.0.0"
365
+ }
@@ -0,0 +1,88 @@
1
+ const { Profile } = require("../Profile");
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // AIS93 — مقیاس بی‌خوابی آتن (AIS-8 فارسی). No Figma source: the chart is
5
+ // designed from the approved individual-result specification of the science
6
+ // package (AIS-FA8-C2), whose rules this layout enforces rather than decorates:
7
+ // - one score only, the 0–24 total, drawn as its position on one line with
8
+ // that range; no night/day subscore, no component, no comparison;
9
+ // - classification is off: one neutral hue, no coloured zone, no threshold,
10
+ // no label, no warning, no percentile or norm;
11
+ // - the only interpretation is the two approved sentences, verbatim;
12
+ // - the reference cut-off (6) is text only, with its source, sample and year,
13
+ // because the profile is read by the authorised specialist and never handed
14
+ // to the respondent; the score is never compared with it;
15
+ // - all-or-nothing: unless scoring/AIS93.py returns status "valid", only the
16
+ // no-result message is drawn — never a partial or zero score.
17
+ // Chart 863 × 674, centred on the 943 × 754 design page.
18
+ // ---------------------------------------------------------------------------
19
+ const CHART = { width: 863, height: 674 };
20
+
21
+ // The total's own axis: 0 at x=LINE.left, 24 at x=LINE.right.
22
+ const LINE = { left: 20, right: 640, y: 112 };
23
+
24
+ class AIS93 extends Profile {
25
+ static pages = 1;
26
+
27
+ labels = {
28
+ L1: { eng: "total", title: "نمرهٔ کل", max: 24 },
29
+ L2: { eng: "status" }, // valid | incomplete | invalid
30
+ };
31
+
32
+ profileSpec = {
33
+ sample: {
34
+ name: "مقیاس بی‌خوابی آتن",
35
+ multiProfile: false,
36
+ questions: false,
37
+ defaultFields: true,
38
+ fields: [],
39
+ },
40
+ profile: {
41
+ get dimensions() {
42
+ return {
43
+ width: CHART.width + 2 * this.padding.x, // 863 → 903
44
+ height: CHART.height + 2 * this.padding.y, // 674 → 714
45
+ };
46
+ },
47
+ // Chart inset inside the 943 × 754 design page minus the 20 px the layout
48
+ // owns on every side, so the with-sidebar page renders at scale 1.
49
+ padding: {
50
+ x: (943 - CHART.width) / 2 - 20, // 20
51
+ y: (754 - CHART.height) / 2 - 20, // 20
52
+ },
53
+ },
54
+ labels: Object.values(this.labels),
55
+ };
56
+
57
+ constructor(dataset, options, config = {}) {
58
+ super();
59
+ this._init(dataset, options, config);
60
+ }
61
+
62
+ _calcContext() {
63
+ const s = this.dataset.score;
64
+
65
+ // Anything but an explicit "valid" is no result: a missing status must not
66
+ // let `?? 0` read as the lowest valid score.
67
+ if (s[1].mark !== "valid") return [{ valid: false }];
68
+
69
+ const mark = s[0].mark ?? 0;
70
+ const max = s[0].label.max;
71
+
72
+ return [
73
+ {
74
+ valid: true,
75
+ total: {
76
+ mark,
77
+ max,
78
+ left: LINE.left,
79
+ right: LINE.right,
80
+ y: LINE.y,
81
+ x: LINE.left + ((LINE.right - LINE.left) * mark) / max,
82
+ },
83
+ },
84
+ ];
85
+ }
86
+ }
87
+
88
+ module.exports = AIS93;