Files
csharpcode/patientman/PatientMan/Controls/usrReferralInfo.cs
2025-08-02 05:20:17 +07:00

232 lines
8.2 KiB
C#

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 <TblReferralsToEntity> 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<TblProvinceEntity>();
var Agency = new EntityCollection<TblAgencyEntity>();
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);
}
}
}