体检系统架构
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.
 
 
 

158 lines
8.7 KiB

#region CopyRight
/****************************************************************
* Project:健康体检信息管理系统(PEIS)
* Author:张剑峰
* CLR Version:4.0.30319.42000
* CreateTime:2023-05-25 15:31:35
* Version:v2.0
*
* Description:
*
* History:
*
*****************************************************************
* Copyright @ 云南新八达科技有限公司 2023 All rights reserved
*****************************************************************/
#endregion CopyRight
using System;
using System.Collections.Generic;
using PEIS.Entity;
using PEIS.Utils;
namespace PEIS.Model.Enrollment
{
public class EnrollmentOrgModel : IModel<EnrollmentOrg>
{
public List<EnrollmentOrg> GetItems()
{
throw new NotImplementedException();
}
public List<EnrollmentOrg> GetByDate(DateTime begTime, DateTime endTime, String name)
{
if (String.IsNullOrEmpty(name))
{
return DAOHelp.GetDataBySQL<EnrollmentOrg>($"Select * from Enrollment_Org Where ExamDate Between '{begTime}' And DateAdd(day, 1,'{endTime}')");
}
else
{
return DAOHelp.GetDataBySQL<EnrollmentOrg>($"Select * from Enrollment_Org Where Name like '%{name}%'");
}
}
// 发送到科室
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 = $@"UPDATE Enrollment_FeeItem SET DeptCode = '01016',DeptName = '内科' WHERE FID = 844 AND EID = {eID};
UPDATE Enrollment_FeeItem SET DeptCode = '01017',DeptName = '外科' WHERE FID = 845 AND EID = {eID};
UPDATE Enrollment_FeeItem SET DeptCode = '01014',DeptName = '口腔科' WHERE FID = 846 AND EID = {eID};
UPDATE Enrollment_FeeItem SET DeptCode = '01015',DeptName = '五官科' WHERE FID = 847 AND EID = {eID};
UPDATE Enrollment_FeeItem SET DeptCode = '01012',DeptName = '心电图室' WHERE FID = 216 AND EID = {eID};";
// 插入分检步骤
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 dResule = DAOHelp.ExecuteSql(dept);
var pResult = DAOHelp.ExecuteSql(part);
return cResult > 0 && eResult > 0 && fResult > 0;
}
// 记账
public bool FeeCheckCost(Int64 ID, String isAlll)
{
var all = $@"UPDATE Enrollment_CheckCost SET ChargeTime = GETDATE(), ChargerCode = '{Global.currentUser.Code}', Charger = '{Global.currentUser.Name}' WHERE OEID = {ID} AND ChargeTime is null AND DeleteTime is null";
var 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 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> GetExcelList(Int64 oeID)
{
return DAOHelp.GetDataBySQL<EnrollmentPatient>($@"SELECT
a.ID,
a.Name,
CASE WHEN a.Sex = 1 THEN '男' ELSE '女' END AS 'Sex',
b.Marriage,
CONVERT ( VARCHAR, a.Age ) + a.AgeClass AS 'AgeClass',
a.CardNo,
a.Tel1,
c.DeptName,
a.SignTime,
d.Fee
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
LEFT JOIN Enrollment_CheckCost d ON a.ID = d.EID AND a.OEID = d.OEID
WHERE
a.OEID = {oeID} AND d.DeleteTime IS NULL
ORDER BY a.SignTime");
}
public List<EnrollmentPatient> GetCopyList(String name, Int64 oeID)
{
if(string.IsNullOrEmpty(name)) return new List<EnrollmentPatient>();
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,
SpellCode
FROM
Enrollment_Patient
WHERE
( Name like '%{name}%' or id like '%{name}%' or SpellCode like '{name}%')
AND OEID = {oeID}
AND PID IS NOT NULL
AND WeChatStatus IN ( 0, 1 )
ORDER BY
CreateTime DESC");
}
}
}