240 lines
8.4 KiB
C#
240 lines
8.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Datalib.EntityClasses;
|
|
using Datalib.HelperClasses;
|
|
using Datalib.Linq;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
namespace PatientMan.Forms
|
|
{
|
|
public partial class frmReferral : PatientMan.BasicForms.frmCommon
|
|
{
|
|
public EntityCollection<TblReferralsToEntity> ReferralInfo = new EntityCollection<TblReferralsToEntity>();
|
|
|
|
public frmReferral()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void frmReferral_Load(object sender, EventArgs e)
|
|
{
|
|
LinqMetaData MetaData = new LinqMetaData();
|
|
MetaData.AdapterToUse= adapter;
|
|
|
|
var pro = (from q in MetaData.TblProvince select q).ToList();
|
|
var Agency = (from q in MetaData.TblAgency select new {q.AgencyTypeId, AgencyTypeName=SettingInfo.Language==0?q.VAgencyTypeName:q.EAgencyTypeName}).ToList();
|
|
var Patients = (from q in MetaData.TblPatient select new { q.PatientId, PatientName = strUtil.Decrypt(q.PatientName) }).ToList();
|
|
|
|
_province.DataSource = pro;
|
|
_AgencyType.DataSource = Agency;
|
|
_Patients.DataSource = Patients;
|
|
LoadData();
|
|
}
|
|
public override void LoadData()
|
|
{
|
|
adapter.FetchEntityCollection(ReferralInfo, null);
|
|
usrReferralInfo.ReferralInfos = null;
|
|
grdReferralInfo.DataSource = null;
|
|
usrReferralInfo.ReferralInfos = ReferralInfo;
|
|
grdReferralInfo.DataSource = ReferralInfo;
|
|
usrReferralInfo.BindingData();
|
|
usrReferralInfo.LoadLibrary();
|
|
}
|
|
|
|
private void gridView_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (ReferralInfo.Count == 0)
|
|
{
|
|
return;
|
|
}
|
|
var PatientId = ReferralInfo[BindingContext[ReferralInfo].Position].PatientId;
|
|
var frm = new frmPatientInfo();
|
|
frm.PatientsCollection = new EntityCollection<TblPatientEntity>();
|
|
var PatientInfo = new TblPatientEntity(PatientId);
|
|
adapter.FetchEntity(PatientInfo);
|
|
frm.PatientsCollection.Add(PatientInfo);
|
|
frm.PatientInfo = PatientInfo;
|
|
frm.LoadData();
|
|
frm.gotoReferral();
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void Print_Click(object sender, EventArgs e)
|
|
{
|
|
grdReferralInfo.ShowPrintPreview();
|
|
}
|
|
|
|
private void barPrint_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
|
{
|
|
grdReferralInfo.ShowPrintPreview();
|
|
}
|
|
|
|
private void barButtonView_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
|
{
|
|
if (ReferralInfo.Count == 0)
|
|
{
|
|
return;
|
|
}
|
|
var PatientId = ReferralInfo[BindingContext[ReferralInfo].Position].PatientId;
|
|
var frm = new frmPatientInfo();
|
|
frm.PatientsCollection = new EntityCollection<TblPatientEntity>();
|
|
var PatientInfo = new TblPatientEntity(PatientId);
|
|
adapter.FetchEntity(PatientInfo);
|
|
frm.PatientsCollection.Add(PatientInfo);
|
|
frm.PatientInfo = PatientInfo;
|
|
frm.LoadData();
|
|
frm.gotoReferral();
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
private void barCorrect_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
|
{
|
|
this.progressPanel.Visible = true;
|
|
MoveToEnd();
|
|
this.progressPanel.Visible = false;
|
|
}
|
|
|
|
private void MoveToEnd()
|
|
{
|
|
|
|
ResetEndTreatment();
|
|
foreach (TblReferralsToEntity referral in ReferralInfo)
|
|
{
|
|
|
|
string TypeId = referral.TypeId;
|
|
|
|
TypeId = TypeId.Trim();
|
|
switch (TypeId)
|
|
{
|
|
|
|
case "09":
|
|
EndExam(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
EndTreatment(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
break;
|
|
case "10":
|
|
EndExam(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
EndTreatment(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
break;
|
|
case "11":
|
|
EndExam(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
EndTreatment(referral.PatientId, referral.EndDate.Value, TypeId);
|
|
FillDeathDate(referral.PatientId, referral.EndDate.Value);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
private void EndExam(string PatientId, DateTime EndDate, string TypeId)
|
|
|
|
{
|
|
LinqMetaData meta = new LinqMetaData(adapter);
|
|
|
|
TblExaminationInfoEntity Exam= new TblExaminationInfoEntity();
|
|
try
|
|
{
|
|
|
|
Exam = meta.TblExaminationInfo.Where(q => q.PatientId == PatientId).Where(q => q.ExamDate <= EndDate).OrderByDescending(q => q.ExamDate).First();
|
|
|
|
Exam.EndExamDate = EndDate;
|
|
Exam.ReasonEnd = TypeId;
|
|
adapter.SaveEntity(Exam, true);
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
LogInfo log = new LogInfo();
|
|
log.RecordID = err.Message + " Examination " + PatientId + " " + TypeId;
|
|
WriteLog(log);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
private void EndTreatment(string PatientId, DateTime EndDate, string TypeId)
|
|
{
|
|
LinqMetaData meta = new LinqMetaData(adapter);
|
|
|
|
try
|
|
{
|
|
TblTreatmentInfoEntity Treatment = meta.TblTreatmentInfo.Where(q => q.PatientId == PatientId && q.TreatmentId =="01").Where(q => q.TreatmentSdate <= EndDate).OrderByDescending(q => q.TreatmentSdate).First();
|
|
Treatment.TreatmentEdate = EndDate;
|
|
Treatment.ReasonId = TypeId;
|
|
adapter.SaveEntity(Treatment, true);
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
LogInfo log = new LogInfo();
|
|
log.RecordID = "Treatment " + PatientId + " " + TypeId;
|
|
WriteLog(log);
|
|
}
|
|
|
|
}
|
|
private void FillDeathDate(string PatientId, DateTime EndDate)
|
|
{
|
|
TblPatientEntity Patient = new TblPatientEntity(PatientId);
|
|
adapter.FetchEntity(Patient, null, null);
|
|
Patient.DeathDate = EndDate;
|
|
adapter.SaveEntity(Patient, true);
|
|
|
|
}
|
|
private void ResetEndTreatment()
|
|
{
|
|
LinqMetaData meta = new LinqMetaData(adapter);
|
|
var TreatmentInfos = meta.TblTreatmentInfo;
|
|
var Exams = meta.TblExaminationInfo;
|
|
foreach(TblExaminationInfoEntity Exam in Exams)
|
|
{
|
|
|
|
|
|
if (Exam.EndExamDate != null && (Exam.ReasonEnd == "09" || Exam.ReasonEnd == "10" || Exam.ReasonEnd == "11"))
|
|
{
|
|
Exam.ReasonEnd = null;
|
|
Exam.ReTreatment = 0;
|
|
Exam.EndExamDate = null;
|
|
adapter.SaveEntity(Exam);
|
|
|
|
}
|
|
}
|
|
|
|
foreach (TblTreatmentInfoEntity Treat in TreatmentInfos)
|
|
{
|
|
|
|
if (Treat.TreatmentEdate != null && (Treat.ReasonId == "09" || Treat.ReasonId == "10" || Treat.ReasonId == "11"))
|
|
{
|
|
Treat.ReasonId = null;
|
|
Treat.TreatmentEdate = null;
|
|
adapter.SaveEntity(Treat);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public override void WriteLog(LogInfo log)
|
|
{
|
|
string path = Application.StartupPath;
|
|
string logs = log.RecordID;
|
|
DateTime CurrDate = DateTime.Today;
|
|
string filename = path + @"/Logs/EndTreatment" + CurrDate.ToString("MM-yyyy") + ".txt";
|
|
using (StreamWriter w = File.AppendText(filename))
|
|
{
|
|
|
|
w.WriteLine(logs);
|
|
w.Close();
|
|
}
|
|
}
|
|
|
|
private void findDup_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
|
{
|
|
frmDuplicates frm = new frmDuplicates();
|
|
frm.callFrm = this;
|
|
frm.LoadData();
|
|
frm.ShowDialog();
|
|
}
|
|
}
|
|
}
|