Пример #1
0
 public string AddDiagnosticRepository(DiagnosticCustom dataDiagnostic, int nodeId, int systemUserId)
 {
     try
     {
         DatabaseContext         ctx     = new DatabaseContext();
         DiagnosticRepositoryDto objDiag = new DiagnosticRepositoryDto();
         var id = new Common.Utils().GetPrimaryKey(nodeId, 29, "DR");
         objDiag.v_DiagnosticRepositoryId = id;
         objDiag.v_ServiceId            = dataDiagnostic.ServiceId;
         objDiag.v_DiseasesId           = dataDiagnostic.DiseaseId;
         objDiag.v_ComponentId          = dataDiagnostic.ComponentId;
         objDiag.i_AutoManualId         = (int)AutoManual.Manual;             // dr.AutoManualId;
         objDiag.i_PreQualificationId   = (int)PreQualification.Aceptado;     // dr.PreQualificationId;
         objDiag.i_FinalQualificationId = (int)FinalQualification.Definitivo; // dr.FinalQualificationId;
         objDiag.i_DiagnosticTypeId     = (int)TipoDx.Enfermedad_Comun;       // dr.DiagnosticTypeId;
         objDiag.i_IsDeleted            = 0;
         objDiag.i_InsertUserId         = systemUserId;
         objDiag.d_InsertDate           = DateTime.Now;
         ctx.DiagnosticRepository.Add(objDiag);
         ctx.SaveChanges();
         return(id);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
Пример #2
0
        private List <DiagnosticRepositoryDto> FindDxAddTemp(List <DiagnosticCustom> diagnostics, int nodeId, int systemUserId)
        {
            var list             = new List <DiagnosticRepositoryDto>();
            var diagnosticslList = diagnostics.FindAll(p => p.RecordType == (int)RecordType.Temporal &&
                                                       (p.RecordStatus == (int)RecordStatus.Agregado ||
                                                        p.RecordStatus == (int)RecordStatus.Editado))
                                   .ToList();

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

            foreach (var dx in diagnosticslList)
            {
                var diagnosticRepositoryDto = new DiagnosticRepositoryDto
                {
                    v_ComponentId      = dx.ComponentId.Contains('|') ? (dx.ComponentId.Split('|'))[0] : dx.ComponentId,
                    v_ServiceId        = dx.ServiceId,
                    v_DiseasesId       = dx.DiseaseId,
                    v_ComponentFieldId = dx.ComponentFieldsId,

                    //HardCode Temporal
                    i_AutoManualId         = (int)AutoManual.Manual,             // dx.AutoManualId,
                    i_PreQualificationId   = (int)PreQualification.Aceptado,     // dx.PreQualificationId,
                    i_FinalQualificationId = (int)FinalQualification.Definitivo, // dx.FinalQualificationId,
                    i_DiagnosticTypeId     = (int)TipoDx.Enfermedad_Comun,       //  dx.DiagnosticTypeId,

                    i_IsSentToAntecedent       = dx.IsSentToAntecedent,
                    d_ExpirationDateDiagnostic = dx.ExpirationDateDiagnostic,
                    i_DiagnosticSourceId       = dx.DiagnosticSourceId,
                    i_ShapeAccidentId          = dx.ShapeAccidentId,
                    i_BodyPartId = dx.BodyPartId,
                    i_ClassificationOfWorkAccidentId = dx.ClassificationOfWorkAccidentId,
                    i_RiskFactorId = dx.RiskFactorId,
                    i_ClassificationOfWorkdiseaseId = dx.ClassificationOfWorkdiseaseId
                };

                list.Add(diagnosticRepositoryDto);
            }
            //_filHandler += _oDiagnosticDal.AddTemporaryDiagnostics;
            //_oDiagnosticDal.SaveDiagnostics(list, nodeId, systemUserId, _filHandler);
            return(list);
        }
Пример #3
0
        private List <DiagnosticRepositoryDto> FindDxEditNonTemp(List <DiagnosticCustom> diagnostics, int nodeId, int systemUserId)
        {
            var list             = new List <DiagnosticRepositoryDto>();
            var diagnosticslList = diagnostics.FindAll(p => p.RecordType == (int)RecordType.Temporal &&
                                                       (p.RecordStatus == (int)RecordStatus.Agregado ||
                                                        p.RecordStatus == (int)RecordStatus.Editado))
                                   .ToList();

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

            foreach (var dx in diagnosticslList)
            {
                var diagnosticRepositoryDto = new DiagnosticRepositoryDto
                {
                    i_AutoManualId             = dx.AutoManualId,
                    i_PreQualificationId       = dx.PreQualificationId,
                    v_ComponentId              = dx.ComponentId.Split('|')[0],
                    i_FinalQualificationId     = dx.FinalQualificationId,
                    i_DiagnosticTypeId         = dx.DiagnosticTypeId,
                    i_IsSentToAntecedent       = dx.IsSentToAntecedent,
                    d_ExpirationDateDiagnostic = dx.ExpirationDateDiagnostic,
                    i_DiagnosticSourceId       = dx.DiagnosticSourceId,
                    i_ShapeAccidentId          = dx.ShapeAccidentId,
                    i_BodyPartId = dx.BodyPartId,
                    i_ClassificationOfWorkAccidentId = dx.ClassificationOfWorkAccidentId,
                    i_RiskFactorId = dx.RiskFactorId,
                    i_ClassificationOfWorkdiseaseId = dx.ClassificationOfWorkdiseaseId
                };

                list.Add(diagnosticRepositoryDto);
            }

            //_filHandler += _oDiagnosticDal.ModifyNonTemporalDiagnostics;
            //_oDiagnosticDal.SaveDiagnostics(list, nodeId, systemUserId, _filHandler);

            return(list);
        }
Пример #4
0
        private List <DiagnosticRepositoryDto> FindDxRemoveNonTemp(List <DiagnosticCustom> diagnostics, int nodeId, int systemUserId)
        {
            var list             = new List <DiagnosticRepositoryDto>();
            var diagnosticslList = diagnostics.FindAll(p => p.RecordType == (int)RecordType.NoTemporal &&
                                                       p.RecordStatus == (int)RecordStatus.Eliminado)
                                   .ToList();

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

            foreach (var dx in diagnosticslList)
            {
                var oDiagnosticRepositoryDto = new DiagnosticRepositoryDto();
                oDiagnosticRepositoryDto.v_DiagnosticRepositoryId = dx.DiagnosticRepositoryId;
                list.Add(oDiagnosticRepositoryDto);
            }
            //_filHandler += _oDiagnosticDal.RemoveNonTemporalDiagnostics;
            //_oDiagnosticDal.SaveDiagnostics(list, nodeId, systemUserId, _filHandler);

            return(list);
        }
Пример #5
0
        public void AddDiagnosticRepository(List <DiagnosticCustom> pobjDiagnosticRepository, int nodeId, int systemUserId)
        {
            try
            {
                string NewId0      = "(No generado)";
                string componentId = null;

                if (pobjDiagnosticRepository != null)
                {
                    foreach (var dr in pobjDiagnosticRepository)
                    {
                        #region DiagnosticRepository -> ADD / UPDATE / DELETE

                        // ADD
                        if (dr.RecordType == (int)RecordType.Temporal && (dr.RecordStatus == (int)RecordStatus.Agregado || dr.RecordStatus == (int)RecordStatus.Editado))
                        {
                            DiagnosticRepositoryDto objEntity = new DiagnosticRepositoryDto();

                            // En caso de haber mas de un ComponentID quiere decir que lo datos provienen de un examen agrupador con una categoria (LAB,PSICOLOGIA)
                            // entonces cojo el ID del hijo mayor (osea el primer ID)[0]
                            // Buscar un palote
                            if (dr.ComponentId != null)
                            {
                                if (dr.ComponentId.Contains('|'))
                                {
                                    componentId = (dr.ComponentId.Split('|'))[0];
                                }
                                else
                                {
                                    componentId = dr.ComponentId;
                                }
                            }

                            objEntity.v_DiagnosticRepositoryId = dr.DiagnosticRepositoryId;
                            objEntity.v_ServiceId   = dr.ServiceId;
                            objEntity.v_ComponentId = componentId;
                            objEntity.v_DiseasesId  = dr.DiseaseId;
                            // ID del Control que generó el DX automático [v_ComponentFieldsId]
                            objEntity.v_ComponentFieldId   = dr.ComponentFieldsId;
                            objEntity.i_AutoManualId       = (int)AutoManual.Manual;                   // dr.AutoManualId;
                            objEntity.i_PreQualificationId = (int)PreQualification.Aceptado;           // dr.PreQualificationId;
                                                                                                       // Total Diagnósticos
                            objEntity.i_FinalQualificationId     = (int)FinalQualification.Definitivo; // dr.FinalQualificationId;
                            objEntity.i_DiagnosticTypeId         = (int)TipoDx.Enfermedad_Comun;       // dr.DiagnosticTypeId;
                            objEntity.i_IsSentToAntecedent       = dr.IsSentToAntecedent;
                            objEntity.d_ExpirationDateDiagnostic = dr.ExpirationDateDiagnostic;

                            objEntity.d_InsertDate   = DateTime.Now;
                            objEntity.i_InsertUserId = systemUserId;
                            objEntity.i_IsDeleted    = 0;

                            // Accidente laboral
                            objEntity.i_DiagnosticSourceId = dr.DiagnosticSourceId;
                            objEntity.i_ShapeAccidentId    = dr.ShapeAccidentId;

                            objEntity.i_BodyPartId = dr.BodyPartId;
                            objEntity.i_ClassificationOfWorkAccidentId = dr.ClassificationOfWorkAccidentId;

                            // Enfermedad laboral
                            objEntity.i_RiskFactorId = dr.RiskFactorId;
                            objEntity.i_ClassificationOfWorkdiseaseId = dr.ClassificationOfWorkdiseaseId;

                            // Autogeneramos el Pk de la tabla
                            NewId0 = new Common.Utils().GetPrimaryKey(nodeId, 29, "DR");
                            // Common.Utils.GetNewId(intNodeId, Utils.GetNextSecuentialId(intNodeId, 29), "DR");
                            objEntity.v_DiagnosticRepositoryId = NewId0;

                            Ctx.DiagnosticRepository.Add(objEntity);
                        } // UPDATE
                        else if (dr.RecordType == (int)RecordType.NoTemporal && dr.RecordStatus == (int)RecordStatus.Editado)
                        {
                            // Obtener la entidad fuente
                            var objEntitySource = (from a in Ctx.DiagnosticRepository
                                                   where a.v_DiagnosticRepositoryId == dr.DiagnosticRepositoryId
                                                   select a).FirstOrDefault();

                            // Crear la entidad con los datos actualizados
                            objEntitySource.i_AutoManualId       = (int)AutoManual.Manual;         //dr.AutoManualId;
                            objEntitySource.i_PreQualificationId = (int)PreQualification.Aceptado; //dr.PreQualificationId;
                            objEntitySource.v_ComponentId        = dr.ComponentId.Split('|')[0];
                            // ID del Control que generó el DX automático [v_ComponentFieldsId]
                            //objEntitySource.v_ComponentFieldsId = dr.v_ComponentFieldsId;
                            // Total Diagnósticos
                            if (objEntitySource.i_FinalQualificationId == null)
                            {
                                objEntitySource.i_FinalQualificationId = dr.FinalQualificationId;
                            }



                            objEntitySource.i_DiagnosticTypeId         = (int)TipoDx.Enfermedad_Comun;//dr.DiagnosticTypeId;
                            objEntitySource.i_IsSentToAntecedent       = dr.IsSentToAntecedent;
                            objEntitySource.d_ExpirationDateDiagnostic = dr.ExpirationDateDiagnostic;

                            // Accidente laboral
                            objEntitySource.i_DiagnosticSourceId             = dr.DiagnosticSourceId;
                            objEntitySource.i_ShapeAccidentId                = dr.ShapeAccidentId;
                            objEntitySource.i_BodyPartId                     = dr.BodyPartId;
                            objEntitySource.i_ClassificationOfWorkAccidentId = dr.ClassificationOfWorkAccidentId;

                            // Enfermedad laboral
                            objEntitySource.i_RiskFactorId = dr.RiskFactorId;
                            objEntitySource.i_ClassificationOfWorkdiseaseId = dr.ClassificationOfWorkdiseaseId;

                            objEntitySource.d_UpdateDate   = DateTime.Now;
                            objEntitySource.i_UpdateUserId = systemUserId;
                        } // DELETE
                        else if (dr.RecordType == (int)RecordType.NoTemporal && dr.RecordStatus == (int)RecordStatus.Eliminado)
                        {
                            // Obtener la entidad fuente
                            var objEntitySource = (from a in Ctx.DiagnosticRepository
                                                   where a.v_DiagnosticRepositoryId == dr.DiagnosticRepositoryId
                                                   select a).FirstOrDefault();

                            // Crear la entidad con los datos actualizados
                            objEntitySource.d_UpdateDate   = DateTime.Now;
                            objEntitySource.i_UpdateUserId = systemUserId;
                            objEntitySource.i_IsDeleted    = 1;
                        }

                        #endregion

                        #region Restricciones -> ADD / DELETE

                        if (dr.Restrictions != null)
                        {
                            // Operaciones básicas [Add,Update,Delete] restricciones
                            foreach (var r in dr.Restrictions)
                            {
                                if (r.RecordType == (int)RecordType.Temporal && r.RecordStatus == (int)RecordStatus.Agregado)
                                {
                                    RestrictionDto objRestriction = new RestrictionDto();

                                    var NewId1 = new Common.Utils().GetPrimaryKey(nodeId, 30, "RD");
                                    //Common.Utils.GetNewId(intNodeId, Utils.GetNextSecuentialId(intNodeId, 30), "RD");
                                    objRestriction.v_ServiceId   = dr.ServiceId;
                                    objRestriction.v_ComponentId = dr.ComponentId.Split('|')[0];
                                    //objRestriction.v_RestrictionByDiagnosticId = NewId1;
                                    objRestriction.v_RestrictionId          = NewId1;
                                    objRestriction.v_DiagnosticRepositoryId = NewId0 == "(No generado)" ? dr.DiagnosticRepositoryId : NewId0;

                                    objRestriction.v_MasterRestrictionId = r.MasterRestrictionId.Length > 16 ? null : r.MasterRestrictionId;
                                    objRestriction.d_InsertDate          = DateTime.Now;
                                    objRestriction.i_InsertUserId        = systemUserId;
                                    objRestriction.i_IsDeleted           = 0;

                                    Ctx.Restriction.Add(objRestriction);
                                }
                                else if (r.RecordType == (int)RecordType.NoTemporal && r.RecordStatus == (int)RecordStatus.Eliminado)
                                {
                                    // Obtener la entidad fuente v_RestrictionByDiagnosticId
                                    var objEntitySource = (from a in Ctx.Restriction
                                                           where a.v_RestrictionId == r.RestrictionId
                                                           select a).FirstOrDefault();

                                    // Crear la entidad con los datos actualizados
                                    objEntitySource.d_UpdateDate   = DateTime.Now;
                                    objEntitySource.i_UpdateUserId = systemUserId;
                                    objEntitySource.i_IsDeleted    = 1;
                                }
                                //dbContext.SaveChanges();
                            }
                        }

                        #endregion

                        #region Recomendaciones -> ADD / DELETE

                        if (dr.Recommendations != null)
                        {
                            // Grabar recomendaciones
                            foreach (var r in dr.Recommendations)
                            {
                                if (r.RecordType == (int)RecordType.Temporal && r.RecordStatus == (int)RecordStatus.Agregado)
                                {
                                    RecommendationDto objRecommendation = new RecommendationDto();

                                    var NewId1 = new Common.Utils().GetPrimaryKey(nodeId, 32, "RR");
                                    //Common.Utils.GetNewId(intNodeId, Utils.GetNextSecuentialId(intNodeId, 32), "RR");
                                    objRecommendation.v_ServiceId              = dr.ServiceId;
                                    objRecommendation.v_ComponentId            = dr.ComponentId.Split('|')[0];
                                    objRecommendation.v_RecommendationId       = NewId1;
                                    objRecommendation.v_DiagnosticRepositoryId = NewId0 == "(No generado)" ? dr.DiagnosticRepositoryId : NewId0;

                                    //objRecommendation.v_MasterRecommendationId = r.v_RecommendationId.Length > 16 ? null : r.v_MasterRecommendationId;
                                    objRecommendation.v_MasterRecommendationId = r.MasterRecommendationId;
                                    objRecommendation.d_InsertDate             = DateTime.Now;
                                    objRecommendation.i_InsertUserId           = systemUserId;
                                    objRecommendation.i_IsDeleted = 0;

                                    Ctx.Recommendation.Add(objRecommendation);
                                }
                                else if (r.RecordType == (int)RecordType.NoTemporal && r.RecordStatus == (int)RecordStatus.Eliminado)
                                {
                                    // Obtener la entidad fuente
                                    var objEntitySource = (from a in Ctx.Recommendation
                                                           where a.v_RecommendationId == r.RecommendationId
                                                           select a).FirstOrDefault();

                                    // Crear la entidad con los datos actualizados
                                    objEntitySource.d_UpdateDate   = DateTime.Now;
                                    objEntitySource.i_UpdateUserId = systemUserId;
                                    objEntitySource.i_IsDeleted    = 1;
                                }
                                //dbContext.SaveChanges();
                            }
                        }

                        #endregion
                    }

                    // Guardar los cambios
                    Ctx.SaveChanges();
                }
            }
            catch (Exception ex)
            {
            }
        }