@baravak/risloo-profile-cli 4.16.1 → 4.18.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,350 @@
1
+ {
2
+ "id": "$X1HXXXX",
3
+ "scale": { "id": "$YBOCS-9A", "title": "پرسش‌نامه یل‌براون وسواس" },
4
+ "chain": null,
5
+ "version": "1",
6
+ "edition": "",
7
+ "edition_version": null,
8
+ "client": { "id": "GH96XXXXX", "name": "مراجع", "user_id": "IR96XXX" },
9
+ "room": {
10
+ "id": "RS96XXXX",
11
+ "manager": { "id": "GH9XXXX", "name": "درمانگر", "user_id": "IR9XXXXX" },
12
+ "center": {
13
+ "id": "RS9XXXXX",
14
+ "acceptation": null,
15
+ "status": "active",
16
+ "type": "counseling_center",
17
+ "detail": { "title": "مرکز درمانی" }
18
+ },
19
+ "acceptation": null,
20
+ "status": "active",
21
+ "type": "room"
22
+ },
23
+ "case": null,
24
+ "code": null,
25
+ "created_at": 1740124361,
26
+ "started_at": 1740124391,
27
+ "scored_at": 1740125241,
28
+ "closed_at": 1740124443,
29
+ "total_amount": null,
30
+ "prepayment": false,
31
+ "purchased": true,
32
+ "amount": null,
33
+ "billing": null,
34
+ "description": "",
35
+ "psychologist_description": null,
36
+ "items": [
37
+ {
38
+ "category": "زمان صرف شده توسط افکار وسواسی",
39
+ "type": "text",
40
+ "text": "افکار وسواسی چه مقدار از وقت شما را اشغال می‌کند؟ فراوانی وقوع افکار وسواسی چقدر است؟",
41
+ "answer": {
42
+ "type": "optional",
43
+ "options": [
44
+ "هیچ.",
45
+ " روزانه کمتر از یک ساعت، یا مزاحمت‌هایی گهگاهی (نه بیش از هشت بار در روز).",
46
+ "روزانه یک تاسه ساعت، یا مزاحمت‌های مکرر (بیش از هشت بار در روز، ولی اکثر ساعتهای روز، بدون افکار هستم).",
47
+ "بیش از سه ساعت و تا حدود هشت ساعت در روز، یا مزاحمت‌های بسیار مکرر (بیش از هشت بار در روز و در اکثر ساعات روز).",
48
+ "بیش از هشت ساعت در روز یا مزاحمت‌های تقریبا مداوم، آنقدر زیاد است که (شمارش آن‌ها بسیار مشکل است و کمتر ساعتی بدون وسواس سپری می‌شود)."
49
+ ]
50
+ },
51
+ "user_answered": "1"
52
+ },
53
+ {
54
+ "category": "تداخل افکار وسواسی",
55
+ "type": "text",
56
+ "text": "افکار وسواسی تا چه حد در کارکرد شغلی یا اجتماعی شما اختلال ایجاد کرده است، (اگر در حال حاضر شاغل نیستید، میزان تداخل وسواس‌ها را در فعالیت‌های روزانه‌تان در نظر بگیرید).(در پاسخ به این پرسش، به کارهایی که در اثر وسواس رها می‌کنید یا آنکه کمتر به آن‌ها می‌پردازید، توجه کنید.)",
57
+ "answer": {
58
+ "type": "optional",
59
+ "options": [
60
+ "هیچ اختلالی.",
61
+ "اختلال خفیف و جزئی در فعالیت‌های شغلی یا اجتماعی، ولی در کل به عملکرد من لطمه‌ای نزده است.",
62
+ "اختلال متوسط و مشخص در فعالیت‌های شغلی یا اجتماعی، ولی همچنان قابل ذکر است.",
63
+ "اختلال شدید لطمه‌ای اساسی به عملکرد شغلی یا اجتماعی من زده است.",
64
+ "اختلال بسیار شدید و ناتوان کننده."
65
+ ]
66
+ },
67
+ "user_answered": "1"
68
+ },
69
+ {
70
+ "category": "ناراحتی مربوط به افکار وسواسی ",
71
+ "type": "text",
72
+ "text": "افکار وسواسی چه مقدار پریشانی برای شما ایجاد می‌کند؟",
73
+ "answer": {
74
+ "type": "optional",
75
+ "options": [
76
+ "هیچ.",
77
+ "خفیف و نامکرر، پریشانی، مختل کننده نیست.",
78
+ "پریشانی متوسط و مکرر، مختل کننده ولی همچنان قابل کنترل.",
79
+ "پریشانی شدید، بسیار مکرر، به شدت مختل کننده.",
80
+ "پریشانی بسیار شدید، تقریبا مداوم و ناتوان کننده."
81
+ ]
82
+ },
83
+ "user_answered": "1"
84
+ },
85
+ {
86
+ "category": "مقاومت در برابر افکار وسواسی",
87
+ "type": "text",
88
+ "text": "چقدر سعی می‌کنید تا در برابر افکار وسواسی مقاومت کنید؟ وقتی این افکار به ذهن شما می‌آیند، هر چند وقت یکبار سعی می‌کنید آن‌ها را نادیده بگیرید یا توجه خود را بر‌گردانید؟ (در اینجا قصد ما این نیست که بدانیم چقدر در کنترل این افکار موفق هستید، بلکه فقط اینکه چه مقدار یا هر چند وقت یکبار سعی می‌کنید آن‌ها را کنار بگذارید.)",
89
+ "answer": {
90
+ "type": "optional",
91
+ "options": [
92
+ "همیشه سعی می‌کنم در برابر آن‌ها مقاومت کنم (یا وسواسها آنقدر خفیف هستند که نیازی به مقاومت فعالانه ندارند).",
93
+ "اکثر اوقات سعی می‌کنم در برابر آن‌ها مقاومت کنم (یعنی، بیش از نیمی از اوقات سعی می‌کنم مقاومت کنم).",
94
+ " برخی از اوقات سعی می‌کنم مقاومت کنم.",
95
+ " بدون آنکه برای کنترل آن‌ها تلاشی به خرج دهم، اجازه می‌دهم تا آن‌ها ذهن مرا پر کنند، ولی این کار را با اکراه انجام می‌دهم.",
96
+ " به طور کامل و خودخواسته تسلیم همه وسواسها می‌شوم."
97
+ ]
98
+ },
99
+ "user_answered": "2"
100
+ },
101
+ {
102
+ "category": "میزان کنترل بر افکار وسواس",
103
+ "type": "text",
104
+ "text": "چقدر بر افکار وسواسی خود کنترل دارید؟ در متوقف کردن یا منحرف کردن افکار وسواسی خود، چقدر موفق هستید؟ (اگر به ندرت برای مقاومت تلاش می‌کنید، برای پاسخ به این پرسش به همان موارد نادری که سعی کرده‌اید افکار وسواسی‌تان را متوقف کنید، فکر کنید.)",
105
+ "answer": {
106
+ "type": "optional",
107
+ "options": [
108
+ "کنترل کامل.",
109
+ "کنترل زیاد، معمولا با کمی تلاش و تمرکز می‌توانم وسواسها را متوقف و منحرف کنم.",
110
+ "کنترل متوسط برخی اوقات می‌توانم وسواسها را متوقف یا منحرف کنم.",
111
+ "کنترل کم، به ندرت می‌توانم وسواسها را متوقف کنم ولی با تلاش زیاد می‌توانم صرفا توجه خود را منحرف کنم.",
112
+ "بدون کنترل، به ندرت می‌توانم حتی برای یک لحظه از وسواسها رها شوم."
113
+ ]
114
+ },
115
+ "user_answered": "3"
116
+ },
117
+ {
118
+ "category": "میزان کنترل بر افکار وسواسی",
119
+ "type": "text",
120
+ "text": "برای انجام رفتارهای اجبارگونه چقدر وقت صرف می‌کنید؟ فراوانی انجام این رفتارها چقدر است؟ (اگر آداب شما دربردارنده فعالیت‌های روزمره است، توجه کنید که به خاطر انجام این آداب، انجام فعالیت‌های روزمره چقدر طول می‌کشد.)",
121
+ "answer": {
122
+ "type": "optional",
123
+ "options": [
124
+ "هیچ",
125
+ "کمتر از یک ساعت در روز برای انجام اجبارها، یا انجام رفتارهای اجبارگونه به صورت گاهگاهی (کمتر از هشت بار در روز).",
126
+ "یک تا سه ساعت در روز، برای انجام اجبارها یا انجام رفتارهای اجبارگونه به صورت مکرر (بیش از هشت بار در روز).",
127
+ " بیش از سه ساعت در روز، صرف انجام اجبارها می‌شود یا تکرار رفتارهای اجبارگونه به صورتی بسیار زیاد (بیش از هشت ساعت در روز و در اکثر ساعات روز).",
128
+ " بیش از هشت ساعت در روز صرف انجام اجبارها می‌شود یا انجام رفتارهای اجبارگونه به صورتی کما بیش مداوم (شمارش دفعات دشوار است و به ندرت ساعتی بدون انجام آداب سپری می‌شود)."
129
+ ]
130
+ },
131
+ "user_answered": "1"
132
+ },
133
+ {
134
+ "category": "تداخل وسواس‌های عملی",
135
+ "type": "text",
136
+ "text": "رفتارهای اجبارگونه تا چه حد در عملکرد شغلی و اجتماعی شما اختلال ایجاد کرده‌اند؟ (اگر در حال حاضر شاغل نیستید، درباره فعالیت‌های روزمره خود فکر کنید.)",
137
+ "answer": {
138
+ "type": "optional",
139
+ "options": [
140
+ "بدون اختلال.",
141
+ "اختلال خفیف در فعالیت‌های شغلی یا اجتماعی، ولی بر عملکرد کلی تأثیری نگذاشته است.",
142
+ "اختلال متوسط و مشخص در عملکرد شغلی یا اجتماعی، ولی همچنان قابل کنترل است.",
143
+ "اختلال شدید با تخریب اساسی در عملکرد شغلی یا اجتماعی",
144
+ "اختلال بسیار شدید و ناتوان کننده"
145
+ ]
146
+ },
147
+ "user_answered": "2"
148
+ },
149
+ {
150
+ "category": "ناراحتی مربوط به وسواس‌های عملی",
151
+ "type": "text",
152
+ "text": "اگر از انجام اجبارهای خود منع شوید چه احساسی پیدا می‌کنید؟ چقدر مضطرب خواهید شد؟",
153
+ "answer": {
154
+ "type": "optional",
155
+ "options": [
156
+ "به هیچ وجه مضطرب نمی‌شوم.",
157
+ "اگر از انجام اجبارها منع شوم فقط تا حدودی مضطرب می‌شوم.",
158
+ "اگر از انجام اجبارها منع شوم اضطرابم بالا می‌رود ولی قابل کنترل باقی می‌ماند.",
159
+ "اگر از انجام اجبارها منع شوم اضطرابم بسیار افزایش می‌یابد و مختل کننده می‌شود.",
160
+ "هر گونه تلاش برای کاهش اجبارها، با اضطراب بسیار شدید و ناتوان کننده همراه می‌شود."
161
+ ]
162
+ },
163
+ "user_answered": "4"
164
+ },
165
+ {
166
+ "category": "مقاومت در برابر وسواس‌های عملی",
167
+ "type": "text",
168
+ "text": "چقدر سعی می‌کنید تا در برابر اجبارها مقاومت کنید؟ یا هر چند وقت یک‌بار سعی می‌کنید تا اجبارها را متوقف کنید؟ (فقط تعداد مواردی را که سعی می‌کنید در برابر اجبارها مقاومت کنید درجه‌بندی کنید، نه میزان موفقیت خود را متوقف کردن آنها.)",
169
+ "answer": {
170
+ "type": "optional",
171
+ "options": [
172
+ "همیشه سعی می‌کنم مقاومت کنم (یا علائم و نشانه ها به قدری خفیف هستند که نیازی به مقاومت فعالانه ندارند).",
173
+ "اکثر اوقات سعی می‌کنم در برابر آن‌ها مقاومت کنم (یعنی بیش از نیمی از اوقات).",
174
+ "برخی از اوقات سعی می‌کنم مقاومت کنم.",
175
+ "بدون تلاش برای کنترل آن‌ها اجازه می‌دهم که تقریبا همه اجبارها صورت بگیرند ولی این کار را تا حدی با اکراه انجام می‌دهم.",
176
+ "به طور کامل و خود خواسته اجازه می‌دهم تا اجبارها صورت بگیرند."
177
+ ]
178
+ },
179
+ "user_answered": "4"
180
+ },
181
+ {
182
+ "category": "میزان کنترل بر وسواس‌های عملی",
183
+ "type": "text",
184
+ "text": "چقدر روی رفتارهای وسواسی خود کنترل دارید؟ چقدر در متوقف کردن آداب رفتاری موفق هستید؟ (چنانچه به ندرت برای مقاومت تلاش می‌کنید، برای پاسخ به این پرسش درباره همان موارد نادری که سعی کرده‌اید اجبارها را متوقف کنید، فکر کنید).",
185
+ "answer": {
186
+ "type": "optional",
187
+ "options": [
188
+ "کنترل کامل.",
189
+ "معمولا با کمی تلاش یا اراده می‌توانم انجام آداب یا اجبارها را متوقف کنم.",
190
+ "برخی اوقات می‌توانم رفتار اجبار‌گونه را متوقف کنم اما به سختی.",
191
+ "فقط می‌توانم رفتار اجبار‌گونه را به تأخیر بیندازم ولی این رفتار در نهایت باید انجام گیرد.",
192
+ "به ندرت قادر هستم حتی برای لحظه‌ای انجام رفتار اجبارگونه را به تأخیر بیندازم."
193
+ ]
194
+ },
195
+ "user_answered": "3"
196
+ },
197
+ {
198
+ "category": "ارزیابی نیرومندی باور شما نسبت به وسواس – بی اختیاری خود ",
199
+ "type": "text",
200
+ "text": "آیا فکر می‌کنید که وسواس‌ها یا بی‌اختیاری‌های شما معقول و منطقی هستند؟ اگر از انجام آن‌ها منع شوید، آیا حالتی غیر از اضطراب برای شما رخ خواهد داد؟ آیا فکر می‌کنید که واقعا اتفاق رخ خواهد داد؟",
201
+ "answer": {
202
+ "type": "optional",
203
+ "options": [
204
+ "فکر می‌کنم وسواس‌ها و اجبارهایم نامعقول یا مفرط هستند.",
205
+ "فکر می‌کنم وسواس‌ها و اجبارهایم نامعقول یا مفرط هستند ولی متقاعد نشده‌ام که آن‌ها کاملا غیر ضروری هستند.",
206
+ "فکر می‌کنم وسواس‌ها و اجبارهایم ممکن است نامعقول یا مفرط باشند.",
207
+ "فکر نمی‌کنم که وسواس‌ها و اجبارهایم نامعقول یا مفرط باشند.",
208
+ "بدون توجه به گفته دیگران فکر می‌کنم وسواس‌ها و اجبارهایم معقول هستند."
209
+ ]
210
+ },
211
+ "user_answered": "5"
212
+ },
213
+ {
214
+ "category": "ارزیابی اجتناب ناشی از وسواس ",
215
+ "type": "text",
216
+ "text": "آیا به دلیل افکار وسواسی یا ترس از انجام کارهای بی‌اختیار، از انجام کاری، رفتن به مکانی یا بودن با کسی اجتناب کرده‌اید؟",
217
+ "answer": {
218
+ "type": "optional",
219
+ "options": [
220
+ "به دلیل وسواس-اجبار از هیچ کاری اجتناب نکرده‌ام.",
221
+ "به دلیل وسواس-اجبار از برخی امور بی‌اهمیت اجتناب کرده‌ام.",
222
+ "به دلیل وسواس-اجبار از برخی امور مهم اجتناب کرده‌ام.",
223
+ "به دلیل وسواس-اجبار از بسیاری از امور مهم اجتناب کرده‌ام.",
224
+ "به دلیل وسواس-اجبار تقریبا از هر چیزی اجتناب کرده‌ام."
225
+ ]
226
+ },
227
+ "user_answered": "4"
228
+ },
229
+ {
230
+ "category": "ارزیابی افسردگی ",
231
+ "type": "text",
232
+ "text": "خود را در زمینه غمگینی ارزیابی کنید.",
233
+ "answer": {
234
+ "type": "optional",
235
+ "options": [
236
+ "احساس غمگینی نمی‌کنم.",
237
+ "احساس غمگینی می‌کنم.",
238
+ "تمامی اوقات احساس غمگینی می‌کنم و نمی‌توانم از آن رهایی یابم.",
239
+ "آنقدر غمگین و ناراحت هستم که نمی‌توانم آن را تحمل کنم."
240
+ ]
241
+ },
242
+ "user_answered": "1"
243
+ },
244
+ {
245
+ "category": "ارزیابی افسردگی ",
246
+ "type": "text",
247
+ "text": "اگر افکار خودکشی داشته‌اید خود را ارزیابی کنید.",
248
+ "answer": {
249
+ "type": "optional",
250
+ "options": [
251
+ "هیج فکری درباره خودکشی ندارم.",
252
+ "افکاری درباره خودکشی دارم ولی آن‌ها را عملی نخواهم کرد.",
253
+ "مایلم خودکشی کنم.",
254
+ "اگر فرصت مناسبی داشتم خودم را می‌کشتم."
255
+ ]
256
+ },
257
+ "user_answered": "3"
258
+ }
259
+ ],
260
+ "prerequisites": [
261
+ {
262
+ "type": "text",
263
+ "label": "gender",
264
+ "text": "جنسیت",
265
+ "answer": { "type": "select", "options": ["زن", "مرد"] },
266
+ "alias": "gender",
267
+ "force": true,
268
+ "user_answered": "1"
269
+ },
270
+ {
271
+ "type": "text",
272
+ "label": "age",
273
+ "text": "سن",
274
+ "answer": { "type": "number" },
275
+ "alias": "age",
276
+ "force": true,
277
+ "user_answered": "55"
278
+ },
279
+ {
280
+ "type": "text",
281
+ "label": "education",
282
+ "text": "تحصیلات",
283
+ "answer": {
284
+ "type": "select",
285
+ "options": [
286
+ "ابتدایی اول",
287
+ "ابتدایی دوم",
288
+ "متوسطه اول",
289
+ "متوسطه دوم",
290
+ "دیپلم",
291
+ "کارشناسی",
292
+ "کارشناسی ارشد",
293
+ "پزشکی عمومی",
294
+ "متخصص",
295
+ "دکتری تخصصی",
296
+ "حوزوی مقدمات",
297
+ "حوزوی سطح۱",
298
+ "حوزوی سطح۲",
299
+ "حوزوی سطح۳",
300
+ "حوزوی سطح۴"
301
+ ]
302
+ },
303
+ "alias": "education",
304
+ "force": true,
305
+ "user_answered": "1"
306
+ },
307
+ {
308
+ "type": "text",
309
+ "label": "marital_status",
310
+ "text": "وضعیت تأهل",
311
+ "answer": { "type": "select", "options": ["مجرد", "متأهل"] },
312
+ "alias": "marital_status",
313
+ "force": true,
314
+ "user_answered": "1"
315
+ }
316
+ ],
317
+ "entities": [
318
+ {
319
+ "offset": 0,
320
+ "description": "مشخص کنید که در حال حاضر این مشکلات تا چه حد در زندگی شما اختلال ایجاد می‌کند.\n\nبه خاطر داشته باشید که در اینجا مجددا تعریف وسواس مد نظر است، عقاید، تصورات یا تکانه‌های ناخوشایند و پریشان کننده‌ای که به طور مکرر وارد ذهنتان می‌شوند. این افکار برخلاف میل شما به ذهنتان وارد می‌شوند. ممکن است در نظرتان نفرت‌انگیز باشند، بدانید که بی‌معنا هستند و ممکن است با احساس و شخصیت شما تناسبی نداشته باشند.لطفا درباره هفت روز گذشته و همچنین امروز فکر کنید و برای هر پرسش یکی از پاسخ‌ها را علامت بزنید.\n\n- توجه: این قسمت شامل وسواس‌هایی نمی‌شوند که با انجام اعمال اجباری متوقف می‌گردند، اگر برای پاسخ ۵۹ «هیچ» را انتخاب کردید تا شماره ۶۳ هیچ را انتخاب کنید و به سراغ شماره ۶۴ بروید."
321
+ },
322
+ {
323
+ "offset": 5,
324
+ "description": "منظور از رفتارهای وسواسی، رفتار ها یا عملکرد هایی هستند که اگرچه آن‌ها را بی معنا یا افراطی می‌دانید، با این حال احساس می‌کنید که باید آن‌ها را انجام بدهید.\n\nگاهی اوقات شما سعی می‌کنید که در انجام دادن آن‌ها علی‌رغم مشکلات و زحمات زیاد مقاومت کنید. ممکن است تا زمانی که آن رفتار را انجام نداده و یا تمام نکرده اید، همچنان اضطراب داشته باشید. لطفاً در مورد ۷ روز گذشته (و همچنین امروز) فکر کرده و برای هر پرسش، یکی از گزینه ها را انتخاب نمایید."
325
+ }
326
+ ],
327
+ "cornometer": 1,
328
+ "score": {
329
+ "aggressive_obsession": 0,
330
+ "contamination_obsession": 0,
331
+ "sexual_obsession": 0,
332
+ "hoarding_saving": 0,
333
+ "religious": 0,
334
+ "symmetry_exactness": 0,
335
+ "obsession_miscellaneous": 0,
336
+ "somatic": 0,
337
+ "cleaning_washing": 0,
338
+ "checking": 0,
339
+ "repeating": 0,
340
+ "counting": 0,
341
+ "ordering_arranging": 0,
342
+ "hoarding_collecting": 0,
343
+ "compulsive_miscellaneous": 0,
344
+ "obsession_severity": 9,
345
+ "obsession_severity_level": 1,
346
+ "report": "mild"
347
+ },
348
+ "score_current_version": "1.0.0",
349
+ "score_last_version": "1.0.0"
350
+ }
@@ -0,0 +1,243 @@
1
+ const { Profile } = require("../Profile");
2
+
3
+ class CBCL93 extends Profile {
4
+ // Number of pages
5
+ static pages = 1;
6
+
7
+ // Labels of the sample
8
+ labels = {
9
+ L1: { eng: "anxious_depressed_value", fa: 'اضطراب / افسردگی' },
10
+ L2: { eng: "anxious_depressed_t" },
11
+ L3: { eng: "anxious_depressed_pr" },
12
+ L03: { eng: "anxious_depressed_status" },
13
+
14
+ L4: { eng: "depressed_value", fa: 'گوشه‌گیری / افسردگی' },
15
+ L5: { eng: "depressed_t" },
16
+ L6: { eng: "depressed_pr" },
17
+ L06: { eng: "depressed_status" },
18
+
19
+ L7: { eng: "somatic_complaints_value", fa: 'شکایات جسمانی' },
20
+ L8: { eng: "somatic_complaints_t" },
21
+ L9: { eng: "somatic_complaints_pr" },
22
+ L09: { eng: "somatic_complaints_status" },
23
+
24
+ L10: { eng: "social_problems_value", fa: 'مشکلات اجتماعی' },
25
+ L11: { eng: "social_problems_t" },
26
+ L12: { eng: "social_problems_pr" },
27
+ L012: { eng: "social_problems_status" },
28
+
29
+ L13: { eng: "thought_problems_value", fa: 'مشکلات تفکر' },
30
+ L14: { eng: "thought_problems_t" },
31
+ L15: { eng: "thought_problems_pr" },
32
+ L015: { eng: "thought_problems_status" },
33
+
34
+ L16: { eng: "attention_problems_value", fa: 'مشکلات توجه' },
35
+ L17: { eng: "attention_problems_t" },
36
+ L18: { eng: "attention_problems_pr" },
37
+ L018: { eng: "attention_problems_status" },
38
+
39
+ L19: { eng: "rule_breaking_behaviour_value", fa: 'رفتار قانون‌شکنی' },
40
+ L20: { eng: "rule_breaking_behaviour_t" },
41
+ L21: { eng: "rule_breaking_behaviour_pr" },
42
+ L021: { eng: "rule_breaking_behaviour_status" },
43
+
44
+ L22: { eng: "aggressive_behaviour_value", fa: 'رفتار پرخاشگرانه' },
45
+ L23: { eng: "aggressive_behaviour_t" },
46
+ L24: { eng: "aggressive_behaviour_pr" },
47
+ L024: { eng: "aggressive_behaviour_status" },
48
+
49
+ L25: { eng: "internalizing_value", fa: 'درونی‌سازی' },
50
+ L26: { eng: "internalizing_t" },
51
+ L27: { eng: "internalizing_pr" },
52
+ L027: { eng: "internalizing_status" },
53
+
54
+ L28: { eng: "externalizing_value", fa: 'برونی سازی' },
55
+ L29: { eng: "externalizing_t" },
56
+ L30: { eng: "externalizing_pr" },
57
+ L030: { eng: "externalizing_status" },
58
+
59
+ L31: { eng: "total_value", fa: 'مشکلات کلی (نمره کل)' },
60
+ L32: { eng: "total_t" },
61
+ L33: { eng: "total_pr" },
62
+ L033: { eng: "total_status" },
63
+
64
+ L34: { eng: "affective_problems_value", fa: ['مشکلات','عاطفی'] },
65
+ L35: { eng: "affective_problems_t" },
66
+ L36: { eng: "affective_problems_pr" },
67
+ L036: { eng: "affective_problems_status" },
68
+
69
+ L37: { eng: "anxiety_problems_value", fa: ['مشکلات','اضطرابی'] },
70
+ L38: { eng: "anxiety_problems_t" },
71
+ L39: { eng: "anxiety_problems_pr" },
72
+ L039: { eng: "anxiety_problems_status" },
73
+
74
+ L40: { eng: "somatic_problems_value", fa: ['مشکلات','جسمانی (تنی)'] },
75
+ L41: { eng: "somatic_problems_t" },
76
+ L42: { eng: "somatic_problems_pr" },
77
+ L042: { eng: "somatic_problems_status" },
78
+
79
+ L43: { eng: "adhd_value", fa: ['مشکلات','ADHD'] },
80
+ L44: { eng: "adhd_t" },
81
+ L45: { eng: "adhd_pr" },
82
+ L045: { eng: "adhd_status" },
83
+
84
+ L46: { eng: "oppositional_defiant_problems_value", fa: ['مشکلات','رفتار مقابله‌ای'] },
85
+ L47: { eng: "oppositional_defiant_problems_t" },
86
+ L48: { eng: "oppositional_defiant_problems_pr" },
87
+ L048: { eng: "oppositional_defiant_problems_status" },
88
+
89
+ L49: { eng: "conduct_problems_value", fa: ['مشکلات','سلوک'] },
90
+ L50: { eng: "conduct_problems_t" },
91
+ L51: { eng: "conduct_problems_pr" },
92
+ L051: { eng: "conduct_problems_status" },
93
+
94
+ L52: {eng: "other_problems", fa: 'سایر مشکلات'}
95
+ };
96
+
97
+ profileSpec = {
98
+ /* "sample" determines some important info about the sample and profile */
99
+ /* Default prerequisites: 1. gender, 2. age, 3. education */
100
+ /* "prerequisites" is synonym to "fields" in our program */
101
+ sample: {
102
+ name: "پرسشنامه افسردگی کودکان و نوجوانان - جان‌بزرگی" /* Name of the sample */,
103
+ multiProfile: false /* Whether the sample has multiple profiles or not */,
104
+ questions: true /* Determines whether to get questions from inital dataset or not */,
105
+ defaultFields: false /* Determines whether to have default prerequisites in the profile or not */,
106
+ fields: ['child_name', 'gender', 'age', 'education','filler_name', 'relationship'] /* In case you want to get some additional fields and show in the profile */,
107
+ },
108
+ /* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
109
+ /* calculating its dimensions carefully is of great importance */
110
+ profile: {
111
+ get dimensions() {
112
+ return {
113
+ width: 863 + 2 * this.padding.x,
114
+ height: 653 + 2 * this.padding.y,
115
+ };
116
+ },
117
+ padding: {
118
+ x: 28,
119
+ y: 20,
120
+ },
121
+ },
122
+
123
+ /* "labels" part which has to be provided for each profile */
124
+ labels: Object.values(this.labels),
125
+ };
126
+
127
+ constructor(dataset, options, config = {}) {
128
+ super();
129
+ this._init(dataset, options, config);
130
+ }
131
+
132
+ _calcContext() {
133
+ const {
134
+ spec: { parameters: spec },
135
+ dataset,
136
+ } = this;
137
+
138
+ // Deconstructing the Spec of the Profile
139
+
140
+ // Separate Raw Data from the Dataset
141
+ const items = []
142
+ for(let i=0; i < 68; i+=4){
143
+ const value = dataset.score[i]
144
+ const t = dataset.score[i +1]
145
+ const pr = dataset.score[i +2]
146
+ const status = dataset.score[i +3]
147
+ items.push({
148
+ label: value.label.fa,
149
+ value: value.mark ?? 0,
150
+ t: t.mark ?? 0,
151
+ pr: pr.mark ?? 0,
152
+ status: status.mark,
153
+ height: 0
154
+ })
155
+ }
156
+ const group1 = [
157
+ items[0],
158
+ items[1],
159
+ items[2],
160
+ items[3],
161
+ items[4],
162
+ items[5],
163
+ items[6],
164
+ items[7]
165
+ ].map((item, index) => {
166
+ const height = calculateTotalLength(item.t, ...groupRange1)
167
+ return {
168
+ ...item,
169
+ height,
170
+ transform: `translate(0, ${165 - height})`,
171
+ fill: `url(#gradient-${item.status})`,
172
+ rawColor: statusColor[item.status][0],
173
+ clipPath: 'url(#bar24x165)',
174
+ }
175
+ })
176
+
177
+ const group2 = [
178
+ items[8],
179
+ items[9],
180
+ items[10],
181
+ ].map(item => {
182
+ const height = calculateTotalLength(item.t, ...groupRange2)
183
+ return {
184
+ ...item,
185
+ height,
186
+ transform: `translate(0, ${162 - height})`,
187
+ fill: `url(#gradient-${item.status})`,
188
+ rawColor: statusColor[item.status][0],
189
+ clipPath: 'url(#bar24x162)',
190
+ }
191
+ })
192
+ const group3 = [
193
+ items[11],
194
+ items[12],
195
+ items[13],
196
+ items[14],
197
+ items[15],
198
+ items[16]
199
+ ].map(item => {
200
+ const height = calculateTotalLength(item.t, ...groupRange1)
201
+ return {
202
+ ...item,
203
+ height,
204
+ transform: `translate(0, ${165 - height})`,
205
+ fill: `url(#gradient-${item.status})`,
206
+ rawColor: statusColor[item.status][0],
207
+ clipPath: 'url(#bar24x165)',
208
+ }
209
+ })
210
+ return [{ group1, group2, group3, statusColor }];
211
+ }
212
+ }
213
+ function calculateTotalLength(score, ...ranges) {
214
+ let total = 0;
215
+ for(let i = 0; i < ranges.length; i++){
216
+ const [start, weight] = ranges[i]
217
+ if(score < start) break
218
+ const next = ranges[i + 1]?.[0] ?? 90
219
+ const length = Math.min(next - start, score - start)
220
+ total += length * weight
221
+ }
222
+ return total;
223
+ }
224
+ const statusColor = {
225
+ 'normal': ['#059669', '#6EE7B7'],
226
+ 'borderline': ['#EAB308', '#FEF08A'],
227
+ 'clinical': ['#DC2626', '#FCA5A5'],
228
+ }
229
+ const groupRange1 = [
230
+ [0, 1],
231
+ [30, 2],
232
+ [64, 5],
233
+ [69, 2]
234
+ ];
235
+ const groupRange2 = [
236
+ [0, 1],
237
+ [30, 2],
238
+ [59, 5],
239
+ [63, 2]
240
+ ];
241
+
242
+
243
+ module.exports = CBCL93;