예제 #1
0
        private void SaveReferral()
        {
            if (Validate())
            {
                ObsLinkage obs;

                if (null == ObsLinkage)
                {
                    obs = ObsLinkage.CreateNew(ReferredTo, DatePromised, ParentViewModel.Encounter.Id);
                }
                else
                {
                    obs              = ObsLinkage;
                    obs.ReferredTo   = ReferredTo;
                    obs.DatePromised = DatePromised;
                    _linkageService.SaveLinkage(obs, ParentViewModel.Client.Id);
                }
                _linkageService.SaveLinkage(obs, ParentViewModel.Client.Id);

                _linkageService.MarkEncounterCompleted(ParentViewModel.Encounter.Id, ParentViewModel.AppUserId, true);
                ParentViewModel.Encounter = _linkageService.OpenEncounter(ParentViewModel.Encounter.Id);

                _dialogService.ShowToast("Referral info saved successfully");
                ParentViewModel.GoBack();
            }
            else
            {
                if (null != Errors && Errors.Any())
                {
                    ShowErrorInfo(Errors.First().Value);
                }
            }
        }
예제 #2
0
        private void SaveLinking()
        {
            if (Validate())
            {
                ObsLinkage obs;

                if (null == ObsLinkage)
                {
                    obs = ObsLinkage.CreateNew(FacilityHandedTo, HandedTo, WorkerCarde, DateEnrolled, EnrollmentId, Remarks, ParentViewModel.Encounter.Id, ARTStartDate);
                }
                else
                {
                    obs = ObsLinkage;

                    obs.FacilityHandedTo = FacilityHandedTo;
                    obs.HandedTo         = HandedTo;
                    obs.WorkerCarde      = WorkerCarde;
                    obs.DateEnrolled     = DateEnrolled;
                    obs.ARTStartDate     = ARTStartDate;
                    obs.EnrollmentId     = EnrollmentId;
                    obs.Remarks          = Remarks;

                    _linkageService.SaveLinkage(obs, ParentViewModel.Client.Id, false);
                }
                _linkageService.SaveLinkage(obs, ParentViewModel.Client.Id, false);
                ParentViewModel.Encounter = _linkageService.OpenEncounter(ParentViewModel.Encounter.Id);

                _dialogService.ShowToast("Linkage info saved successfully");
                ParentViewModel.GoBack();
            }
        }
예제 #3
0
        public void Init(string formId, string encounterTypeId, string mode, string clientId, string encounterId)
        {
            // Load Client

            Client = _dashboardService.LoadClient(new Guid(clientId));

            if (null != Client)
            {
                var clientJson = JsonConvert.SerializeObject(Client);
                _settings.AddOrUpdateValue("client", clientJson);
            }

            // Load or Create Encounter

            if (!string.IsNullOrWhiteSpace(encounterTypeId))
            {
                _settings.AddOrUpdateValue("encounterTypeId", encounterTypeId);
            }

            EncounterTypeId = new Guid(encounterTypeId);

            if (mode == "new")
            {
                //  New Encounter
                _settings.AddOrUpdateValue("client.link.mode", "new");
                Encounter = _linkageService.StartEncounter(new Guid(formId), EncounterTypeId, Client.Id, AppProviderId, AppUserId, AppPracticeId, AppDeviceId);
            }
            else
            {
                //  Load Encounter
                _settings.AddOrUpdateValue("client.link.mode", "open");
                Encounter = _linkageService.OpenEncounter(new Guid(encounterId));
            }

            if (null == Encounter)
            {
                throw new ArgumentException("Encounter has not been Initialized");
            }
            //Store Encounter

            var encounterJson = JsonConvert.SerializeObject(Encounter);

            _settings.AddOrUpdateValue("client.encounter", encounterJson);

            var modes = _lookupService.GetCategoryItems("TraceMode", true, "[Select Mode]").ToList();

            _settings.AddOrUpdateValue("lookup.Mode", JsonConvert.SerializeObject(modes));

            var outcomes = _lookupService.GetCategoryItems("TraceOutcome", true, "[Select Outcome]").ToList();

            _settings.AddOrUpdateValue("lookup.Outcome", JsonConvert.SerializeObject(outcomes));

            var reasons = _lookupService.GetCategoryItems("ReasonNotContacted", true, "[Select Reason]").ToList();

            _settings.AddOrUpdateValue("lookup.ReasonNotContacted", JsonConvert.SerializeObject(reasons));
        }