public Indicators IndicatorByPacient(string patientId)
        {
            try
            {
                var serviceData = (from E in ctx.Person
                                   join A in ctx.Service on E.v_PersonId equals A.v_PersonId into A_join
                                   from A in A_join.DefaultIfEmpty()
                                   //join F in ctx.OrganizationPerson on E.v_PersonId equals F.v_PersonId
                                   //join G in ctx.Organization on F.v_OrganizationId equals G.v_OrganizationId
                                   where E.v_PersonId == patientId && A.i_IsDeleted == 0
                                   select new
                {
                    FullName = E.v_FirstName + " " + E.v_FirstLastName + " " + E.v_SecondLastName,
                    Puesto = E.v_CurrentOccupation,
                    Empresa = "",
                    FechaServicio = A.d_ServiceDate
                }).ToList();

                if (serviceData.Count == 0)
                {
                    return(null);
                }

                var serviceDataTemp = (from a in serviceData
                                       select new
                {
                    FullName = a.FullName,
                    Puesto = a.Puesto,
                    Empresa = a.Empresa,
                    FechaServicio = a.FechaServicio.Value.Date
                }).ToList();

                serviceDataTemp = serviceDataTemp.GroupBy(g => g.FechaServicio).Select(s => s.First()).ToList();


                var serviceComponentFieldValues = (from A in ctx.Service
                                                   join B in ctx.ServiceComponent on A.v_ServiceId equals B.v_ServiceId
                                                   join C in ctx.ServiceComponentFields on B.v_ServiceComponentId equals C.v_ServiceComponentId
                                                   join D in ctx.ServiceComponentFieldValues on C.v_ServiceComponentFieldsId equals D.v_ServiceComponentFieldsId
                                                   where A.v_PersonId == patientId &&
                                                   (C.v_ComponentFieldId == Constants.COLESTEROL_TOTAL_Colesterol_Total_Id || C.v_ComponentFieldId == Constants.PERFIL_LIPIDICO_Colesterol_Total_Id || C.v_ComponentFieldId == Constants.GLUCOSA_Glucosa_Id || C.v_ComponentFieldId == Constants.HEMOGLOBINA_Hemoglobina_Id || C.v_ComponentFieldId == Constants.HEMOGRAMA_Hemoglobina_Id || C.v_ComponentFieldId == Constants.FUNCIONES_VITALES_Presion_Sistolica_Id || C.v_ComponentFieldId == Constants.FUNCIONES_VITALES_Presion_Distolica_Id || C.v_ComponentFieldId == Constants.ANTROPOMETRIA_Imc_Id || C.v_ComponentFieldId == Constants.ESPIROMETRIA_Cvf_Id) &&
                                                   B.i_IsDeleted == 0 &&
                                                   C.i_IsDeleted == 0

                                                   select new
                {
                    ServiceDate = A.d_ServiceDate,
                    ComponentFieldId = C.v_ComponentFieldId,
                    ServiceComponentFieldsId = C.v_ServiceComponentFieldsId,
                    Value1 = D.v_Value1,
                }).ToList();

                var serviceComponentFieldValuesTemp = (from a in serviceComponentFieldValues
                                                       select new
                {
                    ServiceDate = a.ServiceDate.Value.Date,
                    ComponentFieldId = a.ComponentFieldId,
                    ServiceComponentFieldsId = a.ServiceComponentFieldsId,
                    Value1 = a.Value1
                }).ToList();

                serviceComponentFieldValuesTemp = serviceComponentFieldValuesTemp.GroupBy(g => new { g.ServiceDate, g.ComponentFieldId }).Select(s => s.First()).ToList();

                Indicators oIndicators = new Indicators();
                oIndicators.PersonId = patientId;

                #region Data
                List <DataPatient> Data = new List <DataPatient>();
                var oDataPatient        = new DataPatient();
                oDataPatient.Name    = serviceDataTemp[0].FullName;
                oDataPatient.Empresa = serviceDataTemp[0].Empresa;
                oDataPatient.Puesto  = serviceDataTemp[0].Puesto;
                Data.Add(oDataPatient);
                oIndicators.DataPatient = Data;
                #endregion

                #region IMC
                List <Weight> Weights         = new List <Weight>();
                var           ListWeights     = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.ANTROPOMETRIA_Imc_Id).ToList();
                var           ListWeightsSort = ListWeights.OrderByDescending(o1 => o1.ServiceDate).ToList();
                foreach (var item in ListWeightsSort)
                {
                    var oWeight = new Weight();
                    oWeight.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oWeight.y    = item.Value1;

                    Weights.Add(oWeight);
                }
                oIndicators.Weights = Weights;
                #endregion

                #region BloodPressureSis
                var BloodPressureSis     = new List <BloodPressureSis>();
                var ListBloodPressureSis = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.FUNCIONES_VITALES_Presion_Sistolica_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListBloodPressureSis)
                {
                    var oBloodPressureSis = new BloodPressureSis();
                    oBloodPressureSis.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oBloodPressureSis.y    = item.Value1;

                    BloodPressureSis.Add(oBloodPressureSis);
                }
                oIndicators.BloodPressureSis = BloodPressureSis;
                #endregion

                #region BloodPressureDia
                var BloodPressureDia     = new List <BloodPressureDia>();
                var ListBloodPressureDia = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.FUNCIONES_VITALES_Presion_Distolica_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListBloodPressureDia)
                {
                    var oBloodPressureDia = new BloodPressureDia();
                    oBloodPressureDia.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oBloodPressureDia.y    = item.Value1;

                    BloodPressureDia.Add(oBloodPressureDia);
                }
                oIndicators.BloodPressureDia = BloodPressureDia;
                #endregion

                #region Cholesterol
                var Cholesterol     = new List <Cholesterol>();
                var ListCholesterol = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.COLESTEROL_TOTAL_Colesterol_Total_Id || p.ComponentFieldId == Constants.PERFIL_LIPIDICO_Colesterol_Total_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListCholesterol)
                {
                    var oCholesterol = new Cholesterol();
                    oCholesterol.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oCholesterol.y    = item.Value1;

                    Cholesterol.Add(oCholesterol);
                }
                oIndicators.Cholesterols = Cholesterol;
                #endregion

                #region Glucoses
                var Glucoses     = new List <Glucose>();
                var ListGlucoses = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.GLUCOSA_Glucosa_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListGlucoses)
                {
                    var oGlucoses = new Glucose();
                    oGlucoses.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oGlucoses.y    = item.Value1;

                    Glucoses.Add(oGlucoses);
                }
                oIndicators.Glucoses = Glucoses;
                #endregion

                #region Haemoglobin
                var Haemoglobins     = new List <Haemoglobin>();
                var ListHaemoglobins = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.HEMOGLOBINA_Hemoglobina_Id || p.ComponentFieldId == Constants.HEMOGRAMA_Hemoglobina_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListHaemoglobins)
                {
                    var oHaemoglobin = new Haemoglobin();
                    oHaemoglobin.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oHaemoglobin.y    = item.Value1;

                    Haemoglobins.Add(oHaemoglobin);
                }
                oIndicators.Haemoglobins = Haemoglobins;
                #endregion

                #region Espiro

                var Espiros     = new List <Espiro>();
                var ListEspiros = serviceComponentFieldValuesTemp.FindAll(p => p.ComponentFieldId == Constants.ESPIROMETRIA_Cvf_Id).OrderBy(p => p.ServiceDate);
                foreach (var item in ListEspiros)
                {
                    var oEspiro = new Espiro();
                    oEspiro.Date = item.ServiceDate.ToString("dd-MM-yyyy");
                    oEspiro.y    = item.Value1;

                    Espiros.Add(oEspiro);
                }
                oIndicators.Espiros = Espiros;
                #endregion



                return(oIndicators);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Example #2
0
        public override string ToString()
        {
            string str = "";

            str += "&idserver=\"" + IDServer.ToString() + "\"";
            if (IDUnit != -1)
            {
                str += "&idunit=\"" + IDUnit.ToString() + "\"";
            }
            if (IDServerMeal != -1)
            {
                str += "&idmeal=\"" + IDServerMeal.ToString() + "\"";
            }
            if (IDUser != 0)
            {
                str += "&iduser=\"" + IDUser.ToString() + "\"";
            }
            if (Calories != -1)
            {
                str += "&calories=\"" + Calories.ToString() + "\"";
            }
            if (Protein != -1)
            {
                str += "&protein=\"" + Protein.ToString() + "\"";
            }
            if (Carb != -1)
            {
                str += "&carb=\"" + Carb.ToString() + "\"";
            }
            if (Fat != -1)
            {
                str += "&fat=\"" + Fat.ToString() + "\"";
            }
            if (SatFat != -1)
            {
                str += "&satfat=\"" + SatFat.ToString() + "\"";
            }
            if (UnSatFat != -1)
            {
                str += "&unsatfat=\"" + UnSatFat.ToString() + "\"";
            }
            if (Cholesterol != -1)
            {
                str += "&cholesterol=\"" + Cholesterol.ToString() + "\"";
            }
            if (Sugar != -1)
            {
                str += "&sugar=\"" + Sugar.ToString() + "\"";
            }
            if (Natrium != -1)
            {
                str += "&natrium=\"" + Natrium.ToString() + "\"";
            }
            if (Potassium != -1)
            {
                str += "&potassium=\"" + Potassium.ToString() + "\"";
            }
            if (Fiber != -1)
            {
                str += "&fiber=\"" + Fiber.ToString() + "\"";
            }
            if (Deleted != -1)
            {
                str += "&deleted=\"" + Deleted.ToString() + "\"";
            }
            if (InsertDate != null)
            {
                str += "&insertdate=\"" + InsertDate.ToString("yyyy-MM-dd HH:mm:ss") + "\"";
            }
            if (UpdateDate != null)
            {
                str += "&updatedate=\"" + UpdateDate.ToString("yyyy-MM-dd HH:mm:ss") + "\"";
            }

            return(str.Substring(1));
        }