none
Por favor ayuda!!! RRS feed

  • Pregunta

  • Necesito ayuda con una formula, por favor! La necesidad que tengo es calcular la cantidad de medicamento a administrar según los valores de laboratorio que tenga un paciente; para eso hay que tener unos criterios  en cuenta:

    1 -Existen unos valores mínimo desde el que hay que aplicar el tratamiento, el personal médico puede decir si a partir de 50 o 70, 80…etc. eso lo define según su criterio… y esos parámetros van subiendo de 50 en 50, siempre (aunque en realidad es 49). Si tomáramos como ejemplo el mínimo como 50 sería así:

    50-100, 101-150, 151-200, 201-250, 251-300.

    si fuese 70 seria así:

    70-120, 121-170... así sucesivamente

    2-Tenemos dos esquemas, el esquema 2×2 (dosis van subiendo de 2 en 2 cada 50) y el esquema 3×3: (las dosis van subiendo de 3 en 3 por cada 50 con los valores anteriores(empezando desde 50) la dosis a administrar en el esquema 3×3 sería así:

    50-100: administrar 3
    101-150: administrar 6
    151-200: administrar 9
    201-250: administrar 12 y así sucesivamente…

    Ya esta plantilla la he hecho en excel, he intentado hacerla C# y no he podido. 

    de antemano muchas gracias por su ayuda.

    sábado, 2 de marzo de 2019 3:50

Respuestas

  • echo con windows form

    form1:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace AdministracionMedica
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            cma CMA = new cma();
    
            private void button1_Click(object sender, EventArgs e)
            {
                textBox2.Text = "";
    
                CMA.miCVMT = (int)numericUpDown1.Value;
                CMA.maCVMT = (int)numericUpDown2.Value;
                CMA.ParametroCVMT = (int)numericUpDown3.Value;
    
                textBox2.Text = CMA.Edosis(textBox1.Text);
            }
        }
    }
    

    y creas un fichero de clases y agrega este codigo:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace AdministracionMedica
    {
        class Class1
        {
        }
    
        public class cma
        {
            /// <summary>
            /// Criterio de los Valores minimos de tratamiento.
            /// Inserte un valor igual o superior a 50
            /// </summary>
            public int miCVMT { set; get; }
    
            /// <summary>
            /// Criterio de los Valores maximos de tratamiento.
            /// </summary>
            public int maCVMT { set; get; }
    
            /// <summary>
            /// Parámetro que van subiendo de 50 en 50.
            /// </summary>
            public double ParametroCVMT { set; internal get; } = 50;
    
            /// <summary>
            /// Esquemas para las docis.
            /// Ejemplo: Edosis("3x3"), el primero indica la dosis y el segundo el multiplicador:
            /// 50-100: administrar 3
            /// 101-150: administrar 6
            /// 151-200: administrar 9
            /// 201-250: administrar 12 y así sucesivamente…
            /// </summary>
            public string Edosis(string Esquema)
            {
                int dosismul = int.Parse(Esquema[0].ToString());
                if (miCVMT != null && maCVMT != null)
                {
                    return rangosCVMT(miCVMT, maCVMT, ParametroCVMT, dosismul);
                }
                return "Faltan datos.";
            }
    
            private string rangosCVMT(int minimo, int maximo, double ParametroCVMT, int multiplicador)
            {
                int sucesos = (int)Math.Round( maximo / ParametroCVMT)-1;
                int ultimoMinimo = minimo;
    
                StringBuilder SalidaSucesos = new StringBuilder();
    
                for (int i = 0; i < sucesos; i++)
                {
                    // aqui buscate una forma de saber cuando hay que sumarle 1 (101-150),
                    // ya sabes que el primero no lleva +1 pero el resto si.
                    if (i == 0)
                    {                    
                        SalidaSucesos.AppendLine(
                            minimo.ToString() + "-" + (minimo + minimo).ToString() +
                            ": administrar " + (multiplicador).ToString()
                        );
                    }
                    else
                    {
                        SalidaSucesos.AppendLine(
                            ultimoMinimo.ToString() + "-" + (minimo + ultimoMinimo).ToString() +
                            ": administrar " + ((i + 1) * multiplicador).ToString()
                        );
                    }
                    ultimoMinimo = ultimoMinimo + minimo;
                }
    
                return SalidaSucesos.ToString();
            }
        }
    }

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 15:43
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    domingo, 3 de marzo de 2019 3:39
  • c# es uno de los mejores para programar, mira este enlace de videos donde hay cursos para distintos niveles... espero que no abandones.

    link aqui

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 15:43
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    lunes, 4 de marzo de 2019 4:03
  • Hola. Puedes indicarnos qué no has podido hacer? Puedes mostrar algo de código implementado? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 21:11
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    sábado, 2 de marzo de 2019 10:38
    Moderador
  • Como lo subo? Gracias

    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:57
    martes, 5 de marzo de 2019 0:14

Todas las respuestas

  • Hola. Puedes indicarnos qué no has podido hacer? Puedes mostrar algo de código implementado? 

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 21:11
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    sábado, 2 de marzo de 2019 10:38
    Moderador
  • echo con windows form

    form1:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace AdministracionMedica
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            cma CMA = new cma();
    
            private void button1_Click(object sender, EventArgs e)
            {
                textBox2.Text = "";
    
                CMA.miCVMT = (int)numericUpDown1.Value;
                CMA.maCVMT = (int)numericUpDown2.Value;
                CMA.ParametroCVMT = (int)numericUpDown3.Value;
    
                textBox2.Text = CMA.Edosis(textBox1.Text);
            }
        }
    }
    

    y creas un fichero de clases y agrega este codigo:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace AdministracionMedica
    {
        class Class1
        {
        }
    
        public class cma
        {
            /// <summary>
            /// Criterio de los Valores minimos de tratamiento.
            /// Inserte un valor igual o superior a 50
            /// </summary>
            public int miCVMT { set; get; }
    
            /// <summary>
            /// Criterio de los Valores maximos de tratamiento.
            /// </summary>
            public int maCVMT { set; get; }
    
            /// <summary>
            /// Parámetro que van subiendo de 50 en 50.
            /// </summary>
            public double ParametroCVMT { set; internal get; } = 50;
    
            /// <summary>
            /// Esquemas para las docis.
            /// Ejemplo: Edosis("3x3"), el primero indica la dosis y el segundo el multiplicador:
            /// 50-100: administrar 3
            /// 101-150: administrar 6
            /// 151-200: administrar 9
            /// 201-250: administrar 12 y así sucesivamente…
            /// </summary>
            public string Edosis(string Esquema)
            {
                int dosismul = int.Parse(Esquema[0].ToString());
                if (miCVMT != null && maCVMT != null)
                {
                    return rangosCVMT(miCVMT, maCVMT, ParametroCVMT, dosismul);
                }
                return "Faltan datos.";
            }
    
            private string rangosCVMT(int minimo, int maximo, double ParametroCVMT, int multiplicador)
            {
                int sucesos = (int)Math.Round( maximo / ParametroCVMT)-1;
                int ultimoMinimo = minimo;
    
                StringBuilder SalidaSucesos = new StringBuilder();
    
                for (int i = 0; i < sucesos; i++)
                {
                    // aqui buscate una forma de saber cuando hay que sumarle 1 (101-150),
                    // ya sabes que el primero no lleva +1 pero el resto si.
                    if (i == 0)
                    {                    
                        SalidaSucesos.AppendLine(
                            minimo.ToString() + "-" + (minimo + minimo).ToString() +
                            ": administrar " + (multiplicador).ToString()
                        );
                    }
                    else
                    {
                        SalidaSucesos.AppendLine(
                            ultimoMinimo.ToString() + "-" + (minimo + ultimoMinimo).ToString() +
                            ": administrar " + ((i + 1) * multiplicador).ToString()
                        );
                    }
                    ultimoMinimo = ultimoMinimo + minimo;
                }
    
                return SalidaSucesos.ToString();
            }
        }
    }

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 15:43
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    domingo, 3 de marzo de 2019 3:39
  • Muchas gracias por tomarse un tiempo para intentar resolver mi inquietud. Quiero decirle que apena he empezado a manejar C# y me propuse realizar este ambicioso proyecto, pero me he confundido mucho y no he podido avanzar nada…esta tabla la había hecho en Excel hace un tiempo y decidí mejorarla con C#.

    domingo, 3 de marzo de 2019 5:40
  • Muchas gracias por dedicarle tiempo para resolver esta inquietud. Quiero decirle que apena he empezado a manejar C# y me propuse realizar este ambicioso proyecto, pero me he confundido mucho y no he podido avanzar nada…he intentado avanzar pero se me es muy difícil.

    domingo, 3 de marzo de 2019 5:42
  • c# es uno de los mejores para programar, mira este enlace de videos donde hay cursos para distintos niveles... espero que no abandones.

    link aqui

    • Propuesto como respuesta Pedro AlfaroModerator lunes, 4 de marzo de 2019 15:43
    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:56
    lunes, 4 de marzo de 2019 4:03

  • lunes, 4 de marzo de 2019 17:37
  • Así lo he hecho en excel...

    Las unidades de medicamento dependen directamente de qué "PLAN DE CORRECCIÓN"  se haya seleccionado... en este caso es "2X2" por eso la "DOSIS DE MEDICAMENTO A ADMINISTRAR"; el cuadrito de colores, va aumentado de 2 en 2 (si fuese "3x3, iría aumentando de 3 en 3) desde un valor mínimo, que llamamos "ESQUEMA DE MANEJO A PARTIR DE:...

    ahora como el "REPORTE" es 250...y teniendo en cuenta lo anteriormente descrito la dosis a administrar es 4.

    Como tienen varios valores dependiente y no se como conectarlos es por eso que he pedido su ayuda. Y estoy muy agradecido con ustedes por eso.

     

    • Editado Joser84 lunes, 4 de marzo de 2019 17:46
    lunes, 4 de marzo de 2019 17:37
  • Jose84, si no te es moletia pon el doc de excel para verlo en detalles, tengo varias dudas de como funciona... quizas si observo lo que tienes en excel, tenga una idea mas concreta.

    saludos

    • Marcado como respuesta Joser84 domingo, 11 de agosto de 2019 3:32
    • Desmarcado como respuesta Joser84 lunes, 20 de julio de 2020 22:57
    lunes, 4 de marzo de 2019 22:51
  • Como lo subo? Gracias

    • Marcado como respuesta Joser84 lunes, 20 de julio de 2020 22:57
    martes, 5 de marzo de 2019 0:14
  • utiliza onedrive, mega, o cl2raul66@hotmail.com
    martes, 5 de marzo de 2019 2:26
  • Hola 

    Debido a que no hemos recibido alguna notificación que aún se esté presentando el problema que enuncia en vuestra consulta y que la respuesta provista provee un amplio panorama y campo de acción sobre tu duda; nos gustaría considerar la misma como resuelta debido a la respuesta apropiada proporcionada  y así proceder a calificar la misma como respuesta.

    No dudes en ampliar más sobre este tema si es que aún lo requirieras o de abrir una nueva consulta en caso de tener alguna situación o necesitarla con algún otro de los productos de Microsoft.

     

    Adicional le invito a consultar los siguientes recursos:

    Guía para formular preguntas en el foro

    Channel 9 - donde puedes encontrar una sección de: Desarrollo utilizando C#

     

    Gracias por usar los foros de TechNet.

    Erick Rivera

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    jueves, 23 de mayo de 2019 15:37