using System; using System.Collections.Generic; using System.Linq; using Datalib.EntityClasses; using Datalib.HelperClasses; using Datalib.Linq; using System.Windows.Forms; using SD.LLBLGen.Pro.ORMSupportClasses; namespace PatientMan.Controls { public partial class usrReferralInfo : PatientMan.usrControls.usrCommon { public EntityCollection ReferralInfos { get; set; } public TblReferralsToEntity Deleted; public usrReferralInfo() { InitializeComponent(); } public override void LoadData() { ReferralInfos = PatientInfor.TblReferralsTos; ISortExpression sorter = new SortExpression(TblReferralsToFields.EndDate | SortOperator.Ascending); adapter.FetchEntityCollection(ReferralInfos, PatientInfor.GetRelationInfoTblReferralsTos(), 0, sorter); } public override void BindingData() { EndDate.DataBindings.Clear(); Provinceid.DataBindings.Clear(); AgencyTypeID.DataBindings.Clear(); ReferralAgency.DataBindings.Clear(); Status.DataBindings.Clear(); TypeID.DataBindings.Clear(); ReceiveServiceDate.DataBindings.Clear(); DeathReasonID.DataBindings.Clear(); Note.DataBindings.Clear(); EndDate.DataBindings.Add("EditValue", ReferralInfos, "EndDate", true); Provinceid.DataBindings.Add("EditValue", ReferralInfos, "Provinceid", true); AgencyTypeID.DataBindings.Add("EditValue", ReferralInfos, "AgencyTypeId", true); ReferralAgency.DataBindings.Add("EditValue", ReferralInfos, "ReferralAgency", true); Status.DataBindings.Add("EditValue", ReferralInfos, "Status", true); ReceiveServiceDate.DataBindings.Add("EditValue", ReferralInfos, "ReceiveServiceDate", true); Note.DataBindings.Add("Text", ReferralInfos, "Note", true); TypeID.DataBindings.Add("EditValue", ReferralInfos, "TypeId", true); DeathReasonID.DataBindings.Add("EditValue", ReferralInfos, "DeathReasonId", true); } public override void LoadLibrary() { var Pro = new EntityCollection(); var Agency = new EntityCollection(); adapter.FetchEntityCollection(Pro, null); adapter.FetchEntityCollection(Agency, null); Provinceid.Properties.DataSource = Pro; AgencyTypeID.Properties.DataSource = Agency; } public override void SaveRecord() { BindingContext[ReferralInfos].EndCurrentEdit(); adapter.SaveEntityCollection(ReferralInfos, true, true); string PatientId = ReferralInfos[0].PatientId; DateTime EndDate = (DateTime)this.EndDate.EditValue; switch (TypeID.EditValue.ToString()) { case "09": EndExam(PatientId, EndDate); EndTreatment(PatientId, EndDate);break; case "10": EndExam(PatientId, EndDate); EndTreatment(PatientId, EndDate);break; case "11": EndExam(PatientId, EndDate); EndTreatment(PatientId, EndDate); FillDeathDate(PatientId, EndDate); break; } } public override void Cancel() { BindingContext[ReferralInfos].CancelCurrentEdit(); base.Cancel(); } public override void DeleteRecord() { Deleted = (TblReferralsToEntity)ReferralInfos[BindingContext[ReferralInfos].Position]; switch (Deleted.TypeId) { case "09": recoverExam(Deleted); recoverTreatment(Deleted); break; case "10": recoverExam(Deleted); recoverTreatment(Deleted); break; case "11": recoverExam(Deleted); recoverTreatment(Deleted); recoverDeathStatus(Deleted); break; } ReferralInfos.Remove(Deleted); adapter.DeleteEntity(Deleted); base.DeleteRecord(); } private void recoverDeathStatus(TblReferralsToEntity Deleted) { try { string PatientId = Deleted.PatientId; Forms.frmPatientInfo frm = (Forms.frmPatientInfo)this.ParentForm; TblPatientEntity Patient = frm.usrExamInfo.PatientInfor; Patient.DeathDate = null; adapter.SaveEntity(Patient,true,true); } catch(Exception err) { MessageBox.Show(err.Message); } } private void recoverExam(TblReferralsToEntity Deleted) { try { Forms.frmPatientInfo frm = (Forms.frmPatientInfo)this.ParentForm; TblExaminationInfoEntity Exam = frm.usrExamInfo.ExamInfos.Where(q => q.EndExamDate == Deleted.EndDate).First(); Exam.EndExamDate = null; Exam.ReasonEnd = null; adapter.SaveEntity(Exam,true,true); } catch { } } private void recoverTreatment(TblReferralsToEntity Deleted) { try { Forms.frmPatientInfo frm = (Forms.frmPatientInfo)this.ParentForm; TblTreatmentInfoEntity Treatment = frm.usrTreatment.TreatmentInfos.Where(q => q.TreatmentId == "01").Where(q => q.TreatmentEdate == Deleted.EndDate).First(); Treatment.ReasonId=null; Treatment.TreatmentEdate = null; adapter.SaveEntity(Treatment,true,true); } catch { } } public override void Print() { if (TypeID.EditValue.ToString() == "09") { base.Print(); Forms.frmReferralForm frm = new Forms.frmReferralForm(); frm.ReferralInfo = (TblReferralsToEntity)ReferralInfos[BindingContext[ReferralInfos].Position]; frm.Show(); frm.MailMerge(); } } private void TypeID_EditValueChanged(object sender, EventArgs e) { this.DeathInfo.Visible = (TypeID.EditValue.ToString() == "11"); this.ReferralInfo.Visible = (TypeID.EditValue.ToString() == "09"); } private void EndExam(string ParientId, DateTime EndDate) { try { Forms.frmPatientInfo frm = (Forms.frmPatientInfo)this.ParentForm; TblExaminationInfoEntity Exam = frm.usrExamInfo.ExamInfos.Where(q => q.ExamDate <=EndDate).Last(); Exam.EndExamDate = EndDate; Exam.ReasonEnd = this.TypeID.EditValue.ToString(); adapter.SaveEntity(Exam, true, true); } catch(Exception err) { MessageBox.Show(err.Message); } } private void EndTreatment(string ParientId, DateTime EndDate) { try { Forms.frmPatientInfo frm = (Forms.frmPatientInfo)this.ParentForm; TblTreatmentInfoEntity Treatment = frm.usrTreatment.TreatmentInfos.Where(q => q.TreatmentId == "01").Where(q => q.TreatmentSdate <= EndDate).Last(); Treatment.ReasonId = this.TypeID.EditValue.ToString(); Treatment.TreatmentEdate = EndDate; adapter.SaveEntity(Treatment, true, true); } catch(Exception err) { MessageBox.Show(err.Message ); } } private void FillDeathDate(string PatientId, DateTime EndDate) { TblPatientEntity Patient = new TblPatientEntity(PatientId); adapter.FetchEntity(Patient, null, null); Patient.DeathDate = (DateTime)this.EndDate.EditValue; adapter.SaveEntity(Patient, true, true); } } }