Exemplo n.º 1
0
        public bool Confirm()
        {
            try
            {
                if (EventSituation == null)
                {
                    ShowMessage("Selecione a situação");
                }
                else
                {
                    DispositionCodeModel dispositionCode = GetDispositionCode();
                    if (dispositionCode != null && !string.IsNullOrEmpty(dispositionCode.Id))
                    {
                        if (!IsSubmitted)
                        {
                            if (EventSituation == EventSituationEnum.NotFound)
                            {
                                VictimData = new VictimModel();
                            }
                            else
                            {
                                if (AsExpected == false)
                                {
                                    if (string.IsNullOrEmpty(VictimData.SituationFound.Key))
                                    {
                                        ShowMessage("Favor selecionar a situação encontrada.");

                                        return(false);
                                    }
                                }
                                else
                                {
                                    VictimData.SituationFound = new KeyValuePair <string, string>();
                                }
                            }

                            SubmissionBusiness.ExecuteCadUpdates(UnitId, AgencyEventId, EventSituation.Value, dispositionCode, Remarks, SelectedHospital, VictimData);
                        }
                        else
                        {
                            if (string.IsNullOrEmpty(VictimData.Name.Trim()))
                            {
                                ShowMessage("Favor inserir o nome da vítima.");

                                return(false);
                            }

                            if (VictimData.Age != null)
                            {
                                if (VictimData.AgeType == null || VictimData.AgeType == 0)
                                {
                                    ShowMessage("Favor selecionar um tipo de idade válido para a vítima.");

                                    return(false);
                                }
                            }

                            if (VictimData.AgeType != null && VictimData.AgeType.Value > 0)
                            {
                                if (VictimData.Age == null)
                                {
                                    ShowMessage("Favor informar uma idade válida para a vítima.");

                                    return(false);
                                }
                            }

                            if (AsExpected == false)
                            {
                                if (string.IsNullOrEmpty(VictimData.SituationFound.Key))
                                {
                                    ShowMessage("Favor selecionar a situação encontrada.");

                                    return(false);
                                }
                            }
                            else
                            {
                                VictimData.SituationFound = new KeyValuePair <string, string>();
                            }

                            string selectedHospitalName = SelectedHospital != null ? SelectedHospital.Name : string.Empty;
                            SubmissionBusiness.ExecuteCadEndUpdates(UnitId, AgencyEventId, EventSituation.Value, dispositionCode, Remarks, selectedHospitalName, HospitalHasChanged, VictimData, IsRetainedStretcherSituation);
                        }

                        SubmissionBusiness.SaveSubmission(UnitId, AgencyEventId, dispositionCode, AsExpected, SelectedHospital, Remarks, VictimData);

                        if (!HasNotRetainedStretcher && !IsRetainedStretcherSituation)
                        {
                            UserModel currentUser = PersonBusiness.GetCurrentUser();
                            RetainedStretcherBusiness.ComeBackUnitStatusToRetainedStretcher(UnitId, currentUser);
                        }

                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("Add/In.: Falha na finalização, Submission.", ex);

                ShowMessage("Falha ao realizar solicitação.");
            }

            return(false);
        }
Exemplo n.º 2
0
        public bool LoadData()
        {
            try
            {
                //INICIALMENTE SETADO COMO NÃO ENCONTRADO, ABAIXO SE ENCONTRAR REGISTRO SETA PARA OUTRO.
                this.EventSituation = EventSituationEnum.NotFound;
                this.VictimData     = new VictimModel();

                this.ReasonList = EventTypeBusiness.GetDispositionCodeList(true);

                if (this.ReasonList.Count == 0)
                {
                    return(false);
                }

                this.SituationFoundList  = EventTypeBusiness.GetEventTypeList();
                this.HospitalList        = SamuBusiness.GetHospitalList();
                this.DisplayHospitalList = HospitalList;
                this.IsNotUram           = (UnitBusiness.GetUnitType(this.UnitId) != "URAM");

                UnitWithRetainedStretcherModel unitWithRetainedStretcher = null;
                //TODO: Temporário: Voltar para ativar recurso de Maca Retida

                /*    RetainedStretcherBusiness.GetUnitsWithRetainedStretcher("SAMU", PersonBusiness.GetCurrentUser(), this.UnitId, isOnlyWithStatusRetainedStretcher: false)
                 *  .FirstOrDefault();*/

                this.HasNotRetainedStretcher = unitWithRetainedStretcher == null ? true : false;

                HospitalTypeList = HospitalList.Select(p => p.HospitalGroup).Distinct().ToList();

                _dispositionNotFoundTypeCode = CadBusiness.GetCadParameterListItem("sisgraph", "SubmissionWindowParams", "DispositionNotFoundCode");
                _dispositionRemovedTypeCode  = CadBusiness.GetCadParameterListItem("sisgraph", "SubmissionWindowParams", "DispositionRemovedCode");
                //_dispositionRetainedStretcher = CadBusiness.GetCadParameterListItem("sisgraph", "SubmissionWindowParams", "DispositionRetainedStretcher");

                if (_dispositionNotFoundTypeCode == null || _dispositionRemovedTypeCode == null) //|| _dispositionRetainedStretcher == null
                {
                    throw new Exception("Não foi possível carregar os parâmetros do ICAD.");
                }

                if (_isSubmitted)
                {
                    SubmissionModel loadedSubmissionModel = SubmissionBusiness.GetLoadedSubmission(UnitId, AgencyEventId);

                    if (loadedSubmissionModel == null)
                    {
                        //{
                        //    throw new Exception("Dados de finalização não encontrados.");
                        //}
                        loadedSubmissionModel = new SubmissionModel();

                        loadedSubmissionModel.DispositionCode = _dispositionRemovedTypeCode;

                        this.EventSituation = EventSituationEnum.Removed;

                        this.HospitalHasChanged = true;
                    }
                    else
                    {
                        //ToString: complete
                        if (loadedSubmissionModel.DispositionCode == _dispositionNotFoundTypeCode)
                        {
                            this.EventSituation = EventSituationEnum.NotFound;
                        }
                        else if (loadedSubmissionModel.DispositionCode == _dispositionRemovedTypeCode)
                        {
                            this.EventSituation = EventSituationEnum.Removed;
                        }
                        //else if (loadedSubmissionModel.DispositionCode == _dispositionRetainedStretcher)
                        //    this.EventSituation = EventSituationEnum.RetainedStretcher;
                        else
                        {
                            this.EventSituation = EventSituationEnum.ResolvedOnLocal;
                        }



                        this.SelectedReason = loadedSubmissionModel.SelectedReason;

                        this.AsExpected = loadedSubmissionModel.AsExpected;

                        this.VictimData = loadedSubmissionModel.Victim;

                        if (!string.IsNullOrEmpty(loadedSubmissionModel.Victim.SituationFound.Key))
                        {
                            this.VictimData.SituationFound = SituationFoundList.Where(p => p.Key == loadedSubmissionModel.Victim.SituationFound.Key).FirstOrDefault();
                        }

                        if (loadedSubmissionModel.SelectedHospital != null)
                        {
                            this.SelectedHospitalType = loadedSubmissionModel.SelectedHospital.HospitalGroup;

                            this.SelectedHospital = HospitalList.Where(p => p.Cnes == loadedSubmissionModel.SelectedHospital.Cnes).FirstOrDefault();
                        }

                        this.Remarks = loadedSubmissionModel.Remarks;
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                logger.Error("Ocorreu um erro carregando a ViewModel da janela de finalização de evento.", ex);

                throw new Exception("Falha ao carregar dados de finalização");
            }
        }