|
@@ -62,6 +62,10 @@ namespace WingMongoDBModule.Service
|
|
|
{
|
|
|
filter = filter & builder.Where(x => x.BelongUserCode == request.UserCode || x.UserCodes.Contains(request.UserCode));
|
|
|
}
|
|
|
+ else if (request.SearchType == ResearchProjectSearchTypeEnum.Default)
|
|
|
+ {
|
|
|
+ filter = filter & builder.Where(x => x.Code == "BaseVetProject");
|
|
|
+ }
|
|
|
var dataList = await _researchProjectDBRepository.FindAllAsync(filter);
|
|
|
return dataList.MappingTo<List<ResearchProjectBaseDTO>>();
|
|
|
}
|
|
@@ -198,6 +202,10 @@ namespace WingMongoDBModule.Service
|
|
|
using (new Performance(_performanceThreshold, "{0} UpdateResearchProjectDBAsync execute", "DatabaseService"))
|
|
|
{
|
|
|
var res = false;
|
|
|
+ if (request.Code == "BaseVetProject")
|
|
|
+ {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
var sameNameBuilder = Builders<ResearchProjectEntity>.Filter;
|
|
|
var sameNameFilter = sameNameBuilder.Where(c => c.IsDelete == false && c.Name == request.Name);
|
|
|
var sameNameDataInfo = await _researchProjectDBRepository.FindOneAsync(sameNameFilter);
|
|
@@ -253,6 +261,10 @@ namespace WingMongoDBModule.Service
|
|
|
{
|
|
|
using (new Performance(_performanceThreshold, "{0} DeleteResearchProjectDBAsync execute", "DatabaseService"))
|
|
|
{
|
|
|
+ if (request.Code == "BaseVetProject")
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
var projectCode = request.Code;
|
|
|
var result = await _researchProjectDBRepository.DeleteOneAsync("Code", projectCode);
|
|
|
//删除文件
|
|
@@ -352,6 +364,10 @@ namespace WingMongoDBModule.Service
|
|
|
using (new Performance(_performanceThreshold, "{0} InviteResearchProjectMembersDBAsync execute", "DatabaseService"))
|
|
|
{
|
|
|
var res = false;
|
|
|
+ if (request.Code == "BaseVetProject")
|
|
|
+ {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
var builder = Builders<ResearchProjectEntity>.Filter;
|
|
|
var filter = builder.Where(c => c.IsDelete == false && c.Code == request.Code);
|
|
|
var dataInfo = await _researchProjectDBRepository.FindOneAsync(filter);
|
|
@@ -404,6 +420,10 @@ namespace WingMongoDBModule.Service
|
|
|
using (new Performance(_performanceThreshold, "{0} RemoveResearchProjectMembersRequest execute", "DatabaseService"))
|
|
|
{
|
|
|
var res = false;
|
|
|
+ if (request.Code == "BaseVetProject")
|
|
|
+ {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
var builder = Builders<ResearchProjectEntity>.Filter;
|
|
|
var filter = builder.Where(c => c.IsDelete == false && c.Code == request.Code);
|
|
|
var dataInfo = await _researchProjectDBRepository.FindOneAsync(filter);
|
|
@@ -769,6 +789,7 @@ namespace WingMongoDBModule.Service
|
|
|
dbPage.DataCount = patients.DataCount;
|
|
|
var records = await FindRecordInfosByProjectCodeAsync(request.ProjectCode);
|
|
|
var remedicals = await GetRemedicalsByProjectCodeAsync(request.ProjectCode);
|
|
|
+ var devices = await FindDeviceInfoListByCodeListAsync(patients.PageData.Select(x => x.DeviceCode).ToList());
|
|
|
dbPage.PageData = new List<ResearchProjectDataDTO>();
|
|
|
foreach (var item in patients.PageData)
|
|
|
{
|
|
@@ -791,6 +812,8 @@ namespace WingMongoDBModule.Service
|
|
|
researchProjectDataDTO.PatientCode = item.PatientCode;
|
|
|
researchProjectDataDTO.IsUrm = item.IsUrm;
|
|
|
researchProjectDataDTO.PatientName = item.Name;
|
|
|
+ var device = devices.FirstOrDefault(x => x.DeviceCode == item.DeviceCode);
|
|
|
+ researchProjectDataDTO.DeviceShortCode = device?.ShortCode;
|
|
|
dbPage.PageData.Add(researchProjectDataDTO);
|
|
|
}
|
|
|
}
|
|
@@ -969,6 +992,78 @@ namespace WingMongoDBModule.Service
|
|
|
return sampleDetailList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 转入数据接口
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="request"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<bool> TransferDataDBAsync(TransferDataDBRequest request)
|
|
|
+ {
|
|
|
+ var patientCodes = request.PatientCodes;
|
|
|
+ var projectCode = request.ProjectCode;
|
|
|
+ var userCode = request.UserCode;
|
|
|
+ var userName = request.UserName;
|
|
|
+ //转项目,小动物科研的只会有小动物类型不会有人用类型,todo在创建项目的时候就要注意
|
|
|
+ var patients = await FindPatientInfoListByCodeListAsync(patientCodes);
|
|
|
+ var records = await FindRecordInfosByPatientCodesAsync(patientCodes, DateTime.MinValue, DateTime.MinValue);
|
|
|
+ var remedicalDatas = await GetRecordRemedicalsByRecordsAsync(records.Select(x => x.RecordCode).ToList(), DateTime.MinValue, DateTime.MinValue);
|
|
|
+ foreach (var patient in patients)
|
|
|
+ {
|
|
|
+ patient.ProjectCode = projectCode;
|
|
|
+ await UpdatePatientsAsync(patient.PatientCode, patient, null);
|
|
|
+ }
|
|
|
+ foreach (var record in records)
|
|
|
+ {
|
|
|
+ record.ProjectCode = projectCode;
|
|
|
+ await UpdateRecordInfoByCodeAsync(record.RecordCode, record, null);
|
|
|
+ }
|
|
|
+ foreach (var remedical in remedicalDatas)
|
|
|
+ {
|
|
|
+ remedical.ProjectCode = projectCode;
|
|
|
+ await ModifyRemedicalInfoAsync(remedical.RemedicalCode, remedical, null);
|
|
|
+ }
|
|
|
+ //转出时间轴
|
|
|
+ var task = new TaskEntity()
|
|
|
+ {
|
|
|
+ BusinessId = "",
|
|
|
+ TaskName = "",
|
|
|
+ MainTaskCode = "",
|
|
|
+ Description = "",
|
|
|
+ CreatorName = request.UserName,
|
|
|
+ OperatorCode = request.UserCode,
|
|
|
+ OperatorName = request.UserName,
|
|
|
+ OperateTime = DateTime.UtcNow,
|
|
|
+ Status = VTaskStatus.Completed,
|
|
|
+ TaskType = VTaskType.TransferOut,
|
|
|
+ CreateTime = DateTime.UtcNow,
|
|
|
+ UpdateTime = DateTime.UtcNow,
|
|
|
+ BusinessCode = "BaseVetProject",
|
|
|
+ JsonData = string.Join(",", patients.Select(x => x.Name))
|
|
|
+ };
|
|
|
+ await _taskDBRepository.InsertOneAsync(task);
|
|
|
+ //转入时间轴
|
|
|
+ var taskIn = new TaskEntity()
|
|
|
+ {
|
|
|
+ BusinessId = "",
|
|
|
+ TaskName = "",
|
|
|
+ MainTaskCode = "",
|
|
|
+ Description = "",
|
|
|
+ CreatorName = request.UserName,
|
|
|
+ OperatorCode = request.UserCode,
|
|
|
+ OperatorName = request.UserName,
|
|
|
+ OperateTime = DateTime.UtcNow,
|
|
|
+ Status = VTaskStatus.Completed,
|
|
|
+ TaskType = VTaskType.TransferIn,
|
|
|
+ CreateTime = DateTime.UtcNow,
|
|
|
+ UpdateTime = DateTime.UtcNow,
|
|
|
+ BusinessCode = projectCode,
|
|
|
+ JsonData = string.Join(",", patients.Select(x => x.Name))
|
|
|
+ };
|
|
|
+ await _taskDBRepository.InsertOneAsync(taskIn);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
private SampleRemedicalInfoDTO ConvertToSampleRemedical(RemedicalInfoDTO remedicalData)
|
|
|
{
|
|
|
var sampleRemedicalInfoDTO = new SampleRemedicalInfoDTO();
|
|
@@ -1287,7 +1382,7 @@ namespace WingMongoDBModule.Service
|
|
|
sampleRemedicalInfoDTO.ImgList = remedicalItem.ImgList;
|
|
|
if (sampleRemedicalInfoDTO.ImgList?.Count > 0)
|
|
|
{
|
|
|
- foreach(var item in sampleRemedicalInfoDTO.ImgList)
|
|
|
+ foreach (var item in sampleRemedicalInfoDTO.ImgList)
|
|
|
{
|
|
|
item.CoverImgUrl = item.CoverImgUrl.ToLocalUrl();
|
|
|
item.FileToken = item.FileToken.ToLocalUrl();
|
|
@@ -1338,9 +1433,9 @@ namespace WingMongoDBModule.Service
|
|
|
imgSampleRemedicalInfoDTO.CreateTime = remedicalItem.CreateTime;
|
|
|
imgSampleRemedicalInfoDTO.FileDataType = GetSampleRemedicalFileDataTypeEnumByImgType(img.ImgType);
|
|
|
imgSampleRemedicalInfoDTO.ImageSize = img.FileSize;
|
|
|
- imgSampleRemedicalInfoDTO.ImageUrl = img.FileToken.ToLocalUrl();;
|
|
|
- imgSampleRemedicalInfoDTO.PreviewUrl = img.PreviewFileUrl.ToLocalUrl();;
|
|
|
- imgSampleRemedicalInfoDTO.CoverImgUrl = img.CoverImgUrl.ToLocalUrl();;
|
|
|
+ imgSampleRemedicalInfoDTO.ImageUrl = img.FileToken.ToLocalUrl(); ;
|
|
|
+ imgSampleRemedicalInfoDTO.PreviewUrl = img.PreviewFileUrl.ToLocalUrl(); ;
|
|
|
+ imgSampleRemedicalInfoDTO.CoverImgUrl = img.CoverImgUrl.ToLocalUrl(); ;
|
|
|
sampleRemedicalBasicInfo.SampleRemedicalInfoList.Add(imgSampleRemedicalInfoDTO);
|
|
|
}
|
|
|
}
|