tijian_tieying/web/dccdc.DAL/professionalExam_project_resultDal.cs
2025-02-20 12:14:39 +08:00

827 lines
45 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using dccdc.Models;
using Dapper;
using dccdc.Models.DTO;
using System.Data;
namespace dccdc.DAL
{
public class professionalExam_project_resultDal
{
public List<Models.DTO.TJXM_CaiJi> getResultCaiJi(int person_id)
{
using (var conn = CommHelper.GetSqlConnection())
{
string sql = @"select result.project_name,project_result ,g.team_name as exam_group from professionalExam_project_result result
join exam_group_maintain g on g.id=result.exam_group_maintain_id
where result.person_id=@person_id";
return conn.Query<Models.DTO.TJXM_CaiJi>(sql, new { person_id = person_id }).ToList();
}
}
public List<ProfessionalExamProjectResultModel> getPersonResult(string person_id, string qualified)
{
string sql = @"select a.*,b.team_name from professionalExam_project_result a
join exam_group_maintain b on b.id=a.exam_group_maintain_id
where a.person_id=@person_id";
using (var conn = CommHelper.GetSqlConnection())
{
if (!string.IsNullOrEmpty(qualified))
sql += " and qualified=@qualified";
sql += " order by qualified";
return conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = person_id, qualified = qualified }).ToList();
}
}
public bool Add(ProfessionalExamProjectResultModel model)
{
using (var conn = CommHelper.GetSqlConnection())
{
string sql = @"INSERT INTO [dbo].[professionalExam_project_result]
([person_id]
,[project_id]
,[project_name]
,[project_type]
,[project_result]
,[deficiency]
,[qualified]
,[remark]
,[tested]
,[blood_number]
,[inspection_time]
,[rummager]
,[presenter]
,[commit_date]
,[complete]
,[reference_value]
,[exam_group_maintain_id]
,[model]
,[judgment_model_maintain_id]
,[review_save_time]
,[review_depositary]
,[review_commitor]
,[review_commit_time]
,[project_other]
,[electronic_signature]
,[project_alias]
,[check_man]
,[check_time]
,[physical_num]
,[project_unit]
,[project_default]
,[D]
,[M]
,[F]
,[x_d]
,[x_m]
,[x_f]
,[order_id])
VALUES
(@person_id
,@project_id
,@project_name
,@project_type
,@project_result
,@deficiency
,@qualified
,@remark
,@tested
,@blood_number
,@inspection_time
,@rummager
,@presenter
,@commit_date
,@complete
,@reference_value
,@exam_group_maintain_id
,@model
,@judgment_model_maintain_id
,@review_save_time
,@review_depositary
,@review_commitor
,@review_commit_time
,@project_other
,@electronic_signature
,@project_alias
,@check_man
,@check_time
,@physical_num
,@project_unit
,@project_default
,@D
,@M
,@F
,@x_d
,@x_m
,@x_f
,@order_id)";
return (conn.Execute(sql, model) != 0 ? true : false);
}
}
public string Jjxp(string tmh, string v)
{
using (var conn = CommHelper.GetSqlConnection())
{
string message = "";
IDbTransaction transaction = conn.BeginTransaction();
try
{
string sql = "select count(1) from professionalExam_register where physical_num=@physical_num";
var c = conn.ExecuteScalar<int>(sql, new { physical_num = tmh }, transaction, null, null);
if (c != 0)
{
sql = "select * from professionalExam_register where physical_num=@physical_num";
var tjxms = new DAL.ExamProjectMaintainDal().GetAllListByprojectid(v);
if (tjxms.Count == 0)
{
transaction.Rollback();
return "X光透视项不存在请联系管理员设置";
}
var tjxm = tjxms.First();
var cb = conn.Query<ProfessionalExamRegisterModel>(sql, new { physical_num = tmh }, transaction).First();
//foreach (ProfessionalExamRegisterModel cb in personC)
//{
if(cb.category == null)
{
transaction.Rollback();
return "添加失败:只有类型为【食品从业】【公共场所】可以添加!";
}
if (cb.category.Equals("食品从业") || cb.category.Equals("公共场所"))
{
//判断当前体检项目里是否已经存在X光
string project_result = "select * from professionalExam_project_result where physical_num=@physical_num and project_id='" + v + "'";
List<ProfessionalExamProjectResultModel> perm = conn.Query<ProfessionalExamProjectResultModel>(project_result, new { physical_num = tmh }, transaction).ToList();
if (perm.Count > 0)
{
transaction.Rollback();
return "X光透视已经存在不能重复添加";
}
//填充体检小组表
string process = "select * from examination_process where physical_num=@physical_num and exam_group_maintain_id=" + tjxm.exam_group_maintain_id;
List<ExaminationProcessModel> epm = conn.Query<ExaminationProcessModel>(process, new { physical_num = tmh }, transaction).ToList();
if (epm.Count == 0)
{
string processsql = @"INSERT INTO [dbo].[examination_process]([person_id] ,[exam_group_maintain_id] ,[group_name] ,[is_entry] ,[entry_date] ,[is_review],[review_date] ,[is_complete] ,[complete_date] ,[collect_doctor] ,[commit_doctor],[review_need],[physical_num] ,[is_treatment],[treatment_date],[treatment_person])VALUES(@person_id ,@exam_group_maintain_id,@group_name,@is_entry,@entry_date,@is_review,@review_date ,@is_complete ,@complete_date ,@collect_doctor,@commit_doctor,@review_need,@physical_num,@is_treatment,@treatment_date,@treatment_person)";
ExaminationProcessModel xzModel = new ExaminationProcessModel
{
exam_group_maintain_id = tjxm.exam_group_maintain_id,
group_name = tjxm.exam_group,
physical_num = tmh,
person_id = Convert.ToInt32(cb.id)
};
conn.Execute(processsql, xzModel, transaction, null, null);
}
//填充体检结果表
string resultsql = @"INSERT INTO [dbo].[professionalExam_project_result]([person_id] ,[project_id] ,[project_name] ,[project_type] ,[project_result] ,[deficiency],[qualified],[remark] ,[tested],[blood_number] ,[inspection_time] ,[rummager] ,[presenter],[commit_date] ,[complete] ,[reference_value] ,[exam_group_maintain_id],[model] ,[judgment_model_maintain_id] ,[review_save_time] ,[review_depositary],[review_commitor] ,[review_commit_time] ,[project_other],[electronic_signature] ,[project_alias] ,[check_man],[check_time] ,[physical_num],[project_unit],[project_default] ,[D],[M] ,[F] ,[x_d],[x_m],[x_f],[order_id])VALUES (@person_id , @project_id , @project_name , @project_type , @project_result , @deficiency , @qualified , @remark , @tested , @blood_number , @inspection_time , @rummager , @presenter , @commit_date , @complete , @reference_value , @exam_group_maintain_id , @model, @judgment_model_maintain_id , @review_save_time, @review_depositary, @review_commitor, @review_commit_time, @project_other , @electronic_signature, @project_alias, @check_man, @check_time, @physical_num, @project_unit , @project_default , @D , @M , @F , @x_d , @x_m, @x_f, @order_id)";
ProfessionalExamProjectResultModel resultModel =
new ProfessionalExamProjectResultModel
{
project_id = tjxm.project_id,
project_name = tjxm.project_name,
project_result = tjxm.default_value,
reference_value = "",
exam_group_maintain_id = tjxm.exam_group_maintain_id,
model = tjxm.model,
judgment_model_maintain_id = tjxm.judgment_mode_maintain_id,
project_alias = tjxm.project_alias,
physical_num = tmh,
project_default = tjxm.default_value,
order_id = tjxm.order_id,
deficiency = "不缺项",
qualified = "合格",
person_id = Convert.ToInt32(cb.id)
};
conn.Execute(resultsql, resultModel, transaction, null, null);
transaction.Commit();
message = "添加成功!";
}
else
{
transaction.Rollback();
message = "添加失败:只有类型为【食品从业】【公共场所】可以添加!";
}
//}
}
else
{
transaction.Rollback();
message = "请选择一条正确客户信息!";
}
}
catch (Exception ex)
{
transaction.Rollback();
message = "添加失败!";
}
return message;
}
}
static object lo = new object();
public object baocunTjjg(List<ProfessionalExamProjectResultModel> peprm, ERPUser user, List<ProfessionalExamRegisterModel> personC, string is_complete, string pid, string egmId)
{
lock (lo)
{
using (var conn = CommHelper.GetSqlConnection())
{
try
{
string sql = "";
if (personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
}
string complete_date = "";
string presenter = "";
//string commit_doctor = "";
if (!string.IsNullOrEmpty(is_complete))
{
complete_date = DateTime.Now.ToString("yyyy-MM-dd");
presenter = user.TrueName;
}
//支持批量提交 20231117zyk
foreach (ProfessionalExamRegisterModel pferm in personC)
{
//2023-11-17 xulu 修改体检结果、过程表更新顺序,并且体检结果存在空值时返回提交失败
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
//如果前端传递的person_id与当前的person_id不一致则更新查询出的体检结果peprm里只包含一个人的体检结果
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
if(string.IsNullOrEmpty(model.project_result))
{
return new { State = 0, Message = "体检结果有空值,提交失败!" };
}
model.inspection_time = DateTime.Now.ToString("yyyy-MM-dd");
model.rummager = user.TrueName;
model.presenter = presenter;
model.commit_date = complete_date;
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = @project_result,[deficiency] = " +
"@deficiency,[qualified] = @qualified,[remark] = @remark,[inspection_time] = @inspection_time,[rummager] = " +
"@rummager,[presenter] =@presenter,[commit_date] = @commit_date WHERE id=@id";
conn.Execute(sql, model);
}
}
else //如果前端传递的person_id与当前的person_id一致则更新前端传来的体检结果
{
foreach (ProfessionalExamProjectResultModel model in peprm)
{
model.inspection_time = DateTime.Now.ToString("yyyy-MM-dd");
model.rummager = user.TrueName;
model.presenter = presenter;
model.commit_date = complete_date;
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = @project_result,[deficiency] = " +
"@deficiency,[qualified] = @qualified,[remark] = @remark,[inspection_time] = @inspection_time,[rummager] = " +
"@rummager,[presenter] =@presenter,[commit_date] = @commit_date WHERE id=@id";
conn.Execute(sql, model);
}
}
sql = "update examination_process set is_entry='已录',entry_date=@entry_date,is_complete=@is_complete,complete_date=@complete_date,commit_doctor=@commit_doctor " +
"where physical_num = @num and exam_group_maintain_id=@exam_group_maintain_id";
int c = conn.Execute(sql, new { entry_date = DateTime.Now.ToString("yyyy-MM-dd"), is_complete = is_complete, complete_date = complete_date, num = pferm.physical_num, exam_group_maintain_id = peprm[0].exam_group_maintain_id, commit_doctor = presenter });
sql = "select is_complete from examination_process where person_id=" + pferm.id + " group by is_complete";
List<ExaminationProcessModel> epList = conn.Query<ExaminationProcessModel>(sql).ToList();
if (epList.Count == 1 && epList[0].is_complete == "已完成")
{
sql = "update professionalExam_register set procedure_status='已录入检查结果' " +
" where (procedure_status!='已打印健康证' and procedure_status!='主检医生已审核') and id="
+ pferm.id;
conn.Execute(sql);
}
if (c == 0)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
return new { State = 1, Message = "保存成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" + ex.Message };
}
}
}
}
public int updatePft(ProfessionalExamProjectResultModel mo)
{
using (var conn = CommHelper.GetSqlConnection())
{
string sql = "update professionalExam_project_result set project_result = @project_result where id=@id";
return conn.Execute(sql, mo);
}
}
public List<TingYuModel> getTingyu(string id)
{
string sql = "select shuanger, MAX(a500HZ) as wubai, MAX(a1000HZ) as yiqian,"
+ "MAX(a2000HZ) as liangqian, MAX(a3000HZ) as sanqian, MAX(a4000HZ) as siqian, MAX(a6000HZ) as liuqian "
+ " from(select case when project_alias like '%左耳%' then '左耳'"
+ " when project_alias like '%右耳%' then '右耳' end as shuanger"
+ ",case when project_alias like '%500Hz%' then project_result"
+ " when project_alias like '%500Hz%' then project_result end as a500HZ ,case when project_alias like '%1000Hz%' then project_result"
+ " when project_alias like '%1000Hz%' then project_result end as a1000HZ,"
+ " case when project_alias like '%2000Hz%' then project_result"
+ " when project_alias like '%2000Hz%' then project_result end as a2000HZ,"
+ " case when project_alias like '%3000Hz%' then project_result"
+ " when project_alias like '%3000Hz%' then project_result end as a3000HZ,"
+ " case when project_alias like '%4000Hz%' then project_result"
+ " when project_alias like '%4000Hz%' then project_result end as a4000HZ,"
+ " case when project_alias like '%6000Hz%' then project_result"
+ " when project_alias like '%6000Hz%' then project_result end as a6000HZ"
+ " from professionalExam_project_result where person_id = '" + id
+ "' ) A group by shuanger";
using (var conn = CommHelper.GetSqlConnection())
{
return conn.Query<TingYuModel>(sql).ToList();
}
}
public object chexiaoTjjg(List<ProfessionalExamProjectResultModel> peprm, List<ProfessionalExamRegisterModel> personC, string pid, string egmId)
{
using (var conn = CommHelper.GetSqlConnection())
{
try
{
string sql = "";
if (personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
}
foreach (ProfessionalExamRegisterModel pferm in personC)
{
sql = "update examination_process set is_entry='',entry_date='',is_complete='',complete_date='' " +
"where physical_num = @num and exam_group_maintain_id=@exam_group_maintain_id";
int c = conn.Execute(sql, new { num = pferm.physical_num, exam_group_maintain_id = peprm[0].exam_group_maintain_id });
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
//sql = "update professionalExam_register set procedure_status='已采集' where id=" + pferm.id;
//2023-11-27 xulu 修改状态为"打印指引单"
sql = "update professionalExam_register set procedure_status='打印指引单' where id=" + pferm.id;
conn.Execute(sql);
if (c > 0)
{
//zyk 20230610加注释:如果根据人员信息和分组信息获得的 登记记录的id与参数中peprm的person_id不一致
//以“根据人员信息和分组信息获得的 登记记录”为准
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = @project_result,[deficiency] = " +
"@deficiency,[qualified] = @qualified,[remark] = @remark,[inspection_time] = @inspection_time,[rummager] = " +
"@rummager,[presenter] ='',[commit_date] = '' WHERE id=@id";
conn.Execute(sql, model);
}
}
else
{
foreach (ProfessionalExamProjectResultModel model in peprm)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = @project_result,[deficiency] = " +
"@deficiency,[qualified] = @qualified,[remark] = @remark,[inspection_time] = @inspection_time,[rummager] = " +
"@rummager,[presenter] ='',[commit_date] = '' WHERE id=@id";
conn.Execute(sql, model);
}
}
}
else
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
return new { State = 1, Message = "撤销成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
}
public object quexiangTjjg(List<ProfessionalExamProjectResultModel> peprm, List<ProfessionalExamRegisterModel> personC, string pid, string egmId)
{
using (var conn = CommHelper.GetSqlConnection())
{
try
{
string sql = "";
if (personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
}
foreach (ProfessionalExamRegisterModel pferm in personC)
{
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '未检',[deficiency] = " +
"'缺项',[qualified] = '不合格',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
else
{
foreach (ProfessionalExamProjectResultModel model in peprm)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '未检',[deficiency] = " +
"'缺项',[qualified] = '不合格',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
}
return new { State = 1, Message = "操作成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
}
public object mrzTjjg(List<ProfessionalExamProjectResultModel> peprm, List<ProfessionalExamRegisterModel> personC, string pid, string egmId)
{
using (var conn = CommHelper.GetSqlConnection())
{
try
{
string sql = "";
if (personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
}
foreach (ProfessionalExamRegisterModel pferm in personC)
{
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + model.project_default + "',[deficiency] = " +
"'不缺项',[qualified] = '合格',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
else
{
foreach (ProfessionalExamProjectResultModel model in peprm)
{
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + model.project_default + "',[deficiency] = " +
"'不缺项',[qualified] = '合格',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
}
return new { State = 1, Message = "操作成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
}
public object huoquTjjg2(List<ProfessionalExamProjectResultModel> peprm, List<ProfessionalExamRegisterModel> personC, string pid, string egmId)
{
try
{
var connLisdb = CommHelper.GetSqlConnection("LISDB");
var conn = CommHelper.GetSqlConnection();
string sql = "";
string qualified = "";
if (peprm == null && personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
sql = "select * from professionalExam_project_result where person_id=" + pid + " and exam_group_maintain_id=" + egmId;
peprm = conn.Query<ProfessionalExamProjectResultModel>(sql).ToList();
}
foreach (ProfessionalExamRegisterModel pferm in personC)
{
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
sql = "select 检验结果 as testresult, 报告时间 as resulttime, 检验医生姓名 as testman , " +
"审核医生姓名 as checkman, 审核时间 as lastmodify,结果标志 as resultMark from 接口视图_检验报告结果 " +
"where 条码号 like '%" + pferm.physical_num + "%' and 报告项目外部编码1 like '%" + model.project_id + "%'";
List<Models.DTO.LISDB> lisResultList = connLisdb.Query<Models.DTO.LISDB>(sql).ToList();
if (lisResultList.Count != 0)
{
foreach (Models.DTO.LISDB lis in lisResultList)
{
if (!string.IsNullOrEmpty(lis.resultMark) && lis.resultMark == "M")
{
qualified = "合格";
}
else
{
qualified = "不合格";
}
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + lis.testresult + "',[deficiency] = " +
"'不缺项',[qualified] = '" + qualified + "',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
}
}
else
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
sql = "select 检验结果 as testresult, 报告时间 as resulttime, 检验医生姓名 as testman , " +
"审核医生姓名 as checkman, 审核时间 as lastmodify,结果标志 as resultMark from 接口视图_检验报告结果 " +
"where 条码号 like '%" + pferm.physical_num + "%' and 报告项目外部编码1 like '%" + model.project_id + "%'";
List<Models.DTO.LISDB> lisResultList = connLisdb.Query<Models.DTO.LISDB>(sql).ToList();
if (lisResultList.Count != 0)
{
foreach (Models.DTO.LISDB lis in lisResultList)
{
if (lis.resultMark == "M")
{
qualified = "合格";
}
else
{
qualified = "不合格";
}
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + lis.testresult + "',[deficiency] = " +
"'不缺项',[qualified] = '" + qualified + "',[remark] = @remark where id=@id";
conn.Execute(sql, model);
}
}
}
}
}
return new { State = 1, Message = "操作成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
public object huoquTjjg(List<ProfessionalExamProjectResultModel> peprm, List<ProfessionalExamRegisterModel> personC, string pid, string egmId)
{
try
{
//var connLisdb = CommHelper.GetSqlConnection("LISDB");
var conn = CommHelper.GetSqlConnection();
string sql = "";
string qualified = "";
if (peprm == null && personC == null && pid != "")
{
sql = "select * from professionalExam_register where id=" + pid;
personC = conn.Query<ProfessionalExamRegisterModel>(sql).ToList();
sql = "select * from professionalExam_project_result where person_id=" + pid + " and exam_group_maintain_id=" + egmId;
peprm = conn.Query<ProfessionalExamProjectResultModel>(sql).ToList();
}
foreach (ProfessionalExamRegisterModel pferm in personC)
{
sql = "select * from professionalExam_project_result where person_id=@person_id and exam_group_maintain_id=@exam_group_maintain_id";
List<ProfessionalExamProjectResultModel> peprmlist = conn.Query<ProfessionalExamProjectResultModel>(sql, new { person_id = pferm.id, exam_group_maintain_id = peprm[0].exam_group_maintain_id }).ToList();
if (peprm[0].person_id.ToString() != pferm.id)
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
//sql = "select 检验结果 as testresult, 报告时间 as resulttime, 检验医生姓名 as testman , " +
// "审核医生姓名 as checkman, 审核时间 as lastmodify,结果标志 as resultMark from 接口视图_检验报告结果 " +
// "where 条码号 like '%" + pferm.physical_num + "%' and 报告项目外部编码1 like '%" + model.project_id + "%'";
sql = "select * from exam_project_maintain where project_id='" + model.project_id + "'";
ExamProjectMaintainModel emm = conn.Query<ExamProjectMaintainModel>(sql).FirstOrDefault();
sql = @"select c.results as testresult,c.reportdatetime as resulttime ,
c.reportdoctor as testman,c.reportdoctor checkman,c.reportdatetime as lastmodify,
c.resultflag resultMark
from lis_reqmain a join lis_reqitems b on a.testno=b.testno
join lis_reqresults c on c.testno=b.testno
join exam_project_maintain d on d.lis=c.reportitemno
join bar_code_project_maintain e on e.exam_project_maintain_id=d.project_id and e.bar_code_maintain_id=b.itemno
and b.itemno=e.bar_code_maintain_id where a.patno='" + pferm.physical_num + "' and d.lis='" + emm.lis + "' and e.project_code='" + emm.project_id + "' ";
List<Models.DTO.LISDB> lisResultList = conn.Query<Models.DTO.LISDB>(sql).ToList();
if (lisResultList.Count != 0)
{
foreach (Models.DTO.LISDB lis in lisResultList)
{
model.tested = "";
//+-
if (lis.resultMark != "H" && lis.resultMark != "L" && (!lis.testresult.Contains("+")))
{
qualified = "合格";
}
else
{
qualified = "不合格";
}
if (model.model == "定量" && qualified == "不合格")
{
string[] aa = model.reference_value.Split('-');
if (Convert.ToDouble(lis.testresult) < Convert.ToDouble(aa[0]))
{
model.tested = "↓";
}
else if (Convert.ToDouble(lis.testresult) > Convert.ToDouble(aa[1]))
{
model.tested = "↑";
}
else
{
model.tested = "";
}
}
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + lis.testresult + "',[deficiency] = " +
"'不缺项',[qualified] = '" + qualified + "',[remark] = @remark,[tested]=@tested where id=@id";
conn.Execute(sql, model);
}
}
}
}
else
{
foreach (ProfessionalExamProjectResultModel model in peprmlist)
{
//sql = "select 检验结果 as testresult, 报告时间 as resulttime, 检验医生姓名 as testman , " +
// "审核医生姓名 as checkman, 审核时间 as lastmodify,结果标志 as resultMark from 接口视图_检验报告结果 " +
// "where 条码号 like '%" + pferm.physical_num + "%' and 报告项目外部编码1 like '%" + model.project_id + "%'";
sql = "select * from exam_project_maintain where project_id='" + model.project_id + "'";
ExamProjectMaintainModel emm = conn.Query<ExamProjectMaintainModel>(sql).FirstOrDefault();
sql = @"select c.results as testresult,c.reportdatetime as resulttime ,
c.reportdoctor as testman,c.reportdoctor checkman,c.reportdatetime as lastmodify,
c.resultflag resultMark
from lis_reqmain a join lis_reqitems b on a.testno=b.testno
join lis_reqresults c on c.testno=b.testno
join exam_project_maintain d on d.lis=c.reportitemno
join bar_code_project_maintain e on e.exam_project_maintain_id=d.project_id and e.bar_code_maintain_id=b.itemno
and b.itemno=e.bar_code_maintain_id where a.patno='" + pferm.physical_num + "' and d.lis='" + emm.lis + "' and e.project_code='" + emm.project_id + "' ";
List<Models.DTO.LISDB> lisResultList = conn.Query<Models.DTO.LISDB>(sql).ToList();
if (lisResultList.Count != 0)
{
foreach (Models.DTO.LISDB lis in lisResultList)
{
model.tested = "";
if (lis.resultMark != "H" && lis.resultMark != "L" && (!lis.testresult.Contains("+")))
{
qualified = "合格";
}
else
{
qualified = "不合格";
}
if (model.model == "定量" && qualified == "不合格")
{
string[] aa = model.reference_value.Split('-');
if (Convert.ToDouble(lis.testresult) < Convert.ToDouble(aa[0]))
{
model.tested = "↓";
}
else if (Convert.ToDouble(lis.testresult) > Convert.ToDouble(aa[1]))
{
model.tested = "↑";
}
else
{
model.tested = "";
}
}
sql = @"UPDATE [professionalExam_project_result] SET [project_result] = '" + lis.testresult + "',[deficiency] = " +
"'不缺项',[qualified] = '" + qualified + "',[remark] = @remark,[tested]=@tested where id=@id";
conn.Execute(sql, model);
}
}
}
}
}
return new { State = 1, Message = "操作成功!" };
}
catch (Exception ex)
{
return new { State = 0, Message = "操作失败,请联系管理员!" };
}
}
public List<dynamic> queryyj(Models.DTO.Criteria model)
{
string sql = "select * from professionalExam_project_result a join exam_group_maintain b on b.id = a.exam_group_maintain_id where a.person_id=@personid";
using (var conn = CommHelper.GetSqlConnection())
{
var resultList = conn.Query(sql, new { @personid = model.person_name });
var xiaozugroup = resultList.GroupBy(t => new { t.team_name });
var reslist = new List<dynamic>();
foreach (var v in xiaozugroup)
{
string yj = "";
var itemlist = resultList.Where(t => t.team_name == v.Key.team_name).Where(m => m.qualified == "不合格"); ;
foreach (var item in itemlist)
{
yj += item.project_result;
}
if (yj == "")
{
yj = "未见明显异常";
}
reslist.Add(new { v.Key.team_name, yj });
}
return reslist;
}
}
public DataTable gettjjg(string ident)
{
//throw new NotImplementedException();
string sql = @"select b.project_result,b.project_id from professionalExam_register a
join professionalExam_project_result b on a.id=b.person_id
join examination_process c on c.person_id=a.id and c.exam_group_maintain_id=b.exam_group_maintain_id
where a.medical_scheme_maintain_id=4
and a.card_number=@card_number
";
using (var conn = CommHelper.GetSqlConnection())
{
var dr = conn.ExecuteReader(sql, new { card_number = ident });
DataTable dt = new DataTable();
dt.Load(dr);
return dt;
}
}
public List<ProfessionalExamProjectResultModel> getUnqualified(string physical_num)
{
string sql = "select project_name from professionalExam_project_result where qualified = '不合格' and physical_num = "+ physical_num;
using (var conn = CommHelper.GetSqlConnection())
{
return conn.Query<ProfessionalExamProjectResultModel>(sql).ToList();
}
}
}
}