using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using Newtonsoft.Json;
using SqlSugar;
using System.Data;
namespace HL_FristAidPlatform_DataBase
{
///
/// 120急救信息
///
public class T_Service_120FirstAidDB : BaseDB, IT_Service_120FirstAid
{
public SqlSugarClient db = GetClient();
///
/// 增加一条数据
///
public T_Service_120FirstAid Add(T_Service_120FirstAid model)
{
return db.Insertable(model).IgnoreColumns(it => new { it.ID }).ExecuteReturnEntity();
}
///
/// 更新一条数据
///
public bool Update(T_Service_120FirstAid model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() == 0 ? false : true;
}
///
/// 删除一条数据
///
public bool Delete(long ID)
{
return db.Deleteable(ID).ExecuteCommand() == 0 ? false : true;
}
///
/// 获得数据列表
///
/// 起始页
/// 每页大小
/// 所属院区GUID
/// 开始时间(创建)
/// 结束时间(创建)
/// 任务状态1:派发任务;2:已出发;3:到达现场;4:离开现场;5:任务完成 -1:查询全部
/// 关键词
///
public string GetPageList(int pageIndex, int pageSize, string hospitalGuid, string startTime, string endTime, int status, string keyWord)
{
string StrWhere = string.Empty;
#region 所属院区
if (!string.IsNullOrEmpty(hospitalGuid.Trim()))
{
StrWhere += " AND b.HospitalGuid = '" + hospitalGuid + "'";
}
#endregion
#region 任务状态1:派发任务;2:已出发;3:到达现场;4:离开现场;5:任务完成
if (status > -1)
{
StrWhere += "And b.EmergencyState =" + status;
}
#endregion
#region 关键词
if (!string.IsNullOrEmpty(keyWord.Trim()))
{
StrWhere += " AND(b.Name LIKE '%" + keyWord + "%' OR b.MobilePhone LIKE '%" + keyWord + "%' OR b.IdentityCard LIKE '%" + keyWord + "%' OR b.Attack_Address LIKE '%" + keyWord + "%' OR d.PlateNumber LIKE '%" + keyWord + "%' OR e.Code LIKE '%" + keyWord + "%' OR b.EqmtNo LIKE '%" + keyWord + "%')";
}
#endregion
string SqlStr = string.Format(@"SELECT b.ID,a.PatientGuid,a.[GUID],b.Name,b.Age,c.GenderName,b.MobilePhone,b.Attack_Address,a.CallHelpTime,a.DiseaseTime,b.IdentityCard,d.PlateNumber,e.Code,b.EqmtNo AS EquipmentNumber,b.Note,a.SendAmbulanceTime,a.AmbulanceDepartureTime,a.ArrivalTime,a.LeaveTime,a.ArrivesHospitalTime,a.CreationDate,b.Creator,b.Creator,b.RegisterTime,f.Name AS HospitalName,a.Property,a.[Status]
FROM T_Service_120FirstAid a
LEFT JOIN T_Service_Patient b ON a.PatientGuid=b.[GUID]
LEFT JOIN T_Base_Gender c ON c.GenderCode=b.Gender
LEFT JOIN T_Base_Ambulance d ON b.AmbulanceGuid=d.[GUID]
LEFT JOIN T_Base_WristStrap e ON b.WristStrapID=e.ID
LEFT JOIN T_Base_Hospital f ON b.HospitalGuid=f.[GUID]
WHERE b.RegisterTime BETWEEN '{0}' AND '{1}' AND a.DeleteFlag=0 {2} order by a.ID DESC", startTime, endTime, StrWhere);
DataTable dt = db.Ado.GetDataTable(SqlStr);
string items = "";
if (dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
string row = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
row += JsonConvert.SerializeObject(dt.Columns[i].ColumnName) + ":";
row += JsonConvert.SerializeObject(item[i]) + ",";
}
row = row.Remove(row.Length - 1);
items += "{" + row + "}" + ",";
}
items = items.Remove(items.Length - 1);
}
items = "[" + items + "]";
return items;
}
///
/// 获得前几行数据
///
public T_Service_120FirstAid Get(long id)
{
return db.Queryable().First(it => it.ID == id);
}
///
/// 根据患者编号(GUID)+所属报表类型 获取数据信息
///
/// 病人编号(GUID)
///
public TableModel GetByPatientGuid(string patientGuid)
{
TableModel t = new TableModel();
var listMode = db.Queryable().Where(it => it.PatientGuid == patientGuid && it.DeleteFlag == 0)
.Select(it => new T_Service_120FirstAid
{
ID = it.ID,
GUID = it.GUID,
PatientGuid = it.PatientGuid,
DiseaseTime = it.DiseaseTime,
TimeOfOnset = it.TimeOfOnset,
OnsetTimeInterval = it.OnsetTimeInterval,
CallHelpTime = it.CallHelpTime,
Property = it.Property,
Status = it.Status,
Summary = it.Summary,
DeleteFlag = it.DeleteFlag,
CreationDate = it.CreationDate,
CreatorID = it.CreatorID,
Creator = it.Creator,
EditTime = it.EditTime,
EditorID = it.EditorID,
Editor = it.Editor,
}).OrderBy(it => it.ID, OrderByType.Desc).ToList();
t.Code = 0;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
///
/// 获取急救调度任务单信息
///
/// 患者编号(GUID)
///
public string GetDispatchOrderInfo(string patientGuid)
{
string SqlStr = string.Format(@"SELECT a.PatientGuid,a.[GUID],b.Name,b.Age,c.GenderName,b.MobilePhone,b.Attack_Address,a.CallHelpTime,a.DiseaseTime,b.IdentityCard,d.PlateNumber as AmbulanceNumber,e.Code as WristStrapNumber,b.EqmtNo AS EquipmentNumber,b.Note,a.SendAmbulanceTime,a.CreationDate,b.Creator,f.Name AS HospitalName
FROM T_Service_120FirstAid a
LEFT JOIN T_Service_Patient b ON a.PatientGuid=b.[GUID]
LEFT JOIN T_Base_Gender c ON c.GenderCode=b.Gender
LEFT JOIN T_Base_Ambulance d ON b.AmbulanceGuid=d.[GUID]
LEFT JOIN T_Base_WristStrap e ON b.WristStrapID=e.ID
LEFT JOIN T_Base_Hospital f ON b.HospitalGuid=f.[GUID]
WHERE a.PatientGuid='{0}' AND a.DeleteFlag=0 AND b.DeleteFlag=0", patientGuid);
DataTable dt = db.Ado.GetDataTable(SqlStr);
string items = "";
if (dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
string row = "";
for (int i = 0; i < dt.Columns.Count; i++)
{
row += JsonConvert.SerializeObject(dt.Columns[i].ColumnName) + ":";
row += JsonConvert.SerializeObject(item[i]) + ",";
}
row = row.Remove(row.Length - 1);
items += "{" + row + "}" + ",";
}
items = items.Remove(items.Length - 1);
}
items = "[" + items + "]";
return items;
}
}
}