這是我的其中一個頁面的畫面,功能大略上是完成,但仍有一些小瑕疵
我的排床位置若有床位的話,排床狀態就是顯示已處理,反之就是未處理
雖然已經成功地顯示出來,但是由於我的排床狀態並沒有值,所以無法用上面兩個
radiobutton做查詢的動作,所以我想在載入頁面時根據有沒有床位的判斷
來決定要塞入什麼值到資料庫裡
以下是我的程式碼
public List<HDRequireDto> FindRequire(string cid, DateTime StartDate, DateTime EndDate ,string status)
{
string amsg = string.Empty;
string NAME_OF_NOT_FOUND = "錯誤";
string bedstatus = "未排床";
try
{
EndDate = new DateTime(EndDate.Year, EndDate.Month, EndDate.Day, 0, 0, 0).AddDays(1);
var query = (from x in _repo.HD_REQUIRE
where (x.CID == cid && x.NOTICE_DATETIME >= StartDate && x.NOTICE_DATETIME < EndDate)&&
(status == null || status == x.STATUS)
select new HDRequireDto
{
GUID = x.GUID,
CID = x.CID,
NOTICE_DATETIME = x.NOTICE_DATETIME,
NOTICE_EMP_ID = x.NOTICE_EMP_ID,
PAT_GUID = x.PAT_GUID,
PAT_SOURCE = x.PAT_SOURCE,
PATNO = x.PATNO,
IPD_BED_NO = x.IPD_BED_NO,
HD_METHOD = x.HD_METHOD,
FREQ = x.FREQ,
MEMO = x.MEMO,
STATUS=x.STATUS,
CRE_DATE = x.CRE_DATE,
CRE_UID = x.CRE_UID,
MOD_DATE = x.MOD_DATE,
MOD_UID = x.MOD_UID
}).OrderByDescending(x => x.NOTICE_DATETIME).ToList<HDRequireDto>();
//方式
List<NCODE> codList = _repo.NCODE.Where(x => x.CID == cid && x.NC_ID == NcId.MethodList).ToList<NCODE>();
//頻率
List<NCODE> codList2 = _repo.NCODE.Where(x => x.CID == cid && x.NC_ID == NcId.FreqList).ToList<NCODE>();
foreach (HDRequireDto dto in query)
{
//護士名字
var Name = _repo.EMPLOYEE.FirstOrDefault(x => x.CID == dto.CID && x.EMP_ID == dto.NOTICE_EMP_ID);
dto.Name = (Name == null) ? NAME_OF_NOT_FOUND : Name.EMP_NAME;
//來源
var Source = _repo.NCODE.FirstOrDefault(x => x.CID == dto.CID && x.NC_ID == NcId.PatSourceList && x.NC_CODE == dto.PAT_SOURCE);
dto.Source = (Source == null) ? NAME_OF_NOT_FOUND : Source.NC_NAME;
//病患名字
var PatName = _repo.PATIENT.FirstOrDefault(x => x.CID == dto.CID && x.GUID == dto.PAT_GUID);
dto.PatName = (PatName == null) ? NAME_OF_NOT_FOUND : PatName.PAT_NAME;
var BedArrangeStatus = _repo.PAT_SCHEDULE.FirstOrDefault(x => x.PAT_GUID == dto.PAT_GUID && x.DIA_DATE == DbFunctions.TruncateTime(dto.NOTICE_DATETIME));
dto.BedArrangeStatus = (BedArrangeStatus == null) ? bedstatus : BedArrangeStatus.BED_NO;
if (dto.BedArrangeStatus != "未排床")
{
dto.STATUS = "已處理";
}
if (String.IsNullOrWhiteSpace(dto.FREQ)) continue;
string[] freq = dto.FREQ.Split(',');
if (freq == null || freq.Length == 0) continue;
for (int i = 0; i < freq.Length; i++)
{
string freqname = GetFreqName(freq[i], codList2);
dto.FreqName += freqname;
if (i != (freq.Length - 1)) dto.FreqName += ",";
}
}
return query;
}
}