Compare commits
7 Commits
Test_IRC_N
...
Uat_IRC_Ne
| Author | SHA1 | Date |
|---|---|---|
|
|
d98d8a0729 | |
|
|
2ab8323291 | |
|
|
1ac6bcd79f | |
|
|
3eab14960e | |
|
|
bccb9bbbbb | |
|
|
fa29e1a53c | |
|
|
f790193350 |
|
|
@ -8729,6 +8729,11 @@
|
|||
IVUS测量值导入
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IVUSMeasuredValue.FrameNumber">
|
||||
<summary>
|
||||
帧数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.IVUSMeasuredValue.Emm">
|
||||
<summary>
|
||||
外弹力膜面积Emm
|
||||
|
|
@ -8744,6 +8749,11 @@
|
|||
外弹力膜面积- 管腔面积
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.OCTFCTUploadData.FrameNumber">
|
||||
<summary>
|
||||
帧数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.OCTFCTUploadData.FirstData">
|
||||
<summary>
|
||||
第一次
|
||||
|
|
|
|||
|
|
@ -984,7 +984,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
|||
|
||||
var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId)
|
||||
.Where(t => t.Subject.IsSubjectQuit == false || t.SubmitState >= SubmitStateEnum.ToSubmit)
|
||||
|
||||
.WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus)
|
||||
.Where(t => t.Subject.FinalSubjectVisitId != null ? t.VisitNum <= t.Subject.FinalSubjectVisit.VisitNum : true)
|
||||
.WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId)
|
||||
.WhereIf(inQuery.SubjectId != null, t => t.Subject.Id == inQuery.SubjectId)
|
||||
|
|
@ -1034,7 +1034,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
|||
var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId)
|
||||
|
||||
.Where(t => t.Subject.IsSubjectQuit == false || t.AuditState > AuditStateEnum.ToAudit)
|
||||
|
||||
.WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus)
|
||||
.WhereIf(inQuery.VisitId != null, t => t.Id == inQuery.VisitId)
|
||||
.WhereIf(inQuery.CurrentActionUserId != null, t => t.CurrentActionUserId == inQuery.CurrentActionUserId)
|
||||
.WhereIf(inQuery.ChallengeState != null, t => t.ChallengeState == inQuery.ChallengeState)
|
||||
|
|
@ -2774,7 +2774,7 @@ namespace IRaCIS.Core.Application.Service.Common
|
|||
{
|
||||
list.Add(new ExportDocumentDes() { Code = StaticData.Export.IVUS_CDISC_Export, ExportCatogory = ExportResult.IVUS_CDISC_Export });
|
||||
}
|
||||
if (criterion.CriterionGroup != CriterionGroup.Tumor && criterion.CriterionType != CriterionType.OCT && criterion.CriterionType != CriterionType.IVUS)
|
||||
if (criterion.CriterionGroup != CriterionGroup.Tumor /*&& criterion.CriterionType != CriterionType.OCT && criterion.CriterionType != CriterionType.IVUS*/)
|
||||
{
|
||||
list.Add(new ExportDocumentDes() { Code = StaticData.Export.CDISC_Reading_Export, ExportCatogory = ExportResult.NoneTumorCDISC });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public string[]? VisitPlanArray { get; set; }
|
||||
public bool? IsSubjectQuit { get; set; }
|
||||
|
||||
public SubjectStatus? SubjectStatus { get; set; }
|
||||
}
|
||||
|
||||
public class GetNextQCInfoInDto
|
||||
|
|
@ -98,6 +100,8 @@ namespace IRaCIS.Core.Application.Contracts
|
|||
|
||||
public DateTime? EndAuditTime { get; set; }
|
||||
|
||||
public SubjectStatus? SubjectStatus { get; set; }
|
||||
|
||||
public bool? IsSubjectQuit { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
var svExpression = QCCommon.GetSubjectVisitFilter(inQuery.VisitPlanArray);
|
||||
|
||||
var query = _subjectVisitRepository.Where(x => x.TrialId == inQuery.TrialId)
|
||||
.WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus)
|
||||
.Where(t => !(t.Subject.Status == SubjectStatus.EndOfVisit && t.SubmitState == SubmitStateEnum.None && !t.Subject.SubjectVisitList.Any(c => c.VisitNum > t.VisitNum && c.SubmitState > SubmitStateEnum.None)))
|
||||
.Where(t => t.Subject.FinalSubjectVisitId != null ? t.VisitNum <= t.Subject.FinalSubjectVisit.VisitNum : true)
|
||||
.WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId)
|
||||
|
|
@ -280,6 +281,7 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
.WhereIf(inQuery.ChallengeState != null, t => t.ChallengeState == inQuery.ChallengeState)
|
||||
.WhereIf(inQuery.TrialSiteId != null, t => t.TrialSiteId == inQuery.TrialSiteId)
|
||||
.WhereIf(inQuery.SubjectId != null, t => t.Subject.Id == inQuery.SubjectId)
|
||||
.WhereIf(inQuery.SubjectStatus != null, t => t.Subject.Status == inQuery.SubjectStatus)
|
||||
.WhereIf(inQuery.IsSubjectQuit != null, t => t.Subject.IsSubjectQuit == inQuery.IsSubjectQuit)
|
||||
.WhereIf(!string.IsNullOrEmpty(inQuery.SubjectInfo), t => /*t.Subject.FirstName.Contains(subjectInfo) || t.Subject.LastName.Contains(subjectInfo) ||*/ t.Subject.Code.Contains(inQuery.SubjectInfo))
|
||||
.WhereIf(inQuery.VisitPlanArray != null && inQuery.VisitPlanArray?.Length > 0, svExpression)
|
||||
|
|
|
|||
|
|
@ -213,20 +213,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
///// </summary>
|
||||
//public int PlaqueNum { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
public string FrameNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外弹力膜面积Emm
|
||||
/// </summary>
|
||||
public decimal Emm { get; set; }
|
||||
public decimal? Emm { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 管腔面积Lumen
|
||||
/// </summary>
|
||||
public decimal Lumen { get; set; }
|
||||
public decimal? Lumen { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 外弹力膜面积- 管腔面积
|
||||
/// </summary>
|
||||
public decimal EmmSubtractionLumen
|
||||
public decimal? EmmSubtractionLumen
|
||||
{
|
||||
get
|
||||
{
|
||||
|
|
@ -244,20 +249,25 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public class OCTFCTUploadData
|
||||
{
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
public string FrameNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第一次
|
||||
/// </summary>
|
||||
public decimal FirstData { get; set; }
|
||||
public decimal? FirstData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第二次
|
||||
/// </summary>
|
||||
public decimal SecondData { get; set; }
|
||||
public decimal? SecondData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 第三次
|
||||
/// </summary>
|
||||
public decimal ThirdData { get; set; }
|
||||
public decimal? ThirdData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 巨噬细胞浸润测量
|
||||
|
|
@ -291,7 +301,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public decimal? LipidAngle { get; set; }
|
||||
|
||||
|
||||
public decimal Avg { get {
|
||||
public decimal? Avg { get {
|
||||
|
||||
return ( FirstData + SecondData + ThirdData) / 3;
|
||||
} }
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using IRaCIS.Core.Domain.Share;
|
|||
using IRaCIS.Core.Infra.EFCore.Common;
|
||||
using IRaCIS.Core.Infrastructure;
|
||||
using MassTransit;
|
||||
using MathNet.Numerics;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
|
@ -473,6 +474,33 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()));
|
||||
};
|
||||
|
||||
|
||||
decimal? getdecimalEmptyData(string value)
|
||||
{
|
||||
if (value == string.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return decimal.Parse(decimal.Round(decimal.Parse(value ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString()));
|
||||
}
|
||||
|
||||
string getStringValue(decimal? value)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
if (digitPlaces == -1)
|
||||
{
|
||||
return value.Value.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return decimal.Round(value.Value, digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
List<IVUSMeasuredValue> measuredValueList = new List<IVUSMeasuredValue>();
|
||||
var errorRow = new List<int> { };
|
||||
|
||||
|
|
@ -484,8 +512,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
iVUSMeasuredValue = new IVUSMeasuredValue()
|
||||
{
|
||||
//PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()),
|
||||
Emm = getdecimalData(dataTable.Rows[i]["A"].ToString()),
|
||||
Lumen = getdecimalData(dataTable.Rows[i]["B"].ToString()),
|
||||
FrameNumber = dataTable.Rows[i]["A"].ToString()??string.Empty,
|
||||
Emm = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
|
||||
Lumen = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()),
|
||||
};
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -553,22 +582,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
// TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
//});
|
||||
|
||||
var emm = item.Emm.ToString();
|
||||
var lumen=item.Lumen.ToString();
|
||||
var emmSubtractionLumen = item.EmmSubtractionLumen.ToString();
|
||||
|
||||
if (taskinfo.TrialReadingCriterion.DigitPlaces != -1)
|
||||
{
|
||||
|
||||
emm = decimal.Round(decimal.Parse(emm ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
lumen = decimal.Round(decimal.Parse(lumen ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
emmSubtractionLumen = decimal.Round(decimal.Parse(emmSubtractionLumen ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
|
||||
|
||||
// EMM
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = emm,
|
||||
Answer = item.FrameNumber,
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
RowId = newRowId,
|
||||
RowIndex = maxnum,
|
||||
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.FrameNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
});
|
||||
|
||||
// EMM
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = getStringValue(item.Emm),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -579,7 +610,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = lumen,
|
||||
Answer = getStringValue(item.Lumen),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -590,7 +621,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = emmSubtractionLumen,
|
||||
Answer = getStringValue(item.EmmSubtractionLumen),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
|
|||
|
|
@ -354,15 +354,16 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
measuredValueList.Add(new OCTFCTUploadData()
|
||||
{
|
||||
//PlaqueNum = int.Parse(dataTable.Rows[i]["A"].ToString()),
|
||||
FirstData = getdecimalData(dataTable.Rows[i]["A"].ToString()),
|
||||
SecondData = getdecimalData(dataTable.Rows[i]["B"].ToString()),
|
||||
ThirdData = getdecimalData(dataTable.Rows[i]["C"].ToString()),
|
||||
MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["D"].ToString()),
|
||||
MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["E"].ToString() ?? string.Empty),
|
||||
MicrochannelMeasurement = getNone(dataTable.Rows[i]["F"].ToString()),
|
||||
CholesterolCrystalMeasurement = getNone(dataTable.Rows[i]["G"].ToString()),
|
||||
LumenAreaMeasurement = getdecimalData(dataTable.Rows[i]["H"].ToString()),
|
||||
LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString() ?? string.Empty),
|
||||
FrameNumber = dataTable.Rows[i]["A"].ToString() ?? string.Empty,
|
||||
FirstData = getdecimalEmptyData(dataTable.Rows[i]["B"].ToString()),
|
||||
SecondData = getdecimalEmptyData(dataTable.Rows[i]["C"].ToString()),
|
||||
ThirdData = getdecimalEmptyData(dataTable.Rows[i]["D"].ToString()),
|
||||
MacrophageInfiltrationMeasurement = getNone(dataTable.Rows[i]["E"].ToString()),
|
||||
MacrophageInfiltrationAngle = getdecimalEmptyData(dataTable.Rows[i]["F"].ToString() ?? string.Empty),
|
||||
MicrochannelMeasurement = getNone(dataTable.Rows[i]["G"].ToString()),
|
||||
CholesterolCrystalMeasurement = getNone(dataTable.Rows[i]["H"].ToString()),
|
||||
LumenAreaMeasurement = getdecimalEmptyData(dataTable.Rows[i]["I"].ToString()),
|
||||
LipidAngle = getdecimalEmptyData(dataTable.Rows[i]["J"].ToString() ?? string.Empty),
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
|
|
@ -463,19 +464,24 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
// TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.PlaqueNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
//});
|
||||
|
||||
var avg = item.Avg.ToString();
|
||||
|
||||
|
||||
if (taskinfo.TrialReadingCriterion.DigitPlaces != -1)
|
||||
// 帧数
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
avg = decimal.Round(decimal.Parse(avg ?? "0"), digitPlaces, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
|
||||
}
|
||||
Answer = item.FrameNumber,
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
RowId = newRowId,
|
||||
RowIndex = maxnum,
|
||||
TableQuestionId = tableQuestionList.Where(x => x.ReadingQuestionId == questionInfo.Id && x.QuestionMark == QuestionMark.FrameNumber).Select(x => x.Id).FirstOrDefault(),
|
||||
});
|
||||
|
||||
|
||||
|
||||
// 第一次
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.FirstData.ToString(),
|
||||
Answer = item.FirstData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -486,7 +492,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.SecondData.ToString(),
|
||||
Answer = item.SecondData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -497,7 +503,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = item.ThirdData.ToString(),
|
||||
Answer = item.ThirdData.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
@ -508,7 +514,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
|
|||
|
||||
tableAnswers.Add(new ReadingTableQuestionAnswer()
|
||||
{
|
||||
Answer = avg,
|
||||
Answer = item.Avg.DecimalNullToString(digitPlaces),
|
||||
QuestionId = questionInfo.Id,
|
||||
TrialId = taskinfo.TrialId,
|
||||
VisitTaskId = taskinfo.Id,
|
||||
|
|
|
|||
|
|
@ -2466,7 +2466,12 @@ namespace IRaCIS.Core.Domain.Share
|
|||
/// <summary>
|
||||
/// 斑块到血管开口的距离
|
||||
/// </summary>
|
||||
PlaqueToOstiumDistance=1031,
|
||||
PlaqueToOstiumDistance = 1031,
|
||||
|
||||
/// <summary>
|
||||
/// 帧数
|
||||
/// </summary>
|
||||
FrameNumber =1032,
|
||||
|
||||
/// <summary>
|
||||
/// 第一次测量
|
||||
|
|
|
|||
|
|
@ -131,6 +131,38 @@ namespace IRaCIS.Core.Infra.EFCore.Common
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public static string IntNullToString(this int? value)
|
||||
{
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
return value.Value.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public static string DecimalNullToString (this decimal? value,int ? digitPlaces)
|
||||
{
|
||||
digitPlaces = digitPlaces ?? 0;
|
||||
if (value==null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
if (digitPlaces == -1)
|
||||
{
|
||||
return value.Value.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
return decimal.Round(value.Value, digitPlaces.Value, MidpointRounding.AwayFromZero).ToString("F" + digitPlaces.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public static Dictionary<ReadingCategory, decimal> TaskNumDic = new Dictionary<ReadingCategory, decimal>()
|
||||
{
|
||||
{ReadingCategory.Visit, 0 },
|
||||
|
|
|
|||
|
|
@ -16,9 +16,16 @@ server:
|
|||
from_secret: test_ssh_pwd
|
||||
|
||||
steps:
|
||||
- name: build-uat-irc
|
||||
commands:
|
||||
- bash /opt/1panel/xc-deploy-new/Uat_IRC/devops-publish/uat-branch-publish.sh
|
||||
- name: publish-test-irc
|
||||
commands:
|
||||
- bash /opt/1panel/xc-deploy-new/Uat_IRC/devops-publish/uat-branch-publish.sh
|
||||
- name: notify-wecom
|
||||
commands:
|
||||
- bash /opt/1panel/xc-deploy-new/devops-center/drone-notify-wecom.sh "$DRONE_BUILD_STATUS" "$DRONE_REPO_NAME" "$DRONE_BRANCH" "$DRONE_BUILD_NUMBER" "4355b98e-1e72-4678-8dfb-2fc6ad0bf449" "$DRONE_COMMIT_MESSAGE" "$DRONE_COMMIT_AUTHOR" "Uat_IRC_API Uat_IRC_SCP_API" "irc.uat.extimaging.com"
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
|
|
|
|||
Loading…
Reference in New Issue