Files
2025-08-02 05:20:17 +07:00

65 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Datalib.DatabaseSpecific;
using System.Windows.Forms;
using Datalib.Linq;
using Datalib.EntityClasses;
using Datalib.FactoryClasses;
using Datalib.HelperClasses;
using PatientMan.Classes;
namespace PatientMan.Classes
{
class clsLateAppointment
{
static DataAccessAdapter adapter = new DataAccessAdapter(SettingInfo.Constr);
LinqMetaData meta = new LinqMetaData(adapter);
public void FixLateAppointMent()
{
if (MessageBox.Show("Quá trình hiệu chỉnh có thễ sẽ diễn ra trong thời gian dài nếu dữ liệu lớn. Bạn có chắn chắn thực hiện", "Cảnh báo", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return;
List <string> patients = meta.TblPatient.OrderBy(m => m.PatientId).Select(m => m.PatientId).ToList();
#region "Patients"
foreach (string PatientId in patients)
{
var PatientExams = meta.TblExaminationInfo.Where(m => m.PatientId == PatientId).OrderBy(m => m.ExamDate).ToList();
for (int i = 0; i < PatientExams.Count() - 1; i++)
{
short DayDiff = (i==0)?(short)0: (short)(System.Convert.ToDateTime(PatientExams[i].ExamDate)-System.Convert.ToDateTime(PatientExams[i - 1].ReExamDate)).TotalDays;
string UniqueKey = PatientExams[i].UniqueKey;
TblExaminationInfoEntity ExamInfo = new TblExaminationInfoEntity(UniqueKey);
adapter.FetchEntity(ExamInfo);
ExamInfo.DayDiff = DayDiff;
if (DayDiff == 0)
{
ExamInfo.Status = 1;
}
else
{
if (DayDiff < 0)
{
ExamInfo.Status = 2;
}
else
{
ExamInfo.Status = 3;
}
}
adapter.SaveEntity(ExamInfo, true);
}
}
#endregion
MessageBox.Show("Quá trình hiệu chỉnh đã kêt thúc", "Hiệu chỉnh dữ liệu", MessageBoxButtons.OK);
}
}
}