95 lines
3.4 KiB
C#
95 lines
3.4 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// QA 记录 和对话管理
|
|
/// </summary>
|
|
[Route("QARecord")]
|
|
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Image")]
|
|
[AllowAnonymous]
|
|
public class QARecordController : ControllerBase
|
|
{
|
|
private readonly IQARecordService _qaRecordService;
|
|
|
|
public QARecordController(IQARecordService qaRecordService)
|
|
{
|
|
_qaRecordService = qaRecordService;
|
|
}
|
|
|
|
/// <summary>
|
|
///QA记录表 包含信息 包含两部分 一部分 :字典项问题项 +对应得描述 如 缺少序列 + 5个
|
|
/// 第二部分 额外补充得信息 根据 QARecord 中得Id 是否传递 判断是添加还是更新
|
|
/// </summary>
|
|
/// <param name="qaTotalCommand"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("AddOrUpdateQARecord")]
|
|
public IResponseOutput AddOrUpdateQARecord(QAToalCommand qaTotalCommand)
|
|
{
|
|
return _qaRecordService.AddOrUpdateQARecord(qaTotalCommand);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除Qa记录
|
|
/// </summary>
|
|
/// <param name="qaQARecordId"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete, Route("DeleteQARecord/{qaQARecordId:guid}")]
|
|
public IResponseOutput DeleteQARecord(Guid qaQARecordId)
|
|
{
|
|
return _qaRecordService.DeleteQARecord(qaQARecordId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取QA记录列表 一个Study 可以进行多次QA 针对每次QA 可以添加回复
|
|
/// </summary>
|
|
/// <param name="studyId"></param>
|
|
/// <param name="trialId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet, Route("GetQARecordList/{studyId:guid}/{trialId:guid}")]
|
|
public IResponseOutput<QADTO> GetQARecordList(Guid studyId,Guid trialId)
|
|
{
|
|
return ResponseOutput.Ok(_qaRecordService.GetQARecordList(studyId, trialId));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 针对 某条Qa 添加回复
|
|
/// </summary>
|
|
/// <param name="qaDialogCommand"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("AddQAReply")]
|
|
public IResponseOutput AddQAReply(QADialogCommand qaDialogCommand)
|
|
{
|
|
return _qaRecordService.AddQAReply(qaDialogCommand);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除QA回复记录
|
|
/// </summary>
|
|
/// <param name="qaReplyId"></param>
|
|
/// <returns></returns>
|
|
[HttpDelete, Route("DeleteQAReply/{qaReplyId:guid}")]
|
|
public IResponseOutput DeleteQAReply(Guid qaReplyId)
|
|
{
|
|
return _qaRecordService.DeleteQAReply(qaReplyId);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 展开 某一QA下得 聊天记录
|
|
/// </summary>
|
|
/// <param name="qaRecordId"></param>
|
|
/// <returns></returns>
|
|
[HttpGet, Route("GetQaRecordDialogList/{qaRecordId:guid}")]
|
|
public IResponseOutput<List<DialogDTO>> GetQaRecordDialogList(Guid qaRecordId)
|
|
{
|
|
return ResponseOutput.Ok(_qaRecordService.GetQaRecordDialogList(qaRecordId));
|
|
}
|
|
}
|
|
}
|