Browse Source

医生诊台、总诊医生诊台

bjmzak
wxd 2 years ago
parent
commit
9c736d6786
  1. 61
      src/Shentun.Peis.Application.Contracts/PatientRegisters/DoctorPeisRecordListInputDto.cs
  2. 62
      src/Shentun.Peis.Application.Contracts/PatientRegisters/SumDoctorPeisRecordListInputtDto.cs
  3. 168
      src/Shentun.Peis.Application/DataMigrations/BaseDataHandleAppService.cs
  4. 435
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  5. 3
      src/Shentun.Peis.Domain.Shared/Enums/PatientRegisterCompleteFlag.cs

61
src/Shentun.Peis.Application.Contracts/PatientRegisters/DoctorPeisRecordListInputDto.cs

@ -0,0 +1,61 @@
using Shentun.Peis.PeisReports;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace Shentun.Peis.PatientRegisters
{
public class DoctorPeisRecordListInputDto : PagedAndSortedResultRequestDto
{
/// <summary>
/// 单位相关
/// </summary>
public List<GetPeisReportDetailRequest_CustomerOrg> CustomerOrgs { get; set; } = new List<GetPeisReportDetailRequest_CustomerOrg>();
/// <summary>
/// 姓名
/// </summary>
public string PatientName { get; set; }
/// <summary>
/// 性别
/// </summary>
public char? SexId { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public char? IsAudit { get; set; }
/// <summary>
/// 完成标志(0 预登记 1正式登记 2部分已检 3已总检)
/// </summary>
public char? CompleteFlag { get; set; }
/// <summary>
/// 项目审核状态
/// </summary>
public char? AsbitemIsAudit { get; set; }
/// <summary>
/// 项目检查状态
/// </summary>
public char? AsbitemCompleteFlag { get; set; }
/// <summary>
/// 组合项目ID 集合
/// </summary>
public List<Guid> Asbitems { get; set; } = new List<Guid>();
///// <summary>
///// 是否有图 (Y N) 非必传 默认为 N
///// </summary>
//public char IsPicture { get; set; } = 'N';
public override int MaxResultCount { get; set; } = 100;
}
}

62
src/Shentun.Peis.Application.Contracts/PatientRegisters/SumDoctorPeisRecordListInputtDto.cs

@ -0,0 +1,62 @@
using Shentun.Peis.PeisReports;
using System;
using System.Collections.Generic;
using System.Text;
using Volo.Abp.Application.Dtos;
namespace Shentun.Peis.PatientRegisters
{
public class SumDoctorPeisRecordListInputtDto : PagedAndSortedResultRequestDto
{
/// <summary>
/// 单位相关
/// </summary>
public List<GetPeisReportDetailRequest_CustomerOrg> CustomerOrgs { get; set; } = new List<GetPeisReportDetailRequest_CustomerOrg>();
/// <summary>
/// 姓名
/// </summary>
public string? PatientName { get; set; }
/// <summary>
/// 性别
/// </summary>
public char? SexId { get; set; }
/// <summary>
/// 审核状态
/// </summary>
public char? IsAudit { get; set; }
/// <summary>
/// 完成标志(0 预登记 1正式登记 2部分已检 3已总检 5项目全部检查未总检)
/// </summary>
public char? CompleteFlag { get; set; }
///// <summary>
///// 是否需要过滤预登记数据 Y=过滤预登记数据 N=不过滤 默认为N (备注:只有CompleteFlag参数的值不为0的情况才有效,null值也有效)
///// </summary>
//public char? IsFilterPreRegistration { get; set; } = 'N';
/// <summary>
/// 项目审核状态
/// </summary>
public char? AsbitemIsAudit { get; set; }
/// <summary>
/// 项目检查状态
/// </summary>
public char? AsbitemCompleteFlag { get; set; }
/// <summary>
/// 组合项目ID 集合
/// </summary>
public List<Guid> Asbitems { get; set; } = new List<Guid>();
public override int MaxResultCount { get; set; } = 100;
}
}

168
src/Shentun.Peis.Application/DataMigrations/BaseDataHandleAppService.cs

@ -2768,130 +2768,136 @@ namespace Shentun.Peis.DataMigrations
if (patientRegisterList.Any())
{
List<string> patientRegisterNos = new List<string> { "P23083101999",
"P23083100427", "P23083101608","P23083100503", "P23083102172",
"P23083102000", "P23083100563", "P23083100542" };
foreach (var item in patientRegisterList)
{
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
if (!patientRegisterNos.Contains(item.PatientRegisterNo))
{
#region 转换成老系统PatientRegisterId
string oldPatientRegisterId = (await _fieldComparisonRepository.GetQueryableAsync())
.Where(m => m.TableName == "patient_register" && m.NewKeyValue == item.Id.ToString()).FirstOrDefault().OldKeyValue;
#endregion
var oldSum = await Db.Ado.GetDataTableAsync($"select summary,suggestion from patient_register where patient_register_id='{oldPatientRegisterId}' ");
if (oldSum.Rows.Count == 1)
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{
string oldSummary = oldSum.Rows[0][0].ToString();
string oldSuggestion= oldSum.Rows[0][1].ToString();
if (!string.IsNullOrWhiteSpace(oldSummary))
{
#region 转换成老系统PatientRegisterId
string oldPatientRegisterId = (await _fieldComparisonRepository.GetQueryableAsync())
.Where(m => m.TableName == "patient_register" && m.NewKeyValue == item.Id.ToString()).FirstOrDefault().OldKeyValue;
#endregion
Guid sumSummaryHeaderId = GuidGenerator.Create();
var dataSumSummaryHeader = new SumSummaryHeader(sumSummaryHeaderId)
{
DisplayOrder = 1,
SummaryFlag = '0',
PatientRegisterId = item.Id,
SummaryTitle = "."
};
#region 综述、建议
var oldSum = await Db.Ado.GetDataTableAsync($"select summary,suggestion,barcode_no from patient_register where patient_register_id='{oldPatientRegisterId}' ");
await _sumSummaryHeaderRepository.InsertAsync(dataSumSummaryHeader);
if (oldSum.Rows.Count == 1)
{
string oldSummary = oldSum.Rows[0][0].ToString();
string oldSuggestion = oldSum.Rows[0][1].ToString();
Guid sumSummaryContentId = GuidGenerator.Create();
var dataSumSummaryContent = new SumSummaryContent(sumSummaryContentId)
if (!string.IsNullOrWhiteSpace(oldSummary))
{
DisplayOrder = 1,
SumSummaryHeaderId = sumSummaryHeaderId,
SummaryContent = oldSummary
};
await _sumSummaryContentRepository.InsertAsync(dataSumSummaryContent);
Guid sumSummaryHeaderId = GuidGenerator.Create();
await uow.CompleteAsync();
}
var dataSumSummaryHeader = new SumSummaryHeader(sumSummaryHeaderId)
{
DisplayOrder = 1,
SummaryFlag = '0',
PatientRegisterId = item.Id,
SummaryTitle = "综述"
};
await _sumSummaryHeaderRepository.InsertAsync(dataSumSummaryHeader);
Guid sumSummaryContentId = GuidGenerator.Create();
var dataSumSummaryContent = new SumSummaryContent(sumSummaryContentId)
{
DisplayOrder = 1,
SumSummaryHeaderId = sumSummaryHeaderId,
SummaryContent = oldSummary
};
await _sumSummaryContentRepository.InsertAsync(dataSumSummaryContent);
if (!string.IsNullOrWhiteSpace(oldSuggestion))
{
}
Guid sumSuggestionHeaderId = GuidGenerator.Create();
var dataSumSuggestionHeader = new SumSuggestionHeader(sumSuggestionHeaderId)
if (!string.IsNullOrWhiteSpace(oldSuggestion))
{
DisplayOrder = 1,
SuggestionFlag = '0',
PatientRegisterId = item.Id,
SuggestionTitle = "."
};
await _sumSuggestionHeaderRepository.InsertAsync(dataSumSuggestionHeader);
Guid sumSuggestionHeaderId = GuidGenerator.Create();
Guid sumSuggestionContentId = GuidGenerator.Create();
var dataSumSuggestionContent = new SumSuggestionContent(sumSuggestionContentId)
{
DisplayOrder = 1,
SuggestionContent = oldSuggestion,
SuggestionType = SuggestionTypeFlag.HealthGuidance,
SumSuggestionHeaderId = sumSuggestionHeaderId
};
var dataSumSuggestionHeader = new SumSuggestionHeader(sumSuggestionHeaderId)
{
DisplayOrder = 1,
SuggestionFlag = '0',
PatientRegisterId = item.Id,
SuggestionTitle = "建议"
};
await _sumSuggestionContentRepository.InsertAsync(dataSumSuggestionContent);
await _sumSuggestionHeaderRepository.InsertAsync(dataSumSuggestionHeader);
await uow.CompleteAsync();
}
Guid sumSuggestionContentId = GuidGenerator.Create();
var dataSumSuggestionContent = new SumSuggestionContent(sumSuggestionContentId)
{
DisplayOrder = 1,
SuggestionContent = oldSuggestion,
SuggestionType = SuggestionTypeFlag.HealthGuidance,
SumSuggestionHeaderId = sumSuggestionHeaderId
};
}
await _sumSuggestionContentRepository.InsertAsync(dataSumSuggestionContent);
var oldSummaryDiagnosis = await Db.Ado.GetDataTableAsync($"select diagnosis_id from summary_diagnosis where patient_register_id='{oldPatientRegisterId}' order by display_order asc ");
#region 总症诊断
var oldSummaryDiagnosis = await Db.Ado.GetDataTableAsync($"select diagnosis_id from summary_diagnosis where patient_register_id='{oldPatientRegisterId}' order by display_order asc ");
if (oldSummaryDiagnosis.Rows.Count > 0)
{
//获取建议头
var sumSuggestionHeaderEnt = await _sumSuggestionHeaderRepository.FirstOrDefaultAsync(m => m.PatientRegisterId == item.Id);
if (sumSuggestionHeaderEnt != null)
{
List<SumDiagnosis> sumDiagnosisInsert = new List<SumDiagnosis>();
foreach (DataRow row in oldSummaryDiagnosis.Rows)
{
var diagnosisEnt = (await _fieldComparisonRepository.GetQueryableAsync())
.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["diagnosis_id"].ToString()).FirstOrDefault();
if (diagnosisEnt != null)
if (oldSummaryDiagnosis.Rows.Count > 0)
{
List<SumDiagnosis> sumDiagnosisInsert = new List<SumDiagnosis>();
var dataSumDiagnosis = new SumDiagnosis
foreach (DataRow row in oldSummaryDiagnosis.Rows)
{
DisplayOrder = oldSummaryDiagnosis.Rows.IndexOf(row) + 1,
PatientRegisterId = item.Id,
DiagnosisId = Guid.Parse(diagnosisEnt.NewKeyValue),
SumSuggestionHeaderId = sumSuggestionHeaderEnt.Id
};
var diagnosisEnt = (await _fieldComparisonRepository.GetQueryableAsync())
.Where(m => m.TableName == "diagnosis" && m.OldKeyValue == row["diagnosis_id"].ToString()).FirstOrDefault();
if (diagnosisEnt != null)
{
var dataSumDiagnosis = new SumDiagnosis
{
DisplayOrder = oldSummaryDiagnosis.Rows.IndexOf(row) + 1,
PatientRegisterId = item.Id,
DiagnosisId = Guid.Parse(diagnosisEnt.NewKeyValue),
SumSuggestionHeaderId = sumSuggestionContentId
};
sumDiagnosisInsert.Add(dataSumDiagnosis);
}
}
if (sumDiagnosisInsert.Any())
await _sumDiagnosisRepository.InsertManyAsync(sumDiagnosisInsert);
sumDiagnosisInsert.Add(dataSumDiagnosis);
}
#endregion
}
if (sumDiagnosisInsert.Any())
await _sumDiagnosisRepository.InsertManyAsync(sumDiagnosisInsert);
await uow.CompleteAsync();
}
}
#endregion
await Db.Ado.ExecuteCommandAsync($"update tb_export_key set keyvalue='{item.Id}',addtime=getdate(),handlecount+=1 where tablename='sum_summary' ");
await Db.Ado.ExecuteCommandAsync($"update tb_export_key set keyvalue='{item.Id}',addtime=getdate(),handlecount+=1 where tablename='sum_summary' ");
}
}
}
await TransferSumSummaryData();

435
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -1065,29 +1065,31 @@ namespace Shentun.Peis.PatientRegisters
await CurrentUnitOfWork.SaveChangesAsync();
return;
}
/// <summary>
/// 体检记录查询
/// 体检记录查询 医生诊台
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/patientregister/getpeisrecordlist")]
public async Task<PagedResultDto<PatientRegisterOrNoDto>> GetPeisRecordListAsync(GetPeisRecordListRequestDto input)
[HttpPost("api/app/PatientRegister/GetDoctorPeisRecordList")]
public async Task<PagedResultDto<PatientRegisterOrNoDto>> GetDoctorPeisRecordListAsync(DoctorPeisRecordListInputDto input)
{
var customerOrgList = await _customerOrgRepository.GetListAsync();
var query = from a in await _repository.GetQueryableAsync()
join b in await _patientRepository.GetQueryableAsync() on a.PatientId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in await _userRepository.GetQueryableAsync() on a.CreatorId equals c.Id into cc
join c in await _registerCheckRepository.GetQueryableAsync() on a.Id equals c.PatientRegisterId into cc
from ac in cc.DefaultIfEmpty()
join d in await _userRepository.GetQueryableAsync() on a.LastModifierId equals d.Id into dd
join d in await _registerCheckAsbitemRepository.GetQueryableAsync() on ac.Id equals d.RegisterCheckId into dd
from ad in dd.DefaultIfEmpty()
select new
{
a,
ab,
ac,
ad
AsbitemId = ad != null ? ad.AsbitemId : Guid.Empty,
RegisterCheckCompleteFlag = ac != null ? ac.CompleteFlag : '9',
RegisterCheckIsAudit = ac != null ? ac.IsAudit : '9'
};
@ -1190,22 +1192,253 @@ namespace Shentun.Peis.PatientRegisters
if (input.CompleteFlag != null)
{
sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag);
}
else
{
//直接过滤
sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
}
if (input.IsAudit != null)
{
sumquery = sumquery.Where(m => m.a.IsAudit == input.IsAudit);
}
if (input.Asbitems.Any())
{
sumquery = sumquery.Where(m => input.Asbitems.Contains(m.AsbitemId));
}
//if (input.IsPicture == 'Y')
//{
// //查询有图数据
// var query_picture = from a in await _registerCheckAsbitemRepository.GetQueryableAsync()
// join b in await _registerCheckPictureRepository.GetQueryableAsync() on a.RegisterCheckId equals b.RegisterCheckId
// select a.PatientRegisterId;
// sumquery = sumquery.Where(m => query_picture.Contains(m.a.Id));
//}
if (input.AsbitemCompleteFlag != null)
{
sumquery = sumquery.Where(m => m.RegisterCheckCompleteFlag == input.AsbitemCompleteFlag);
}
if (input.AsbitemIsAudit != null)
{
sumquery = sumquery.Where(m => m.RegisterCheckIsAudit == input.AsbitemIsAudit);
}
var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);
int totalCount = sumqueryGroup.Count();
var entlist = sumqueryGroup.OrderBy(o => o.Key).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).Select(s => new PatientRegisterOrNoDto
{
CreationTime = s.FirstOrDefault().a.CreationTime,
CreatorId = s.FirstOrDefault().a.CreatorId,
Id = s.FirstOrDefault().a.Id,
LastModificationTime = s.FirstOrDefault().a.LastModificationTime,
LastModifierId = s.FirstOrDefault().a.LastModifierId,
ThirdInfo = s.FirstOrDefault().a.ThirdInfo,
SummaryDoctorId = s.FirstOrDefault().a.SummaryDoctorId,
SummaryDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.SummaryDate),
SexId = s.FirstOrDefault().a.SexId,
Age = s.FirstOrDefault().a.Age,
AuditDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.AuditDate),
AuditDoctorId = s.FirstOrDefault().a.AuditDoctorId,
BirthDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.BirthDate),
CompleteFlag = s.FirstOrDefault().a.CompleteFlag,
CustomerOrgGroupId = s.FirstOrDefault().a.CustomerOrgGroupId,
CustomerOrgId = s.FirstOrDefault().a.CustomerOrgId,
CustomerOrgRegisterId = s.FirstOrDefault().a.CustomerOrgRegisterId,
GuidePrintTimes = s.FirstOrDefault().a.GuidePrintTimes,
InterposeMeasure = s.FirstOrDefault().a.InterposeMeasure,
IsAudit = s.FirstOrDefault().a.IsAudit,
IsLock = s.FirstOrDefault().a.IsLock,
IsMedicalStart = s.FirstOrDefault().a.IsMedicalStart,
IsNameHide = s.FirstOrDefault().a.IsNameHide,
IsPhoneFollow = s.FirstOrDefault().a.IsPhoneFollow,
IsRecoverGuide = s.FirstOrDefault().a.IsRecoverGuide,
IsUpload = s.FirstOrDefault().a.IsUpload,
IsVip = s.FirstOrDefault().a.IsVip,
JobCardNo = s.FirstOrDefault().a.JobCardNo,
JobPost = s.FirstOrDefault().a.JobPost,
JobTitle = s.FirstOrDefault().a.JobTitle,
MaritalStatusId = s.FirstOrDefault().a.MaritalStatusId,
MedicalCardNo = s.FirstOrDefault().a.MedicalCardNo,
MedicalConclusionId = s.FirstOrDefault().a.MedicalConclusionId,
MedicalPackageId = s.FirstOrDefault().a.MedicalPackageId,
MedicalStartDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.MedicalStartDate),
MedicalTimes = s.FirstOrDefault().a.MedicalTimes,
MedicalTypeId = s.FirstOrDefault().a.MedicalTypeId,
MedicalCenterId = s.FirstOrDefault().a.MedicalCenterId,
PatientId = s.FirstOrDefault().a.PatientId,
PatientName = s.FirstOrDefault().a.PatientName,
PatientRegisterNo = s.FirstOrDefault().a.PatientRegisterNo,
PersonnelTypeId = s.FirstOrDefault().a.PersonnelTypeId,
Photo = s.FirstOrDefault().a.Photo,
Remark = s.FirstOrDefault().a.Remark,
ReportPrintTimes = s.FirstOrDefault().a.ReportPrintTimes,
Salesman = s.FirstOrDefault().a.Salesman,
SexHormoneTermId = s.FirstOrDefault().a.SexHormoneTermId,
CreatorName = "",
LastModifierName = "",
Address = s.FirstOrDefault().ab.Address, //档案表信息
BirthPlaceId = s.FirstOrDefault().ab.BirthPlaceId,
DisplayName = s.FirstOrDefault().ab.DisplayName,
Email = s.FirstOrDefault().ab.Email,
IdNo = s.FirstOrDefault().ab.IdNo,
MobileTelephone = s.FirstOrDefault().ab.MobileTelephone,
NationId = s.FirstOrDefault().ab.NationId,
PatientNo = s.FirstOrDefault().ab.PatientNo,
PatientPassword = s.FirstOrDefault().ab.PatientPassword,
PostalCode = s.FirstOrDefault().ab.PostalCode,
Telephone = s.FirstOrDefault().ab.Telephone,
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(s.FirstOrDefault().a.CustomerOrgId).Result.Id,
CustomerOrgParentName = _cacheService.GetTopCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result
}).ToList();
return new PagedResultDto<PatientRegisterOrNoDto>(totalCount, entlist);
}
/// <summary>
/// 体检记录查询 总症医生诊台
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/PatientRegister/GetSumDoctorPeisRecordList")]
public async Task<PagedResultDto<PatientRegisterOrNoDto>> GetSumDoctorPeisRecordListAsync(SumDoctorPeisRecordListInputtDto input)
{
var query = from a in await _repository.GetQueryableAsync()
join b in await _patientRepository.GetQueryableAsync() on a.PatientId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join c in await _registerCheckRepository.GetQueryableAsync() on a.Id equals c.PatientRegisterId into cc
from ac in cc.DefaultIfEmpty()
join d in await _registerCheckAsbitemRepository.GetQueryableAsync() on ac.Id equals d.RegisterCheckId into dd
from ad in dd.DefaultIfEmpty()
select new
{
a,
ab,
AsbitemId = ad != null ? ad.AsbitemId : Guid.Empty,
RegisterCheckCompleteFlag = ac != null ? ac.CompleteFlag : '9',
RegisterCheckIsAudit = ac != null ? ac.IsAudit : '9'
};
var sumquery = query;
if (input.CustomerOrgs.Any())
{
var item = input.CustomerOrgs[0];
if (item.CustomerOrgGroupId.Any())
{
sumquery = sumquery.Where(m => m.a.CustomerOrgGroupId != null && item.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value));
}
if (item.CustomerOrgRegisterId != null && item.CustomerOrgRegisterId != Guid.Empty)
{
sumquery = sumquery.Where(m => m.a.CustomerOrgRegisterId == item.CustomerOrgRegisterId);
}
if (item.CustomerOrgId != null)
{
var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item.CustomerOrgId.Value);
sumquery = sumquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId));
}
if (!string.IsNullOrEmpty(item.StartDate) && !string.IsNullOrEmpty(item.EndDate))
{
if (item.DateType == '1')
{
sumquery = sumquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item.StartDate) &&
m.a.CreationTime < Convert.ToDateTime(item.EndDate).AddDays(1));
}
else if (item.DateType == '2')
{
sumquery = sumquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate >= Convert.ToDateTime(item.StartDate) &&
m.a.MedicalStartDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1));
}
else if (item.DateType == '3')
{
sumquery = sumquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item.StartDate) &&
m.a.SummaryDate.Value < Convert.ToDateTime(item.EndDate).AddDays(1));
}
}
if (input.CustomerOrgs.Count > 1)
{
foreach (var item2 in input.CustomerOrgs)
{
if (input.CustomerOrgs.IndexOf(item2) > 0)
{
var newquery = query;
if (item2.CustomerOrgGroupId.Any())
{
newquery = newquery.Where(m => m.a.CustomerOrgGroupId != null && item2.CustomerOrgGroupId.Contains(m.a.CustomerOrgGroupId.Value));
}
if (item2.CustomerOrgRegisterId != null && item2.CustomerOrgRegisterId != Guid.Empty)
{
newquery = newquery.Where(m => m.a.CustomerOrgRegisterId == item2.CustomerOrgRegisterId);
}
if (item2.CustomerOrgId != null)
{
var CustomerOrgIds = await _customerOrgManager.GetCustomerOrgChildrenId(item2.CustomerOrgId.Value);
newquery = newquery.Where(m => CustomerOrgIds.Contains(m.a.CustomerOrgId));
}
if (!string.IsNullOrEmpty(item2.StartDate) && !string.IsNullOrEmpty(item2.EndDate))
{
if (item2.DateType == '1')
{
newquery = newquery.Where(m => m.a.CreationTime >= Convert.ToDateTime(item2.StartDate) &&
m.a.CreationTime < Convert.ToDateTime(item2.EndDate).AddDays(1));
}
else if (item2.DateType == '2')
{
newquery = newquery.Where(m => m.a.MedicalStartDate != null && m.a.MedicalStartDate.Value >= Convert.ToDateTime(item2.StartDate) &&
m.a.MedicalStartDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1));
}
else if (item2.DateType == '3')
{
newquery = newquery.Where(m => m.a.SummaryDate != null && m.a.SummaryDate.Value >= Convert.ToDateTime(item2.StartDate) &&
m.a.SummaryDate.Value < Convert.ToDateTime(item2.EndDate).AddDays(1));
}
}
sumquery = sumquery.Union(newquery);
}
}
}
}
//if (input.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration && input.IsFilterPreRegistration != null && input.IsFilterPreRegistration == 'Y')
//{
// //直接过滤
// sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
//}
if (!string.IsNullOrEmpty(input.PatientName))
{
sumquery = sumquery.Where(m => m.a.PatientName != null && m.a.PatientName.Contains(input.PatientName));
}
if (input.SexId != null)
{
sumquery = sumquery.Where(m => m.a.SexId == input.SexId);
}
if (input.CompleteFlag != null && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck)
{
sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag);
}
else
{
//if (input.IsFilterPreRegistration != null && input.IsFilterPreRegistration == 'Y')
//{
//直接过滤
sumquery = sumquery.Where(m => m.a.CompleteFlag != PatientRegisterCompleteFlag.PreRegistration);
//}
}
if (input.IsAudit != null)
@ -1215,102 +1448,110 @@ namespace Shentun.Peis.PatientRegisters
if (input.Asbitems.Any())
{
//组合项目
var query_asbitem = from a in await _registerCheckAsbitemRepository.GetQueryableAsync()
where input.Asbitems.Contains(a.AsbitemId)
select a.PatientRegisterId;
sumquery = sumquery.Where(m => query_asbitem.Contains(m.a.Id));
sumquery = sumquery.Where(m => input.Asbitems.Contains(m.AsbitemId));
}
if (input.IsPicture == 'Y')
if (input.AsbitemCompleteFlag != null)
{
//查询有图数据
var query_picture = from a in await _registerCheckAsbitemRepository.GetQueryableAsync()
join b in await _registerCheckPictureRepository.GetQueryableAsync() on a.RegisterCheckId equals b.RegisterCheckId
select a.PatientRegisterId;
sumquery = sumquery.Where(m => query_picture.Contains(m.a.Id));
sumquery = sumquery.Where(m => m.RegisterCheckCompleteFlag == input.AsbitemCompleteFlag);
}
if (input.AsbitemIsAudit != null)
{
sumquery = sumquery.Where(m => m.RegisterCheckIsAudit == input.AsbitemIsAudit);
}
var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);
int totalCount = sumquery.Count();
sumquery = sumquery.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount);
List<PatientRegisterOrNoDto> entlist = new List<PatientRegisterOrNoDto>();
var entlist = sumquery.Select(s => new PatientRegisterOrNoDto
foreach (var s in sumqueryGroup.OrderBy(o => o.Key))
{
CreationTime = s.a.CreationTime,
CreatorId = s.a.CreatorId,
Id = s.a.Id,
LastModificationTime = s.a.LastModificationTime,
LastModifierId = s.a.LastModifierId,
ThirdInfo = s.a.ThirdInfo,
SummaryDoctorId = s.a.SummaryDoctorId,
SummaryDate = DataHelper.ConversionDateToString(s.a.SummaryDate),
SexId = s.a.SexId,
Age = s.a.Age,
AuditDate = DataHelper.ConversionDateToString(s.a.AuditDate),
AuditDoctorId = s.a.AuditDoctorId,
BirthDate = DataHelper.ConversionDateToString(s.a.BirthDate),
CompleteFlag = s.a.CompleteFlag,
CustomerOrgGroupId = s.a.CustomerOrgGroupId,
CustomerOrgId = s.a.CustomerOrgId,
CustomerOrgRegisterId = s.a.CustomerOrgRegisterId,
GuidePrintTimes = s.a.GuidePrintTimes,
InterposeMeasure = s.a.InterposeMeasure,
IsAudit = s.a.IsAudit,
IsLock = s.a.IsLock,
IsMedicalStart = s.a.IsMedicalStart,
IsNameHide = s.a.IsNameHide,
IsPhoneFollow = s.a.IsPhoneFollow,
IsRecoverGuide = s.a.IsRecoverGuide,
IsUpload = s.a.IsUpload,
IsVip = s.a.IsVip,
JobCardNo = s.a.JobCardNo,
JobPost = s.a.JobPost,
JobTitle = s.a.JobTitle,
MaritalStatusId = s.a.MaritalStatusId,
MedicalCardNo = s.a.MedicalCardNo,
MedicalConclusionId = s.a.MedicalConclusionId,
MedicalPackageId = s.a.MedicalPackageId,
MedicalStartDate = DataHelper.ConversionDateToString(s.a.MedicalStartDate),
MedicalTimes = s.a.MedicalTimes,
MedicalTypeId = s.a.MedicalTypeId,
MedicalCenterId = s.a.MedicalCenterId,
PatientId = s.a.PatientId,
PatientName = s.a.PatientName,
PatientRegisterNo = s.a.PatientRegisterNo,
PersonnelTypeId = s.a.PersonnelTypeId,
Photo = s.a.Photo,
Remark = s.a.Remark,
ReportPrintTimes = s.a.ReportPrintTimes,
Salesman = s.a.Salesman,
SexHormoneTermId = s.a.SexHormoneTermId,
CreatorName = s.ac != null ? s.ac.Surname : "",
LastModifierName = s.ad != null ? s.ad.Surname : "",
Address = s.ab.Address, //档案表信息
BirthPlaceId = s.ab.BirthPlaceId,
DisplayName = s.ab.DisplayName,
Email = s.ab.Email,
IdNo = s.ab.IdNo,
MobileTelephone = s.ab.MobileTelephone,
NationId = s.ab.NationId,
PatientNo = s.ab.PatientNo,
PatientPassword = s.ab.PatientPassword,
PostalCode = s.ab.PostalCode,
Telephone = s.ab.Telephone,
CustomerOrgName = EntityHelper.GetCustomerOrgNameNoSql(customerOrgList, s.a.CustomerOrgId),
CustomerOrgParentId = EntityHelper.GetParentNoSql(customerOrgList, s.a.CustomerOrgId),
CustomerOrgParentName = EntityHelper.GetCustomerOrgParentNameNoSql(customerOrgList, s.a.CustomerOrgId)
if (input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck
|| s.Where(m => m.RegisterCheckCompleteFlag != RegisterCheckCompleteFlag.Checked).Count() == 0)
{
entlist.Add(new PatientRegisterOrNoDto
{
CreationTime = s.FirstOrDefault().a.CreationTime,
CreatorId = s.FirstOrDefault().a.CreatorId,
Id = s.FirstOrDefault().a.Id,
LastModificationTime = s.FirstOrDefault().a.LastModificationTime,
LastModifierId = s.FirstOrDefault().a.LastModifierId,
ThirdInfo = s.FirstOrDefault().a.ThirdInfo,
SummaryDoctorId = s.FirstOrDefault().a.SummaryDoctorId,
SummaryDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.SummaryDate),
SexId = s.FirstOrDefault().a.SexId,
Age = s.FirstOrDefault().a.Age,
AuditDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.AuditDate),
AuditDoctorId = s.FirstOrDefault().a.AuditDoctorId,
BirthDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.BirthDate),
CompleteFlag = s.FirstOrDefault().a.CompleteFlag,
CustomerOrgGroupId = s.FirstOrDefault().a.CustomerOrgGroupId,
CustomerOrgId = s.FirstOrDefault().a.CustomerOrgId,
CustomerOrgRegisterId = s.FirstOrDefault().a.CustomerOrgRegisterId,
GuidePrintTimes = s.FirstOrDefault().a.GuidePrintTimes,
InterposeMeasure = s.FirstOrDefault().a.InterposeMeasure,
IsAudit = s.FirstOrDefault().a.IsAudit,
IsLock = s.FirstOrDefault().a.IsLock,
IsMedicalStart = s.FirstOrDefault().a.IsMedicalStart,
IsNameHide = s.FirstOrDefault().a.IsNameHide,
IsPhoneFollow = s.FirstOrDefault().a.IsPhoneFollow,
IsRecoverGuide = s.FirstOrDefault().a.IsRecoverGuide,
IsUpload = s.FirstOrDefault().a.IsUpload,
IsVip = s.FirstOrDefault().a.IsVip,
JobCardNo = s.FirstOrDefault().a.JobCardNo,
JobPost = s.FirstOrDefault().a.JobPost,
JobTitle = s.FirstOrDefault().a.JobTitle,
MaritalStatusId = s.FirstOrDefault().a.MaritalStatusId,
MedicalCardNo = s.FirstOrDefault().a.MedicalCardNo,
MedicalConclusionId = s.FirstOrDefault().a.MedicalConclusionId,
MedicalPackageId = s.FirstOrDefault().a.MedicalPackageId,
MedicalStartDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.MedicalStartDate),
MedicalTimes = s.FirstOrDefault().a.MedicalTimes,
MedicalTypeId = s.FirstOrDefault().a.MedicalTypeId,
MedicalCenterId = s.FirstOrDefault().a.MedicalCenterId,
PatientId = s.FirstOrDefault().a.PatientId,
PatientName = s.FirstOrDefault().a.PatientName,
PatientRegisterNo = s.FirstOrDefault().a.PatientRegisterNo,
PersonnelTypeId = s.FirstOrDefault().a.PersonnelTypeId,
Photo = s.FirstOrDefault().a.Photo,
Remark = s.FirstOrDefault().a.Remark,
ReportPrintTimes = s.FirstOrDefault().a.ReportPrintTimes,
Salesman = s.FirstOrDefault().a.Salesman,
SexHormoneTermId = s.FirstOrDefault().a.SexHormoneTermId,
CreatorName = "",
LastModifierName = "",
Address = s.FirstOrDefault().ab.Address, //档案表信息
BirthPlaceId = s.FirstOrDefault().ab.BirthPlaceId,
DisplayName = s.FirstOrDefault().ab.DisplayName,
Email = s.FirstOrDefault().ab.Email,
IdNo = s.FirstOrDefault().ab.IdNo,
MobileTelephone = s.FirstOrDefault().ab.MobileTelephone,
NationId = s.FirstOrDefault().ab.NationId,
PatientNo = s.FirstOrDefault().ab.PatientNo,
PatientPassword = s.FirstOrDefault().ab.PatientPassword,
PostalCode = s.FirstOrDefault().ab.PostalCode,
Telephone = s.FirstOrDefault().ab.Telephone,
CustomerOrgName = _cacheService.GetCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
CustomerOrgParentId = _cacheService.GetTopCustomerOrgAsync(s.FirstOrDefault().a.CustomerOrgId).Result.Id,
CustomerOrgParentName = _cacheService.GetTopCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result
});
}
}).ToList();
}
return new PagedResultDto<PatientRegisterOrNoDto>(totalCount, entlist);
int totalCount = entlist.Count;
}
entlist = entlist.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).ToList();
return new PagedResultDto<PatientRegisterOrNoDto>(totalCount, entlist);
}

3
src/Shentun.Peis.Domain.Shared/Enums/PatientRegisterCompleteFlag.cs

@ -30,5 +30,8 @@ namespace Shentun.Peis.Enums
[Description("已审核")]
public const char Audit = '4';
[Description("项目全部已检未总检")]
public const char ItemCheckUnSumCheck = '5';
}
}
Loading…
Cancel
Save