@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.
- package/package.json +1 -1
- package/src/publish/json/profiles/CBCL93.json +1427 -0
- package/src/publish/json/profiles/YBOCS9A.json +350 -0
- package/src/samples/CBCL93.js +243 -0
- package/src/samples/YBOCS9A.js +121 -0
- package/views/profiles/samples/CBCL93.hbs +220 -0
- package/views/profiles/samples/YBOCS9A.hbs +307 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
const { Profile, FS } = require("../Profile");
|
|
2
|
+
const interprets = {
|
|
3
|
+
sub_clinical: {
|
|
4
|
+
title: "غیر بالینی",
|
|
5
|
+
color: "#64748B",
|
|
6
|
+
secondary: "#CBD5E1"
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
mild: {
|
|
10
|
+
title: "خفیف",
|
|
11
|
+
color: "#EAB308",
|
|
12
|
+
secondary: "#FDE047"
|
|
13
|
+
|
|
14
|
+
},
|
|
15
|
+
moderate: {
|
|
16
|
+
title: "متوسط",
|
|
17
|
+
color: "#F97316",
|
|
18
|
+
secondary: "#FDBA74"
|
|
19
|
+
},
|
|
20
|
+
severe: {
|
|
21
|
+
title: "شدید",
|
|
22
|
+
color: "#E11D48",
|
|
23
|
+
secondary: "#FDA4AF"
|
|
24
|
+
},
|
|
25
|
+
extreme: {
|
|
26
|
+
title: "خیلی شدید",
|
|
27
|
+
color: "#9F1239",
|
|
28
|
+
secondary: "#FDA4AF"
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
const questionAnswers = [
|
|
32
|
+
'#CBD5E1', '#EAB308', '#EA580C', '#E11D48', '#BE123C'
|
|
33
|
+
]
|
|
34
|
+
const questionTitles = [
|
|
35
|
+
'وقت صرف شده',
|
|
36
|
+
'اثر روی کارکرد',
|
|
37
|
+
'ایجاد پریشانی',
|
|
38
|
+
'تلاش برای مقاومت',
|
|
39
|
+
'توان کنترل',
|
|
40
|
+
|
|
41
|
+
'وقت صرف شده',
|
|
42
|
+
'اثر روی کارکرد',
|
|
43
|
+
'ایجاد پریشانی',
|
|
44
|
+
'تلاش برای مقاومت',
|
|
45
|
+
'توان کنترل',
|
|
46
|
+
|
|
47
|
+
'-',
|
|
48
|
+
'-',
|
|
49
|
+
|
|
50
|
+
'غمگینی',
|
|
51
|
+
'افکار خودکشی',
|
|
52
|
+
|
|
53
|
+
]
|
|
54
|
+
class YBOCS9A extends Profile {
|
|
55
|
+
// Number of pages
|
|
56
|
+
static pages = 1;
|
|
57
|
+
|
|
58
|
+
// Labels of the sample
|
|
59
|
+
labels = {
|
|
60
|
+
L1: { eng: "obsession_severity", fr: "شدت وسواس" },
|
|
61
|
+
L2: { eng: "report", fr: "تفسیر" },
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
profileSpec = {
|
|
65
|
+
/* "sample" determines some important info about the sample and profile */
|
|
66
|
+
/* Default prerequisites: 1. gender, 2. age, 3. education */
|
|
67
|
+
/* "prerequisites" is synonym to "fields" in our program */
|
|
68
|
+
sample: {
|
|
69
|
+
name: "پرسشنامه یلبراون وسواس" /* Name of the sample */,
|
|
70
|
+
multiProfile: true /* Whether the sample has multiple profiles or not */,
|
|
71
|
+
questions: true /* Determines whether to get questions from inital dataset or not */,
|
|
72
|
+
defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
|
|
73
|
+
fields: [] /* In case you want to get some additional fields and show in the profile */,
|
|
74
|
+
},
|
|
75
|
+
/* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
|
|
76
|
+
/* calculating its dimensions carefully is of great importance */
|
|
77
|
+
profile: {
|
|
78
|
+
get dimensions() {
|
|
79
|
+
return {
|
|
80
|
+
width: 863 + 2 * this.padding.x,
|
|
81
|
+
height: 672 + 2 * this.padding.y,
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
padding: {
|
|
85
|
+
x: 20,
|
|
86
|
+
y: 21,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
/* "labels" part which has to be provided for each profile */
|
|
90
|
+
labels: Object.values(this.labels),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
constructor(dataset, options, config = {}) {
|
|
94
|
+
super();
|
|
95
|
+
this._init(dataset, options, config);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
_calcContext() {
|
|
99
|
+
const {
|
|
100
|
+
dataset,
|
|
101
|
+
} = this;
|
|
102
|
+
const questions = dataset.questions.map(q => ({
|
|
103
|
+
...q,
|
|
104
|
+
user_answered: parseInt(q.user_answered) - 1,
|
|
105
|
+
color: questionAnswers[q.user_answered - 1]
|
|
106
|
+
}))
|
|
107
|
+
const severity = {
|
|
108
|
+
mark: dataset.score[0].mark ?? 0,
|
|
109
|
+
label: dataset.score[1].mark,
|
|
110
|
+
...interprets[dataset.score[1].mark]
|
|
111
|
+
}
|
|
112
|
+
let alert = 0
|
|
113
|
+
if(questions[0].user_answered === 0) alert += 1
|
|
114
|
+
if(questions[5].user_answered === 0) alert += 2
|
|
115
|
+
return [
|
|
116
|
+
{severity, questions, alert, questionTitles, questionAnswers}
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
module.exports = YBOCS9A;
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
<defs>
|
|
3
|
+
{{#each statusColor as |bar index|}}
|
|
4
|
+
<linearGradient id="gradient-{{index}}" gradientTransform="rotate(90)">
|
|
5
|
+
<stop offset="0%" stop-color="{{bar.[0]}}" />
|
|
6
|
+
<stop offset="100%" stop-color="{{bar.[1]}}" />
|
|
7
|
+
</linearGradient>
|
|
8
|
+
{{/each}}
|
|
9
|
+
<clipPath id="bar24x165">
|
|
10
|
+
{{bar 24 165 (object tl=4 tr=4 bl=0 br=0) (toRad 0) }}
|
|
11
|
+
</clipPath>
|
|
12
|
+
<clipPath id="bar24x162">
|
|
13
|
+
{{bar 24 162 (object tl=4 tr=4 bl=0 br=0) (toRad 0) }}
|
|
14
|
+
</clipPath>
|
|
15
|
+
<filter id="lineShadow1" x="0" y="0" width="345" height="7" filterUnits="userSpaceOnUse"
|
|
16
|
+
color-interpolation-filters="sRGB">
|
|
17
|
+
<feFlood flood-opacity="0" result="lineShadow1-bf" />
|
|
18
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
|
19
|
+
result="hardAlpha" />
|
|
20
|
+
<feOffset dy="-1" />
|
|
21
|
+
<feGaussianBlur stdDeviation="1.5" />
|
|
22
|
+
<feComposite in2="hardAlpha" operator="out" />
|
|
23
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" />
|
|
24
|
+
<feBlend mode="normal" in2="lineShadow1-bf" result="lineShadow1-ed" />
|
|
25
|
+
<feBlend mode="normal" in="SourceGraphic" in2="lineShadow1-ed" result="shape" />
|
|
26
|
+
</filter>
|
|
27
|
+
<filter id="lineShadow2" x="0" y="0" width="195" height="7" filterUnits="userSpaceOnUse"
|
|
28
|
+
color-interpolation-filters="sRGB">
|
|
29
|
+
<feFlood flood-opacity="0" result="lineShadow1-bf" />
|
|
30
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
|
31
|
+
result="hardAlpha" />
|
|
32
|
+
<feOffset dy="-1" />
|
|
33
|
+
<feGaussianBlur stdDeviation="1.5" />
|
|
34
|
+
<feComposite in2="hardAlpha" operator="out" />
|
|
35
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" />
|
|
36
|
+
<feBlend mode="normal" in2="lineShadow1-bf" result="lineShadow1-ed" />
|
|
37
|
+
<feBlend mode="normal" in="SourceGraphic" in2="lineShadow1-ed" result="shape" />
|
|
38
|
+
</filter>
|
|
39
|
+
<filter id="lineShadow3" x="0" y="0" width="499" height="7" filterUnits="userSpaceOnUse"
|
|
40
|
+
color-interpolation-filters="sRGB">
|
|
41
|
+
<feFlood flood-opacity="0" result="lineShadow1-bf" />
|
|
42
|
+
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
|
|
43
|
+
result="hardAlpha" />
|
|
44
|
+
<feOffset dy="-1" />
|
|
45
|
+
<feGaussianBlur stdDeviation="1.5" />
|
|
46
|
+
<feComposite in2="hardAlpha" operator="out" />
|
|
47
|
+
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0" />
|
|
48
|
+
<feBlend mode="normal" in2="lineShadow1-bf" result="lineShadow1-ed" />
|
|
49
|
+
<feBlend mode="normal" in="SourceGraphic" in2="lineShadow1-ed" result="shape" />
|
|
50
|
+
</filter>
|
|
51
|
+
</defs>
|
|
52
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
53
|
+
<rect width="863" x="0" y="360" height="1" rx="0.5" fill="#E2E8F0"/>
|
|
54
|
+
<g transform="translate(24, 0)">
|
|
55
|
+
<text font-size="14" font-weight="600" fill="#334155" transform="translate(12, 32.5), rotate(-90, 0, 0)">
|
|
56
|
+
مقیاسهای مبتنی بر تجربه
|
|
57
|
+
</text>
|
|
58
|
+
<g transform="translate(80, 0)">
|
|
59
|
+
<rect height="42" width="339" x="60" y="46" fill="#FEF2F2" opacity=".25" />
|
|
60
|
+
<text x="52" y="1" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">رتبه درصدی</text>
|
|
61
|
+
<path d="m 60.5 7 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
62
|
+
<path d="m 60.5 27 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
63
|
+
<text x="52" y="21" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">نمره خام</text>
|
|
64
|
+
<text x="52" y="46.5" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">90</text>
|
|
65
|
+
<text x="68" y="61" dy=".77em" font-size="12" font-weight="400" fill="#B91C1C" text-anchor="end">بالینی</text>
|
|
66
|
+
<rect height="25" width="339" x="60" y="88" fill="#FEFCE8" opacity=".25" />
|
|
67
|
+
<text x="52" y="83.5" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">69</text>
|
|
68
|
+
<text x="68" y="94" dy=".77em" font-size="12" font-weight="400" fill="#CA8A04" text-anchor="end">مرزی</text>
|
|
69
|
+
<rect height="99" width="339" x="60" y="113" fill="#ECFDF5" opacity=".25" />
|
|
70
|
+
<text x="52" y="108" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">64</text>
|
|
71
|
+
<text x="68" y="140" dy=".77em" font-size="12" font-weight="400" fill="#15803D" text-anchor="end">بهنجار</text>
|
|
72
|
+
<text x="52" y="176" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">30</text>
|
|
73
|
+
<text x="52" y="206" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">0</text>
|
|
74
|
+
<g transform="translate(121, 46)">
|
|
75
|
+
{{#each group1 as |item index|}}
|
|
76
|
+
<g transform="translate({{math 34 '*' index}}, 0)">
|
|
77
|
+
{{bar 24 165 (object tl=4 tr=4 bl=0 br=0) (toRad 0) fill='#F1F5F9' clip-path=item.clipPath}}
|
|
78
|
+
</g>
|
|
79
|
+
{{/each}}
|
|
80
|
+
</g>
|
|
81
|
+
<line x1="59.5" y1="45.5" x2="398.5" y2="45.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
82
|
+
<line x1="59.5" y1="88.5" x2="398.5" y2="88.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
83
|
+
<line x1="59.5" y1="113.5" x2="398.5" y2="113.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
84
|
+
<line x1="59.5" y1="181.5" x2="398.5" y2="181.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
85
|
+
<g transform="translate(121, 0)">
|
|
86
|
+
<g transform="translate(0, 46)">
|
|
87
|
+
{{#each group1 as |item index|}}
|
|
88
|
+
<g transform="translate({{math 34 '*' index}}, 0)">
|
|
89
|
+
<rect x="0" y="-45.5" width="24" height="14" fill="#ffffff" stroke="#94A3B8" stroke-width="1" rx="4"/>
|
|
90
|
+
<text x="12" y="-38.5" dy=".33em" font-size="10" font-weight="400" fill="#64748B" text-anchor="middle" direction="ltr">{{item.pr}}</text>
|
|
91
|
+
|
|
92
|
+
<rect x="0" y="-26" width="24" height="14" fill="{{item.rawColor}}" rx="4"/>
|
|
93
|
+
<text x="12" y="-19" dy=".33em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.value}}</text>
|
|
94
|
+
|
|
95
|
+
{{bar 24 item.height (object tl=4 tr=4 bl=0 br=0) (toRad 0) transform=item.transform fill=item.fill clip-path=item.clipPath}}
|
|
96
|
+
<text x="12" y="{{math (math 165 '-' item.height) '+' 6}}" dy=".77em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.t}}</text>
|
|
97
|
+
<text x="-174" y="6" dy=".77em" font-size="12" font-weight="400" fill="#475569" text-anchor="start" transform="rotate(-90, 0, 0)">{{item.label}}</text>
|
|
98
|
+
</g>
|
|
99
|
+
{{/each}}
|
|
100
|
+
</g>
|
|
101
|
+
</g>
|
|
102
|
+
<g opacity="0.5" filter="url(#lineShadow1)" transform="translate(56.5, 207.5)">
|
|
103
|
+
<line x1="3.5" y1="4.5" x2="341.5" y2="4.5" stroke="white" stroke-linecap="round" />
|
|
104
|
+
</g>
|
|
105
|
+
</g>
|
|
106
|
+
<g transform="translate(527, 0)">
|
|
107
|
+
<g transform="translate(0, 3)">
|
|
108
|
+
<rect height="54" width="189" x="60" y="46" fill="#FEF2F2" opacity=".25" />
|
|
109
|
+
<text x="52" y="1" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">رتبه درصدی</text>
|
|
110
|
+
<path d="m 60.5 7 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
111
|
+
<path d="m 60.5 27 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
112
|
+
<text x="52" y="21" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">نمره خام</text>
|
|
113
|
+
<text x="52" y="46.5" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">90</text>
|
|
114
|
+
<text x="68" y="66" dy=".77em" font-size="12" font-weight="400" fill="#B91C1C" text-anchor="end">بالینی</text>
|
|
115
|
+
|
|
116
|
+
{{!-- <rect height="20" width="189" x="60" y="100" fill="#FEFCE8" opacity=".25" /> --}}
|
|
117
|
+
<text x="52" y="95.5" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">63</text>
|
|
118
|
+
<text x="68" y="103" dy=".77em" font-size="12" font-weight="400" fill="#CA8A04" text-anchor="end">مرزی</text>
|
|
119
|
+
|
|
120
|
+
<rect height="88" width="189" x="60" y="120" fill="#ECFDF540" opacity=".25" />
|
|
121
|
+
<text x="52" y="115" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">59</text>
|
|
122
|
+
<text x="68" y="142" dy=".77em" font-size="12" font-weight="400" fill="#15803D" text-anchor="end">بهنجار</text>
|
|
123
|
+
<text x="52" y="176" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">30</text>
|
|
124
|
+
<text x="52" y="203" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">0</text>
|
|
125
|
+
<g transform="translate(121, 46)">
|
|
126
|
+
{{#each group2 as |item index|}}
|
|
127
|
+
<g transform="translate({{math 40 '*' index}}, 0)">
|
|
128
|
+
{{bar 24 162 (object tl=4 tr=4 bl=0 br=0) (toRad 0) fill='#F1F5F9' clip-path=item.clipPath}}
|
|
129
|
+
</g>
|
|
130
|
+
{{/each}}
|
|
131
|
+
</g>
|
|
132
|
+
<line x1="59.5" y1="45.5" x2="250" y2="45.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
133
|
+
<line x1="59.5" y1="100.5" x2="250" y2="100.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
134
|
+
<line x1="59.5" y1="120.5" x2="250" y2="120.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
135
|
+
<line x1="59.5" y1="178.5" x2="250" y2="178.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
136
|
+
<g transform="translate(121, 46)">
|
|
137
|
+
{{#each group2 as |item index|}}
|
|
138
|
+
<g transform="translate({{math 40 '*' index}}, 0)">
|
|
139
|
+
<rect x="0" y="-45.5" width="24" height="14" fill="#ffffff" stroke="#94A3B8" stroke-width="1" rx="4"/>
|
|
140
|
+
<text x="12" y="-38.5" dy=".33em" font-size="10" font-weight="400" fill="#64748B" text-anchor="middle" direction="ltr">{{item.pr}}</text>
|
|
141
|
+
|
|
142
|
+
<rect x="0" y="-26" width="24" height="14" fill="{{item.rawColor}}" rx="4"/>
|
|
143
|
+
<text x="12" y="-19" dy=".33em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.value}}</text>
|
|
144
|
+
{{bar 24 item.height (object tl=4 tr=4 bl=0 br=0) (toRad 0) transform=item.transform fill=item.fill clip-path=item.clipPath}}
|
|
145
|
+
<text x="12" y="{{math (math 162 '-' item.height) '+' 6}}" dy=".77em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.t}}</text>
|
|
146
|
+
{{#if (boolean index '===' 2)}}
|
|
147
|
+
<text x="-174" y="6" dy=".77em" font-size="12" font-weight="400" fill="#475569" text-anchor="start" transform="rotate(-90, 0, 0)">مشکلات کلی</text>
|
|
148
|
+
<text x="-180" y="22" dy=".77em" font-size="12" font-weight="400" fill="#475569" text-anchor="start" transform="rotate(-90, 0, 0)">(نمره کل)</text>
|
|
149
|
+
{{else}}
|
|
150
|
+
<text x="-174" y="6" dy=".77em" font-size="12" font-weight="400" fill="#475569" text-anchor="start" transform="rotate(-90, 0, 0)">{{item.label}}</text>
|
|
151
|
+
{{/if}}
|
|
152
|
+
</g>
|
|
153
|
+
{{/each}}
|
|
154
|
+
</g>
|
|
155
|
+
<g opacity="0.5" filter="url(#lineShadow2)" transform="translate(56.5, 204.5)">
|
|
156
|
+
<line x1="3.5" y1="4.5" x2="191.5" y2="4.5" stroke="white" stroke-linecap="round" />
|
|
157
|
+
</g>
|
|
158
|
+
</g>
|
|
159
|
+
</g>
|
|
160
|
+
</g>
|
|
161
|
+
<g transform="translate(24, 401)">
|
|
162
|
+
<text font-size="14" font-weight="600" fill="#334155" transform="translate(12, 33.5), rotate(-90, 0, 0)">
|
|
163
|
+
مقیاسهای مبتنی بر DSM
|
|
164
|
+
</text>
|
|
165
|
+
<g transform="translate(168, 0)">
|
|
166
|
+
<rect height="42" width="493" x="60" y="46" fill="#FEF2F2" opacity=".25" />
|
|
167
|
+
<text x="52" y="1" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">رتبه درصدی</text>
|
|
168
|
+
<path d="m 60.5 7 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
169
|
+
<path d="m 60.5 27 l 7 0 m 0 0 l -3 -3 m 3 3 l -3 3" stroke="#94A3B8" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/>
|
|
170
|
+
<text x="52" y="21" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">نمره خام</text>
|
|
171
|
+
<text x="52" y="46.5" dy=".6em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">90</text>
|
|
172
|
+
<text x="68" y="61" dy=".77em" font-size="12" font-weight="400" fill="#B91C1C" text-anchor="end">بالینی</text>
|
|
173
|
+
<rect height="25" width="493" x="60" y="88" fill="#FEFCE8" opacity=".25" />
|
|
174
|
+
<text x="52" y="83.5" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">69</text>
|
|
175
|
+
<text x="68" y="94" dy=".9em" font-size="12" font-weight="400" fill="#CA8A04" text-anchor="end">مرزی</text>
|
|
176
|
+
<rect height="99" width="493" x="60" y="113" fill="#ECFDF5" opacity=".25" />
|
|
177
|
+
<text x="52" y="108" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">64</text>
|
|
178
|
+
<text x="68" y="140" dy=".77em" font-size="12" font-weight="400" fill="#15803D" text-anchor="end">بهنجار</text>
|
|
179
|
+
<text x="52" y="176" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">30</text>
|
|
180
|
+
<text x="52" y="206" dy=".77em" font-size="12" font-weight="400" fill="#94A3B8" text-anchor="start">0</text>
|
|
181
|
+
<g transform="translate(145, 46)">
|
|
182
|
+
{{#each group3 as |item index|}}
|
|
183
|
+
<g transform="translate({{math 72 '*' index}}, 0)">
|
|
184
|
+
{{bar 24 165 (object tl=4 tr=4 bl=0 br=0) (toRad 0) fill='#F1F5F9' clip-path=item.clipPath}}
|
|
185
|
+
</g>
|
|
186
|
+
{{/each}}
|
|
187
|
+
</g>
|
|
188
|
+
<line x1="59.5" y1="45.5" x2="553" y2="45.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
189
|
+
<line x1="59.5" y1="88.5" x2="553" y2="88.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
190
|
+
<line x1="59.5" y1="113.5" x2="553" y2="113.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
191
|
+
<line x1="59.5" y1="181.5" x2="553" y2="181.5" stroke="#E2E8F0" stroke-linecap="round" stroke-dasharray="6 6"/>
|
|
192
|
+
<g transform="translate(121, 0)">
|
|
193
|
+
<g transform="translate(24, 46)">
|
|
194
|
+
{{#each group3 as |item index|}}
|
|
195
|
+
<g transform="translate({{math 72 '*' index}}, 0)">
|
|
196
|
+
<rect x="0" y="-45.5" width="24" height="14" fill="#ffffff" stroke="#94A3B8" stroke-width="1" rx="4"/>
|
|
197
|
+
<text x="12" y="-38.5" dy=".33em" font-size="10" font-weight="400" fill="#64748B" text-anchor="middle" direction="ltr">{{item.pr}}</text>
|
|
198
|
+
|
|
199
|
+
<rect x="0" y="-26" width="24" height="14" fill="{{item.rawColor}}" rx="4"/>
|
|
200
|
+
<text x="12" y="-19" dy=".33em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.value}}</text>
|
|
201
|
+
|
|
202
|
+
{{bar 24 item.height (object tl=4 tr=4 bl=0 br=0) (toRad 0) transform=item.transform fill=item.fill clip-path=item.clipPath}}
|
|
203
|
+
<text x="12" y="{{math (math 165 '-' item.height) '+' 6}}" dy=".77em" font-size="12" font-weight="400" fill="#ffffff" text-anchor="middle">{{item.t}}</text>
|
|
204
|
+
{{#each item.label as |label index|}}
|
|
205
|
+
<text x="12" y="{{math 174 '+' (math 15 '*' index)}}" dy=".9em" font-size="12" font-weight="400" fill="#475569" text-anchor="middle">
|
|
206
|
+
{{label}}
|
|
207
|
+
</text>
|
|
208
|
+
{{/each}}
|
|
209
|
+
</g>
|
|
210
|
+
{{/each}}
|
|
211
|
+
</g>
|
|
212
|
+
</g>
|
|
213
|
+
<g opacity="0.5" filter="url(#lineShadow3)" transform="translate(56.5, 207.5)">
|
|
214
|
+
<line x1="3.5" y1="4.5" x2="495.5" y2="4.5" stroke="white" stroke-linecap="round" />
|
|
215
|
+
</g>
|
|
216
|
+
</g>
|
|
217
|
+
</g>
|
|
218
|
+
</g>
|
|
219
|
+
|
|
220
|
+
{{/layout}}
|