#region CopyRight /**************************************************************** * Project:健康体检信息管理系统(PEIS) * Author:张剑峰 * CLR Version:4.0.30319.42000 * CreateTime:2023-06-07 5:01:30 * Version:v2.0 * * Description: * * History: * ***************************************************************** * Copyright @ 云南新八达科技有限公司 2023 All rights reserved *****************************************************************/ #endregion CopyRight using System; using System.Collections.Generic; using NPOI.SS.Formula.Functions; using PEIS.Entity; using PEIS.Utils; namespace PEIS.Model.Enrollment { public class EnrollmentPatientModel : IModel { public List GetItems() { throw new NotImplementedException(); } public bool UpdateItem(EnrollmentPatient item) { string sql = $@"UPDATE ENROLLMENT_PATIENT SET Name = '{item.Name}', Sex = '{item.Sex}', Age = {item.Age}, AgeClass = '{item.AgeClass}', Nation = '{item.Nation}', CardType = '{item.CardType}', CardNo = '{item.CardNo}', Tel1 = '{item.Tel1}', Tel2 = '{item.Tel2}', Contactor1 = '{item.Contactor1}', Contactor2 = '{item.Contactor2}', Address1 = '{item.Address1}', Address2 = '{item.Address2}', Marriage = '{item.Marriage}', Education = '{item.Education}', Occupation = '{item.Occupation}', Type = '{item.Type}', Description = '{item.Description}', ExamDate = '{item.ExamDate}', Photo = '{item.Photo}', Company = '{item.Company}', SpellCode = '{item.SpellCode}' WHERE ID = {item.ID}"; var baseStr = $@"update base_patient set name = '{item.Name}', Sex = '{item.Sex}', CardType = '{item.CardType}', CardNo = '{item.CardNo}', SpellCode = '{item.SpellCode}' where ID = {item.PID}"; DAOHelp.ExecuteSql(baseStr, false); return DAOHelp.ExecuteSql(sql, false) > 0; } public List GetEnrollmentPatientByEnrollmentOrg(Int64 oeID) { return DAOHelp.GetDataBySQL($@"Select a.Name, a.ID, a.SEX, CONVERT(VARCHAR,a.Age) + a.AgeClass AgeClass, b.BirthDay, a.CardNo, a.CardType, b.Marriage, c.DeptName AS GroupName, a.SignTime, a.Tel1, CASE WHEN a.SignTime IS NULL THEN NULL ELSE '已发送' END AS Signer from Enrollment_Patient a LEFT JOIN Base_Patient b ON a.PID = b.ID LEFT JOIN Base_OrgPatient c ON c.OID = a.OID AND c.PID = b.ID Where a.OEID = {oeID} order by c.DeptName,a.SignTime"); } // 记 账 public bool ChargeOrder(Int64 Id, String isAlll) { string all = $@"UPDATE Enrollment_CheckCost SET ChargeTime = GETDATE(), ChargerCode = '{Global.currentUser.Code}', Charger = '{Global.currentUser.Name}' WHERE EID = {Id} AND ChargeTime is null AND DeleteTime is null"; string single = $@"UPDATE Enrollment_CheckCost SET ChargeTime = GETDATE(), ChargerCode = '{Global.currentUser.Code}', Charger = '{Global.currentUser.Name}' WHERE ID = {Id} AND ChargeTime is null AND DeleteTime is null"; if (isAlll == "0") { return DAOHelp.ExecuteSql(all, false) > 0; } else { return DAOHelp.ExecuteSql(single, false) > 0; } } // 发送到科室 public bool SendToDept(Int64 EId) { var checkCost = $@"UPDATE Enrollment_CheckCost SET SendTime = GETDATE(), SenderCode = '{Global.currentUser.Code}', Sender = '{Global.currentUser.Name}' WHERE EID = {EId} AND SendTime is null AND DeleteTime is null"; var enrollmentPatient = $@"UPDATE Enrollment_Patient SET ExamDate = GETDATE(), SignTime = GETDATE(), SignerCode = '{Global.currentUser.Code}', Signer = '{Global.currentUser.Name}' WHERE ID = {EId} AND SignTime is null"; var enrollmentFeeItem = $@"UPDATE a SET a.IsSend = 1 FROM Enrollment_FeeItem a LEFT JOIN Enrollment_CheckCost b ON a.OrderNO = b.ID AND a.EID = b.EID WHERE b.SendTime IS NOT NULL AND a.EID = {EId}; "; // 插入分科检查 var dept = $@"EXEC sp_InsertNormalFeeItem {EId}"; // 心电图 var heart = $@"UPDATE Enrollment_FeeItem SET DeptCode = '01064',DeptName = '心电图室' WHERE EID = {EId} AND FID IN (31,123)"; // 插入分检步骤 var part = $@"EXEC sp_SyncExamPart {EId}"; var cResult = DAOHelp.ExecuteSql(checkCost, false); var eResult = DAOHelp.ExecuteSql(enrollmentPatient, false); var fResult = DAOHelp.ExecuteSql(enrollmentFeeItem, false); var dResult = DAOHelp.ExecuteSql(dept); var hResult = DAOHelp.ExecuteSql(heart); var pResult = DAOHelp.ExecuteSql(part); return cResult > 0 && eResult > 0 && fResult > 0; } // 取消登记 public bool CancelRegInfo(Int64 EId) { var feeItem = $@"DELETE FROM Enrollment_FeeItem WHERE EID = {EId}"; var enrollmentPatient = $@"DELETE FROM Enrollment_Patient WHERE ID = {EId}"; var checkCost = $@"UPDATE Enrollment_CheckCost SET DeleteTime = GETDATE(), Deleter = '{Global.currentUser.Name}' WHERE EID = {EId} AND DeleteTime IS NULL"; var fResult = DAOHelp.ExecuteSql(feeItem, false); var eResult = DAOHelp.ExecuteSql(enrollmentPatient, false); var cResult = DAOHelp.ExecuteSql(checkCost, false); return fResult > 0 && eResult > 0; } // 删除订单 public bool DeleteOrder(Int64 id) { var checkCost = $@"UPDATE Enrollment_CheckCost SET DeleteTime = GETDATE(), Deleter = '{Global.currentUser.Name}' WHERE ID = {id}"; var feeItem = $@"UPDATE Enrollment_FeeItem SET OrderNo = null WHERE OrderNo = {id}"; var cResult = DAOHelp.ExecuteSql(checkCost, false); var fResult = DAOHelp.ExecuteSql(feeItem, false); return cResult > 0 && fResult > 0; } // 取消记账 public bool CancelCharge(Int64 id) { var sql = $@"UPDATE Enrollment_CheckCost SET ChargeTime = null, ChargerCode = null, Charger = null WHERE ID = {id}"; return DAOHelp.ExecuteSql(sql, false) > 0; } public List GetItemsByPack(Int64 id) // 从套餐获取收费项目 { return DAOHelp.GetDataBySQL($"Select * From vi_PackFeeItem WHERE PID = {id} ORDER BY ItemClass,UnitName, DeptCode, FeeItemCode"); } public List GetFeelItems() // 获取收费项目 { return DAOHelp.GetDataBySQL("Select * From vi_FeeItem ORDER BY ItemClass, UnitName, DeptCode, FeeItemCode"); } public bool RecallDept(Int64 EId) // 撤回发送科室 { var checkCost = $@"UPDATE Enrollment_CheckCost SET SendTime = null, SenderCode = null, Sender = null WHERE EID = {EId} AND SendTime is not null AND DeleteTime is null AND WeChatCostTime is null"; var enrollmentPatient = $@"UPDATE Enrollment_Patient SET SignTime = null, SignerCode = null, Signer = null WHERE ID = {EId} AND SignTime is not null"; var enrollmentFeeItem = $@"UPDATE a SET a.IsSend = 0 FROM Enrollment_FeeItem a LEFT JOIN Enrollment_CheckCost b ON a.OrderNO = b.ID AND a.EID = b.EID WHERE b.SendTime IS NULL AND a.EID = {EId}"; var cResult = DAOHelp.ExecuteSql(checkCost, false); var eResult = DAOHelp.ExecuteSql(enrollmentPatient, false); var fResult = DAOHelp.ExecuteSql(enrollmentFeeItem, false); return cResult > 0 && eResult > 0 && fResult > 0; } public List GetEnrollmentPatientRegItems(string begDate, string endDate, string name) // 获取个人体检人员列表 { if (String.IsNullOrEmpty(name)) { return DAOHelp.GetDataBySQL($@"SELECT ID, Sex, Age, Name, Tel1, AgeClass, SignTime, Address1, Contactor1, CreateTime, CASE WHEN FinishTime IS NOT NULL THEN '3' WHEN SignTime IS NOT NULL THEN '2' WHEN SignTime IS NULL THEN '1' END AS Signer, FinishTime FROM Enrollment_Patient WHERE CreateTime BETWEEN '{begDate}' AND DATEADD( DAY, 1, '{endDate}' ) AND OEID IS NULL AND PID IS NOT NULL AND WeChatStatus IN ( 0, 1 ) ORDER BY CreateTime DESC"); } else { return DAOHelp.GetDataBySQL($@"SELECT ID, Sex, Age, Name, Tel1, AgeClass, SignTime, Address1, Contactor1, CreateTime, CASE WHEN FinishTime IS NOT NULL THEN '3' WHEN SignTime IS NOT NULL THEN '2' WHEN SignTime IS NULL THEN '1' END AS Signer, FinishTime FROM Enrollment_Patient WHERE ( Name like '%{name}%' or id like '%{name}%') AND OEID IS NULL AND PID IS NOT NULL AND WeChatStatus IN ( 0, 1 ) ORDER BY CreateTime DESC"); } } public List GetItemsByEID(Int64 EId) // 获取体检项目 { return DAOHelp.GetDataBySQL($@"SELECT a.*, b.IsHide, c.Address FROM [dbo].[Enrollment_FeeItem] a LEFT JOIN Dict_FeeItem b ON a.KeyNo = b.KeyNo LEFT JOIN Dict_Dept c ON a.DeptCode = c.HISCode AND a.DeptName = c.Name WHERE a.EID = {EId}"); } public EnrollmentPatient GetEnrollmentPatient(Int64 EId) // 获取个人体检人员信息 { var item = DAOHelp.GetDataBySQL($@"Select * From Enrollment_Patient a LEFT JOIN Base_Patient b ON a.PID = b.ID WHERE a.ID = {EId}"); return item.Count != 0 ? item[0] : null; } } }