コード例 #1
0
        public ServiceComponentDto UpdateServiceComponentId(ServiceComponentDto oDataServiceComponent, int nodeId, int systemUserId)
        {
            using (var oCtx = new DatabaseContext())
            {
                var obj         = (from a in oCtx.ServiceComponent where a.v_ServiceComponentId == oDataServiceComponent.v_ServiceComponentId select a).FirstOrDefault();
                var componentId = obj.v_ComponentId;
                var serviceId   = obj.v_ServiceId;
                var categoryId  = (from a in oCtx.Component where a.v_ComponentId == componentId select a).FirstOrDefault().i_CategoryId;

                var components = (from a in oCtx.Component where a.i_CategoryId == categoryId select a.v_ComponentId).ToList();

                var oEntidadFuerte =
                    (from A in oCtx.ServiceComponent
                     where A.v_ServiceId == serviceId && components.Contains(A.v_ComponentId)
                     //where A.v_ServiceComponentId == oDataServiceComponent.v_ServiceComponentId
                     select A).ToList();

                foreach (var item in oEntidadFuerte)
                {
                    item.v_Comment = oDataServiceComponent.v_Comment;
                    item.i_ServiceComponentStatusId = oDataServiceComponent.i_ServiceComponentStatusId;
                    //item.i_ExternalInternalId = oDataServiceComponent.i_ExternalInternalId;
                    item.i_IsApprovedId         = oDataServiceComponent.i_IsApprovedId;
                    item.i_ApprovedUpdateUserId = systemUserId;
                    item.i_UpdateUserId         = systemUserId;
                    item.d_UpdateDate           = DateTime.Now;
                }

                oCtx.SaveChanges();

                return(oEntidadFuerte[0]);
            }
        }
コード例 #2
0
        private ServiceComponentDto PopulateServiceComponentDto(string serviceId, string personId, ProtocolComponentCustom protocolComponent, int nodeId, int systemUserId)
        {
            var oServiceComponentDto = new ServiceComponentDto
            {
                v_ServiceId              = serviceId,
                i_ExternalInternalId     = (int)Enumeratores.ComponenteProcedencia.Interno,
                i_ServiceComponentTypeId = protocolComponent.ComponentTypeId,
                i_IsVisibleId            = protocolComponent.UIIsVisibleId,
                i_IsInheritedId          = (int)Enumeratores.SiNo.No,
                i_index                    = protocolComponent.UIIndex,
                r_Price                    = 0,
                v_ComponentId              = protocolComponent.ComponentId,
                i_IsInvoicedId             = (int)Enumeratores.SiNo.No,
                i_ServiceComponentStatusId = (int)Enumeratores.ServiceStatus.PorIniciar,
                i_QueueStatusId            = (int)Enumeratores.QueueStatusId.Libre,
                i_Iscalling                = (int)Enumeratores.Flag_Call.NoseLlamo,
                i_Iscalling_1              = (int)Enumeratores.Flag_Call.NoseLlamo,
                v_IdUnidadProductiva       = protocolComponent.IdUnidadProductiva,
                i_IsManuallyAddedId        = (int)Enumeratores.SiNo.No,
                i_IsRequiredId             = protocolComponent.IsConditionalId == (int)Enumeratores.SiNo.No ? (int)Enumeratores.SiNo.Si : RequiredComponent(personId, protocolComponent, nodeId, systemUserId)
            };

            return(oServiceComponentDto);
        }
コード例 #3
0
        private ServiceComponentDto PopulateServiceComponentTemp(string serviceId, string componentId, int nodeId, int systemUserId)
        {
            var oServiceComponentDto = new ServiceComponentDto
            {
                v_ServiceId              = serviceId,
                i_ExternalInternalId     = (int)Enumeratores.ComponenteProcedencia.Interno,
                i_ServiceComponentTypeId = (int)Enumeratores.ComponentType.Examen,
                i_IsVisibleId            = (int)Enumeratores.SiNo.No,
                i_IsInheritedId          = (int)Enumeratores.SiNo.No,
                i_index                    = 0,// protocolComponent.UIIndex,
                r_Price                    = 0,
                v_ComponentId              = componentId,
                i_IsInvoicedId             = (int)Enumeratores.SiNo.No,
                i_ServiceComponentStatusId = (int)Enumeratores.ServiceStatus.PorIniciar,
                i_QueueStatusId            = (int)Enumeratores.QueueStatusId.Libre,
                i_Iscalling                = (int)Enumeratores.Flag_Call.NoseLlamo,
                i_Iscalling_1              = (int)Enumeratores.Flag_Call.NoseLlamo,
                v_IdUnidadProductiva       = string.Empty,
                i_IsManuallyAddedId        = (int)Enumeratores.SiNo.No,
                i_IsRequiredId             = (int)Enumeratores.SiNo.Si
            };

            return(oServiceComponentDto);
        }
コード例 #4
0
        public static int SwitchOperator2Values(int pacientAge, int analyzeAge, Operator2Values @operator,
                                                int pacientGender, int analyzeGender)
        {
            ServiceComponentDto objServiceComponentDto = new ServiceComponentDto();

            switch (@operator)
            {
            case Operator2Values.X_esIgualque_A:
                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge == analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge == analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }

                break;

            case Operator2Values.X_noesIgualque_A:
                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge != analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge != analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }

                break;

            case Operator2Values.X_esMenorque_A:

                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge < analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge < analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }

                break;

            case Operator2Values.X_esMenorIgualque_A:

                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge <= analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge <= analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }

                break;

            case Operator2Values.X_esMayorque_A:
                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge > analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge > analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                break;

            case Operator2Values.X_esMayorIgualque_A:
                if (analyzeGender == (int)GenderConditional.Ambos)
                {
                    if (pacientAge >= analyzeAge)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }
                else
                {
                    if (pacientAge >= analyzeAge && pacientGender == analyzeGender)
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                    }
                    else
                    {
                        objServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    }
                }

                break;
            }

            return(objServiceComponentDto.i_IsRequiredId.Value);
        }
コード例 #5
0
        public bool AddServiceComponentAtx(List <ProtocolComponentCustom> dataProtComponent, ServiceCustom dataService, int nodeId, int userId)
        {
            try
            {
                foreach (var obj in dataProtComponent)
                {
                    var componentId        = obj.ComponentId;
                    var serviceComponentId = new Common.Utils().GetPrimaryKey(nodeId, 24, "SC");
                    ServiceComponentDto oServiceComponentDto = new ServiceComponentDto();
                    oServiceComponentDto.v_ServiceComponentId     = serviceComponentId;
                    oServiceComponentDto.v_ComponentId            = obj.ComponentId;
                    oServiceComponentDto.i_MedicoTratanteId       = dataService.MedicoTratanteId;
                    oServiceComponentDto.v_ServiceId              = dataService.ServiceId;
                    oServiceComponentDto.i_ExternalInternalId     = (int)ComponenteProcedencia.Interno;
                    oServiceComponentDto.i_ServiceComponentTypeId = obj.ComponentTypeId;
                    oServiceComponentDto.i_IsVisibleId            = obj.UIIsVisibleId;
                    oServiceComponentDto.i_IsInheritedId          = (int)SiNo.No;
                    oServiceComponentDto.d_StartDate              = null;
                    oServiceComponentDto.d_EndDate = null;
                    oServiceComponentDto.i_index   = obj.UIIndex;

                    var porcentajes = obj.Porcentajes.Split('-');

                    float p1 = porcentajes[0] == null || porcentajes[0] == "" ? 0 : float.Parse(porcentajes[0]);
                    float p2 = porcentajes[1] == null || porcentajes[1] == "" ? 0 : float.Parse(porcentajes[1]);

                    var pb = obj.Price;
                    oServiceComponentDto.r_Price                    = pb + (pb * p1 / 100) + (pb * p2 / 100);
                    oServiceComponentDto.r_Price                    = SetNewPrice(oServiceComponentDto.r_Price, obj.ComponentId);
                    oServiceComponentDto.i_IsInvoicedId             = (int)SiNo.No;
                    oServiceComponentDto.i_ServiceComponentStatusId = (int)ServiceStatus.PorIniciar;
                    oServiceComponentDto.i_QueueStatusId            = (int)QueueStatusId.Libre;
                    oServiceComponentDto.i_Iscalling                = (int)FlagCall.NoseLlamo;
                    oServiceComponentDto.i_Iscalling_1              = (int)FlagCall.NoseLlamo;
                    oServiceComponentDto.v_IdUnidadProductiva       = obj.IdUnidadProductiva;

                    var resultplan = new PlanDal().GetPlans(dataService.ProtocolId, obj.IdUnidadProductiva);
                    var tienePlan  = false;
                    if (resultplan.Count > 0)
                    {
                        tienePlan = true;
                    }
                    else
                    {
                        tienePlan = false;
                    }
                    if (tienePlan)
                    {
                        if (resultplan[0].i_EsCoaseguro == 1)
                        {
                            oServiceComponentDto.d_SaldoPaciente    = resultplan[0].d_Importe * decimal.Parse(oServiceComponentDto.r_Price.ToString()) / 100;
                            oServiceComponentDto.d_SaldoAseguradora = decimal.Parse(oServiceComponentDto.r_Price.ToString()) - oServiceComponentDto.d_SaldoPaciente;
                        }
                        if (resultplan[0].i_EsDeducible == 1)
                        {
                            oServiceComponentDto.d_SaldoPaciente    = resultplan[0].d_Importe;
                            oServiceComponentDto.d_SaldoAseguradora = decimal.Parse(oServiceComponentDto.r_Price.ToString()) - resultplan[0].d_Importe;
                        }
                    }

                    var conditional = obj.IsConditionalId;
                    if (conditional == (int)SiNo.Si)
                    {
                        var fechaNacimiento = dataService.FechaNacimiento;
                        //Datos del paciente

                        if (fechaNacimiento != null)
                        {
                            var pacientAge = DateTime.Today.AddTicks(-fechaNacimiento.Ticks).Year - 1;

                            var pacientGender = dataService.GeneroId;

                            //Datos del protocolo
                            int         analyzeAge    = obj.Age.Value;
                            int         analyzeGender = obj.GenderId.Value;
                            var         @operator     = (Operator2Values)obj.OperatorId;
                            GrupoEtario oGrupoEtario  = (GrupoEtario)obj.GrupoEtarioId;
                            if ((int)@operator == -1)
                            {
                                //si la condicional del operador queda en --Seleccionar--
                                if (analyzeGender == (int)GenderConditional.Ambos)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (pacientGender == analyzeGender)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else
                            {
                                if (analyzeGender == (int)GenderConditional.Masculino)
                                {
                                    oServiceComponentDto.i_IsRequiredId = SwitchOperator2Values(pacientAge, analyzeAge,
                                                                                                @operator, pacientGender.Value, analyzeGender);
                                }
                                else if (analyzeGender == (int)GenderConditional.Femenino)
                                {
                                    oServiceComponentDto.i_IsRequiredId = SwitchOperator2Values(pacientAge, analyzeAge,
                                                                                                @operator, pacientGender.Value, analyzeGender);
                                }
                                else if (analyzeGender == (int)GenderConditional.Ambos)
                                {
                                    oServiceComponentDto.i_IsRequiredId = SwitchOperator2Values(pacientAge, analyzeAge,
                                                                                                @operator, pacientGender.Value, analyzeGender);
                                }
                            }
                            if (componentId == "N009-ME000000402") //Adolecente
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (13 <= pacientAge && pacientAge <= 18)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000403") //Adulto
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (19 <= pacientAge && pacientAge <= 60)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000404") //AdultoMayorCustom
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (61 <= pacientAge)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000406")
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (12 >= pacientAge)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000401") //plan integral
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (12 >= pacientAge)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000400") //atencion integral
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (12 >= pacientAge)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else if (componentId == "N009-ME000000405") //consulta
                            {
                                if ((int)oGrupoEtario == -1)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else if (12 >= pacientAge)
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                }
                                else
                                {
                                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                }
                            }
                            else
                            {
                                oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                            }
                        }
                    }
                    else
                    {
                        oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                        if (obj.IsAdditional == null)
                        {
                            continue;
                        }
                        var adicional = obj.IsAdditional;
                        if (adicional == 1)
                        {
                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                        }
                    }
                    oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                    oServiceComponentDto.i_ConCargoA    = 0;
                    ctx.ServiceComponent.Add(oServiceComponentDto);
                }
                return(ctx.SaveChanges() > 0);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #6
0
        public bool AddServiceComponent(List <ProtocolComponentCustom> dataProtComponent, ServiceCustom dataService, int nodeId, int userId)
        {
            try
            {
                foreach (var obj in dataProtComponent)
                {
                    var serviceComponentId = new Common.Utils().GetPrimaryKey(nodeId, 24, "SC");
                    ServiceComponentDto oServiceComponentDto = new ServiceComponentDto();
                    oServiceComponentDto.v_ServiceComponentId     = serviceComponentId;
                    oServiceComponentDto.v_ComponentId            = obj.ComponentId;
                    oServiceComponentDto.i_MedicoTratanteId       = dataService.MedicoTratanteId;
                    oServiceComponentDto.v_ServiceId              = dataService.ServiceId;
                    oServiceComponentDto.i_ExternalInternalId     = (int)ComponenteProcedencia.Interno;
                    oServiceComponentDto.i_ServiceComponentTypeId = obj.ComponentTypeId;
                    oServiceComponentDto.i_IsVisibleId            = obj.UIIsVisibleId;
                    oServiceComponentDto.i_IsInheritedId          = (int)SiNo.No;
                    oServiceComponentDto.d_StartDate              = null;
                    oServiceComponentDto.d_EndDate      = null;
                    oServiceComponentDto.i_index        = obj.UIIndex;
                    oServiceComponentDto.i_IsDeleted    = (int)SiNo.No;
                    oServiceComponentDto.d_InsertDate   = DateTime.Now;
                    oServiceComponentDto.i_InsertUserId = userId;
                    var porcentajes = obj.Porcentajes.Split('-');

                    float p1 = porcentajes[0] == null || porcentajes[0] == "" ? 0 : float.Parse(porcentajes[0]);
                    float p2 = porcentajes[1] == null || porcentajes[1] == "" ? 0 : float.Parse(porcentajes[1]);

                    var pb = obj.Price;
                    oServiceComponentDto.r_Price                    = pb + (pb * p1 / 100) + (pb * p2 / 100);
                    oServiceComponentDto.r_Price                    = SetNewPrice(oServiceComponentDto.r_Price, obj.ComponentId);
                    oServiceComponentDto.i_IsInvoicedId             = (int)SiNo.No;
                    oServiceComponentDto.i_ServiceComponentStatusId = (int)ServiceStatus.PorIniciar;
                    oServiceComponentDto.i_QueueStatusId            = (int)QueueStatusId.Libre;
                    oServiceComponentDto.i_Iscalling                = (int)FlagCall.NoseLlamo;
                    oServiceComponentDto.i_Iscalling_1              = (int)FlagCall.NoseLlamo;
                    oServiceComponentDto.v_IdUnidadProductiva       = obj.IdUnidadProductiva;

                    var resultplan = new PlanDal().GetPlans(dataService.ProtocolId, obj.IdUnidadProductiva);
                    var tienePlan  = false;
                    if (resultplan.Count > 0)
                    {
                        tienePlan = true;
                    }
                    else
                    {
                        tienePlan = false;
                    }
                    if (tienePlan)
                    {
                        if (resultplan[0].i_EsCoaseguro == 1)
                        {
                            oServiceComponentDto.d_SaldoPaciente    = resultplan[0].d_Importe * decimal.Parse(oServiceComponentDto.r_Price.ToString()) / 100;
                            oServiceComponentDto.d_SaldoAseguradora = decimal.Parse(oServiceComponentDto.r_Price.ToString()) - oServiceComponentDto.d_SaldoPaciente;
                        }
                        if (resultplan[0].i_EsDeducible == 1)
                        {
                            oServiceComponentDto.d_SaldoPaciente    = resultplan[0].d_Importe;
                            oServiceComponentDto.d_SaldoAseguradora = decimal.Parse(oServiceComponentDto.r_Price.ToString()) - resultplan[0].d_Importe;
                        }
                    }

                    //Condicionales
                    var conditional = obj.IsConditionalId;
                    if (conditional == (int)SiNo.Si)
                    {
                        var fechaNacimiento = dataService.FechaNacimiento;
                        //Datos del paciente

                        if (fechaNacimiento != null)
                        {
                            var pacientAge = DateTime.Today.AddTicks(-fechaNacimiento.Ticks).Year - 1;

                            var pacientGender = dataService.GeneroId;

                            //Datos del protocolo
                            int         analyzeAge    = obj.Age.Value;
                            int         analyzeGender = obj.GenderId.Value;
                            var         @operator     = (Operator2Values)obj.OperatorId;
                            GrupoEtario oGrupoEtario  = (GrupoEtario)obj.GrupoEtarioId;
                            if (analyzeAge >= 0)                                   //condicional edad (SI)
                            {
                                if (analyzeGender != (int)GenderConditional.Ambos) //condicional genero (SI)
                                {
                                    if (@operator == Operator2Values.X_esIgualque_A)
                                    {
                                        if (pacientAge == analyzeAge && pacientGender == analyzeGender)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMayorIgualque_A)
                                    {
                                        if (pacientAge >= analyzeAge && pacientGender == analyzeGender)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMayorque_A)
                                    {
                                        if (pacientAge > analyzeAge && pacientGender == analyzeGender)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMenorIgualque_A)
                                    {
                                        if (pacientAge <= analyzeAge && pacientGender == analyzeGender)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                }
                                else//condicional genero (NO)
                                {
                                    if (@operator == Operator2Values.X_esIgualque_A)
                                    {
                                        if (pacientAge == analyzeAge)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMayorIgualque_A)
                                    {
                                        if (pacientAge >= analyzeAge)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMayorque_A)
                                    {
                                        if (pacientAge > analyzeAge)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                    if (@operator == Operator2Values.X_esMenorIgualque_A)
                                    {
                                        if (pacientAge <= analyzeAge)
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                                        }
                                        else
                                        {
                                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        oServiceComponentDto.i_IsRequiredId = (int)SiNo.Si;
                        if (obj.IsAdditional == null)
                        {
                            continue;
                        }
                        var adicional = obj.IsAdditional;
                        if (adicional == 1)
                        {
                            oServiceComponentDto.i_IsRequiredId = (int)SiNo.No;
                        }
                    }

                    oServiceComponentDto.i_ConCargoA         = 0;
                    oServiceComponentDto.i_IsManuallyAddedId = (int)SiNo.No;
                    ctx.ServiceComponent.Add(oServiceComponentDto);
                }
                return(ctx.SaveChanges() > 0);
            }
            catch (Exception)
            {
                return(false);
            }
        }
コード例 #7
0
        public bool SaveAdditionalExamsForCalendar(List <AdditionalExamCreate> data, int userId, int nodeId)
        {
            try
            {
                DatabaseContext dbContext = new DatabaseContext();
                using (var ts = new TransactionScope())
                {
                    foreach (var objExam in data)
                    {
                        if (objExam.IsNewService == (int)SiNo.No)
                        {
                            var unidadProductiva = GetMedicalExam(objExam.ComponentId);
                            var newId            = new Common.Utils().GetPrimaryKey(nodeId, 24, "SC");;
                            ServiceComponentDto objServiceComponentDto = new ServiceComponentDto();
                            objServiceComponentDto.v_ServiceComponentId     = newId;
                            objServiceComponentDto.i_ConCargoA              = -1;
                            objServiceComponentDto.v_ServiceId              = objExam.ServiceId;
                            objServiceComponentDto.i_ExternalInternalId     = (int)ComponenteProcedencia.Interno;
                            objServiceComponentDto.i_ServiceComponentTypeId = 1;
                            objServiceComponentDto.i_IsVisibleId            = 1;
                            objServiceComponentDto.i_IsInheritedId          = (int)SiNo.No;
                            objServiceComponentDto.d_StartDate              = null;
                            objServiceComponentDto.d_EndDate                  = null;
                            objServiceComponentDto.i_index                    = 1;
                            objServiceComponentDto.r_Price                    = objExam.Price;
                            objServiceComponentDto.v_ComponentId              = objExam.ComponentId;
                            objServiceComponentDto.i_IsInvoicedId             = (int)SiNo.No;
                            objServiceComponentDto.i_ServiceComponentStatusId = (int)ServiceStatus.PorIniciar;
                            objServiceComponentDto.i_QueueStatusId            = (int)QueueStatusId.Libre;
                            objServiceComponentDto.i_Iscalling                = (int)Flag_Call.NoseLlamo;
                            objServiceComponentDto.i_Iscalling_1              = (int)Flag_Call.NoseLlamo;
                            objServiceComponentDto.i_IsManuallyAddedId        = (int)SiNo.No;
                            objServiceComponentDto.i_IsRequiredId             = (int)SiNo.Si;
                            objServiceComponentDto.v_IdUnidadProductiva       = unidadProductiva;
                            objServiceComponentDto.i_MedicoTratanteId         = objExam.MedicoTratante;
                            objServiceComponentDto.d_SaldoPaciente            = 0;
                            objServiceComponentDto.d_SaldoAseguradora         = 0;
                            objServiceComponentDto.i_IsDeleted                = 0;
                            objServiceComponentDto.d_InsertDate               = DateTime.Now;
                            dbContext.ServiceComponent.Add(objServiceComponentDto);
                            dbContext.SaveChanges();
                        }
                        else
                        {
                            CalendarDto _CalendarDto = new CalendarDto();
                            var         protocolId   = Constants.Prot_Hospi_Adic;
                            _CalendarDto.v_PersonId         = objExam.PersonId;
                            _CalendarDto.d_DateTimeCalendar = DateTime.Now;
                            _CalendarDto.d_CircuitStartDate = DateTime.Now;
                            _CalendarDto.d_EntryTimeCM      = DateTime.Now;
                            _CalendarDto.i_ServiceTypeId    = (int)ServiceType.Particular;
                            _CalendarDto.i_ServiceId        = (int)MasterService.Hospitalizacion;

                            _CalendarDto.i_CalendarStatusId  = (int)CalendarStatus.Agendado;
                            _CalendarDto.i_LineStatusId      = (int)LineStatus.EnCircuito;
                            _CalendarDto.v_ProtocolId        = protocolId;
                            _CalendarDto.i_NewContinuationId = 1;
                            _CalendarDto.i_LineStatusId      = (int)LineStatus.EnCircuito;
                            _CalendarDto.i_IsVipId           = (int)SiNo.No;

                            var result = AddCalendar(_CalendarDto, nodeId, userId);

                            if (result)
                            {
                                ServiceDto _ServiceDto = new ServiceDto();

                                _ServiceDto = ctx.Service.Where(x => x.v_ServiceId == objExam.ServiceId).FirstOrDefault();
                                _ServiceDto.d_ServiceDate     = DateTime.Now;
                                _ServiceDto.i_ServiceStatusId = (int)ServiceStatus.Iniciado;
                                _ServiceDto.d_UpdateDate      = DateTime.Now;
                                _ServiceDto.i_UpdateUserId    = userId;
                                ctx.SaveChanges();

                                var servicesComponents = new ServiceComponentDal().GetServiceComponents(objExam.ServiceId);
                                if (servicesComponents != null)
                                {
                                    foreach (var servicesComponent in servicesComponents)
                                    {
                                        var oservicecomponentDto = ctx.ServiceComponent.Where(x => x.v_ServiceComponentId == servicesComponent.v_ServiceComponentId).FirstOrDefault();
                                        oservicecomponentDto.i_MedicoTratanteId   = 11;
                                        oservicecomponentDto.i_IsVisibleId        = 1;
                                        oservicecomponentDto.v_ServiceComponentId = servicesComponent.v_ServiceComponentId;
                                        oservicecomponentDto.i_UpdateUserId       = userId;
                                        oservicecomponentDto.d_UpdateDate         = DateTime.Now;
                                        ctx.SaveChanges();
                                    }

                                    var resultHospi = new HospitalizacionDal().AddHospitalizacionService(null, objExam.ServiceId, nodeId, userId);
                                    if (!resultHospi)
                                    {
                                        throw new Exception("");
                                    }
                                }
                                else
                                {
                                    throw new Exception("");
                                }
                            }
                            else
                            {
                                throw new Exception("");
                            }
                        }
                    }

                    var resultAdditional = new AdditionalExamDal().UpdateAdditionalExamByComponentIdAndServiceId(data, userId);
                    if (!resultAdditional)
                    {
                        throw new Exception("");
                    }
                    ts.Complete();
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }