exner 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.autotest +23 -0
- data/.gemtest +0 -0
- data/History.txt +4 -0
- data/Manifest.txt +42 -0
- data/README.txt +49 -0
- data/Rakefile +19 -0
- data/bin/rorschach +4 -0
- data/bin/zulliger +4 -0
- data/data/.~lock.sumario_Zulliger.rtf# +1 -0
- data/data/Rorschach_Zest.txt +50 -0
- data/data/Zulliger_Zest.txt +50 -0
- data/data/sumario.rtf +240 -0
- data/data/sumario2.rtf +271 -0
- data/data/sumario_Rorschach.rtf +233 -0
- data/data/sumario_Zulliger.rtf +203 -0
- data/data/test_manchas.txt +16 -0
- data/data/zulli_test.txt +11 -0
- data/lib/exner/respuesta.rb +110 -0
- data/lib/exner/rorschach.rb +11 -0
- data/lib/exner/rorschach_plugins/cdi.rb +22 -0
- data/lib/exner/rorschach_plugins/depi.rb +38 -0
- data/lib/exner/rorschach_plugins/hvi.rb +25 -0
- data/lib/exner/rorschach_plugins/interpretacion.rb +438 -0
- data/lib/exner/rorschach_plugins/obs.rb +36 -0
- data/lib/exner/rorschach_plugins/scon.rb +44 -0
- data/lib/exner/rorschach_plugins/sczi.rb +25 -0
- data/lib/exner/rtf/rorschach.rb +69 -0
- data/lib/exner/rtf/zulliger.rb +59 -0
- data/lib/exner/rtf.rb +46 -0
- data/lib/exner/test_manchas.rb +445 -0
- data/lib/exner/zulliger.rb +26 -0
- data/lib/exner/zulliger_plugins/interpretacion.rb +328 -0
- data/lib/exner.rb +44 -0
- data/test/extras.rb +11 -0
- data/test/helpers_tests.rb +41 -0
- data/test/test_depi.rb +29 -0
- data/test/test_exner.rb +100 -0
- data/test/test_hvi.rb +33 -0
- data/test/test_obs.rb +29 -0
- data/test/test_rorschach.rb +1 -0
- data/test/test_scon.rb +34 -0
- data/test/test_sczi.rb +29 -0
- data/test/text_cdi.rb +28 -0
- data.tar.gz.sig +0 -0
- metadata +193 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,438 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'iconv'
|
3
|
+
module Exner
|
4
|
+
class Rorschach
|
5
|
+
# calcula, para un determinado valor en los baremos
|
6
|
+
# el porcentaje que le corresponde al valor específico
|
7
|
+
# hace el ajuste en función al número de respuestas
|
8
|
+
def norma(valor)
|
9
|
+
r_est=22.67
|
10
|
+
return (valor*self.R) / r_est
|
11
|
+
end
|
12
|
+
def respuestatriple(valor,bajo,alto,resp_bajo,resp_alto,resp_normal)
|
13
|
+
if valor<bajo
|
14
|
+
return resp_bajo
|
15
|
+
elsif valor>alto
|
16
|
+
return resp_alto
|
17
|
+
else
|
18
|
+
return resp_normal
|
19
|
+
end
|
20
|
+
end
|
21
|
+
def interpretacion
|
22
|
+
salida=Array.new
|
23
|
+
# Lambda
|
24
|
+
salida.push('{\b Controles}')
|
25
|
+
if self.R < 14
|
26
|
+
salida.push('{\b ATENCION: POCAS RESPUESTAS. TEST INVALIDO}')
|
27
|
+
end
|
28
|
+
|
29
|
+
if self.L> 0.84
|
30
|
+
salida.push("L aumentado. Sobresimplificación perceptiva. Registro sólo de lo cognitivo. Se evita lo emocional. INHIBICION DE POTENCIAL: Restricción emocional, sobrecontrol")
|
31
|
+
if self.L>1
|
32
|
+
if self.R >=17 or self.EA>=4
|
33
|
+
salida.push("Estilo evitativo. Trata estímulos de forma simple, evitando aspectos intrincado y ambigüedades")
|
34
|
+
else
|
35
|
+
salida.push("DEFENSIVIDAD SITUACIONAL. Puede ser que EA no sea válido")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
elsif self.L<0.32
|
39
|
+
salida.push("L < disminuido. No es capaz de simplificar las percepciones. Sobrestimulación emocional, pudiéndose agotar. Revisar Hiperincorporación. INHIBICION DE POTENCIAL: sobrestimulación, especialmente emocional")
|
40
|
+
else
|
41
|
+
salida.push("L normal. Manejo normal de la cantidad de información")
|
42
|
+
end
|
43
|
+
# Tipo vivencial
|
44
|
+
if self.EA>=4
|
45
|
+
salida.push("Estilo vivencial bien definido")
|
46
|
+
else
|
47
|
+
salida.push("No se puede definir bien el estilo vivencial")
|
48
|
+
end
|
49
|
+
|
50
|
+
dif=(sumdet("M")-sumcolpond).abs
|
51
|
+
if sumdet("M")>sumcolpond and dif>=2
|
52
|
+
salida.push("Intratensivo. Para solucionar sus problemas recurren a su mundo interno.")
|
53
|
+
elsif sumdet("M")<sumcolpond and dif>=2
|
54
|
+
salida.push("Extratensivo. Para solucionar sus problemas recurren al mundo externo")
|
55
|
+
else
|
56
|
+
salida.push("Ambigual. NO tiene un estilo defeinido. Dudan mucho entre el pensar y el actuar y se desgantan")
|
57
|
+
end
|
58
|
+
# Estilo organizativo
|
59
|
+
if (self.Zd>3)
|
60
|
+
salida.push("Estilo hiperincorporador. Minucioso al recoger información del medio, teniendo dificultades para distinguir lo importante de lo accesorio")
|
61
|
+
elsif (self.Zd<-3)
|
62
|
+
salida.push("Estilo hipoincorporador. Decide rápidamente en función de lo más llamativo. Tiende a ser rápido, pero en su precipitación puede equivocarse")
|
63
|
+
else
|
64
|
+
salida.push("Estilo organizativo normal. Registra la información de forma eficaz y organiza activamente la información de su entorno")
|
65
|
+
end
|
66
|
+
# D
|
67
|
+
if (self.D>0)
|
68
|
+
salida.push("D positivo. Buena tolerancia al estrés, utilizando bien sus recursos y respondiendo a demandas del ambiente")
|
69
|
+
elsif (self.D==0)
|
70
|
+
salida.push("D=0. Buena tolerancia al estrés, pero se puede descompensar")
|
71
|
+
else
|
72
|
+
if(self.AdjD>self.D)
|
73
|
+
salida.push("D<0 y AdjD menor. Sobrecarga situacional. Algo lo tiene sobrepasado")
|
74
|
+
else
|
75
|
+
salida.push("D<0 y AdjD igual. Tensión y sufrimiento crónico. Disposición crónica a la desorganización")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
# estimulacion sufrida (es)
|
79
|
+
|
80
|
+
if eb_izq>eb_der
|
81
|
+
salida.push("FM+m aumentado. Ideas sin que el sujeto se lo proponga. Sobrecarga interna.")
|
82
|
+
if sumdet("FM")>sumdet("m")
|
83
|
+
salida.push("FM>m. Malestar crónico por necesidades insatisfechas")
|
84
|
+
elsif sumdet("m")>sumdet("FM")
|
85
|
+
salida.push("m>FM. Malestar agudo, por estresante actual")
|
86
|
+
end
|
87
|
+
elsif eb_der>eb_izq
|
88
|
+
salida.push("C'+T+V+Y aumentados. Aumento del sufrimiento y del dolor psíquico causado por situaciones internas")
|
89
|
+
else
|
90
|
+
salida.push("Necesidades y sufrimientos en igual grado")
|
91
|
+
end
|
92
|
+
|
93
|
+
if sumdet("FM")>norma(4.89)
|
94
|
+
salida.push("FM aumentada. Necesidades insatisfechas de forma crónica. Es un sujeto que quiere gratificarse ahora, puede estar a merced de sus impulsos, lo cual lo puede llevar a conductas desadaptativas")
|
95
|
+
elsif sumdet("FM")< norma(2.51)
|
96
|
+
salida.push("FM disminuido. Represión de necesidades básicas")
|
97
|
+
end
|
98
|
+
|
99
|
+
if sumdet("m")>norma(1.97)
|
100
|
+
salida.push("m aumentado. Malestar por necesidades externas agudo aumentado")
|
101
|
+
end
|
102
|
+
|
103
|
+
if sumdet("Y")>norma(1.57)
|
104
|
+
salida.push("Claroscuro difuso aumentado. Angustia, sensación de indefensión, parálisis, desamparto")
|
105
|
+
end
|
106
|
+
if self.EA>self.es+2
|
107
|
+
salida.push("EA>es+2. Sujeto tiene recursos para satisfacer sus necesiades")
|
108
|
+
elsif self.EA<self.es
|
109
|
+
salida.push("EA<es. Sujeto no tiene suficientes recursos para satisfacer sus necesidades. INHIBICION DE POTENCIAL")
|
110
|
+
else
|
111
|
+
salida.push("Recursos suficientes, pero a veces se puede desbordar. POSIBLE INHIBICION DE POTENCIAL")
|
112
|
+
end
|
113
|
+
|
114
|
+
salida.push('{\b Mediación}')
|
115
|
+
|
116
|
+
if fmas >= 0.88
|
117
|
+
salida.push("FQX% elevado. Exagerada precoupación por la realidad, en desmedro de la propia singularidad(rigidez)")
|
118
|
+
elsif fmas <= 0.54
|
119
|
+
salida.push("FQX% disminuido. Distorsión de la realidad. Puede ser creatividad, subjetividad o distorsión propiamente tal")
|
120
|
+
else
|
121
|
+
salida.push("FQX% normal. Buen control de la realidad, objetivo y con buena capacidad intelectual")
|
122
|
+
end
|
123
|
+
|
124
|
+
if xmas>=0.87
|
125
|
+
salida.push("X+% elevado. Cuando los afectos están involucrado, la persona se va a apegar mucho a la realidad y puede paralizarse")
|
126
|
+
elsif xmas<=0.71
|
127
|
+
salida.push("X+% disminuido. Cuando los afectos están involucrados, no pueden ser muy objetivos. Revisar FQXu y - para ver si es patológico o no")
|
128
|
+
else
|
129
|
+
salida.push("X+% normal. El sujeto es capaz de manejar sus afectos de modo bastante objetivo")
|
130
|
+
end
|
131
|
+
|
132
|
+
if wda<=0.75
|
133
|
+
salida.push("WDA+%<0.75. La percepción es inadecuada en situaciones obvias")
|
134
|
+
else
|
135
|
+
salida.push("WDA+%>0.75. La percepción es adecuada en situaciones obvias")
|
136
|
+
end
|
137
|
+
|
138
|
+
if xa<=0.7
|
139
|
+
salida.push("Xa%<0.7. Trastorno de percepción en situaciones inusuales")
|
140
|
+
else
|
141
|
+
salida.push("Xa%>0.7. La percepción es adecuada en situaciones inusuales")
|
142
|
+
end
|
143
|
+
|
144
|
+
if xmenos>0.25
|
145
|
+
salida.push("X-%>0.25. Preocupante alejamiento de lo convencional")
|
146
|
+
end
|
147
|
+
if smenos>0.30
|
148
|
+
salida.push("S-%>0.30. Fuerte interferencia emocional en situaciones de rabia")
|
149
|
+
end
|
150
|
+
|
151
|
+
if @populares<5
|
152
|
+
salida.push("P<5. Tiene dificultades para percibir las normas sociales(psicótico-sociópata). O puede ser muy brillante y arrogante y no quiere contestar las obvias.")
|
153
|
+
if @populares<2
|
154
|
+
salida.push("Hiciste límite, supongo...")
|
155
|
+
end
|
156
|
+
elsif @populares>=5 and @populares<=8
|
157
|
+
salida.push("5<P<8. Puede percibir y acatar las normas sociales")
|
158
|
+
else
|
159
|
+
salida.push("P>8. Sobresocializado. Demasiado atento a las normas sociales. sobresocializado")
|
160
|
+
end
|
161
|
+
|
162
|
+
salida.push('{\b Ideación}')
|
163
|
+
|
164
|
+
if(sumdet("F")>norma(10.66))
|
165
|
+
salida.push("F aumentadas. Muy defensivo, teme sus emociones y las evite")
|
166
|
+
elsif(sumdet("F")<norma(5.32))
|
167
|
+
salida.push("F disminuidas. Expresión descontrolada de los impulsos. Falta de demora cognitiva")
|
168
|
+
end
|
169
|
+
if pasivos>activos+1
|
170
|
+
salida.push("p>a+1. Persona que tiende a asumir un rol pasivo frente a los demás. Vigilar T, P, Ego disminuido y Fd")
|
171
|
+
|
172
|
+
salida.push("T>0.Pasivo por necesidad de afecto") if (sumdet('T')>0)
|
173
|
+
salida.push("P>4.Pasivo por Sobresocialización") if (@populares>4)
|
174
|
+
salida.push("Fd>0. Pasivo por dependencia") if (_c['Fd']>0)
|
175
|
+
if (sumdet("M")+sumdet("FM")+sumdet("m"))<4
|
176
|
+
salida.push("Hay pocos movimientos para estar seguro sobre la pasividad")
|
177
|
+
end
|
178
|
+
|
179
|
+
else
|
180
|
+
salida.push("a+1>p. Persona adopta rol activo")
|
181
|
+
end
|
182
|
+
if (pasivos-activos).abs>4
|
183
|
+
salida.push("Dif pasivos activos > 4. Rigidez cognitiva")
|
184
|
+
end
|
185
|
+
|
186
|
+
if _d['Mp']>_d['Ma']+1
|
187
|
+
salida.push("Mp>Ma+1. Crea fantasías, pero tiene dificultades para hacer deliberaciones eficaces. Ocupa su inteligencia para escapar de los problemas, no para afrontarlos")
|
188
|
+
salida.push("Pocos Movimientos humanos para estar seguro de esto") if sumdet("M")<2
|
189
|
+
end
|
190
|
+
if intelectualizacion>=5
|
191
|
+
salida.push("Intelectualización alta. Uso abusivo de la intelectualizacion")
|
192
|
+
end
|
193
|
+
|
194
|
+
if _ccee['MOR']>2
|
195
|
+
salida.push("MOR>2. Pesimismo")
|
196
|
+
end
|
197
|
+
if m_menos>1
|
198
|
+
salida.push("M->0. ALERTA. Mal signo. Sus recursos ideativos presentan alteraciones, con ideación paranoide.")
|
199
|
+
end
|
200
|
+
if self.SumBr6>=norma(6.17)
|
201
|
+
salida.push("SumBr6 aumentada .Posible trastorno del pensamiento. INHIBICION DEL POTENCIAL")
|
202
|
+
end
|
203
|
+
if self.SumPon6>2
|
204
|
+
salida.push("SumPon6>2.Posible trastorno del pensamiento. INHIBICION DEL POTENCIAL")
|
205
|
+
end
|
206
|
+
if msin>0
|
207
|
+
salida.push("M sin >0. Es una persona que puede desorientarse y perder contacto con la realidad")
|
208
|
+
end
|
209
|
+
#
|
210
|
+
# AFECTOS
|
211
|
+
#
|
212
|
+
salida.push('{\b Afectos}')
|
213
|
+
|
214
|
+
if det['FC']<(det['CF']+det['C'])*2
|
215
|
+
salida.push("FC<CF+C*2. Vigilar poco control sobre descarga emocional")
|
216
|
+
salida.push("C>CF. Posible impulsividad!") if det['C']>det['CF']
|
217
|
+
end
|
218
|
+
|
219
|
+
if det['C']>0
|
220
|
+
salida.push("C>0. Persona que disfruta mucho de situaciones vertiginosas. ")
|
221
|
+
end
|
222
|
+
|
223
|
+
if sumdet("C'")>det['FC']*0.5+det['CF']+det['C']*1.5
|
224
|
+
salida.push("SumC':SumPondC hacia derecha. Se internaliza en demasía la descarga afectiva. Posible somatización")
|
225
|
+
end
|
226
|
+
|
227
|
+
if self.Afr<0.53
|
228
|
+
salida.push("Afr disminuido. Evitación de situaciones emocionales. Trabaja mejor en ambientes sin carga emocional")
|
229
|
+
elsif self.Afr>0.85
|
230
|
+
salida.push("Afr umentado. Atracción por estimulación emocional. Trabaja mejor en ambientes cargados afectivamente.")
|
231
|
+
else
|
232
|
+
salida.push("Afr normal. Interés normal por estimulación emocional.")
|
233
|
+
end
|
234
|
+
|
235
|
+
if complj_r<0.2 and self.L<=1.51
|
236
|
+
salida.push("Compl/r dism y L normal. Tiende a simplificar las situaciones, aunque no de manera excesiva")
|
237
|
+
elsif complj_r<0.2 and self.L> 1.51
|
238
|
+
salida.push("Compl/r dism y L alto. Limitación de tipo intelectual o tendencia a simplificar demasiado la situación")
|
239
|
+
elsif complj_r>0.25 and self.EA>7
|
240
|
+
salida.push("Compl/r alta y muchos recursos. Buen signo. Tiene capacidad para considerar de manera integral los estímulos y buena capacidad para elaborarlos ")
|
241
|
+
elsif complj_r>0.25 and self.EA<2
|
242
|
+
salida.push("Compl/r alta y pocos recursos. Mal signo. Puede tener dificultad para controlar y puede desorganizarse")
|
243
|
+
else
|
244
|
+
salida.push("complejas normal. Capacidad normal para manejar de forma integral los estímulos")
|
245
|
+
end
|
246
|
+
|
247
|
+
if _l['S'].to_f/self.R>0.2
|
248
|
+
salida.push("S aumentado. Vigilar si es autonomía u oposicionismo")
|
249
|
+
end
|
250
|
+
#
|
251
|
+
# PROCESAMIENTO
|
252
|
+
#
|
253
|
+
|
254
|
+
salida.push('{\b Procesamiento}')
|
255
|
+
salida.push(respuestatriple(self.Zf,norma(9.22),norma(14.4),
|
256
|
+
"Zf dism. Sujeto con poco interés por organizar. Puede ser por limitación intelectual o depresión",
|
257
|
+
"Zf alto. Alto nivel de motivación , que dedican al proceso de información más energía que el promedio",
|
258
|
+
"Zf normal. Motivación e interés normal para organizar elementos del entorno")
|
259
|
+
)
|
260
|
+
|
261
|
+
if _l['W'].to_f/self.R>0.50
|
262
|
+
salida.push("W aumentadas. Gran interés por tareas de análisis y por organizar los componentes del mundo interno en un todo significativo")
|
263
|
+
elsif _l['W'].to_f/self.R<0.15
|
264
|
+
salida.push("W disminuidas. Poco interés en tareas de análisis y dificultad para integrar los elementos de su mundo interno en un todo significativo. Revisar síntomas depresivos")
|
265
|
+
end
|
266
|
+
|
267
|
+
if _l['D'].to_f/self.R>0.70
|
268
|
+
salida.push("D aumentadas. Mucho apego a lo práctico")
|
269
|
+
elsif _l['D'].to_f/self.R<0.30
|
270
|
+
salida.push("D disminuidas. Pierde sentido de lo práctico. Vigilar W y Dd")
|
271
|
+
if _l['W'].to_f/self.R>0.50
|
272
|
+
salida.push("W aum. Pierde sentido de lo práctico por irse en la volada")
|
273
|
+
elsif _l['W'].to_f/self.R>0.50
|
274
|
+
salida.push("Dd aum . Pierde sentido de lo práctico por el detalle")
|
275
|
+
|
276
|
+
else
|
277
|
+
salida.push("Revisa bien los datos, que no pude cachar el mote")
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
if _l['Dd'].to_f/self.R>40
|
282
|
+
salida.push("Dd aumentadas. Muy apegado a la exactitud. temor a cometer equivocaciones. Personas inseguras que se van por las ramas")
|
283
|
+
elsif _l['Dd'].to_f/self.R<0.05
|
284
|
+
salida.push("Dd disminuidas. No muy preocupada por la exactitud")
|
285
|
+
end
|
286
|
+
|
287
|
+
rel_aspir=_l['W'].to_f/sumdet('M')
|
288
|
+
|
289
|
+
if (rel_aspir> 2.5)
|
290
|
+
salida.push("W*2>M ("+rel_aspir.to_s+"); Aspiraciones sobre los recursos. El sujeto se puede frustrar")
|
291
|
+
elsif (rel_aspir<1.5)
|
292
|
+
salida.push("W*2<M ("+rel_aspir.to_s+"); Aspiraciones bajo los recursos. Los gasta en fantasías, vigilar pasividad")
|
293
|
+
else
|
294
|
+
salida.push("W*2=M ("+rel_aspir.to_s+"); Aspiraciones adecuadas a los recursos")
|
295
|
+
end
|
296
|
+
rel_teor=_l['W'].to_f / _l['D'].to_f
|
297
|
+
if (rel_teor> 2.5)
|
298
|
+
salida.push("Teórico ("+rel_teor.to_s+")")
|
299
|
+
elsif (rel_teor<1.5)
|
300
|
+
salida.push("Práctico ("+rel_teor.to_s+")")
|
301
|
+
else
|
302
|
+
salida.push("Equilibrio Teórico práctico ("+rel_teor.to_s+")")
|
303
|
+
end
|
304
|
+
|
305
|
+
if zsum<15
|
306
|
+
salida.push("ZSum<15. Poca interés en integrar")
|
307
|
+
elsif zsum>32
|
308
|
+
salida.push("ZSum>32. Alto interés en integrar")
|
309
|
+
else
|
310
|
+
salida.push("ZSum normal. Interés normal en integrar estímulos")
|
311
|
+
end
|
312
|
+
#
|
313
|
+
# INTERPERSONAL
|
314
|
+
#
|
315
|
+
|
316
|
+
salida.push('{\b Interpersonal}')
|
317
|
+
if _ccee['COP']==0 and _ccee['AG']==0
|
318
|
+
salida.push("COP y AG=0. Poco interés en relaciones interpersonales")
|
319
|
+
end
|
320
|
+
salida.push("Fd>0. Rasgos incrementados de dependencia") if _c['Fd']>0
|
321
|
+
if aislamiento_r>0.29
|
322
|
+
salida.push("Aisl>0.29. Sujeto menos implicados que el resto en lo social")
|
323
|
+
else
|
324
|
+
salida.push("Aisl normal. Sujeto implicado en lo social")
|
325
|
+
end
|
326
|
+
|
327
|
+
# a (H+Dh:A+Ad)
|
328
|
+
rel=(_c['H']+_c['Hd']).to_f/(_c['A']+_c['Ad'])
|
329
|
+
if rel<0.3
|
330
|
+
salida.push("H+Dh:A+Ad hacia animal. Persona se está aislando. No tiene interés en otros")
|
331
|
+
elsif rel>0.5
|
332
|
+
salida.push("H+Dh:A+Ad hacia humano. Persona con interés exagerado por relacionarse")
|
333
|
+
else
|
334
|
+
salida.push("H+Dh:A+Ad equilibrado. Persona con interés normal por relacionarse")
|
335
|
+
end
|
336
|
+
rel=(_c['H']+_c['A']).to_f/(_c['Hd']+_c['Ad'])
|
337
|
+
if rel<0.3
|
338
|
+
salida.push("H+A:Hd+Ad hacia parcial. Se relaciona con objetos parciales, disocia, escinde, se relaciona con partes del otro")
|
339
|
+
else
|
340
|
+
salida.push("H+A:Hd+Ad hacia total. Persona se relaciona con objetos totales")
|
341
|
+
end
|
342
|
+
|
343
|
+
if (_c['H']+_c['Hd']) >= (_c['(H)']+_c['(Hd)'])*3
|
344
|
+
salida.push("H+Hd>(H)+(hd)*3: Se relaciona a nivel concreto")
|
345
|
+
else
|
346
|
+
salida.push("H+Hd<(H)+(hd)*3: Se relaciona en la fantasía")
|
347
|
+
end
|
348
|
+
|
349
|
+
if porcentaje(_c['H']+_c['Hd'])>=0.2
|
350
|
+
salida.push("H+Hd>=20%. Capacidad e interés en relacionarse con otros")
|
351
|
+
else
|
352
|
+
salida.push("H+Hd<20%. Poca capacidad e interés en relacionarse con otros")
|
353
|
+
end
|
354
|
+
if (_c['Hd']+_c['(H)']+_c['(Hd)'])*3>_c['H']
|
355
|
+
salida.push("H<Hd+(H)+(Hd)*3: Problemas en interpersonal. Revisar protocolo para ver que pasa.")
|
356
|
+
salida.push("Puede que no sea válido, porque faltan humanos") if (_c['Hd']+_c['(H)']+_c['(Hd)']+_c['H'])<3
|
357
|
+
end
|
358
|
+
if _c['Hd']*3>_c['H']
|
359
|
+
salida.push("H<Hd*3: Angustia, depresión y fobia social. Aumenta si los Hd son perfiles de caras")
|
360
|
+
end
|
361
|
+
|
362
|
+
if a_porciento>0.47
|
363
|
+
salida.push("A% aumentado. Sujeto inmaduro, rutinario, predecible")
|
364
|
+
elsif a_porciento<0.31
|
365
|
+
salida.push("A% disminuido. Sujeto Flexible. Si es muy bajo, poco comprometido")
|
366
|
+
else
|
367
|
+
salida.push("A% normal. Buena adaptación social")
|
368
|
+
end
|
369
|
+
|
370
|
+
if @tipos_contenidos>=5
|
371
|
+
salida.push("Tipos de contenido mayor a 5. Flexibilidad intelectual y distintos intereses")
|
372
|
+
else
|
373
|
+
salida.push("Tipos de contenido menor a 5. Poca flexibilidad intelectual y pocos intereses")
|
374
|
+
end
|
375
|
+
salida.push('{\b Autopercepción}')
|
376
|
+
if autocentracion<0.32
|
377
|
+
salida.push("ego disminuido. Tiene dificultades para tomarse a sí mismo como centro de interes")
|
378
|
+
elsif autocentracion>0.46
|
379
|
+
salida.push("ego aumentado. Sujeto tiende a tomarse como centro de sus preocupaciones. Privilegia mucho su propio punto de vista. Le cuesta ser flexibles")
|
380
|
+
else
|
381
|
+
salida.push("ego normal. Capacidad normal para ser el eje de su propia atención")
|
382
|
+
end
|
383
|
+
if sumdet("V")>norma(0.84)
|
384
|
+
salida.push("Vista aumentado. Instrospección dolorosa. El sujeto se mira a si mismo con culpa")
|
385
|
+
end
|
386
|
+
if sumdet("FD")>norma(2.03)
|
387
|
+
salida.push("FD aumentada. Anormal distanciamiento del yo. Si está en terapia, es normal")
|
388
|
+
end
|
389
|
+
salida.push("Xy+An>2. Si no hay problemas físicos, trastornos de autoimagen") if an_xy>2
|
390
|
+
salida.push("MOR>2. Pesimismo") if _ccee['MOR']>2
|
391
|
+
|
392
|
+
if _c['H']>_c['(H)']+_c['Hd']+_c['(Hd)']
|
393
|
+
salida.push("H>(H)+Hd+(Hd). Percepción realista de sí mismo")
|
394
|
+
else
|
395
|
+
salida.push("H<(H)+Hd+(Hd). Percepción no realista de sí mismo")
|
396
|
+
end
|
397
|
+
|
398
|
+
#
|
399
|
+
# POTENCIAL INTELECTUAL
|
400
|
+
#
|
401
|
+
salida.push('{\b Potencial intelectual}')
|
402
|
+
salida.push("Revisa que los valores estén sobre, en o bajo el promedio")
|
403
|
+
salida.push(respuestatriple(self.R, 18.44, 26.9,
|
404
|
+
"R disminuida. Signo de potencial bajo",
|
405
|
+
"R aumentada. Signo de potencial superior",
|
406
|
+
"R normal. Signo de potencial normal"))
|
407
|
+
salida.push(respuestatriple(fmas, 0.54, 0.88,
|
408
|
+
"F+% disminuido. Signo de potencial bajo",
|
409
|
+
"F+% aumentado. Signo de potencial normal, pero posiblemente bajo",
|
410
|
+
"F+% normal. Signo de potencial normal o superior"))
|
411
|
+
salida.push(respuestatriple(xmas, 0.71, 0.87,
|
412
|
+
"X+% disminuido. Signo de potencial bajo",
|
413
|
+
"X+% aumentado. Signo de potencial normal, pero posiblemente bajo",
|
414
|
+
"X+% normal. Signo de potencial normal o superior"))
|
415
|
+
salida.push(respuestatriple(@frecuencias['dq']['+'], 5.15,9.47,
|
416
|
+
"DQ+ disminuido. Signo de potencial normal o bajo",
|
417
|
+
"DQ+ aumentado. Signo de potencial alto",
|
418
|
+
"DQ+ normal. Signo de potencial normal"))
|
419
|
+
salida.push(respuestatriple(@frecuencias['fqx']['+'], 0,1.82,
|
420
|
+
"FQX+ disminuido. Signo de potencial normal o bajo",
|
421
|
+
"FQX+ aumentado. Signo de potencial alto",
|
422
|
+
"FQX+ normal. Signo de potencial normal"))
|
423
|
+
salida.push(respuestatriple(@frecuencias['dq']['v'], 0.04,2.56,
|
424
|
+
"DQv disminuido. Signo de potencial normal",
|
425
|
+
"DQv aumentado. Signo de potencial bajo",
|
426
|
+
"DQv normal. Signo de potencial normal"))
|
427
|
+
salida.push(respuestatriple(@frecuencias['dq']['v/+'], 0,1.07,
|
428
|
+
"DQv disminuido. Signo de potencial normal",
|
429
|
+
"DQv aumentado. Signo de potencial bajo",
|
430
|
+
"DQv normal. Signo de potencial normal"))
|
431
|
+
|
432
|
+
#salida.collect {|a|
|
433
|
+
# Iconv.conv('ISO-8859-1','UTF-8',a)
|
434
|
+
#}
|
435
|
+
salida
|
436
|
+
end
|
437
|
+
end
|
438
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
class Rorschach
|
4
|
+
public
|
5
|
+
def obs(lista=false)
|
6
|
+
total=0
|
7
|
+
cons={
|
8
|
+
1=>localizaciones['Dd']>3,
|
9
|
+
2=>(self.Zf>12),
|
10
|
+
3=>(self.Zd>3),
|
11
|
+
4=>(@populares>7),
|
12
|
+
5=>(_f['fqx']['+']>1),
|
13
|
+
|
14
|
+
}.each {|n,r|
|
15
|
+
total+=1 if r
|
16
|
+
}
|
17
|
+
lista ? cons : total
|
18
|
+
end
|
19
|
+
def obs_si
|
20
|
+
return (obs_si_bool) ? 'Sí':'No'
|
21
|
+
end
|
22
|
+
def obs_si_bool
|
23
|
+
return true if obs==5
|
24
|
+
return true if (obs>=3 and xmas>0.89)
|
25
|
+
return true if (_f['fqx']['+']>3 and xmas>0.89)
|
26
|
+
l=obs(true)
|
27
|
+
|
28
|
+
return true if ((bi(l[1])+bi(l[2])+bi(l[3])+bi(l[4]))>=2 and _f['fqx']['+']>3)
|
29
|
+
false
|
30
|
+
end
|
31
|
+
private
|
32
|
+
def bi(v)
|
33
|
+
v ? 1: 0
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
class Rorschach
|
4
|
+
public
|
5
|
+
def scon(lista=false)
|
6
|
+
det=@frecuencias['determinantes']
|
7
|
+
total=0
|
8
|
+
cons={
|
9
|
+
1=>sumdet('V')+det['FD']>2,
|
10
|
+
2=>scon_col_sombra>0,
|
11
|
+
3=>(aislamiento_r<0.31 or aislamiento_r>0.44),
|
12
|
+
4=>@frecuencias['ccee']['MOR']>3,
|
13
|
+
5=> (self.Zd > 3.5 or self.Zd < -3.5) ,
|
14
|
+
6=>es>self.EA,
|
15
|
+
7=>det['CF']+det['C']>det['FC'],
|
16
|
+
8=>xmas<0.7,
|
17
|
+
9=>localizaciones['S']>3,
|
18
|
+
10=>(@populares<3 or @populares>8),
|
19
|
+
11=>@frecuencias['contenidos']['H']<2,
|
20
|
+
12 => self.R<17
|
21
|
+
}.each {|n,r|
|
22
|
+
total+=1 if r
|
23
|
+
}
|
24
|
+
lista ? cons : total
|
25
|
+
|
26
|
+
end
|
27
|
+
def scon_si
|
28
|
+
return (scon>7) ? 'Sí':'No'
|
29
|
+
end
|
30
|
+
private
|
31
|
+
def scon_col_sombra
|
32
|
+
suma=0
|
33
|
+
@respuestas.each {|n,resp|
|
34
|
+
cond1=cond2=false
|
35
|
+
resp.determinantes.each {|d|
|
36
|
+
cond1=true if d=~/Y/
|
37
|
+
cond2=true if d=='FC' or d=='CF' or d=='C'
|
38
|
+
}
|
39
|
+
suma=+1 if cond1 and cond2
|
40
|
+
}
|
41
|
+
suma
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
module Exner
|
3
|
+
class Rorschach
|
4
|
+
public
|
5
|
+
def sczi(lista=false)
|
6
|
+
det=@frecuencias['determinantes']
|
7
|
+
fq=@frecuencias['fqx']
|
8
|
+
total=0
|
9
|
+
cons={
|
10
|
+
1=>((xmas<0.61 and smenos<0.41) or xmas<0.50),
|
11
|
+
2=>xmenos>0.29,
|
12
|
+
3=>((fq['-']>fq['u'])or(fq['-']>fq['o']+fq['+'])),
|
13
|
+
4=>(nvl2>1 and @frecuencias['ccee']['FABCOM2']>0),
|
14
|
+
5=>(self.SumBr6>6 or self.SumPon6>17),
|
15
|
+
6=>(@frecuencias['mq']['-']>1 or xmenos>0.4),
|
16
|
+
}.each {|n,r|
|
17
|
+
total+=1 if r
|
18
|
+
}
|
19
|
+
lista ? cons : total
|
20
|
+
end
|
21
|
+
def sczi_si
|
22
|
+
return (sczi > 3) ? 'Sí':'No'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'erb'
|
2
|
+
module Exner
|
3
|
+
module Rtf
|
4
|
+
module Rorschach
|
5
|
+
def _dcp(c)
|
6
|
+
_ds[c.gsub('C',"C'")]
|
7
|
+
end
|
8
|
+
def _cd(c)
|
9
|
+
c+" = "+_f['contenidos_1'][c].to_s+","+_f['contenidos_2'][c].to_s
|
10
|
+
end
|
11
|
+
def detRtf
|
12
|
+
s=""
|
13
|
+
@respuestas.each {|n,r|
|
14
|
+
s+="\n\\par "+r.determinantes.join('.')+r.fq if r.determinantes.size>1
|
15
|
+
}
|
16
|
+
s
|
17
|
+
end
|
18
|
+
def _ds
|
19
|
+
determinantes_simples
|
20
|
+
end
|
21
|
+
def superscript(a)
|
22
|
+
'{{\*\updnprop5801}\up8 '+a+'}'
|
23
|
+
end
|
24
|
+
def _res_enf
|
25
|
+
a=resumen_del_enfoque.collect {|lam|
|
26
|
+
Exner.a_romano(lam[0])+":"+lam[1].join(',')
|
27
|
+
}.join("\n\\par ")+"\n"
|
28
|
+
end
|
29
|
+
def _lq(tipo)
|
30
|
+
s=''
|
31
|
+
Exner::FQ_VALIDAS.each {|fq|
|
32
|
+
s+=fq+":"+_f[tipo][fq].to_s+"\n\\par "
|
33
|
+
}
|
34
|
+
s
|
35
|
+
end
|
36
|
+
def ldq
|
37
|
+
s=''
|
38
|
+
Exner::DQ_VALIDAS.each {|dq|
|
39
|
+
s+=dq+":"+_f['dq'][dq].to_s+"\n\\par "
|
40
|
+
}
|
41
|
+
s
|
42
|
+
end
|
43
|
+
def aParrafos(array)
|
44
|
+
array.collect {|x|
|
45
|
+
"\n\\par "+x.to_s
|
46
|
+
}
|
47
|
+
end
|
48
|
+
def self.process(text)
|
49
|
+
t=Exner::Rorschach.new
|
50
|
+
t.open_stream(text)
|
51
|
+
t.procesar
|
52
|
+
t.extend(Exner::Rtf::Rorschach)
|
53
|
+
template=File.read(Exner.dir_data+'/sumario_Rorschach.rtf')
|
54
|
+
zz=t
|
55
|
+
ERB.new(template).result(binding)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
#$t= Exner::Rorschach.new
|
61
|
+
#$t.open_file(ARGV[0])
|
62
|
+
#$t.procesar
|
63
|
+
#$t.extend(ExnerRtf)
|
64
|
+
#template=''
|
65
|
+
#File.open(Exner.dir_root+'/sumario_Rorschach.rtf','r') {|afile| afile.each_line #{|l|
|
66
|
+
# template+=l
|
67
|
+
#
|
68
|
+
#}}
|
69
|
+
#puts ERB.new(template).result
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'erb'
|
2
|
+
module Exner
|
3
|
+
module Rtf
|
4
|
+
module Zulliger
|
5
|
+
def _dcp(c)
|
6
|
+
_ds[c.gsub('C',"C'")]
|
7
|
+
end
|
8
|
+
def _cd(c)
|
9
|
+
c+" = "+_f['contenidos_1'][c].to_s+","+_f['contenidos_2'][c].to_s
|
10
|
+
end
|
11
|
+
def detRtf
|
12
|
+
s=""
|
13
|
+
@respuestas.each {|n,r|
|
14
|
+
s+="\n\\par "+r.determinantes.join('.')+r.fq if r.determinantes.size>1
|
15
|
+
}
|
16
|
+
s
|
17
|
+
end
|
18
|
+
def _ds
|
19
|
+
determinantes_simples
|
20
|
+
end
|
21
|
+
def superscript(a)
|
22
|
+
'{{\*\updnprop5801}\up8 '+a+'}'
|
23
|
+
end
|
24
|
+
def _res_enf
|
25
|
+
a=resumen_del_enfoque.collect {|lam|
|
26
|
+
Exner.a_romano(lam[0])+":"+lam[1].join(',')
|
27
|
+
}.join("\n\\par ")+"\n"
|
28
|
+
end
|
29
|
+
def _lq(tipo)
|
30
|
+
s=''
|
31
|
+
Exner::FQ_VALIDAS.each {|fq|
|
32
|
+
s+=fq+":"+_f[tipo][fq].to_s+"\n\\par "
|
33
|
+
}
|
34
|
+
s
|
35
|
+
end
|
36
|
+
def ldq
|
37
|
+
s=''
|
38
|
+
Exner::DQ_VALIDAS.each {|dq|
|
39
|
+
s+=dq+":"+_f['dq'][dq].to_s+"\n\\par "
|
40
|
+
}
|
41
|
+
s
|
42
|
+
end
|
43
|
+
def aParrafos(array)
|
44
|
+
array.collect {|x|
|
45
|
+
"\n\\par "+x.to_s
|
46
|
+
}.join("")
|
47
|
+
end
|
48
|
+
def self.process(text)
|
49
|
+
t=Exner::Zulliger.new
|
50
|
+
t.open_stream(text)
|
51
|
+
t.procesar
|
52
|
+
t.extend(Exner::Rtf::Zulliger)
|
53
|
+
template=File.read(Exner.dir_data+'/sumario_Zulliger.rtf')
|
54
|
+
zz=t
|
55
|
+
ERB.new(template).result(binding)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|