Beispiel #1
0
        protected InformacionGeneral(Paciente paciente, Resultado_AS resultado)
        {
            this.resultado = resultado;
            this.paciente  = paciente;
            this.ia_total  = FunctionLibrary.AttentionProfit(resultado.Aciertos.Sum(),
                                                             resultado.Aciertos_Extrannos.Sum(),
                                                             resultado.Equivocaciones.Sum(),
                                                             resultado.Omisiones.Sum());
            this.md_bloques = new MD_ByBlock();
            md_bloques.LoadBlock(FunctionLibrary.GetTopBlocks(paciente.Edad) + 1, paciente);

            this.zNotationAciertos = StatFunctionLibrary.ZNotation(resultado.Aciertos.Sum(),
                                                                   md_bloques.Aciertos.Media,
                                                                   md_bloques.Aciertos.Desviacion);
            this.zNotationComisiones = StatFunctionLibrary.ZNotation(resultado.Equivocaciones.Sum(),
                                                                     md_bloques.Comisiones.Media,
                                                                     md_bloques.Comisiones.Desviacion);
            Parametros = new[]
            {
                PDF_Resources.EP_IA_Total,
                PDF_Resources.EP_Aciertos,
                PDF_Resources.EP_Omisiones,
                PDF_Resources.EP_Comisiones,
                PDF_Resources.EP_TR,
                PDF_Resources.EP_Error_TR,
                PDF_Resources.EP_Sensibilidad,
                PDF_Resources.EP_Criterio
            };
            this.Init();
        }
Beispiel #2
0
        private string BuildQuery4APatient(string cod_paciente, int edad)
        {
            int TOP    = FunctionLibrary.GetTopBlocks(edad);
            var tablas = new string[TOP + 2];

            tablas[0] = Paciente.TableName;
            tablas[1] = _ResASC.TableName;
            for (int i = 0; i < TOP; i++)
            {
                tablas[i + 2] = string.Format("{0}_{1}", IndicadoresASC.TableName, i + 1);
            }
            return(string.Format("SELECT * FROM {0} WHERE {1} ORDER BY {2}.fecha DESC", BuildQuery(tablas, 0), BuildWhere(tablas, cod_paciente), _ResASC.TableName));
        }
Beispiel #3
0
        protected override void FillData(DataRow r)
        {
            this.Codigo_Paciente      = r[Paciente.CodigoPacienteColumnName].ToString();
            this.Sexo                 = r[Paciente.SexoColumnName].ToString();
            this.FechaNacimiento      = (DateTime)r[Paciente.Fecha_NacimientoColumnName];
            this.Aplicador            = r[Paciente.AplicadorColumnName].ToString();
            this.Lugar                = r[Paciente.LugarColumnName].ToString();
            this.Fecha                = (DateTime)r[string.Format("{0}.{1}", _ResASC.TableName, _ResASC.FechaColumnName)];
            this.Desviacion           = (double)r[_ResASC.DesviacionColumnName];
            this.Media                = (double)r[_ResASC.MediaColumnName];
            this.TipoPrueba           = (TypeOf_AS_Test)((byte)r[_ResASC.TipoPruebaColumnName]);
            this.Total_Aciertos       = (int)r[_ResASC.TotalAciertosColumnName];
            this.Total_Aciertos_Ext   = (int)r[_ResASC.TotalAciertosEXTColumnName];
            this.Total_Omisiones      = (int)r[_ResASC.TotalOmisionesColumnName];
            this.Total_Equivocaciones = (int)r[_ResASC.TotalEquivocacionesColumnName];
            this.Completo             = (bool)r[_ResASC.CompletoColumnName];

            int TOP = FunctionLibrary.GetTopBlocks(this.Edad);

            Aciertos                  = new int[7];
            Aciertos_Extrannos        = new int[7];
            Equivocaciones            = new int[7];
            Omisiones                 = new int[7];
            Media_TiempoReaccion      = new double[7];
            Desviacion_TiempoReaccion = new double[7];
            CoeficienteAtencion       = new float[7];

            for (int i = 0; i < 7; i++)
            {
                Aciertos[i]                  = (i < TOP)? (int)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.AciertosColumnName)] : 0;
                Aciertos_Extrannos[i]        = (i < TOP)?  (int)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.AciertosEXTColumnName)] : 0;
                Equivocaciones[i]            = (i < TOP)?  (int)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.EquivocacionesColumnName)] : 0;
                Omisiones[i]                 = (i < TOP)?  (int)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.OmisionesColumnName)] : 0;
                Media_TiempoReaccion[i]      = (i < TOP)?  (double)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.MediaTRColumnName)] : 0;
                Desviacion_TiempoReaccion[i] = (i < TOP)?  (double)r[string.Format("{0}_{1}.{2}", IndicadoresASC.TableName, i + 1, IndicadoresASC.DesviacionTRColumnName)] : 0;
                CoeficienteAtencion[i]       = (i < TOP)?  FunctionLibrary.AttentionProfit(Aciertos[i],
                                                                                           Aciertos_Extrannos[i],
                                                                                           Equivocaciones[i],
                                                                                           Omisiones[i]) : 0;
            }
        }
Beispiel #4
0
        public void Init(Resultado_AS result_SA, double[] ia_bloques, TNotaciones TNotaciones, int edad)
        {
            var perc     = new[] { int.MinValue, 0, 30, 40, 61, 66 };
            var ori_IA_A = new[]
            {
                "Puntaje probablemente inválido",
                "Altamente Atípico",
                "Moderadamente Atípico",
                "Promedio",
                "Buen desempeño",
                "Muy buen desempeño"
            };
            var ori_O_C_DE = new[]
            {
                "Puntaje probablemente inválido",
                "Muy Buen desempeño",
                "Buen desempeño",
                "Promedio",
                "Moderadamente Atípico",
                "Altamente Atípico"
            };
            var ori_TR = new[]
            {
                "Puntaje probablemente inválido",
                "Atípicamente rápidos",
                "Moderadamente rápidos",
                "Promedio",
                "Moderadamente lentos",
                "Muy lento"
            };
            int countPerc = perc.Length;

            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.IndiceAtencion >= perc[i])
                {
                    this.o_ia = ori_IA_A[i];
                }
                else
                {
                    break;
                }
            }
            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.Aciertos >= perc[i])
                {
                    this.o_aciertos = ori_IA_A[i];
                }
                else
                {
                    break;
                }
            }
            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.Omisiones >= perc[i])
                {
                    this.o_omisiones = ori_O_C_DE[i];
                }
                else
                {
                    break;
                }
            }
            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.Comisiones >= perc[i])
                {
                    this.o_comisiones = ori_O_C_DE[i];
                }
                else
                {
                    break;
                }
            }
            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.DesviacionTiempoReaccion >= perc[i])
                {
                    this.o_error_tr = ori_O_C_DE[i];
                }
                else
                {
                    break;
                }
            }
            for (int i = 0; i < countPerc; i++)
            {
                if (TNotaciones.TiempoReaccion >= perc[i])
                {
                    this.o_tr = ori_TR[i];
                }
                else
                {
                    break;
                }
            }

            #region Conclusiones de los percentiles
            //// a)
            //if ( PercentilesGenerales[IA_index] <= 25 && PercentilesGenerales[Omisiones_index] >= 75 )
            //    this.o_conclusiones +=
            //        "Los resultados en el Índice de Atención y el número elevado de errores por omisión, sugieren la presencia de dificultades atencionales.\n";
            //// b)
            //if ( PercentilesGenerales[IA_index] <= 25 && PercentilesGenerales[Omisiones_index] <= 75 && PercentilesGenerales[Comisiones_index] >= 75 )
            //    this.o_conclusiones +=
            //        "Los resultados en el Índice de Atención y el número elevado de errores por acción, sugieren la presencia de dificultades en el control de los impulsos que pueden perturbar el rendimiento atencional, esta conclusión será tan válida como válido se considere el protocolo.\n";
            //// c)
            //if ( PercentilesGenerales[Error_TR_index] <= 75 )
            //    this.o_conclusiones +=
            //        "Los resultados en la desviación estándar de los TR sugieren variabilidad en la calidad de la  atención.\n";
            //// f)
            //if ( result_SA.Aciertos_Extrannos.Sum() >= 3 )
            //    this.o_conclusiones +=
            //        "Dado el número de Aciertos Extemporáneos establezca una correlación entre éstos, los tiempos de reacción y el IA antes de conjeturar posibles dificultades de control inhibitorio.\n";
            //// g)
            //if ( string.IsNullOrEmpty( o_conclusiones ) )
            //    this.o_conclusiones =
            //        "Protocolo que no indica altas probabilidades de ser compatible con dificultades atencionales.\n";
            //// protocolo válido por omisiones de un bloque
            //if ( !ProtocoloVálido1( result_SA ) )
            //    this.o_conclusiones +=
            //        "Hubo una larga serie de omisiones, el administrador debe decidir si este protocolo es válido.\n";
            //// protocolo válido por atencion deficiente
            //if ( !ProtocoloVálidoMAS( result_SA ) )
            //    this.o_conclusiones +=
            //        "Hubo bloques de la prueba en que el sujeto parece no haber respondido, o respondido al azar. El administrador debe decidir si este protocolo es válido.\n";
            #endregion

            if (!ProtocoloValidoA(result_SA, FunctionLibrary.GetTopBlocks(edad)))
            {
                this.o_conclusiones +=
                    "Hubo una larga serie de omisiones, el administrador debe decidir si este protocolo es válido\n";
            }
            if (!ProtocoloValidoB(result_SA, ia_bloques, FunctionLibrary.GetTopBlocks(edad)))
            {
                this.o_conclusiones +=
                    "Hubo bloques de la prueba en que el sujeto parece no haber respondido, o respondido al azar. El administrador debe decidir si este protocolo es válido.\n";
            }
            if (string.IsNullOrEmpty(o_conclusiones))
            {
                this.o_conclusiones =
                    "El análisis de los parámetros de esta administración sugieren que el protocolo es válido";
            }
        }