From 5b92110f434c906672df35b1ca705d0e8f447e3a Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Wed, 3 May 2023 16:09:07 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../IRaCIS.Core.Application.xml | 7 ---
.../Service/ImageAndDoc/StudyService.cs | 47 ++++++++++---------
2 files changed, 25 insertions(+), 29 deletions(-)
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 62fefa122..44812cf88 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1234,13 +1234,6 @@
-
-
- 获取报告整体整体评估
-
-
-
-
获取报告是否存在疾病
diff --git a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
index ead7a1c72..8afc1d48d 100644
--- a/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
+++ b/IRaCIS.Core.Application/Service/ImageAndDoc/StudyService.cs
@@ -22,7 +22,8 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
public class StudyService : BaseService, IStudyService
{
private static object lockCodeGenerate = new object();
- private readonly AsyncLock _mutex = new AsyncLock();
+ private static readonly AsyncLock _mutex = new AsyncLock();
+ private static readonly AsyncLock _mutex2 = new AsyncLock();
private readonly IEasyCachingProvider _provider;
@@ -141,7 +142,6 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
using (await _mutex.LockAsync())
{
-
//查询数据库获取最大的Code 没有记录则为0
var dbStudyCodeIntMax = _dicomstudyRepository.Where(s => s.TrialId == trialId).Select(t => t.Code).DefaultIfEmpty().Max();
@@ -156,27 +156,27 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
_provider.Set($"{trialId}_{StaticData.CacheKey.StudyMaxCode}", study.Code, TimeSpan.FromMinutes(30));
-
-
- study.Id = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
- study.TrialId = incommand.TrialId;
- study.SiteId = incommand.SiteId;
- study.SubjectId = incommand.SubjectId;
- study.SubjectVisitId = incommand.SubjectVisitId;
-
-
- //特殊处理逻辑
- study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
- SpecialArchiveStudyDeal(study);
-
- await _dicomstudyRepository.AddAsync(study);
-
-
- studyMonitor.StudyId = study.Id;
- studyMonitor.StudyCode = study.StudyCode;
}
+ study.Id = IdentifierHelper.CreateGuid(incommand.Study.StudyInstanceUid, incommand.TrialId.ToString());
+ study.TrialId = incommand.TrialId;
+ study.SiteId = incommand.SiteId;
+ study.SubjectId = incommand.SubjectId;
+ study.SubjectVisitId = incommand.SubjectVisitId;
+
+
+ //特殊处理逻辑
+ study.Modalities = string.Join("、", incommand.Study.SeriesList.Select(t => t.Modality).Distinct());
+ SpecialArchiveStudyDeal(study);
+
+ await _dicomstudyRepository.AddAsync(study);
+
+
+ studyMonitor.StudyId = study.Id;
+ studyMonitor.StudyCode = study.StudyCode;
+
+
foreach (var seriesItem in incommand.Study.SeriesList)
{
var series = _mapper.Map(seriesItem);
@@ -284,13 +284,16 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
}
- using (await _mutex.LockAsync())
+ using (await _mutex2.LockAsync())
{
- await _repository.SaveChangesAsync();
+ await _dicomInstanceRepository.SaveChangesAsync();
}
+
+
+
return ResponseOutput.Ok();
}