Example #1
0
        protected internal async Task TemplatePage(RichEditControl editor, string ExaminationName, string ExaminationCode, Action Save, bool Type)
        {
            await Loading.Show();

            await Task.Run(async() =>
            {
                try
                {
                    using (me = new MedicalModel(ConfigurationManager.Connect()))
                    {
                        await me.Database.Connection.OpenAsync();

                        companydata cd  = me.companydata.Where(a => a.IdCD == GlobalVM.GlobalM.CompanyId).Single();
                        userdata ud     = me.userdata.Where(a => a.IdUD == GlobalVM.GlobalM.UserID).Single();
                        patientdata pd  = me.patientdata.Where(a => a.IdPD == PatientId).Single();
                        MemoryStream ms = new DocumentGenerator().Template(
                            Type,
                            cd.NameCD,
                            me.zipcode_fx.Where(a => a.IdZC == cd.ZipCodeCD).Select(a => a.DataZC).Single().ToString(),
                            me.settlement_fx.Where(a => a.IdS == cd.SettlementCD).Select(a => a.DataS).Single(),
                            cd.AddressCD,
                            ud.NameUD,
                            (int)ud.SealNumberUD,
                            pd.NamePD,
                            pd.MotherNamePD,
                            pd.BirthDatePD,
                            pd.TAJNumberPD,
                            me.zipcode_fx.Where(a => a.IdZC == pd.ZipCodePD).Select(a => a.DataZC).Single().ToString(),
                            me.settlement_fx.Where(a => a.IdS == pd.SettlementPD).Select(a => a.DataS).Single(),
                            pd.AddressPD,
                            ExaminationName,
                            ExaminationCode);

                        workingConn = true;
                        return(ms);
                    }
                }
                catch (Exception ex)
                {
                    Log.WriteException(ex);
                    workingConn = false;
                    return(null);
                }
            }, CancellationToken.None).ContinueWith(async task =>
            {
                await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(async() =>
                {
                    if (!workingConn)
                    {
                        ConnectionMessage();
                    }
                    else
                    {
                        using (MemoryStream ms = new MemoryStream(task.Result.ToArray()))
                            editor.LoadDocument(ms, DocumentFormat.OpenXml);
                        Save();
                    }
                    await Loading.Hide();
                }));
            });
        }
        private async void ExecuteDoWork(object sender, DoWorkEventArgs e)
        {
            try
            {
                using (me = new MedicalModel(ConfigurationManager.Connect()))
                {
                    await me.Database.Connection.OpenAsync();

                    if (!newForm)
                    {
                        selected = me.patientdata.Where(a => a.IdPD == selectedId).Single();
                    }
                    else
                    {
                        selected = new patientdata();
                    }
                    selected.NamePD = PatientDetailsMViewElements.UserName;
                    if (PatientDetailsMViewElements.BirthName != null)
                    {
                        selected.BirthNamePD = PatientDetailsMViewElements.BirthName;
                    }
                    selected.GenderPD     = PatientDetailsMDataSet.FullGenderList.Where(a => a.DataG == PatientDetailsMViewElements.GenderSelected).Select(a => a.IdG).Single();
                    selected.MotherNamePD = PatientDetailsMViewElements.MotherName;
                    selected.BirthPlacePD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.BirthPlaceSelected).Select(a => a.IdS).Single();
                    selected.BirthDatePD  = (DateTime)PatientDetailsMViewElements.BirthDate;
                    selected.TAJNumberPD  = PatientDetailsMViewElements.TajNumber;
                    if (!PatientDetailsMViewElements.TaxNumber.Equals(0))
                    {
                        selected.TAXNumberPD = PatientDetailsMViewElements.TaxNumber;
                    }
                    selected.ZipCodePD    = PatientDetailsMDataSet.FullZipCodeList.Where(a => a.DataZC == PatientDetailsMViewElements.ZipCodeSelected).Select(a => a.IdZC).Single();
                    selected.SettlementPD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.SettlementSelected).Select(a => a.IdS).Single();
                    selected.AddressPD    = PatientDetailsMViewElements.Address;
                    if (PatientDetailsMViewElements.Phone != null)
                    {
                        selected.PhonePD = PatientDetailsMViewElements.Phone;
                    }
                    if (PatientDetailsMViewElements.MobilePhone != null)
                    {
                        selected.MobilePhonePD = PatientDetailsMViewElements.MobilePhone;
                    }
                    if (PatientDetailsMViewElements.Email != null)
                    {
                        selected.EmailPD = PatientDetailsMViewElements.Email;
                    }
                    selected.BillingNamePD       = PatientDetailsMViewElements.BillingName;
                    selected.BillingZipCodePD    = PatientDetailsMDataSet.FullZipCodeList.Where(a => a.DataZC == PatientDetailsMViewElements.BillingZipCode).Select(a => a.IdZC).Single();
                    selected.BillingSettlementPD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.BillingSettlement).Select(a => a.IdS).Single();
                    selected.BillingAddressPD    = PatientDetailsMViewElements.BillingAddress;
                    if (newForm)
                    {
                        selected.CreatedPD = DateTime.Now;
                    }
                    if (PatientDetailsMViewElements.Notes != null)
                    {
                        selected.NotesPD = PatientDetailsMViewElements.Notes;
                    }
                    if (newForm)
                    {
                        me.patientdata.Add(selected);
                        await me.SaveChangesAsync();

                        if (me.priviledges.Single(p => p.IdP == GlobalVM.GlobalM.PriviledgeID).IsDoctorP)
                        {
                            me.belong_st.Add(new belong_st()
                            {
                                IdUD         = (int)GlobalVM.GlobalM.UserID,
                                IdPD         = selected.IdPD,
                                WhenBelongBS = DateTime.Now
                            });
                        }
                        if (newForm && selectedId != null)
                        {
                            scheduleperson_st sp = me.scheduleperson_st.Single(spd => spd.IdSP == me.scheduledata.
                                                                               FirstOrDefault(sd => sd.IdSD == selectedId).PatientIdSD);
                            me.newperson.Remove(me.newperson.Single(np => np.IdNP == sp.NewPersonIdSP));
                            sp.NewPersonIdSP = null;
                            sp.ExistedIdSP   = selected.IdPD;
                            me.scheduledata.Where(sd => sd.IdSD == selectedId).Single().StillNotVisitedSD = false;
                        }
                    }
                    await me.SaveChangesAsync();
                }
                workingConn = true;
            }
            catch (Exception ex)
            {
                Log.WriteException(ex);
                workingConn = false;
            }
        }