|
|
|
|
@ -73,19 +73,44 @@ namespace PEIS.Model |
|
|
|
|
return new List<EnrollmentPatient>(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Tel1,Tel2,Contactor1,Contactor2,Address1,Address2,Education,Occupation,FinisherCode,Finisher, |
|
|
|
|
// OID,OEID,OrgName,GroupID,GroupName,Sex, Age, AgeClass,Nation, CardType,CardNo,Marriage,Type, |
|
|
|
|
var sql = $@"
|
|
|
|
|
SELECT DISTINCT eid AS ID, NAME, ExamDate,SignTime,FinishTime, |
|
|
|
|
CASE WHEN EXISTS ( SELECT 1 FROM vi_EnPart AS sub WHERE sub.eid = main.eid AND sub.STATUS = '科室分检' AND sub.isSend=1 ) THEN '科室分检' ELSE main.STATUS END AS Status |
|
|
|
|
FROM vi_EnPart AS main |
|
|
|
|
WHERE isSend=1 and WeChatStatus>=0 ";
|
|
|
|
|
string whereCondition = ""; |
|
|
|
|
if (string.IsNullOrWhiteSpace(team) && string.IsNullOrWhiteSpace(info)) |
|
|
|
|
sql += $"AND {dateType} >='{begDate}' AND {dateType} <'{endDate}'"; |
|
|
|
|
whereCondition += $" AND {dateType} >='{begDate}' AND {dateType} <'{endDate}' "; |
|
|
|
|
if (!string.IsNullOrWhiteSpace(team)) |
|
|
|
|
sql += long.TryParse(team, out _) ? $@" AND OEID ={team}" : $@"AND OrgName LIKE '%{team}%'"; |
|
|
|
|
whereCondition += long.TryParse(team, out _) ? $@" AND OEID ={team}" : $@"AND OrgName LIKE '%{team}%'"; |
|
|
|
|
if (!string.IsNullOrWhiteSpace(info)) |
|
|
|
|
sql += long.TryParse(info, out _) ? $@" AND EID ={info}" : $@"AND ( Name LIKE '%{info}%' or SpellCode like '{info}%' )"; |
|
|
|
|
whereCondition += long.TryParse(info, out _) ? $@" AND EID ={info}" : $@"AND ( Name LIKE '%{info}%' or SpellCode like '{info}%' )"; |
|
|
|
|
var sql = $@"
|
|
|
|
|
WITH StatusData AS ( |
|
|
|
|
SELECT |
|
|
|
|
eid AS ID, |
|
|
|
|
NAME, |
|
|
|
|
ExamDate, |
|
|
|
|
SignTime, |
|
|
|
|
FinishTime, |
|
|
|
|
STATUS, |
|
|
|
|
MAX(CASE WHEN STATUS = '科室分检' THEN 1 ELSE 0 END) |
|
|
|
|
OVER (PARTITION BY eid) AS HasDeptCheck, |
|
|
|
|
ROW_NUMBER() OVER ( |
|
|
|
|
PARTITION BY eid |
|
|
|
|
ORDER BY SignTime DESC |
|
|
|
|
) as rn |
|
|
|
|
FROM vi_EnPart |
|
|
|
|
WHERE isSend = 1 AND WeChatStatus >= 0 {whereCondition} |
|
|
|
|
) |
|
|
|
|
SELECT |
|
|
|
|
ID, |
|
|
|
|
NAME, |
|
|
|
|
ExamDate, |
|
|
|
|
SignTime, |
|
|
|
|
FinishTime, |
|
|
|
|
CASE |
|
|
|
|
WHEN HasDeptCheck = 1 THEN '科室分检' |
|
|
|
|
ELSE STATUS -- 直接取当前行的STATUS |
|
|
|
|
END AS STATUS |
|
|
|
|
FROM StatusData |
|
|
|
|
WHERE rn = 1 -- 每个eid只取最新的一行";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var data = DAOHelp.GetDataBySQL<EnrollmentPatient>(sql).OrderByDescending(o => o.SignTime).ToList(); |
|
|
|
|
return data; |
|
|
|
|
@ -99,12 +124,27 @@ namespace PEIS.Model |
|
|
|
|
public EnrollmentPatient GetPatientInfo(long eid) |
|
|
|
|
{ |
|
|
|
|
var sql = $@"
|
|
|
|
|
SELECT DISTINCT eid AS ID, NAME, Sex, Age, AgeClass,Nation, CardType,CardNo, |
|
|
|
|
Tel1,Tel2,Contactor1,Contactor2,Address1,Address2,Marriage,Education,Occupation, |
|
|
|
|
ExamDate,Type, OID,OEID,OrgName,GroupID,GroupName,SignTime,FinishTime,FinisherCode,Finisher, |
|
|
|
|
CASE WHEN EXISTS ( SELECT 1 FROM vi_EnPart AS sub WHERE sub.eid = main.eid AND sub.STATUS = '科室分检' AND sub.isSend=1 ) THEN '科室分检' ELSE main.STATUS END AS Status |
|
|
|
|
FROM vi_EnPart AS main |
|
|
|
|
WHERE eid={eid}";
|
|
|
|
|
WITH StatusData AS ( |
|
|
|
|
SELECT |
|
|
|
|
eid AS ID, NAME, Sex, Age, AgeClass, Nation, CardType, CardNo, |
|
|
|
|
Tel1, Tel2, Contactor1, Contactor2, Address1, Address2, Marriage, |
|
|
|
|
Education, Occupation, ExamDate, Type, OID, OEID, OrgName, GroupID, |
|
|
|
|
GroupName, SignTime, FinishTime, FinisherCode, Finisher, STATUS, |
|
|
|
|
MAX(CASE WHEN STATUS = '科室分检' AND isSend = 1 THEN 1 ELSE 0 END) |
|
|
|
|
OVER (PARTITION BY eid) AS HasDeptCheck |
|
|
|
|
FROM vi_EnPart |
|
|
|
|
WHERE eid = {eid} |
|
|
|
|
) |
|
|
|
|
SELECT DISTINCT |
|
|
|
|
ID, NAME, Sex, Age, AgeClass, Nation, CardType, CardNo, |
|
|
|
|
Tel1, Tel2, Contactor1, Contactor2, Address1, Address2, Marriage, |
|
|
|
|
Education, Occupation, ExamDate, Type, OID, OEID, OrgName, GroupID, |
|
|
|
|
GroupName, SignTime, FinishTime, FinisherCode, Finisher, |
|
|
|
|
CASE |
|
|
|
|
WHEN HasDeptCheck = 1 THEN '科室分检' |
|
|
|
|
ELSE STATUS |
|
|
|
|
END AS Status |
|
|
|
|
FROM StatusData;";
|
|
|
|
|
return DAOHelp.GetDataBySQL<EnrollmentPatient>(sql).FirstOrDefault(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|