You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
299 lines
16 KiB
299 lines
16 KiB
#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<EnrollmentPatient>
|
|
{
|
|
public List<EnrollmentPatient> 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}'
|
|
WHERE ID = {item.ID}";
|
|
|
|
var baseStr = $@"update base_patient set name = '{item.Name}', Sex = '{item.Sex}', CardType = '{item.CardType}', CardNo = '{item.CardNo}' where ID = {item.PID}";
|
|
DAOHelp.ExecuteSql(baseStr, false);
|
|
|
|
return DAOHelp.ExecuteSql(sql, false) > 0;
|
|
}
|
|
|
|
public List<EnrollmentPatient> GetEnrollmentPatientByEnrollmentOrg(Int64 oeID)
|
|
{
|
|
return DAOHelp.GetDataBySQL<EnrollmentPatient>($@"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}; ";
|
|
|
|
<<<<<<< HEAD
|
|
<<<<<<< HEAD
|
|
// 插入常规检查男/女 //同步分检
|
|
var normal = $@"EXEC sp_InsertNormalFeeItem {EId};";
|
|
|
|
// 发送后变更执行科室
|
|
var dept = $@"UPDATE Enrollment_FeeItem SET DeptCode = '01411', DeptName = '内科' WHERE KeyNo = '87933664' AND FeeItemCode = 'Z1061' AND EID = {EId};
|
|
UPDATE Enrollment_FeeItem SET DeptCode = '01412', DeptName = '外科' WHERE KeyNo = '87933665' AND FeeItemCode = 'Z1062' AND EID = {EId};
|
|
UPDATE Enrollment_FeeItem SET DeptCode = '01413', DeptName = '五官科' WHERE KeyNo = '87933667' AND FeeItemCode = 'Z1063' AND EID = {EId};
|
|
UPDATE Enrollment_FeeItem SET DeptCode = '01415', DeptName = '口腔科' WHERE KeyNo = '87933670' AND FeeItemCode = 'Z1064' AND EID = {EId};
|
|
UPDATE Enrollment_FeeItem SET DeptCode = '01414', DeptName = '一般检查' WHERE KeyNo = '87965917' AND FeeItemCode = 'Z1065' AND EID = {EId};
|
|
UPDATE Enrollment_FeeItem SET DeptCode = '01414', DeptName = '一般检查' WHERE KeyNo = '87965918' AND FeeItemCode = 'Z1066' AND EID = {EId}; EXEC sp_SyncExamPart {EId};";
|
|
|
|
var cResult = DAOHelp.ExecuteSql(checkCost, false);
|
|
var eResult = DAOHelp.ExecuteSql(enrollmentPatient, false);
|
|
var fResult = DAOHelp.ExecuteSql(enrollmentFeeItem, false);
|
|
var nResult = DAOHelp.ExecuteSql(normal);
|
|
var dResult = DAOHelp.ExecuteSql(dept);
|
|
=======
|
|
// 插入分检步骤
|
|
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 pResult = DAOHelp.ExecuteSql(part);
|
|
>>>>>>> 81d9dc6 (1、发送到科室,移除中医院定制)
|
|
=======
|
|
// 插入分检步骤
|
|
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 pResult = DAOHelp.ExecuteSql(part);
|
|
>>>>>>> main
|
|
|
|
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<FeeItem> GetItemsByPack(Int64 id) // 从套餐获取收费项目
|
|
{
|
|
return DAOHelp.GetDataBySQL<FeeItem>($"Select * From vi_PackFeeItem WHERE PID = {id} ORDER BY ItemClass,UnitName, DeptCode, FeeItemCode");
|
|
}
|
|
|
|
public List<FeeItem> GetFeelItems() // 获取收费项目
|
|
{
|
|
return DAOHelp.GetDataBySQL<FeeItem>("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<EnrollmentPatient> GetEnrollmentPatientRegItems(string begDate, string endDate, string name) // 获取个人体检人员列表
|
|
{
|
|
if (String.IsNullOrEmpty(name))
|
|
{
|
|
return DAOHelp.GetDataBySQL<EnrollmentPatient>($@"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<EnrollmentPatient>($@"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<EnrollmentFeeItem> GetItemsByEID(Int64 EId) // 获取体检项目
|
|
{
|
|
return DAOHelp.GetDataBySQL<EnrollmentFeeItem>($@"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<EnrollmentPatient>($@"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;
|
|
}
|
|
}
|
|
} |