using System; using System.Collections.Generic; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.DTO; using IRaCIS.Core.Application.Contracts.RequestAndResponse; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace IRaCIS.Core.API.Controllers.QA { /// /// QA 记录 和对话管理 /// [Route("QARecord")] [ApiController, Authorize, ApiExplorerSettings(GroupName = "Image")] [AllowAnonymous] public class QARecordController : ControllerBase { private readonly IQARecordService _qaRecordService; public QARecordController(IQARecordService qaRecordService) { _qaRecordService = qaRecordService; } /// ///QA记录表 包含信息 包含两部分 一部分 :字典项问题项 +对应得描述 如 缺少序列 + 5个 /// 第二部分 额外补充得信息 根据 QARecord 中得Id 是否传递 判断是添加还是更新 /// /// /// [HttpPost, Route("AddOrUpdateQARecord")] public IResponseOutput AddOrUpdateQARecord(QAToalCommand qaTotalCommand) { return _qaRecordService.AddOrUpdateQARecord(qaTotalCommand); } /// /// 删除Qa记录 /// /// /// [HttpDelete, Route("DeleteQARecord/{qaQARecordId:guid}")] public IResponseOutput DeleteQARecord(Guid qaQARecordId) { return _qaRecordService.DeleteQARecord(qaQARecordId); } /// /// 获取QA记录列表 一个Study 可以进行多次QA 针对每次QA 可以添加回复 /// /// /// /// [HttpGet, Route("GetQARecordList/{studyId:guid}/{trialId:guid}")] public IResponseOutput GetQARecordList(Guid studyId,Guid trialId) { return ResponseOutput.Ok(_qaRecordService.GetQARecordList(studyId, trialId)); } /// /// 针对 某条Qa 添加回复 /// /// /// [HttpPost, Route("AddQAReply")] public IResponseOutput AddQAReply(QADialogCommand qaDialogCommand) { return _qaRecordService.AddQAReply(qaDialogCommand); } /// /// 删除QA回复记录 /// /// /// [HttpDelete, Route("DeleteQAReply/{qaReplyId:guid}")] public IResponseOutput DeleteQAReply(Guid qaReplyId) { return _qaRecordService.DeleteQAReply(qaReplyId); } /// /// 展开 某一QA下得 聊天记录 /// /// /// [HttpGet, Route("GetQaRecordDialogList/{qaRecordId:guid}")] public IResponseOutput> GetQaRecordDialogList(Guid qaRecordId) { return ResponseOutput.Ok(_qaRecordService.GetQaRecordDialogList(qaRecordId)); } } }