Class: Exner::Zulliger

Inherits:
TestManchas show all
Defined in:
lib/exner/zulliger.rb,
lib/exner/zulliger_plugins/interpretacion.rb

Constant Summary

Constants inherited from TestManchas

TestManchas::FRECUENCIAS, TestManchas::ZEST_FILE

Instance Attribute Summary

Attributes inherited from TestManchas

#complejos, #extras, #frecuencias, #laminas, #msumm, #pares, #populares, #respuestas, #sencillos, #tipos_contenidos, #zf, #zsum

Instance Method Summary collapse

Methods inherited from TestManchas

#AG, #AdjD, #Adjes, #COP, #CP, #D, #Dscore, #EA, #EB, #EBPer, #FD, #Fd, #L, #Ma_Mp, #P, #R, #SumBr6, #SumPon6, #Zd, #Zf, #_c, #_ccee, #_d, #_f, #_l, #a_p, #a_porciento, #activos, #aislamiento_r, #an_xy, #autocentracion, #complj_r, #det, #determinantes_simples, #dqmas, #dqv, #each_determinante, #eb, #eb_der, #eb_izq, #es, #fc_cf_c, #fmas, #fr_rf, #h_a_hd_ad, #h_h_hd_hd, #intelectualizacion, #localizaciones, #m_menos, #mor, #msin, #msum, #nvl2, #obtenerZ, #open_file, #open_stream, #p_h_hd_p_a_ad, #pasivos, #porcentaje, #procesar, #procesar_extras, #resumen_del_enfoque, #smenos, #suma_preg, #sumc_wsumc, #sumcolpond, #sumdet, #w_d_dd, #w_m, #wda, #xa, #xmas, #xmenos, #xu, #zest

Constructor Details

#initializeZulliger

Returns a new instance of Zulliger.



4
5
6
7
8
9
10
11
# File 'lib/exner/zulliger.rb', line 4

def initialize
	@laminas_z={
	1=>{'a'=>1.0,'b'=>4.0,'c'=>6.0,'d'=>3.5},
	2=>{'a'=>5.5,'b'=>3.0,'c'=>3.0,'d'=>4.0},
	3=>{'a'=>5.5,'b'=>3.0,'c'=>4.0,'d'=>4.5}
	}
	super
end

Instance Method Details

#AfrObject



18
19
20
21
22
23
24
# File 'lib/exner/zulliger.rb', line 18

def Afr
	n=Hash.new
@laminas.each {|x,l|
	n[x]=l.size
}
n[2].to_f/(n[1]+n[3]).to_f
end

#interpretacionObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
# File 'lib/exner/zulliger_plugins/interpretacion.rb', line 20

def interpretacion
	salida=Array.new
	# Lambda
	salida.push('{\b Controles}')
	if self.R < 8
salida.push('{\b ATENCION: POCAS RESPUESTAS. TEST INVALIDO}')
	end
	if self.L> 1.51
	salida.push("L > 1.51. Si hay pocas respuestas complejas, es sobre simplificación de percepción. Si no, es defensivo")
	elsif self.L<0.2
	salida.push("L < 0.2. Muy pendientes de la información. Se sobrepasan por lo datos")
	else
	salida.push("L normal. Manejo normal de la cantidad de información")
	end
	# Tipo vivencial

	if (sumdet("M").to_f-sumcolpond).abs <2
salida.push("Ambigual"+(sumdet("M").to_f-sumcolpond).abs.to_s+". No tiene un estilo definido. Duda mucho entre el pensar y el actuar y se desgantan")
	elsif sumdet("M")>sumcolpond
salida.push("Intratensivo. Para solucionar sus problemas recurren a su mundo interno.")
	elsif sumdet("M")<sumcolpond
	salida.push("Extratensivo. Para solucionar sus problemas recurren al mundo externo")
	end

	# estimulacion sufrida (es)

	if self.EA<2
salida.push("EA<2. Pocos recursos!")
	elsif self.EA>7
salida.push("EA>7. Muchos recursos")
	else
salida.push("EA normal. Recursos dentro de la norma")
	end
	if eb_izq>eb_der
salida.push("FM+m aumentado. Ideas sin que el sujeto se lo proponga. Sobrecarga interna.")
if sumdet("FM")>sumdet("m")
	salida.push("FM>m. Malestar crónico por necesidades insatisfechas")
elsif sumdet("m")>sumdet("FM")
	salida.push("m>FM. Malestar agudo, por estresante actual")
end
	elsif eb_der>eb_izq
salida.push("C'+T+V+Y aumentados. Aumento del sufrimiento y del dolor psíquico causado por situaciones internas")
	else
salida.push("Necesidades y sufrimientos en igual grado")
	end
	if sumdet("FM")>6
salida.push("FM>6. Necesidades insatisfechas de forma crónica")
	end
	if sumdet("m")>4
salida.push("m>4. Malestar por necesidades externas agudo aumentado")
	end

	if es>7
salida.push("es>7. Bastante estimulación sufrida.")
	end
	if self.EA*2<self.es
salida.push("EA<es*2: La persona mostrará dificultades para hacer frente a situaciones de tensión. Trabajará mejor en situaciones estructuradas")
	end

	salida.push('{\b Mediación}')
	if xmas>=0.8
salida.push("X+%>0.80. Tiene los 'pies sobre la tierra'. Percibe los estímulos como la mayoría de la gente")
	end
	if wda>=0.8
salida.push("WDA+%>0.8. La percepción es adecuada en situaciones obvias")
if xa<0.8
	salida.push("XA%<0.8. Pero no lo es en situaciones inusuales")
else
	salida.push("XA%>0.8. Y en situaciones inusuales")
end
	end
	if xmenos>0.25
salida.push("X-%>0.25. Preocupante alejamiento de lo convencional!")
	end
	if smenos>0.40
salida.push("S-%>0.40. Fuerte interferencia emocional en situaciones de rabia")
	end

	if @populares<2
salida.push("P<2. Tiene dificultades para percibir las normas sociales")
	elsif @populares<5
salida.push("2<P<5. Puede percibir y acatar las normas sociales")
	else
salida.push("P>=5. Sobresocializado. Demasiado atento a las normas sociales. sobresocializado")
	end

	salida.push('{\b Ideación}')

	if pasivos>activos+1
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")

salida.push("T>0.Pasivo por necesidad de afecto") if (sumdet('T')>0)
salida.push("P>4.Pasivo por Sobresocialización") if (@populares>4)
salida.push("Fd>0. Pasivo por dependencia") if (_c['Fd']>0)
	else
salida.push("a+1>p. Persona adopta rol activo")
	end
	if _d['Mp']>_d['Ma']+1
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")
	end
	if intelectualizacion>=5
salida.push("Intelectualización alta. Uso abusivo de la intelectualizacion")
	end
	if _ccee['MOR']>2
salida.push("MOR>2. Pesimismo")
	end
	if m_menos>1
salida.push("M->0. ALERTA. Mal signo. Sus recursos ideativos presentan alteraciones")
	end
	if self.SumBr6>=5
salida.push("SumBr6>5.Posible trastorno del pensamiento. INHIBICION DEL POTENCIAL")
	end
	if self.SumPon6>2
salida.push("SumPon6>2.Posible trastorno del pensamiento. INHIBICION DEL POTENCIAL")
	end
	if msin>0
salida.push("M sin >0. Es una persona que puede desorientarse y perder contacto con la realidad")
	end
	salida.push('{\b Afectos}')
	if det['FC']<det['CF']+det['C']
salida.push("FC<CF+C. Vigilar poco control sobre descarga emocional")
salida.push("C>CF. Posible impulsividad!") if det['C']>det['CF']
	end
	if det['C']>0
salida.push("C>0. Persona que disfruta mucho de situaciones vertiginosas. ")
	end

	if sumdet("C'")>det['FC']*0.5+det['CF']+det['C']*1.5
salida.push("SumC':SumPondC hacia derecha. Se internaliza en demasía la descarga afectiva. Posible somatización")
	end
	if self.Afr<0.20
salida.push("Afr<0.2. Evitación de situaciones emocionales. Trabaja mejor en ambientes sin carga emocional")
	elsif self.Afr>1
salida.push("Afr>1. Atracción por estimulación emocional. Trabaja mejor en ambientes cargados afectivamente.")
	else
salida.push("Afr normal. Interés normal por estimulación emocional.")
	end

	if complj_r<0.2 and self.L<=1.51
salida.push("Compl/r dism y L normal. Tiende a simplificar las situaciones, aunque no de manera excesiva")
	elsif complj_r<0.2 and self.L> 1.51
salida.push("Compl/r dism y L alto. Limitación de tipo intelectual o tendencia a simplificar demasiado la situación")
	elsif complj_r>0.25 and self.EA>7
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 ")
	elsif complj_r>0.25 and self.EA<2
salida.push("Compl/r alta y pocos recursos. Mal signo. Puede tener dificultad para controlar y puede desorganizarse")
	else
salida.push("complejas normal. Capacidad normal para manejar de forma integral los estímulos")
	end

	if _l['S'].to_f/self.R>0.2
salida.push("S aumentado. Vigilar si es autonomía u oposicionismo")
	end
	#
	# PROCESAMIENTO
	#

	salida.push('{\b Procesamiento}')
	if self.Zf<5
salida.push("Zf dism. Sujeto con poca capacidad cognitiva o bajo nivel de motivación e  inicitiva")
	elsif self.Zf>9
salida.push("Zf alto. Alto nivel de motivación , que dedican al proceso de información más energía que el promedio")
	else
salida.push("Zf normal. Motivación normal")
	end
	if _l['W'].to_f/self.R>0.50
salida.push("W aumentadas. Gran interés por tareas de análisis y por organizar los componentes del mundo interno en un todo significativo")
	elsif _l['W'].to_f/self.R<0.15
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")
	end

	if _l['D'].to_f/self.R>0.70
salida.push("D aumentadas. Mucho apego a lo práctico")
	elsif _l['D'].to_f/self.R<0.30
salida.push("D disminuidas. Pierde sentido de lo práctico. Vigilar W y Dd")
if _l['W'].to_f/self.R>0.50
	salida.push("W aum. Pierde sentido de lo práctico por irse en la volada")
elsif _l['W'].to_f/self.R>0.50
	salida.push("Dd aum . Pierde sentido de lo práctico por el detalle")

else
	salida.push("Revisa bien los datos, que no pude cachar el mote")
end
	end

	if _l['Dd'].to_f/self.R>40
salida.push("Dd aumentadas. Muy apegado a la exactitud. temor a cometer equivocaciones. Personas inseguras que se van por las ramas")
	elsif _l['Dd'].to_f/self.R<0.05
salida.push("Dd disminuidas. No muy preocupada por la exactitud")
	end

	rel_aspir=_l['W'].to_f/sumdet('M')

	if (rel_aspir> 2.5)
salida.push("W*2>M ("+rel_aspir.to_s+"); Aspiraciones sobre los recursos. El sujeto se puede frustrar")
	elsif (rel_aspir<1.5)
salida.push("W*2<M ("+rel_aspir.to_s+"); Aspiraciones bajo los recursos. Los gasta en fantasías, vigilar pasividad")
	else
salida.push("W*2=M ("+rel_aspir.to_s+"); Aspiraciones adecuadas a los recursos")
	end
	rel_teor=_l['W'].to_f / _l['D'].to_f
	if (rel_teor> 2.5)
salida.push("Teórico ("+rel_teor.to_s+")")
	elsif (rel_teor<1.5)
salida.push("Práctico ("+rel_teor.to_s+")")
	else
salida.push("Equilibrio Teórico práctico ("+rel_teor.to_s+")")
	end

	if zsum<15
salida.push("ZSum<15. Poca interés en integrar")
	elsif zsum>32
salida.push("ZSum>32. Alto interés en integrar")
	else
salida.push("ZSum normal. Interés normal en integrar estímulos")
	end
	#
	# INTERPERSONAL
	#

	salida.push('{\b Interpersonal}')
	if _ccee['COP']==0 and _ccee['AG']==0
salida.push("COP y AG=0. Poco interés en relaciones interpersonales")
	end
	salida.push("Fd>0. Rasgos incrementados de dependencia") if _c['Fd']>0
	if aislamiento_r>0.45
salida.push("Aisl>0.45. Sujeto menos implicados que el resto en lo social")
	else
salida.push("Aisl normal. Sujeto implicado en lo social")
	end

	# a (H+Dh:A+Ad)
	salida.push("Lo que sigue, tómalo con andina")
  hum=_c['H']+_c['Hd']
	an=_c['A']+_c['Ad']
	if an>hum*3
salida.push(sprintf("H+Dh:A+Ad hacia animal(%d:%d). Persona se está aislando. No tiene interés en otros",hum,an))
	elsif an<hum*2
salida.push(sprintf("H+Dh:A+Ad hacia humano(%d:%d). Persona con interés exagerado por relacionarse",hum,an))
	else
salida.push("H+Dh:A+Ad equilibrado. Persona con interés normal por relacionarse")
	end
	ent=_c['H']+_c['A']
	par=_c['Hd']+_c['Ad']
	if ent<par*2
salida.push(sprintf("H+A:Hd+Ad hacia parcial(%d:%d). Se relaciona con objetos parciales, disocia, escinde, se relaciona con partes del otro",ent,par))
	else
salida.push(sprintf("H+A:Hd+Ad hacia total(%d:%d). Persona se relaciona con objetos totales",ent,par))
	end

	if (_c['H']+_c['Hd']) >= (_c['(H)']+_c['(Hd)'])*3
salida.push("H+Hd>(H)+(hd)*3: Se relaciona a nivel concreto")
salida.push("(H)+(Hd)=0. Puede que la persona no se deje tener ideales") if (_c['(H)']+_c['(Hd)'])==0
	else
salida.push("H+Hd<(H)+(hd)*3: Se relaciona en la fantasía")
	end
	if porcentaje(_c['H']+_c['Hd'])>=0.2
salida.push("H+Hd>=20%. Capacidad e interés en relacionarse con otros")
	else
salida.push("H+Hd<20%. Poca capacidad e interés en relacionarse con otros")
	end
	if (_c['Hd']+_c['(H)']+_c['(Hd)'])*3>_c['H']
salida.push("H<Hd+(H)+(Hd)*3: Problemas en interpersonal. Revisar protocolo para ver que pasa.")
salida.push("Puede que no sea válido, porque faltan humanos") if (_c['Hd']+_c['(H)']+_c['(Hd)']+_c['H'])<3
	end
	if _c['Hd']*3>_c['H']
salida.push("H<Hd*3: Angustia, depresión y fobia social. Aumenta si los Hd son perfiles de caras")
	end

	if a_porciento>0.47
salida.push("A% aumentado. Sujeto inmaduro, rutinario, predecible")
	elsif a_porciento<0.31
salida.push("A% disminuido. Sujeto Flexible. Si es muy bajo, poco comprometido")
	else
salida.push("A% normal. Buena adaptación social")
	end
	salida.push("Hasta aquí llega la andina con andina")
	if _c['H']<1
salida.push("H=0;Presenta poco interés las personas")
	elsif _c['H']>=1 and _c['H']<4
salida.push("H="+_c['H'].to_s+". Presenta un interés promedio en las personas")
	else
salida.push("H>4. Presenta un interés sobre el promedio por las personas")
	end

	salida.push('{\b Autopercepción}')
	if autocentracion<0.26
salida.push("ego<0.26. Tiene dificultades para tomarse a sí mismo como centro de interes")
	elsif autocentracion>0.60
salida.push("ego>0.60. Sujeto tiende a tomarse como centro de sus preocupaciones. Privilegia mucho su propio punto de vista. Le cuesta ser flexibles")
	else
salida.push("ego normal. Capacidad normal para ser el eje de su propia atención")
	end
	salida.push("V>1. Sujeto con instrospección dolorosa") if sumdet('V')>1
	salida.push("FD>2. Demasiada atención a autoevaluación") if _d['FD']>2
	salida.push("Xy+An>2. Si no hay problemas físicos, trastornos de autoimagen") if an_xy>2
	salida.push("MOR>2. Pesimismo") if _ccee['MOR']>2
	if _c['H']>_c['(H)']+_c['Hd']+_c['(Hd)']
salida.push("H>(H)+Hd+(Hd). Percepción realista de sí mismo")
	else
salida.push("H<(H)+Hd+(Hd). Percepción no realista de sí mismo")
	end
	#salida.collect {|a|
	#	Iconv.conv('ISO-8859-1','UTF-8',a)
	#}
	salida
end

#NObject



15
16
17
# File 'lib/exner/zulliger.rb', line 15

def N
3
end

#norma(valor) ⇒ Object

calcula, para un determinado valor en los baremos el porcentaje que le corresponde al valor específico hace el ajuste en función al número de respuestas



7
8
9
10
# File 'lib/exner/zulliger_plugins/interpretacion.rb', line 7

def norma(valor)
	r_est=11.92
	return (valor*self.R) / r_est
end

#respuestatriple(valor, bajo, alto, resp_bajo, resp_alto, resp_normal) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/exner/zulliger_plugins/interpretacion.rb', line 11

def respuestatriple(valor,bajo,alto,resp_bajo,resp_alto,resp_normal)
	if valor<bajo
		return resp_bajo
	elsif valor>alto
		return resp_alto
	else
		return resp_normal
	end
end

#ZEST_FILEObject



12
13
14
# File 'lib/exner/zulliger.rb', line 12

def ZEST_FILE
	Exner.dir_data+'/Zulliger_Zest.txt'
end