-----2022-05-27------------------------ update DataInspection set BatchId=Id where BatchId is null update QCChallenge set Code=ChallengeCode update QCChallenge set ChallengeCode='Q'+ RIGHT('00000'+CAST( Code AS nvarchar(50)),5); -----2022-08-11------------------------ update [dbo].[Site] set Code= convert(int,RIGHT(SiteCode,4)) update Site set SiteName= substring(SiteName,1,charindex('医院',SiteName)+1),AliasName=substring(SiteName,charindex('医院',SiteName)+2,30) where SiteName like '%医院%医院' update Doctor set Physician='Chief Physician',PhysicianCN='主任医师' where RankId='dcbf4d1a-8373-4539-a0ae-1ba76d57bb48' update Doctor set Physician='Deputy Chief Physician',PhysicianCN='副主任医师' where RankId='3a6e3335-cea4-4803-a136-d6301883a937' update Doctor set RankOther='Professor',RankOtherCN='教授' where RankId='dcbf4d1a-8373-4539-a0ae-1ba76d57bb48' update Doctor set RankOther='Associate Professor',RankOtherCN='副教授' where RankId='3a6e3335-cea4-4803-a136-d6301883a937' update Doctor set Physician='Staff',PhysicianCN='医师' where RankId='82411c2e-9832-4c6f-a859-e3b6e796760d' update DataInspection set JsonDetail= replace(cast(JsonDetail as varchar(max)),'Insepection','CommonData') update ReadingClinicalData set FileCount=(select count(*) from ReadingClinicalDataPDF where ReadingClinicalDataId =ReadingClinicalData.Id) update NoneDicomStudy set FileCount=(select count(*) from NoneDicomStudyFile where NoneDicomStudyId =NoneDicomStudy.Id) update DataInspection set CreateUserName= (select UserName from [User] where [User].Id = DataInspection.CreateUserId) update DataInspection set RoleName=(select UserName from [User] INNER join UserType on [User].UserTypeId =UserType.Id where [User].Id=DataInspection.CreateUserId) update DataInspection set CreateUserRealName=(select LastName+' / '+FirstName from [User] where [User].Id=DataInspection.CreateUserId) update TrialDocUserTypeConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=SignFirstViewTime update SystemDocConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=SignFirstViewTime update TrialDocUserTypeConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=getdate() where SignFirstViewTime is null update SystemDocConfirmedUser set CreateUserId=ConfirmUserId,CreateTime=getdate() where SignFirstViewTime is null update TrialDocUserTypeConfirmedUser set IsDeleted=0 where IsDeleted is null update SystemDocConfirmedUser set IsDeleted=0 where IsDeleted is null update EnrollReadingCategory set TrialReadingCriterionId= ISNUll((select top 1 Id from ReadingQuestionCriterionTrial where IsConfirm=1 and TrialId=Enroll.TrialId ) ,'00000000-0000-0000-0000-000000000000') FROM EnrollReadingCategory INNER JOIN Enroll ON (EnrollReadingCategory.EnrollId = Enroll.Id) update VisitTask set TrialReadingCriterionId=(select top 1 Id from ReadingQuestionCriterionTrial where IsConfirm=1 and TrialId=VisitTask.TrialId) select * from EnrollReadingCategory where TrialReadingCriterionId is null select * from VisitTask where TrialReadingCriterionId is null update Site set Site.Code = (select b.code2 from (select Id,row_number() over(order by Site.SiteName) code2 from Site) b where b.Id =Site.Id) update Site set SiteCode= 'S'+ RIGHT('0000'+CAST(Site.Code as varchar(10)),4) --不用同步 update FrontAuditConfig set ValueCN='任务名称' where Value='TaskName' and ValueCN='访视/阅片期名称' and Code='TaskName' update FrontAuditConfig set ValueCN='任务盲态标识' where Value='TaskBlindName' and ValueCN='访视盲态名称' and Code='TaskBlindName' -----------------------------------------之前的------------------------------------------------------------- --无序维护sql update VisitTask set TaskBlindName='Follow-up' from VisitTask INNER join ReadingQuestionCriterionTrial on VisitTask.TrialReadingCriterionId=ReadingQuestionCriterionTrial.Id INNER join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where SubjectVisit.IsBaseLine=0 and ReadingQuestionCriterionTrial.IsReadingTaskViewInOrder=0 -- 有序维护sql update VisitTask set TaskBlindName='Follow-up '+ cast(sv.rn as varchar) from VisitTask join ReadingQuestionCriterionTrial on VisitTask.TrialReadingCriterionId=ReadingQuestionCriterionTrial.Id --join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id join ( select Id SubjectVisitId, IsBaseLine, ROW_NUMBER() over( partition by SubjectId order by VisitNum asc )-1 rn,VisitNum from SubjectVisit where IsLostVisit=0) sv on VisitTask.SourceSubjectVisitId=sv.SubjectVisitId where sv.IsBaseLine=0 and ReadingQuestionCriterionTrial.IsReadingTaskViewInOrder=1 update VisitTask set TaskBlindName='Baseline' from VisitTask join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where SubjectVisit.IsBaseLine=1 ----------------------------------------------修改 ---------------------------------------- update Dictionary set code =0 where Id='15bb5529-a6fe-439f-5196-08da179a7080' update Dictionary set code =1 where Id='0628d7be-afba-4471-5197-08da179a7080' update Dictionary set code =2 where Id='41bfec4b-dbfb-401d-5198-08da179a7080' update Dictionary set code =-1 where Id='1fac678d-69b6-41c3-5199-08da179a7080' go update ReadingQuestionCriterionTrial set DigitPlaces=DigitPlaces-1 where DigitPlaces is not null update ReadingQuestionCriterionTrial set DigitPlaces=-1 where DigitPlaces=3 --阅片标准维护 update DataInspection set ObjectRelationParentId3 = (select top 1 TrialReadingCriterionId from SubjectUser where Id =DataInspection.GeneralId) where EntityName='SubjectUser' update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from ReadingPeriodSet where Id =DataInspection.GeneralId) where EntityName='ReadingPeriodSet' update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from ReadModule where Id =DataInspection.GeneralId) where EntityName='ReadModule' update DataInspection set ObjectRelationParentId2 = (select top 1 TrialReadingCriterionId from TaskConsistentRule where Id =DataInspection.GeneralId) where EntityName='TaskConsistentRule' update DataInspection set ObjectRelationParentId3 = (select top 1 TrialReadingCriterionId from VisitTask where Id =DataInspection.GeneralId) where EntityName='VisitTask' update ReadingTableQuestionTrial set DictionaryCode='' where DictionaryCode is null --维护RowInfo的OrderMark select * from ReadingTableAnswerRowInfo update ReadingTableAnswerRowInfo set ReadingTableAnswerRowInfo.OrderMark=ReadingQuestionTrial.OrderMark from ReadingQuestionTrial inner join ReadingTableAnswerRowInfo on ReadingTableAnswerRowInfo.QuestionId=ReadingQuestionTrial.Id delete ReadingTableQuestionAnswer where TableQuestionId in (select id from ReadingTableQuestionTrial where QuestionMark=3) go delete ReadingTableQuestionTrial where QuestionMark=3 go delete ReadingTableQuestionSystem where QuestionMark=3 go ------------------------------------2022-12-13---------------------------- update ReadingQuestionSystem set DefaultValue='' update ReadingQuestionTrial set DefaultValue='' ----------删除之后要重新同步器官数据 delete OrganInfo where SystemCriterionId='B0450000-9B8E-98FA-6658-08DA4DAB1FAC' delete OrganTrialInfo where (select count(1) as num from OrganInfo where OrganInfo.Id = OrganTrialInfo.OrganInfoId) = 0 ----2022-12-15 Update Trial set BlindBaseLineName='Baseline',BlindFollowUpPrefix='Follow-up' update DataInspection set VisitTaskId = GeneralId where EntityName='VisitTask' --2022-12-17 维护稽查数据 update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('OriginalReReadingTaskId":"',JsonDetail)+26,36) where EntityName='VisitTaskReReading' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='TaskMedicalReview' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingOncologyTaskInfo' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingMedicalReviewDialog' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingTaskQuestionAnswer' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingTableAnswerRowInfo' update DataInspection set VisitTaskId= substring(JsonDetail,CHARINDEX('VisitTaskId":"',JsonDetail)+14,36) where EntityName='ReadingMedicineQuestionAnswer' update DataInspection set SubjectVisitId=null where EntityName='ReadModule' update DataInspection set TrialReadingCriterionId=(select TrialReadingCriterionId from VisitTask where Id =VisitTaskId) where VisitTaskId is not null and TrialReadingCriterionId is null --稽查bug 数据维护 update DataInspection set TrialReadingCriterionId= substring(JsonDetail,CHARINDEX('TrialCriterionId":"',JsonDetail)+19 + ( DATALENGTH( left( cast([JsonDetail] as VARCHAR(2500)) ,charindex('TrialCriterionId":"',JsonDetail)) ) -LEN ( left( cast([JsonDetail] as VARCHAR(2500)) ,charindex('TrialCriterionId":"',JsonDetail)) ) ),36) where EntityName='ReadingTableQuestionTrial' update DataInspection set TrialReadingCriterionId= substring(JsonDetail,CHARINDEX('ReadingQuestionCriterionTrialId":"',JsonDetail)+34,36) where EntityName='ReadingQuestionTrial' update DataInspection set TrialReadingCriterionId= GeneralId where EntityName='ReadingQuestionCriterionTrial' --维护临床数据状态 update ReadingClinicalData set IsSign=1 where EXISTS(select * from SubjectVisit where Id=ReadingId and IsBaseLine=1 and IsConfirmedClinicalData=1) and IsSign=0 update ReadingClinicalData set ReadingClinicalDataState=3 where IsSign=1 and ReadingClinicalDataState!=3 --20221223--发布生产开始 update DataInspection set Identification='ReadingMedicineQuestionAnswer/Add' , ObjectTypeId='E8250000-3E2C-0016-8166-08DA7E8DFF90',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicineQuestionAnswer' update DataInspection set ObjectTypeId='A4100000-3E2C-0016-A716-08DA7E8DA9BD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where Identification='ReadingMedicalReview/saveMedicalReviewInfo/TaskMedicalReview/Update' update DataInspection set Identification='ReadingMedicalReviewDialog/Add' , ObjectTypeId='D8270000-3E2C-0016-2A14-08DA3EDB77FD',OptTypeId='02FCF476-4089-4B2C-B9BE-08DA0E391693',ModuleTypeId='A4460000-3E2C-0016-F305-08DA7E8C40BB' where EntityName='ReadingMedicalReviewDialog' update DataInspection set Identification='ReadingMedicalReviewDialog/Add/IR' from DataInspection INNER JOIN [User] on DataInspection.CreateUserId = [User].Id where DataInspection.EntityName='ReadingMedicalReviewDialog' and [User].UserTypeEnum=13 update DataInspection set Identification='ReadingMedicalReviewDialog/Add/MIM' from DataInspection INNER JOIN [User] on DataInspection.CreateUserId = [User].Id where DataInspection.EntityName='ReadingMedicalReviewDialog' and [User].UserTypeEnum=14 ---------修改 ReadingMedicineQuestionAnswer的VisitTaskId update ReadingMedicineQuestionAnswer set ReadingMedicineQuestionAnswer.VisitTaskId=TaskMedicalReview.VisitTaskId from TaskMedicalReview inner join ReadingMedicineQuestionAnswer on ReadingMedicineQuestionAnswer.TaskMedicalReviewId=TaskMedicalReview.id update frontAuditConfig set DictionaryCode ='' where Code='AuditState' and DictionaryCode='AuditState' ----正式环境 修改TrialCode 错误的 ----------------------------2023-1-09 -- 修改Hospital 的SiteId update Hospital set Hospital.SiteId=Site.Id from Site inner join Hospital on Hospital.HospitalName=Site.SiteName ---2023 -1-10 --处理访视 --基线 update VisitTask set IsNeedClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=0 update VisitTask set IsNeedClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and IsNeedClinicalDataSign=1 --非基线 update VisitTask set IsNeedClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =0 update VisitTask set IsNeedClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and IsNeedClinicalDataSign =1 --处理裁判 update VisitTask set IsNeedClinicalDataSign =0,IsClinicalDataSign=0 where VisitTask.ReadingCategory=4 --处理肿瘤学 update VisitTask set IsNeedClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=5 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1) and IsNeedClinicalDataSign =0 update VisitTask set IsNeedClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=5 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1) and IsNeedClinicalDataSign =1 --处理全局 update VisitTask set IsNeedClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=2 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1) and IsNeedClinicalDataSign =0 update VisitTask set IsNeedClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=2 and not EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 ) and IsNeedClinicalDataSign=1 -----处理 是否所有临床数据都签名的字段 --处理访视 --基线 update VisitTask set IsClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1 ) =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1 -- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署 ) --处理基线脏数据 update VisitTask set IsClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=1 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and (ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1) and ( select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ( ClinicalDataLevel=0 or ClinicalDataLevel=1) and IsConfirm=1 and UploadRole=1 ) !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1 -- 有可能仅仅CRC Subject级别 需要签名 CRC自动签名了 没有PM需要签名的文档 此时应该设置为已签署 ) --非基线 update VisitTask set IsClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1 -- 非基线 可能只有CRC 访视级别 PM 没有 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 ) =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1) --维护错误数据 update VisitTask set IsClinicalDataSign =0 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join SubjectVisit on VisitTask.SourceSubjectVisitId=SubjectVisit.Id where VisitTask.ReadingCategory=1 and SubjectVisit.IsBaseLine=0 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1 -- 非基线 可能只有CRC 访视级别 PM 没有 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=1 and IsConfirm=1 and UploadRole=1 ) !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SourceSubjectVisitId and ClinicalDataTrialSet.UploadRole=1) --处理肿瘤学 update VisitTask set IsClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=5 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=3 and IsConfirm=1) =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1) --处理全局 update VisitTask set IsClinicalDataSign =1 from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =0 and VisitTask.IsNeedClinicalDataSign=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1) =(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1) --维护脏数据 update VisitTask set IsClinicalDataSign =0 from VisitTask --select VisitTask.Id as VisitTaskId ,Trial.Id, Trial.ExperimentName, VisitTask.TaskName,ReadingQuestionCriterionTrial.CriterionName,Subject.Code ,VisitTask.IsNeedClinicalDataSign,VisitTask.IsClinicalDataSign ,VisitTask.DoctorUserId from VisitTask inner join ReadingQuestionCriterionTrial on ReadingQuestionCriterionTrial.Id=VisitTask.TrialReadingCriterionId inner join ReadModule on VisitTask.SouceReadModuleId=ReadModule.Id inner join Subject on VisitTask.SubjectId=Subject.Id inner join Trial on VisitTask.TrialId=Trial.Id where VisitTask.ReadingCategory=2 and VisitTask.IsClinicalDataSign =1 and VisitTask.IsNeedClinicalDataSign=1 and EXISTS (select * from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1) and (select count(*) from ClinicalDataTrialSet where TrialId=VisitTask.TrialId and CriterionEnumListStr LIKE '%|'+ CAST(ReadingQuestionCriterionTrial.CriterionType AS varchar(20))+'|%' and ClinicalDataLevel=2 and IsConfirm=1 ) !=(select count(*) from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId =ClinicalDataTrialSet.Id where ReadingClinicalData.TrialId=VisitTask.TrialId and IsSign=1 and ReadingClinicalDataState=3 and ReadingId=VisitTask.SouceReadModuleId and ClinicalDataTrialSet.UploadRole=1 and ClinicalDataLevel=2 ) --处理字段 IsFrontTaskNeedSignButNotSign UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =1 FROM [VisitTask] AS [v] WHERE EXISTS ( SELECT 1 FROM [VisitTask] AS [v0] where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and EXISTS( SELECT 1 FROM [VisitTask] AS [v1] WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum] ) and [v0].[IsFrontTaskNeedSignButNotSign]=0 AND [v0].[Id] = [v].[Id] ) UPDATE v SET [v].[IsFrontTaskNeedSignButNotSign] =0 FROM [VisitTask] AS [v] WHERE EXISTS ( SELECT 1 FROM [VisitTask] AS [v0] where [v0].SubjectId=v.SubjectId and [v0].TrialReadingCriterionId=V.TrialReadingCriterionId and [v0].TrialId=V.TrialId and not EXISTS( SELECT 1 FROM [VisitTask] AS [v1] WHERE [v1].SubjectId=v.SubjectId and V1.TrialReadingCriterionId=V.TrialReadingCriterionId and V1.TrialId=V.TrialId and [v1].[IsNeedClinicalDataSign]=1 and V1.IsClinicalDataSign=0 and V1.VisitTaskNum< [v0].[VisitTaskNum] ) and [v0].[IsFrontTaskNeedSignButNotSign]=1 AND [v0].[Id] = [v].[Id] ) update ReadingClinicalData set IsVisit=1 from ReadingClinicalData INNER JOIN ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId = ClinicalDataTrialSet.Id where ClinicalDataTrialSet.ClinicalDataLevel in (0,1) and ReadingClinicalData.IsVisit=0 update VisitTask set IsClinicalDataSign=0 where IsNeedClinicalDataSign=0 and IsClinicalDataSign=1 -- 判断 访视 和阅片期 是否有脏数据吧 --查询确认 select V.SubjectId, V.SourceSubjectVisitId, V.TrialReadingCriterionId,V.IsSelfAnalysis, v.DoctorUserId,V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2 GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId HAVING Count(*)>1 --删除脏的多生成的任务 delete VisitTask where Id in (select max(v.Id) as Id from VisitTask V join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id where V.TaskState=0 and V.SourceSubjectVisitId is not null and ReadingQuestionCriterionTrial.ReadingType=2 GROUP BY V.TrialId, V.SubjectId, V.SourceSubjectVisitId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum ,v.DoctorUserId HAVING Count(*)>1) select V.TrialId, V.SubjectId, V.SouceReadModuleId, V.TrialReadingCriterionId,V.IsSelfAnalysis, V.ArmEnum,Count(*) as EffectCount,max(v.CreateTime),max(v.Id) as Id from VisitTask V join ReadingQuestionCriterionTrial on V.TrialReadingCriterionId = ReadingQuestionCriterionTrial.Id where V.TaskState=0 and V.SouceReadModuleId is not null and ReadingQuestionCriterionTrial.ReadingType=2 GROUP BY V.TrialId, V.SubjectId, V.SouceReadModuleId , V.TrialReadingCriterionId ,V.IsSelfAnalysis,V.ArmEnum HAVING Count(*)>2 ----2023年 开始 -- 维护临床数据 先运行swagger 维护数据的方法 ---------------------维护表格问题ID 2013-1-31 update ReadingTableQuestionTrial set ReadingTableQuestionTrial.SystemTableQuestionId= ReadingTableQuestionSystem.Id from ReadingTableQuestionSystem inner join ReadingTableQuestionTrial on ReadingTableQuestionSystem.QuestionName=ReadingTableQuestionTrial.QuestionName inner join ReadingQuestionTrial on ReadingTableQuestionTrial.ReadingQuestionId=ReadingQuestionTrial.Id and ReadingQuestionTrial.ReadingQuestionSystemId=ReadingTableQuestionSystem.ReadingQuestionId where ReadingQuestionTrial.ReadingQuestionSystemId is not null and ReadingTableQuestionTrial.SystemTableQuestionId is null -------------------维护访视任务 IsSelfAnalysis 为 null 的 ------------------------ update VisitTask set RelatedVisitTaskIds= iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']') , PastResultTaskIds=iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ReadingCategory=1 and ReadingTaskState =2 and IsSelfAnalysis is null -----------查询 select id, VisitTaskNum, IsAnalysisCreate, IsSelfAnalysis, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']') RelatedVisitTaskIds, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) PastResultTaskIds from VisitTask where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ReadingCategory=1 and ReadingTaskState =2 and IsSelfAnalysis is null -----------------------------------维护访视 IsSelfAnalysis 不为null 的 ------------------------ update VisitTask set RelatedVisitTaskIds= iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']') , PastResultTaskIds=iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ReadingCategory=1 and ReadingTaskState =2 and IsSelfAnalysis is not null ------查询 ----------- select id, VisitTaskNum, IsAnalysisCreate, IsSelfAnalysis, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]', '['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']') RelatedVisitTaskIds, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) PastResultTaskIds from VisitTask where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ReadingCategory=1 and ReadingTaskState =2 and IsSelfAnalysis is not null -------------------维护全局和肿瘤学任务 IsSelfAnalysis 为 null 的 ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ ------------------------ update VisitTask set RelatedVisitTaskIds= iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory =1 FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory =1 FOR XML PATH('')),1,1,'') +']') , PastResultTaskIds=iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ( ReadingCategory=2 or ReadingCategory=5) and ReadingTaskState =2 and IsSelfAnalysis is null -----------查询 select id, VisitTaskNum, IsAnalysisCreate, IsSelfAnalysis, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') +']') RelatedVisitTaskIds, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis is null and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) PastResultTaskIds from VisitTask where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ( ReadingCategory=2 or ReadingCategory=5) and ReadingTaskState =2 and IsSelfAnalysis is null -----------------------------------维护全局和肿瘤学 IsSelfAnalysis 不为null 的 update VisitTask set RelatedVisitTaskIds= iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') +']') , PastResultTaskIds=iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ( ReadingCategory=2 or ReadingCategory=5) and ReadingTaskState =2 and IsSelfAnalysis is not null ------查询 ----------- select id, VisitTaskNum, IsAnalysisCreate, IsSelfAnalysis, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <=VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = 1 FOR XML PATH('')),1,1,'') +']') RelatedVisitTaskIds, iif(STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') is null,'[]','['+ STUFF((SELECT ',' + '"'+ CONVERT(nvarchar(80),Id) +'"' FROM VisitTask vt where vt.TrialId=VisitTask.TrialId and vt.SubjectId =VisitTask.SubjectId and vt.ArmEnum =VisitTask.ArmEnum and vt.DoctorUserId =VisitTask.DoctorUserId and vt.ReadingTaskState =2 and vt.TrialReadingCriterionId =VisitTask.TrialReadingCriterionId and vt.TaskState =0 and vt.VisitTaskNum <VisitTask.VisitTaskNum and vt.IsAnalysisCreate =VisitTask.IsAnalysisCreate and vt.IsSelfAnalysis = VisitTask.IsSelfAnalysis and vt.ReadingCategory = VisitTask.ReadingCategory FOR XML PATH('')),1,1,'') +']' ) PastResultTaskIds from VisitTask where RelatedVisitTaskIds='[]' and PastResultTaskIds='[]' and TaskState=0 and ( ReadingCategory=2 or ReadingCategory=5) and ReadingTaskState =2 and IsSelfAnalysis is not null --------------------------------------维护阅片标准签名状态---------------- update ReadingQuestionCriterionTrial set IsSigned=1 where ReadingInfoSignTime is not null ---------------------------------------------2023-02-20----------------------------------- --维护全局阅片是否修改状态 update ReadingTaskQuestionAnswer set IsGlobalChange=1 where GlobalChangeAnswer is not null and GlobalChangeAnswer!='' and Answer!=GlobalChangeAnswer -----20230301 update CommonDocument set Name='PD进展报告.docx' where Name='PCR_v1.0_Final.docx' update CommonDocument set Name='入组确认报告.docx' where Name='ECR_v1.0_Final.docx' update TrialEmailNoticeConfig set FileName='PD进展报告.docx' where FileName='PCR_v1.0_Final.docx' update TrialEmailNoticeConfig set FileName='入组确认报告.docx' where FileName='ECR_v1.0_Final.docx' -- 出现质疑未关闭 但是实际所有质疑都关闭了(不存在 未关闭的质疑) select * from SubjectVisit where ChallengeState=2 and not EXISTS(select * from QCChallenge where SubjectVisitId=SubjectVisit.Id and IsClosed=0) update SubjectVisit set ChallengeState=1 where ChallengeState=2 and not EXISTS(select * from QCChallenge where SubjectVisitId=SubjectVisit.Id and IsClosed=0) ---------------------维护脏的临床数据------------------- delete ReadingClinicalData where Id in( select ReadingClinicalData.Id from ReadingClinicalData inner join ClinicalDataTrialSet on ReadingClinicalData.ClinicalDataTrialSetId=ClinicalDataTrialSet.Id where UploadRole=0 and ReadingId='00000000-0000-0000-0000-000000000000') -----维护任务是否可修改加急状态 update VisitTask set VisitTask.IsCanEditUrgentState=0 where (select count(1) as num from SubjectVisit where SubjectVisit.Id = VisitTask.SourceSubjectVisitId and (SubjectVisit.PDState=1 or SubjectVisit.IsEnrollmentConfirm=1) ) != 0 update VisitTask set VisitTask.IsCanEditUrgentState=0 where (select count(1) as num from ReadModule inner join SubjectVisit on ReadModule.SubjectVisitId=SubjectVisit.Id where ReadModule.Id = VisitTask.SouceReadModuleId and (SubjectVisit.PDState=1 or SubjectVisit.IsEnrollmentConfirm=1) ) != 0 -----------------维护快捷键 update ShortcutKey set Text='Page Up' where Text='PageUp' update ShortcutKey set Text='Page Down' where Text='PageDown' ---------------------维护Groupid update ReadingQuestionTrial set GroupId= (select top 1 id from ReadingQuestionTrial a where a.Type='group' and a.GroupName=ReadingQuestionTrial.GroupName and a.ReadingQuestionCriterionTrialId=ReadingQuestionTrial.ReadingQuestionCriterionTrialId) where ReadingQuestionTrial.Type!='group' and GroupId is null update ReadingQuestionSystem set GroupId= (select top 1 id from ReadingQuestionSystem a where a.Type='group' and a.GroupName=ReadingQuestionSystem.GroupName and a.ReadingQuestionCriterionSystemId=ReadingQuestionSystem.ReadingQuestionCriterionSystemId) where ReadingQuestionSystem.Type!='group' and GroupId is null ------------------------------------------------------------------------------------------------------------------------------维护报告数据 update VisitTask set ReportRelatedTaskIds=RelatedVisitTaskIds where ReadingCategory=1 and RelatedVisitTaskIds!='[]' delete ReadingTaskRelation where RelevanceType=2 INSERT INTO ReadingTaskRelation(Id, TaskId, RelevanceTaskId, RelevanceType, CreateTime,CreateUserId) SELECT NEWID(), TaskId, RelevanceTaskId, 2,ReadingTaskRelation.CreateTime ,ReadingTaskRelation.CreateUserId FROM ReadingTaskRelation inner join VisitTask on VisitTask.Id=ReadingTaskRelation.TaskId WHERE RelevanceType = 1 and ReadingCategory=1 -----------------------------------------2023-04-24----------------------------------- -- 维护CriterionNidusTrial 数据 INSERT INTO CriterionNidusTrial (Id, CriterionId, CreateTime, CreateUserId, LesionType, OrganType) SELECT id, CriterionId, CreateTime, '00000000-0000-0000-0000-000000000000', LesionType, OrganType FROM CriterionNidusSystem WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM CriterionNidusTrial ) and IsSystemCriterion=0 -- 维护ReadingTrialCriterionDictionary 数据 INSERT INTO ReadingTrialCriterionDictionary (Id, CriterionId, DictionaryId, CreateTime, CreateUserId, ParentCode, IsBaseLineUse, IsFollowVisitUse, CrterionDictionaryGroup) SELECT id, RC.CriterionId, RC.DictionaryId, CreateTime, '00000000-0000-0000-0000-000000000000', RC.ParentCode, RC.IsBaseLineUse, RC.IsFollowVisitUse, RC.CrterionDictionaryGroup FROM ReadingSystemCriterionDictionary RC WHERE CriterionId NOT IN (SELECT DISTINCT CriterionId FROM ReadingTrialCriterionDictionary ) and IsSystemCriterion=0 --- 维护临床数据英文名称 update clinicalDataSystemSet set clinicalDataSystemSet.ClinicalDataSetEnName=DictionaryChild.Value from Dictionary DictionaryChild inner join clinicalDataSystemSet on CONVERT(varchar(200),clinicalDataSystemSet.ClinicalDataSetEnum) =DictionaryChild.Code inner join Dictionary DictionaryParent on DictionaryParent.Id=DictionaryChild.ParentId where DictionaryParent.Code='ClinicalDataType' go update ClinicalDataTrialSet set ClinicalDataTrialSet.ClinicalDataSetEnName=clinicalDataSystemSet.ClinicalDataSetEnName from clinicalDataSystemSet inner join ClinicalDataTrialSet on ClinicalDataTrialSet.SystemClinicalDataSetId=clinicalDataSystemSet.Id ---------------维护项目器官表 将器官信息在项目表里面存冗余 update OrganTrialInfo set OrganTrialInfo.PartEN=OrganInfo.PartEN , OrganTrialInfo.Part=OrganInfo.Part, OrganTrialInfo.TULOC=OrganInfo.TULOC, OrganTrialInfo.TULOCEN=OrganInfo.TULOCEN, OrganTrialInfo.TULAT=OrganInfo.TULAT, OrganTrialInfo.TULATEN=OrganInfo.TULATEN, OrganTrialInfo.IsLymphNodes=OrganInfo.IsLymphNodes, OrganTrialInfo.IsCanEditPosition=OrganInfo.IsCanEditPosition, OrganTrialInfo.Classification=OrganInfo.Classification, OrganTrialInfo.ClassificationEN=OrganInfo.ClassificationEN, OrganTrialInfo.ShowOrder=OrganInfo.ShowOrder, OrganTrialInfo.OrganType=OrganInfo.OrganType from OrganInfo inner join OrganTrialInfo on OrganInfo.Id=OrganTrialInfo.OrganInfoId where OrganTrialInfo.OrganType is null