添加数据

Uat_Study
he 2022-04-25 13:35:44 +08:00
parent 7351415bbc
commit 04a608c28b
12 changed files with 133 additions and 56 deletions

View File

@ -82,6 +82,30 @@ namespace IRaCIS.Core.API.Controllers
this._dataInspectionRepository = dataInspectionRepository;
}
#region 文件管理
/// <summary>
///
/// </summary>
/// <param name="opt">参数</param>
/// <returns></returns>
[HttpPost, Route("Inspection/trialDocument/AddOrUpdateTrialDocument")]
[UnitOfWork]
public async Task<IResponseOutput> AddOrUpdateTrialDocument(DataInspectionDto<AddOrEditTrialDocument> opt)
{
var fun = _trialDocumentService.AddOrUpdateTrialDocument;
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
}
[HttpPost, Route("Inspection/trialDocument/UserAbandonDoc")]
[UnitOfWork]
public async Task<IResponseOutput> UserAbandonDoc(DataInspectionDto<AddOrEditTrialDocument> opt)
{
var fun = _trialDocumentService.UserAbandonDoc;
return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, fun);
}
#endregion
#region 获取稽查数据
/// <summary>

View File

@ -22,6 +22,7 @@ using IRaCIS.Core.Application.Service.Inspection.Interface;
using Newtonsoft.Json;
using IRaCIS.Core.Application.Service.Inspection.DTO;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Api.Controllers
{
@ -238,7 +239,7 @@ namespace IRaCIS.Api.Controllers
TrialId = savedInfo.TrialId,
SubjectVisitId = savedInfo.SubjectVisitId,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = JsonConvert.SerializeObject(savedInfo)
JsonDetail = savedInfo.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);

View File

@ -57,6 +57,13 @@
Financials /Monthly Payment 列表查询接口
</summary>
</member>
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.AddOrUpdateTrialDocument(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.AddOrEditTrialDocument})">
<summary>
</summary>
<param name="opt">参数</param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.API.Controllers.InspectionController.GetInspectionData(IRaCIS.Core.Application.Service.Inspection.DTO.GetDataInspectionDto)">
<summary>
获取稽查数据

View File

@ -78,6 +78,8 @@ namespace IRaCIS.Core.Application.Service
ModuleTypeId = additem?.ModuleTypeId,
ObjectTypeId = additem?.ObjectTypeId,
OptTypeId = additem?.OptTypeId,
DictionaryCode = lst.Max(x => x.DictionaryCode),
DictionaryType = lst.Max(x => x.DictionaryType),
DateType = lst.Select(x => x.DateType).FirstOrDefault(),
Id =Guid.NewGuid(),
}).ToList();
@ -101,6 +103,8 @@ namespace IRaCIS.Core.Application.Service
{
x.Code=x.Code.IsNullOrEmpty()?item.Code:x.Code;
x.Value = x.Code.IsNullOrEmpty() ? item.Value : x.Value;
x.DictionaryType = x.DictionaryType.IsNullOrEmpty() ? item.DictionaryType : x.DictionaryType;
x.DictionaryCode = x.DictionaryCode.IsNullOrEmpty() ? item.DictionaryCode : x.DictionaryCode;
}
});

View File

@ -13,6 +13,7 @@ namespace IRaCIS.Core.Application.Contracts
{
public interface ITrialDocumentService
{
Task<IResponseOutput> UserAbandonDoc(Guid documentId, bool isSystemDoc);
Task<IResponseOutput> AddOrUpdateTrialDocument(AddOrEditTrialDocument addOrEditTrialDocument);
Task<IResponseOutput> DeleteTrialDocument(Guid trialDocumentId, Guid trialId);
Task<PageOutput<UnionDocumentWithConfirmInfoView>> GetDocumentConfirmList(DocumentTrialUnionQuery querySystemDocument);

View File

@ -14,6 +14,7 @@ using IRaCIS.Core.Application.Service.Inspection.Interface;
using IRaCIS.Core.Application.Service.Inspection.DTO;
using Nito.AsyncEx;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Core.Application.Contracts
{
@ -138,7 +139,7 @@ namespace IRaCIS.Core.Application.Contracts
TrialId = subvisit.TrialId,
SubjectVisitId = subvisit.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = JsonConvert.SerializeObject(subvisit)
JsonDetail = subvisit.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);
@ -189,7 +190,7 @@ namespace IRaCIS.Core.Application.Contracts
TrialId = subvisit.TrialId,
SubjectVisitId = subvisit.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = JsonConvert.SerializeObject(subvisit)
JsonDetail = subvisit.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);

View File

@ -22,6 +22,7 @@ using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Application.Service.Inspection.DTO;
using Nito.AsyncEx;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Core.Application.Image.QA
{
@ -1051,7 +1052,7 @@ namespace IRaCIS.Core.Application.Image.QA
TrialId = subvisit.TrialId,
SubjectVisitId = subvisit.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload|Add Image",
JsonDetail = JsonConvert.SerializeObject(subvisit)
JsonDetail = subvisit.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(datas);
return ResponseOutput.Ok();
@ -1363,12 +1364,7 @@ namespace IRaCIS.Core.Application.Image.QA
TrialId = x.TrialId,
SubjectVisitId = x.Id,
Identification = "Edit|Visit|Status|Visit-Image Upload-1",
JsonDetail = JsonConvert.SerializeObject(new
{
SubmitState = "已提交",
AuditState="未审核",
})
JsonDetail = x.ToJcJson(),
});
});
@ -1883,7 +1879,7 @@ namespace IRaCIS.Core.Application.Image.QA
IsSign = false,
Identification = "Edit|Subject|Info|Subject",
CreateTime = DateTime.Now.AddSeconds(1),
JsonDetail = JsonConvert.SerializeObject(command)
JsonDetail = command.ToJcJson()
});
}

View File

@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Service.Inspection.Interface;
using IRaCIS.Core.Infrastructure;
using Newtonsoft.Json;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Application.Services
{
@ -34,6 +35,7 @@ namespace IRaCIS.Application.Services
[TypeFilter(typeof(TrialResourceFilter))]
public async Task<IResponseOutput<string>> AddOrUpdateSubject([FromBody] SubjectCommand subjectCommand)
{
var svlist = new List<SubjectVisit>();
if (await _repository.AnyAsync<Trial>(t => t.Id == subjectCommand.TrialId && !t.VisitPlanConfirmed))
{
return ResponseOutput.NotOk("The trial visit plan has not been confirmed yet.Please contact the project manager to confirm the visit plan before adding subject.");
@ -60,7 +62,7 @@ namespace IRaCIS.Application.Services
//添加受试者的时候,获取访视计划列表,添加到受试者访视表。
var visitPlan = await _repository.Where<VisitStage>(t => t.TrialId == subjectCommand.TrialId).ToListAsync();
var svlist = _mapper.Map<List<SubjectVisit>>(visitPlan);
svlist = _mapper.Map<List<SubjectVisit>>(visitPlan);
var IsEnrollementQualificationConfirm = await _repository.Where<Trial>(t => t.Id == mapedSubject.TrialId).Select(u => u.IsEnrollementQualificationConfirm).FirstOrDefaultAsync();
@ -109,8 +111,14 @@ namespace IRaCIS.Application.Services
// })
//});
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
settings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
//var jsonData = JsonConvert.SerializeObject(info, settings);
var visittime = createtime.AddSeconds(1);
foreach (var item in mapedSubject.SubjectVisitList)
foreach (var item in svlist)
{
// 添加访视
datas.Add(new DataInspection()
@ -125,7 +133,7 @@ namespace IRaCIS.Application.Services
IsSign = false,
CreateTime = visittime,
Identification = "Add|Visit|Info|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(item)
JsonDetail = item.ToJcJson()
});
// 初始化访视
@ -142,7 +150,7 @@ namespace IRaCIS.Application.Services
IsSign = false,
CreateTime = visittime.AddSeconds(1),
Identification = "Init|Visit|Status|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(item)
JsonDetail = item.ToJcJson()
});
}

View File

@ -10,6 +10,7 @@ using IRaCIS.Core.Application.Interfaces;
using IRaCIS.Core.Application.Service.Inspection.Interface;
using Newtonsoft.Json;
using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Core.Application.Services
{
@ -138,7 +139,7 @@ namespace IRaCIS.Core.Application.Services
IsSign = false,
Identification = "Edit|Subject|Info|Subject",
CreateTime = DateTime.Now.AddSeconds(1),
JsonDetail = JsonConvert.SerializeObject(subject)
JsonDetail = subject.ToJcJson(),
});
await _inspectionService.AddListInspectionRecordAsync(datas);
}
@ -179,7 +180,7 @@ namespace IRaCIS.Core.Application.Services
IsSign = false,
CreateTime = DateTime.Now.AddSeconds(1),
Identification = "Init|Visit|Status|Visit-Image Upload",
JsonDetail = JsonConvert.SerializeObject(svCommand)
JsonDetail = svCommand.ToJcJson()
});
await _inspectionService.AddListInspectionRecordAsync(dataInspection);

View File

@ -13,6 +13,7 @@ using IRaCIS.Core.Application.Service.Inspection.Interface;
using Newtonsoft.Json;
using IRaCIS.Core.Infrastructure;
using MassTransit;
using IRaCIS.Core.Domain.Common;
namespace IRaCIS.Application.Services
{
@ -266,6 +267,7 @@ namespace IRaCIS.Application.Services
t.VisitNum,
t.IsBaseLine,
t.BlindName,
t.Description,
IsConfirmed = true,
}).ToListAsync();
@ -283,7 +285,7 @@ namespace IRaCIS.Application.Services
//SubjectVisitName = x.VisitName,
VisitStageId = x.Id,
TrialId = x.TrialId,
JsonDetail = JsonConvert.SerializeObject(x),
JsonDetail = x.ToJcJson(),
Identification = "Confirm|Visit Plan Template|Data|Trial Setting-Visit Plan",
});
@ -430,7 +432,7 @@ namespace IRaCIS.Application.Services
VisitName = changedItem.VisitName,
VisitNum = changedItem.VisitNum,
VisitDay = changedItem.VisitDay,
SubmitState = "未提交",
SubmitState = x.SubmitState,
VisitWindowLeft = changedItem.VisitWindowLeft,
VisitWindowRight = changedItem.VisitWindowRight
}),
@ -456,7 +458,8 @@ namespace IRaCIS.Application.Services
x.SiteId,
x.Id,
x.IsEnrollment,
x.IsUrgent
x.IsUrgent,
});
@ -471,8 +474,26 @@ namespace IRaCIS.Application.Services
{
subjectsids.ForEach(y =>
{
Guid dataindtid = NewId.NextGuid();
Guid guid = NewId.NextGuid();
SubjectVisit subjectVisit = new SubjectVisit()
{
SiteId = y.SiteId,
SubjectId = y.Id,
Id = guid,
VisitName = x.VisitName,
BlindName = x.BlindName,
IsBaseLine = x.IsBaseLine,
IsCheckBack = x.IsBaseLine,
IsUrgent = trial.IsSubjectExpeditedView,
};
subjectVisits.Add(subjectVisit);
//
datas.Add(new DataInspection()
{
@ -492,14 +513,14 @@ namespace IRaCIS.Application.Services
VisitName = x.VisitName,
VisitNum = x.VisitNum,
VisitDay = x.VisitDay,
VisitExecuted = false,
VisitExecuted = subjectVisit.VisitExecuted,
BlindName = x.BlindName,
VisitWindowLeft = x.VisitWindowLeft,
VisitWindowRight = x.VisitWindowRight,
IsEnrollment = y.IsEnrollment,
IsUrgent = trial.IsSubjectExpeditedView,
IsFinalVisit = false,
IsLostVisit = false,
IsFinalVisit = subjectVisit.IsFinalVisit,
IsLostVisit = subjectVisit.IsLostVisit,
PDState = trial.IsPDProgressView,
}),
});
@ -522,37 +543,23 @@ namespace IRaCIS.Application.Services
{
BlindName = x.BlindName,
VisitName = x.VisitName,
SubmitState = "未提交",
AuditState = "未审核",
SubmitState = subjectVisit.SubmitState,
AuditState = subjectVisit.AuditState,
IsBaseLine = x.IsBaseLine,
IsEnrollment = y.IsEnrollment,
IsUrgent = y.IsUrgent,
VisitNum = x.VisitNum,
VisitDay = x.VisitDay,
VisitExecuted = false,
VisitExecuted = subjectVisit.VisitExecuted,
VisitWindowLeft = x.VisitWindowLeft,
VisitWindowRight = x.VisitWindowRight,
IsFinalVisit = false,
IsLostVisit = false,
IsFinalVisit = subjectVisit.IsFinalVisit,
IsLostVisit = subjectVisit.IsLostVisit,
PDState = trial.IsPDProgressView,
}),
});
subjectVisits.Add(new SubjectVisit()
{
SiteId = y.SiteId,
SubjectId = y.Id,
Id = guid,
VisitName = x.VisitName,
BlindName = x.BlindName,
IsBaseLine = x.IsBaseLine,
IsCheckBack = x.IsBaseLine,
IsUrgent = trial.IsSubjectExpeditedView,
});
});

View File

@ -145,13 +145,13 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
Identification = "Add|Consistency Check Query|Data|Visit-Consistency Check",
JsonDetail = JsonConvert.SerializeObject(new
{
SubmitState = "已提交",
AuditState = "通过",
CheckState = dbSV.CheckState == CheckStateEnum.CVIng ? "核查中" : "未核查",
SubmitState = dbSV.SubmitState,
AuditState = dbSV.AuditState,
CheckState = dbSV.CheckState,
CheckResult= dbSV.CheckResult,
TalkContent= dbSV.CheckResult,
RequestBackState=dbSV.RequestBackState==RequestBackStateEnum.PM_AgressBack?"已回退":"未回退",
CheckChallengeState = dbSV.CheckChallengeState == CheckChanllengeTypeEnum.Closed?"已关闭":"已回复",
RequestBackState= dbSV.RequestBackState,
CheckChallengeState = dbSV.CheckChallengeState,
})
});
@ -169,13 +169,13 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
Identification = "Edit|Consistency Check Query|Data|Visit-Consistency Check|Send",
JsonDetail = JsonConvert.SerializeObject(new
{
SubmitState = "已提交",
AuditState = "通过",
CheckState = dbSV.CheckState == CheckStateEnum.CVIng ? "核查中" : "未核查",
SubmitState = dbSV.SubmitState,
AuditState = dbSV.AuditState,
CheckState = dbSV.CheckState,
CheckResult = dbSV.CheckResult,
TalkContent = dbSV.CheckResult,
RequestBackState = dbSV.RequestBackState == RequestBackStateEnum.PM_AgressBack ? "已回退" : "未回退",
CheckChallengeState = dbSV.CheckChallengeState == CheckChanllengeTypeEnum.Closed ? "已关闭" : "已回复",
RequestBackState = dbSV.RequestBackState,
CheckChallengeState = dbSV.CheckChallengeState,
})
});
@ -204,9 +204,9 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
Identification = "Add|Visit|Status|Visit-Consistency Check",
JsonDetail = JsonConvert.SerializeObject(new
{
SubmitState = "已提交",
AuditState= "通过",
CheckState = dbSV.CheckState== CheckStateEnum.CVIng? "核查中": "核查通过",
SubmitState = dbSV.SubmitState,
AuditState= dbSV.AuditState,
CheckState = dbSV.CheckState,
})
});

View File

@ -0,0 +1,27 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Domain.Common
{
public static class JJsonConvert
{
/// <summary>
/// 将对象序列化成Json字符串
/// </summary>
/// <param name="obj">需要序列化的对象</param>
/// <param name="jsonConverterArray"></param>
/// <param name="ignoreNullValue">是否忽略值未null的字段</param>
/// <returns></returns>
public static string ToJcJson(this object obj)
{
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.PreserveReferencesHandling = PreserveReferencesHandling.Objects;
settings.ReferenceLoopHandling = ReferenceLoopHandling.Serialize;
return JsonConvert.SerializeObject(obj, settings);
}
}
}