Merge branch 'Test.IRC' of http://192.168.3.69:2000/XCKJ/irc-netcore-api into Test.IRC
						commit
						5bcba84acb
					
				| 
						 | 
				
			
			@ -28,7 +28,7 @@ namespace IRaCIS.Core.API
 | 
			
		|||
            if(_MemberInfo.PropertyType == typeof(string))
 | 
			
		||||
            {
 | 
			
		||||
                //去掉前后空格
 | 
			
		||||
                _MemberInfo.SetValue(target, value==null?string.Empty: value.ToString()==string.Empty? value:value.ToString().Trim());
 | 
			
		||||
                _MemberInfo.SetValue(target, value==null?string.Empty: value.ToString()==string.Empty? value:value/*.ToString().Trim()*/);
 | 
			
		||||
              
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,35 +4,35 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear  {0} ,
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Extensive Imaging has generated a user account for you. <br>The account information is as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Extimaging has added an account for you. The account information is as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>              
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>              
 | 
			
		||||
                <div>
 | 
			
		||||
                    User ID: {1}
 | 
			
		||||
                    User name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Before logging in for the first time, please initialize your account information through this link:
 | 
			
		||||
                    <a href='{3}' style='margin-left:30px;font-size:12px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;font-size: 16px'>
 | 
			
		||||
                        Initialize Account Information
 | 
			
		||||
                    Before logging in for the first time, please modify your account information by this link:
 | 
			
		||||
                    <a href='{3}' style='margin-left:30px;font-size:14px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;'>
 | 
			
		||||
                        Initialize the account information
 | 
			
		||||
                    </a>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,19 +4,19 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear {0} ,
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Extensive Imaging has reset your password.<br>The account information is as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Extimaging has reset your account password, and the account information is as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 12px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    User ID: {1}
 | 
			
		||||
                    User name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {2}
 | 
			
		||||
| 
						 | 
				
			
			@ -27,9 +27,9 @@
 | 
			
		|||
            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,7 +19,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,22 +4,22 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;font-size: 16px'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
                Dear Sir or Madam:
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear:
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Thank you for using our IRC imaging system.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Thank you for using Extensive Imaging Cloud System.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                {0}。
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
                尊敬的 {0} ,您好:
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                展影医疗作为 [{1}   (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC阅片相关工作。
 | 
			
		||||
                展影医疗作为 [{1}   (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC阅片相关工作,欢迎您提供指导和建议,非常感谢!
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                该项目采用电子化工作流,系统及您的账号信息如下:
 | 
			
		||||
| 
						 | 
				
			
			@ -41,7 +41,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,20 +4,20 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                As the IRC service provider of {1} trial(Protocol ID is {2}), Extensive Imaging invites you to participate in the independent assessment work of this trial.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Hello, as the IRC supplier of [ {1} (Protocol ID is {2}) ] project,Extiming sincerely invites you to participate in the IRC related work of this project. Your guidance and suggestions are welcome.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Digital workflow is implemented for this trial, and your account information is as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                This project adopts electronic workflow. The system and your account information are as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Trial ID: {3}
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,22 +25,23 @@
 | 
			
		|||
                    Protocol ID: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Study Name: {1}
 | 
			
		||||
                    Study name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    User Name: {4}
 | 
			
		||||
                    User name: {4}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {5}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Login URL: {6}
 | 
			
		||||
                    System login address:{6}
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,21 +4,20 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                As the IRC service provider of {1}trial (Protocol ID is {2}), Extensive Imaging invites you to participate in the independent assessment work of this trial. 
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Hello, as the IRC supplier of [ {1} (Protocol ID is {2}) ] project,Extiming sincerely invites you to participate in the IRC related work of this project. Your guidance and suggestions are welcome.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Digital workflow is implemented for this trial, and your account information is as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                This project adopts electronic workflow. The system and your account information are as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Trial ID: {3}
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -26,26 +25,26 @@
 | 
			
		|||
                    Protocol ID: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Study Name: {1}
 | 
			
		||||
                    Study name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    User ID: {4}
 | 
			
		||||
                    User name: {4}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {5}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Before logging in for the first time, please modify your account information through this link:
 | 
			
		||||
                    <a href='{6}' style='margin-left:30px;font-size:16px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;'>
 | 
			
		||||
                        Initialize Account Information
 | 
			
		||||
                    Before logging in for the first time, please modify your account information by this link:
 | 
			
		||||
                    <a href='{6}' style='margin-left:30px;font-size:14px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;'>
 | 
			
		||||
                        Initialize the account information
 | 
			
		||||
                    </a>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;font-size: 16px'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,17 +4,17 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;font-size: 16px'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6;font-size: 16px'>
 | 
			
		||||
        <div style='padding-top: 20px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear  {0} ,
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                The site survey questionnaire you filled in has been rejected. Details are as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Hello, the center survey form you filled in has been rejected. The details are as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Trial ID: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,26 +22,26 @@
 | 
			
		|||
                    Protocol ID: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Study Name: {3}
 | 
			
		||||
                    Study name: {3}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Site ID: {4}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Site Name: {5}
 | 
			
		||||
                    Site name: {5}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Reason for rejection: {6}
 | 
			
		||||
                </div>
 | 
			
		||||
 | 
			
		||||
            </div>
 | 
			
		||||
            <a href='{7}' style='margin-left:60px;font-size:16px;padding: 10px;text-decoration: none;display:{8} ;height: 40px;width: 140px;background: #00D1B2;color:#fff;border-radius: 5px;line-height: 40px;text-align: center;margin-bottom: 100px;font-size: 16px'>
 | 
			
		||||
                Login & View
 | 
			
		||||
            <a href='{7}' style='margin-left:60px;font-size:14px;padding: 10px;text-decoration: none;display:{8} ;height: 40px;width: 140px;background: #00D1B2;color:#fff;border-radius: 5px;line-height: 40px;text-align: center;margin-bottom: 100px;'>
 | 
			
		||||
                Login and view
 | 
			
		||||
            </a>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,20 +4,20 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;font-size: 16px'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6;font-size: 16px'>
 | 
			
		||||
        <div style='padding-top: 20px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                As the IRC service provider of {1} trial (Protocol ID is {2}), Extensive Imaging invites you to participate in IRC-related work of this trial.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Hello, as the IRC supplier of [ {1} (Protocol ID is {2}) ] project,Extiming sincerely invites you to participate in the IRC related work of this project. Your guidance and suggestions are welcome.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Digital workflow is implemented for this trial, and your account information is as follows:
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                This project adopts electronic workflow. The system and your account information are as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Trial ID: {3}
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,23 +25,23 @@
 | 
			
		|||
                    Protocol ID: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Study Name: {1}
 | 
			
		||||
                    Study name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    User Name: {4}
 | 
			
		||||
                    User name: {4}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {5}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Login URL: {6}
 | 
			
		||||
                    System login address:{6}
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,7 +11,7 @@
 | 
			
		|||
                尊敬的 {0} ,您好:
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                展影医疗作为 [{1}   (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作。
 | 
			
		||||
                展影医疗作为 [{1}   (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢!
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                该项目采用电子化工作流,系统及您的账号信息如下:
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,7 @@
 | 
			
		|||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,20 +4,20 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;font-size: 16px'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Dear {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                As the IRC service provider of {1} trial (Protocol ID is {2}), Extensive Imaging invites you to participate in IRC-related work of this trial.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Hello, as the IRC supplier of [ {1} (Protocol ID is {2}) ] project,Extiming sincerely invites you to participate in the IRC related work of this project. Your guidance and suggestions are welcome.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Digital workflow is implemented for this trial, and your account information is as follows:
 | 
			
		||||
                This project adopts electronic workflow. The system and your account information are as follows:
 | 
			
		||||
            </div>
 | 
			
		||||
            <span style="color: #00D1B2"></span>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;font-size: 16px'>
 | 
			
		||||
            <div style='border: 1px solid #eee;box-sizing:border-box;width: 50%;background: #fff;padding: 20px;line-height: 40px;font-size: 14px;border-radius: 5px;margin-left: 60px;margin-bottom: 30px;'>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Trial ID: {3}
 | 
			
		||||
                </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -25,26 +25,26 @@
 | 
			
		|||
                    Protocol ID: {2}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Study Name: {1}
 | 
			
		||||
                    Study name: {1}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    User Name: {4}
 | 
			
		||||
                    User name: {4}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Role: {5}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div>
 | 
			
		||||
                    Before logging in for the first time, please modify your account information through this link:
 | 
			
		||||
                    <a href='{6}' style='margin-left:30px;font-size:16px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;'>
 | 
			
		||||
                        Initialize Account Information
 | 
			
		||||
                    Before logging in for the first time, please modify your account information by this link:
 | 
			
		||||
                    <a href='{6}' style='margin-left:30px;font-size:14px;text-decoration: none;display: inline-block;color:#00D1B2;border-radius: 5px;line-height: 40px;text-align: center;'>
 | 
			
		||||
                        Initialize the account information
 | 
			
		||||
                    </a>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,18 +8,20 @@
 | 
			
		|||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
             亲爱的用户 ,
 | 
			
		||||
                Hello  {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                感谢您使用展影云平台。
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
              {0},验证码是: {1},请在3分钟内输入该验证码,进行后续操作。如非本人操作,请忽略该邮件。
 | 
			
		||||
                {1},验证码是: <span style="font-weight:bold">{2}</span>。
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                请在3分钟内输入该验证码,进行后续操作
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>祝您顺利!/Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">展影医疗</div>
 | 
			
		||||
                <div>祝您顺利!</div>
 | 
			
		||||
                <div style="font-size: 14px;">上海展影医疗科技有限公司</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,25 +4,25 @@
 | 
			
		|||
    <meta charset='UTF-8'>
 | 
			
		||||
    <title>Title</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body style='font-family: Times New Roman;padding: 0;margin: 0;'>
 | 
			
		||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
 | 
			
		||||
    <div style='padding-left: 40px;background: #f6f6f6'>
 | 
			
		||||
        <div style='padding-top: 20px;'>
 | 
			
		||||
            <div style='line-height: 40px;font-size: 16px'>
 | 
			
		||||
                Dear Sir or Madam:
 | 
			
		||||
            <div style='line-height: 40px;font-size: 18px'>
 | 
			
		||||
                Hello {0},
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                Thank you for using our IRC imaging system.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Thank you for using Extensive Imaging’s cloud system!
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                {0}, the verification code is {1}. Please enter this code within 3 minutes for follow-up operations.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                {1}, and the verification code is <span style="font-weight:bold">{2}</span>.
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
 | 
			
		||||
                If you are not the intended person, please ignore this email.
 | 
			
		||||
            <div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
 | 
			
		||||
                Please enter this verification code within 3 minutes for subsequent operations.
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;font-size: 16px'>
 | 
			
		||||
                <div>Best regards,</div>
 | 
			
		||||
                <div style="font-size: 16px;">Extensive Imaging</div>
 | 
			
		||||
            <div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
 | 
			
		||||
                <div>Best Regards</div>
 | 
			
		||||
                <div style="font-size: 14px;">Extensive Imaging</div>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
        [HttpDelete("{commonDocumentId:guid}")]
 | 
			
		||||
        public async Task<IResponseOutput> DeleteCommonDocument(Guid commonDocumentId)
 | 
			
		||||
        {
 | 
			
		||||
            var success = await _commonDocumentRepository.DeleteFromQueryAsync(t => t.Id == commonDocumentId, true);
 | 
			
		||||
            var success = await _commonDocumentRepository.DeleteFromQueryAsync(t => t.Id == commonDocumentId, true,true);
 | 
			
		||||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,12 +11,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
    {
 | 
			
		||||
        public CommonConfig()
 | 
			
		||||
        {
 | 
			
		||||
            CreateMap<Message, SysMessageDTO>()
 | 
			
		||||
              .ForMember(o => o.MessageTime, t => t.MapFrom(u => u.MessageTime.ToString()));
 | 
			
		||||
 | 
			
		||||
            CreateMap<SystemLog, SystemLogDTO>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<SystemLogDTO, SystemLog>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<FrontAuditConfig, FrontAuditConfigAddOrEdit>().ReverseMap();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,6 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
    public class DoctorService : BaseService, IDoctorService
 | 
			
		||||
    {
 | 
			
		||||
        private readonly IRepository<Doctor> _doctorRepository;
 | 
			
		||||
        private readonly IRepository<Message> _messageRepository;
 | 
			
		||||
        private readonly IRepository<Enroll> _enrollRepository;
 | 
			
		||||
        private readonly IRepository<DoctorDictionary> _doctorDictionaryRepository;
 | 
			
		||||
        private readonly IRepository<Attachment> _attachmentRepository;
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +25,7 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
        public DoctorService(IRepository<Doctor> doctorInfoRepository,
 | 
			
		||||
            IRepository<Dictionary> dictionaryRepository,
 | 
			
		||||
            IRepository<Message> sysMessageRepository, IRepository<Enroll> intoGroupRepository,
 | 
			
		||||
             IRepository<Enroll> intoGroupRepository,
 | 
			
		||||
            IRepository<DoctorDictionary> doctorDictionaryRepository,
 | 
			
		||||
            IRepository<Attachment> attachmentRepository,
 | 
			
		||||
              IRepository<DoctorCriterionFile> doctorCriterionFileRepository,
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +34,6 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            IRepository<TrialPaymentPrice> trialExtRepository, IRepository<Vacation> vacationRepository)
 | 
			
		||||
        {
 | 
			
		||||
            _doctorRepository = doctorInfoRepository;
 | 
			
		||||
            _messageRepository = sysMessageRepository;
 | 
			
		||||
            _enrollRepository = intoGroupRepository;
 | 
			
		||||
            _doctorDictionaryRepository = doctorDictionaryRepository;
 | 
			
		||||
            _attachmentRepository = attachmentRepository;
 | 
			
		||||
| 
						 | 
				
			
			@ -457,20 +455,20 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
            if (success)
 | 
			
		||||
            {
 | 
			
		||||
                if (!string.IsNullOrWhiteSpace(auditResumeParam.MessageContent))
 | 
			
		||||
                {
 | 
			
		||||
                    var message = new Message
 | 
			
		||||
                    {
 | 
			
		||||
                        FromUserId = userId,
 | 
			
		||||
                        ToDoctorId = auditResumeParam.Id,
 | 
			
		||||
                        Title = "Resume review results",
 | 
			
		||||
                        Content = auditResumeParam.MessageContent,
 | 
			
		||||
                        HasRead = false,
 | 
			
		||||
                        MessageTime = DateTime.Now
 | 
			
		||||
                    };
 | 
			
		||||
                    await _repository.AddAsync(message);
 | 
			
		||||
                    success = await _repository.SaveChangesAsync();
 | 
			
		||||
                }
 | 
			
		||||
                //if (!string.IsNullOrWhiteSpace(auditResumeParam.MessageContent))
 | 
			
		||||
                //{
 | 
			
		||||
                //    var message = new Message
 | 
			
		||||
                //    {
 | 
			
		||||
                //        FromUserId = userId,
 | 
			
		||||
                //        ToDoctorId = auditResumeParam.Id,
 | 
			
		||||
                //        Title = "Resume review results",
 | 
			
		||||
                //        Content = auditResumeParam.MessageContent,
 | 
			
		||||
                //        HasRead = false,
 | 
			
		||||
                //        MessageTime = DateTime.Now
 | 
			
		||||
                //    };
 | 
			
		||||
                //    await _repository.AddAsync(message);
 | 
			
		||||
                //    success = await _repository.SaveChangesAsync();
 | 
			
		||||
                //}
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return ResponseOutput.Result(success);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,13 +11,14 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
    {
 | 
			
		||||
        private readonly IRepository<DicomInstance> _instanceRepository;
 | 
			
		||||
        private readonly IRepository<DicomStudy> _studyRepository;
 | 
			
		||||
        private readonly IRepository<KeyInstance> _keyInstanceRepository;
 | 
			
		||||
        public InstanceService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository,
 | 
			
		||||
            IRepository<KeyInstance> keyInstanceRepository )
 | 
			
		||||
        //private readonly IRepository<KeyInstance> _keyInstanceRepository;
 | 
			
		||||
        public InstanceService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository
 | 
			
		||||
            //,IRepository<KeyInstance> keyInstanceRepository 
 | 
			
		||||
            )
 | 
			
		||||
        {
 | 
			
		||||
            _instanceRepository = instanceRepository;
 | 
			
		||||
            _studyRepository = studyRepository;
 | 
			
		||||
            _keyInstanceRepository = keyInstanceRepository;
 | 
			
		||||
            //_keyInstanceRepository = keyInstanceRepository;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary> 指定资源Id,获取Dicom序列所属的实例信息列表 </summary>
 | 
			
		||||
| 
						 | 
				
			
			@ -42,11 +43,11 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
        [HttpGet, Route("{seriesId:guid}/{tpCode?}/{key?}")]
 | 
			
		||||
        public IEnumerable<Guid> List(Guid seriesId, string tpCode, bool? key)
 | 
			
		||||
        {
 | 
			
		||||
            if (key != null && key.HasValue && key.Value)
 | 
			
		||||
            {
 | 
			
		||||
                return _keyInstanceRepository.Where(s => s.TpCode == tpCode).Select(t => t.InstanceId).Distinct();
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            //if (key != null && key.HasValue && key.Value)
 | 
			
		||||
            //{
 | 
			
		||||
            //    return _keyInstanceRepository.Where(s => s.TpCode == tpCode).Select(t => t.InstanceId).Distinct();
 | 
			
		||||
            //}
 | 
			
		||||
            //else
 | 
			
		||||
                return _instanceRepository.Where(s => s.SeriesId == seriesId).OrderBy(s => s.InstanceNumber).Select(t => t.Id);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,19 +10,20 @@ namespace IRaCIS.Core.Application.Services
 | 
			
		|||
    [AllowAnonymous]
 | 
			
		||||
    public class SeriesService : BaseService
 | 
			
		||||
    {
 | 
			
		||||
        private readonly IRepository<ImageLabel> _imageLabelRepository;
 | 
			
		||||
        //private readonly IRepository<KeyInstance> _keyInstanceRepository;
 | 
			
		||||
       // private readonly IRepository<ImageLabel> _imageLabelRepository;
 | 
			
		||||
 | 
			
		||||
        private readonly IRepository<DicomSeries> _seriesRepository;
 | 
			
		||||
        private readonly IRepository<DicomInstance> _instanceRepository;
 | 
			
		||||
        private readonly IRepository<DicomStudy> _studyRepository;
 | 
			
		||||
        private readonly IRepository<KeyInstance> _keyInstanceRepository;
 | 
			
		||||
        public SeriesService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository,
 | 
			
		||||
            IRepository<KeyInstance> keyInstanceRepository, IRepository<DicomSeries> seriesRepository, IRepository<ImageLabel> imageLabelRepository)
 | 
			
		||||
        public SeriesService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository, IRepository<DicomSeries> seriesRepository
 | 
			
		||||
           /* IRepository<KeyInstance> keyInstanceRepository,  IRepository<ImageLabel> imageLabelRepository*/)
 | 
			
		||||
        {
 | 
			
		||||
            _seriesRepository = seriesRepository;
 | 
			
		||||
            _instanceRepository = instanceRepository;
 | 
			
		||||
            _studyRepository = studyRepository;
 | 
			
		||||
            _keyInstanceRepository = keyInstanceRepository;
 | 
			
		||||
            _imageLabelRepository = imageLabelRepository;
 | 
			
		||||
            //_keyInstanceRepository = keyInstanceRepository;
 | 
			
		||||
            //_imageLabelRepository = imageLabelRepository;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,8 +19,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
 | 
			
		||||
            CreateMap<AddInstanceDto, DicomInstance>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<Report, ReportDTO>();
 | 
			
		||||
            CreateMap<ImageLabel, ImageLabelDTO>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<DicomSeries, DicomSeriesWithLabelDTO>();
 | 
			
		||||
 | 
			
		||||
            //影像上传 检查
 | 
			
		||||
| 
						 | 
				
			
			@ -73,11 +72,9 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
 | 
			
		||||
            CreateMap<ImageShareCommand, ImageShare>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<StudyDTFAddOrUpdateCommand, StudyDTF>();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            CreateMap<StudyStatusDetail, StudyStatusDetailDTO>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<DicomInstance, DicomInstanceDTO>()
 | 
			
		||||
                 .ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,6 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
    public class AdReportDTO
 | 
			
		||||
    {
 | 
			
		||||
        public WorkloadAD ADInfo { get; set; } = new WorkloadAD();
 | 
			
		||||
        public PreviousGlobalReadsView Global1 { get; set; } = new PreviousGlobalReadsView();
 | 
			
		||||
        public PreviousGlobalReadsView Global2 { get; set; } = new PreviousGlobalReadsView();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,10 +12,7 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
        {
 | 
			
		||||
            CreateMap<LesionInformation, VisitLesion>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<ReportDTO, Report>();
 | 
			
		||||
            CreateMap<ImageLabelDTO, ImageLabel>();
 | 
			
		||||
 | 
			
		||||
            CreateMap<GlobalReportCommand, GlobalRS>();
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -288,7 +288,7 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
        public string TrialStatusStr { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #region PM
 | 
			
		||||
        public int? ExpetiedTaskCount { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -299,6 +299,9 @@ namespace IRaCIS.Core.Application.Contracts
 | 
			
		|||
 | 
			
		||||
        public int? PendingResponseCount { get; set; }
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        public bool IsIQCHaveToBeDone { get; set; }
 | 
			
		||||
        public bool IsCRCHaveToBeDone { get; set; }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1283,25 +1283,6 @@ namespace IRaCIS.Core.Application
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #region 废弃
 | 
			
		||||
        #region 上传影像
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region QC
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 一致性核查
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #region 阅片
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
        #endregion
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -548,7 +548,6 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
 | 
			
		||||
                await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId);
 | 
			
		||||
                await _repository.BatchDeleteAsync<VisitTask>(t => t.TrialId == trialId);
 | 
			
		||||
                await _repository.BatchDeleteAsync<TrialAttachment>(t => t.TrialId == trialId);
 | 
			
		||||
                await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ;
 | 
			
		||||
 | 
			
		||||
                return ResponseOutput.Ok();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
 | 
			
		|||
                    foreach (var item in dbVisitStudyList)
 | 
			
		||||
                    {
 | 
			
		||||
                        num++;
 | 
			
		||||
                        dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{StaticData.International("ConsistencyVerification_Of")}{item.Modality}{StaticData.International("ConsistencyVerification_ImgC")}");
 | 
			
		||||
                        dialogMsg.AppendLine($"<span style='text-indent: 20px;'><br>{num}. {item.StudyDate} {(_userInfo.IsEn_Us ? string.Empty : StaticData.International("ConsistencyVerification_Of"))}{item.Modality}{StaticData.International("ConsistencyVerification_ImgC")}");
 | 
			
		||||
                        paramInfoList.Add(new ParamInfoDto()
 | 
			
		||||
                        {
 | 
			
		||||
                            Modality = item.Modality,
 | 
			
		||||
| 
						 | 
				
			
			@ -214,14 +214,19 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
 | 
			
		|||
                            {
 | 
			
		||||
                                num++;
 | 
			
		||||
                                //影像检查(EDC 缺少)   ConsistencyVerification_EdcL
 | 
			
		||||
                                dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{StaticData.International("ConsistencyVerification_Of")}{item.Modality}{StaticData.International("ConsistencyVerification_EdcL")} ");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                dialogMsg.AppendLine($"<span style='text-indent: 20px;'><br>{num}. {StaticData.International("ConsistencyVerification_EdcL")}{item.StudyDate}{(_userInfo.IsEn_Us ? string.Empty : StaticData.International("ConsistencyVerification_Of"))}{item.Modality}{StaticData.International("ConsistencyVerification_ImgC")}");
 | 
			
		||||
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
                            foreach (var item in excelExceptDB)
 | 
			
		||||
                            {
 | 
			
		||||
                                num++;
 | 
			
		||||
 | 
			
		||||
                                // 影像检查(IRC 缺少)
 | 
			
		||||
                                dialogMsg.AppendLine($"<br>{num}.{item.StudyDate}{StaticData.International("ConsistencyVerification_Of")}{item.Modality}{StaticData.International("ConsistencyVerification_IrcL")} ");
 | 
			
		||||
                                dialogMsg.AppendLine($"<span style='text-indent: 20px;'><br>{num}. {StaticData.International("ConsistencyVerification_IrcL")}{item.StudyDate}{(_userInfo.IsEn_Us ? string.Empty : StaticData.International("ConsistencyVerification_Of"))}{item.Modality}{StaticData.International("ConsistencyVerification_ImgC")}");
 | 
			
		||||
          
 | 
			
		||||
                            }
 | 
			
		||||
 | 
			
		||||
                            dialogMsg.AppendLine($"<br/>");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("ImageLabel")]
 | 
			
		||||
    public class ImageLabel : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public string TpCode { get; set; } = string.Empty;
 | 
			
		||||
        public Guid StudyId { get; set; } = Guid.Empty;
 | 
			
		||||
        public Guid SeriesId { get; set; } = Guid.Empty;
 | 
			
		||||
        public Guid InstanceId { get; set; } = Guid.Empty;
 | 
			
		||||
        public string LabelValue { get; set; } = string.Empty;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("KeyInstance")]
 | 
			
		||||
    public class KeyInstance : Entity, IAuditAdd, IAuditUpdate
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        public string TpCode { get; set; }
 | 
			
		||||
        public Guid SeriesId { get; set; }
 | 
			
		||||
        public Guid InstanceId { get; set; }
 | 
			
		||||
        public Guid CreateUserId { get; set; }
 | 
			
		||||
        public DateTime CreateTime { get; set; } = DateTime.Now;
 | 
			
		||||
        public Guid UpdateUserId { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; } = DateTime.Now;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("Message")]
 | 
			
		||||
    public class Message : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid ToDoctorId { get; set; }
 | 
			
		||||
        public Guid FromUserId { get; set; }
 | 
			
		||||
        public string Title { get; set; } = string.Empty;
 | 
			
		||||
        public string Content { get; set; } = string.Empty;
 | 
			
		||||
        public DateTime MessageTime { get; set; }
 | 
			
		||||
        public bool HasRead { get; set; }
 | 
			
		||||
        public string Memo { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    public class GlobalRS : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid GlobalId { get; set; }
 | 
			
		||||
        public string TpCode { get; set; }
 | 
			
		||||
        public decimal VisitNum { get; set; }
 | 
			
		||||
        public bool Agree { get; set; }
 | 
			
		||||
        public string NewRS { get; set; }
 | 
			
		||||
        public string Note { get; set; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,16 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    public class GlobalResult:Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid GlobalId { get; set; }
 | 
			
		||||
        public Guid SubjectId { get; set; }
 | 
			
		||||
        public string SubjectCode { get; set; }
 | 
			
		||||
     
 | 
			
		||||
        public decimal VisitNum { get; set; }
 | 
			
		||||
        public string SubjectNote { get; set; }=String.Empty;
 | 
			
		||||
        public string Result { get; set; } = String.Empty;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,27 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("Report")]
 | 
			
		||||
    public class Report : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public bool Qualified { get; set; } = true;
 | 
			
		||||
        public string DiseaseProgression { get; set; } = string.Empty;
 | 
			
		||||
        public string NotEvaluable { get; set; } = string.Empty;
 | 
			
		||||
        public string Timepoint { get; set; } = string.Empty;
 | 
			
		||||
        public string TrialCode { get; set; } = string.Empty;
 | 
			
		||||
        public string SubjectCode { get; set; } = string.Empty;
 | 
			
		||||
        public decimal? VisitNum { get; set; }
 | 
			
		||||
        public string VisitName { get; set; } = string.Empty;
 | 
			
		||||
        public int? DiseaseSituation { get; set; }
 | 
			
		||||
        public string Comment { get; set; }
 | 
			
		||||
        public Guid? TPId { get; set; }
 | 
			
		||||
        public Guid? DicomStudyId { get; set; }
 | 
			
		||||
        public string TpCode { get; set; } = string.Empty;
 | 
			
		||||
        public bool AffectRead { get; set; } = false;//是否影响读片
 | 
			
		||||
        public string AffectReadNote { get; set; } = string.Empty;//备注说明
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,129 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("TU")]
 | 
			
		||||
    public class TU : Entity
 | 
			
		||||
    {
 | 
			
		||||
        //病灶类型 1-非淋巴结靶病灶,2-淋巴结靶病灶,3-非靶病灶,,4-疑似新病灶,5-明确新病灶
 | 
			
		||||
        public int LesionType { get; set; }
 | 
			
		||||
        public string STUDYID { get; set; }
 | 
			
		||||
        public string DOMAIN { get; set; } = "TU";
 | 
			
		||||
        public string USUBJID { get; set; }
 | 
			
		||||
        public int TUSEQ { get; set; }
 | 
			
		||||
        public string TUGRPID { get; set; } = string.Empty;
 | 
			
		||||
        public string TUREFID { get; set; } = string.Empty;//内部或外部的肿瘤/病灶标识。 例如:医学影像 ID 
 | 
			
		||||
        public string TUSPID { get; set; } = string.Empty;
 | 
			
		||||
        public string TULNKID { get; set; } = string.Empty;
 | 
			
		||||
        public string TUTESTCD { get; set; } = string.Empty;
 | 
			
		||||
        public string TUTEST { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        //肿瘤标识的结果。 肿瘤标识的结果是对标识肿瘤的分类。 
 | 
			
		||||
        //例如,当 TUTESTCD=TUMIDENT (肿瘤/病灶标识)时, 
 | 
			
		||||
        //TUORRES的值可能是 TARGET, NON-TARGET, NEW或者 BENIGN ABNORMALITY
 | 
			
		||||
        public string TUORRES { get; set; } = string.Empty;
 | 
			
		||||
        public string TUSTRESC { get; set; } = string.Empty;
 | 
			
		||||
        public string TUNAM { get; set; } = string.Empty;
 | 
			
		||||
        public string TULOC { get; set; } = string.Empty;
 | 
			
		||||
        public string TULAT { get; set; } = string.Empty;
 | 
			
		||||
        public string TUDIR { get; set; } = string.Empty;
 | 
			
		||||
        public string TUPORTOT { get; set; } = string.Empty;
 | 
			
		||||
        public string TUMETHOD { get; set; } = string.Empty;
 | 
			
		||||
        public string TUEVAL { get; set; } = string.Empty;
 | 
			
		||||
        public string TUEVALID { get; set; } = string.Empty;
 | 
			
		||||
        public string TUACPTFL { get; set; } = string.Empty;
 | 
			
		||||
        public decimal VISITNUM { get; set; } = 0;
 | 
			
		||||
        public string VISIT { get; set; } = string.Empty;
 | 
			
		||||
        public int VISITDY { get; set; }
 | 
			
		||||
        public string EPOCH { get; set; } = string.Empty;
 | 
			
		||||
        public string TUDTC { get; set; } = string.Empty;
 | 
			
		||||
        public int TUDY { get; set; } = 0;
 | 
			
		||||
        public string LocDescription { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public string TpCode { get; set; } = string.Empty;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Table("TR")]
 | 
			
		||||
    public class TR : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public string STUDYID { get; set; } = string.Empty;
 | 
			
		||||
        public string DOMAIN { get; set; } = "TR";
 | 
			
		||||
        public string USUBJID { get; set; } = string.Empty;
 | 
			
		||||
        public int TRSEQ { get; set; }
 | 
			
		||||
        public string TRGRPID { get; set; } = string.Empty;
 | 
			
		||||
        public string TRREFID { get; set; } = string.Empty;
 | 
			
		||||
        public string TRSPID { get; set; } = string.Empty;
 | 
			
		||||
        public string TRLNKID { get; set; } = string.Empty;
 | 
			
		||||
        public string TRLNKGRP { get; set; } = string.Empty;
 | 
			
		||||
        public string TRTESTCD { get; set; } = string.Empty;
 | 
			
		||||
        public string TRTEST { get; set; } = string.Empty;
 | 
			
		||||
        public string TRORRES { get; set; } = string.Empty;
 | 
			
		||||
        public double TRORRES_Double
 | 
			
		||||
        {
 | 
			
		||||
            get {
 | 
			
		||||
                double temp = 0;
 | 
			
		||||
                double.TryParse(TRORRES, out temp);
 | 
			
		||||
                return temp;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        public string TRORRESU { get; set; } = string.Empty;
 | 
			
		||||
        public string TRSTRESC { get; set; } = string.Empty;
 | 
			
		||||
        public double TRSTRESN { get; set; } = 0;
 | 
			
		||||
        public string TRSTRESU { get; set; } = string.Empty;
 | 
			
		||||
        public string TRSTAT { get; set; } = string.Empty;
 | 
			
		||||
        public string TRREASND { get; set; } = string.Empty;
 | 
			
		||||
        public string TRNAM { get; set; } = string.Empty;
 | 
			
		||||
        public string TRMETHOD { get; set; } = string.Empty;
 | 
			
		||||
        public string TREVAL { get; set; } = string.Empty;
 | 
			
		||||
        public string TREVALID { get; set; } = string.Empty;
 | 
			
		||||
        public string TRACPTFL { get; set; } = string.Empty;
 | 
			
		||||
        public decimal VISITNUM { get; set; } = 0;
 | 
			
		||||
        public string VISIT { get; set; } = string.Empty;
 | 
			
		||||
        public int VISITDY { get; set; } = 0;
 | 
			
		||||
        public string EPOCH { get; set; } = string.Empty;
 | 
			
		||||
        public string TRDTC { get; set; } = string.Empty;
 | 
			
		||||
        public int TRDY { get; set; } = 0;
 | 
			
		||||
        public string Note { get; set; } // 备注
 | 
			
		||||
        public bool CoveredLesion { get; set; } = true;//本次扫描是否覆盖该病灶
 | 
			
		||||
        public string TpCode { get; set; } = string.Empty;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Table("RS")]
 | 
			
		||||
    public class RS : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public string STUDYID { get; set; } = string.Empty;
 | 
			
		||||
        public string DOMAIN { get; set; } = "RS";
 | 
			
		||||
        public string USUBJID { get; set; } = string.Empty;
 | 
			
		||||
        public int RSSEQ { get; set; }
 | 
			
		||||
        public string RSGRPID { get; set; } = string.Empty;
 | 
			
		||||
        public string RSREFID { get; set; } = string.Empty;
 | 
			
		||||
        public string RSSPID { get; set; } = string.Empty;
 | 
			
		||||
        public string RSLNKID { get; set; } = string.Empty;
 | 
			
		||||
        public string RSLNKGRP { get; set; } = string.Empty;
 | 
			
		||||
        public string RSTESTCD { get; set; } = string.Empty;
 | 
			
		||||
        public string RSTEST { get; set; } = string.Empty;
 | 
			
		||||
        public string RSCAT { get; set; } = string.Empty;
 | 
			
		||||
        public string RSORRES { get; set; } = string.Empty;
 | 
			
		||||
        public string RSSTRESC { get; set; } = string.Empty;
 | 
			
		||||
        public string RSSTAT { get; set; } = string.Empty;
 | 
			
		||||
        public string RSREASND { get; set; } = string.Empty;
 | 
			
		||||
        public string RSNAM { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public string RSEVAL { get; set; } = string.Empty;
 | 
			
		||||
        public string RSEVALID { get; set; } = string.Empty;
 | 
			
		||||
        public string RSACPTFL { get; set; } = string.Empty;
 | 
			
		||||
        public decimal VISITNUM { get; set; } = 0;
 | 
			
		||||
        public string VISIT { get; set; } = string.Empty;
 | 
			
		||||
        public int VISITDY { get; set; } = 0;
 | 
			
		||||
        public string EPOCH { get; set; } = string.Empty;
 | 
			
		||||
        public string RSDTC { get; set; } = string.Empty;
 | 
			
		||||
        public int RSDY { get; set; } = 0;
 | 
			
		||||
        public string TpCode { get; set; } = string.Empty;
 | 
			
		||||
        public Guid StudyGuid { get; set; } = Guid.Empty;
 | 
			
		||||
        public Guid TrialGuid { get; set; } = Guid.Empty;
 | 
			
		||||
        public Guid SubjectGuid { get; set; } = Guid.Empty;
 | 
			
		||||
        public string Note { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,24 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    public class StudyDTF  : Entity, IAuditAdd
 | 
			
		||||
    {
 | 
			
		||||
        [ForeignKey("StudyId")]
 | 
			
		||||
        public DicomStudy DicomStudy { get; set; }
 | 
			
		||||
        public Guid StudyId { get; set; } = Guid.Empty;
 | 
			
		||||
 | 
			
		||||
        public string FileName { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
        public string Path { get; set; } = string.Empty;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //public byte[] RowVersion { get; set; } = default;
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        public Guid CreateUserId { get; set; }
 | 
			
		||||
        public DateTime CreateTime { get; set; } = DateTime.Now;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,20 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("StudyReviewer")]
 | 
			
		||||
    public class StudyReviewer : Entity,  IAuditAdd
 | 
			
		||||
    {
 | 
			
		||||
        public Guid StudyId { get; set; }
 | 
			
		||||
        public Guid ReviewerId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
 | 
			
		||||
        // 2是 ad  1是tp
 | 
			
		||||
        public int WorkloadType { get; set; } = 0;
 | 
			
		||||
        public int Status { get; set; } = 30;
 | 
			
		||||
        public Guid CreateUserId { get; set; }
 | 
			
		||||
        public DateTime CreateTime { get; set; } = DateTime.Now;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("StudyStatusDetail")]
 | 
			
		||||
    public class StudyStatusDetail : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid StudyId { get; set; }
 | 
			
		||||
        public int Status { get; set; } = 0;
 | 
			
		||||
        public string OptUserName { get; set; } = string.Empty;
 | 
			
		||||
        public DateTime OptTime { get; set; } = DateTime.Now;
 | 
			
		||||
        public string Note { get; set; } = string.Empty;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("SystemLog")]
 | 
			
		||||
    public partial class SystemLog : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public string ApiPath { get; set; } = string.Empty;
 | 
			
		||||
        public string Params { get; set; } = string.Empty;
 | 
			
		||||
        public string Result { get; set; } = string.Empty;
 | 
			
		||||
        public DateTime RequestTime { get; set; } = DateTime.Now;
 | 
			
		||||
        public long ElapsedMilliseconds { get; set; } = 0;
 | 
			
		||||
        public Guid OptUserId { get; set; } = Guid.Empty;
 | 
			
		||||
        public string OptUserName { get; set; } = string.Empty;
 | 
			
		||||
        public string ClientIP { get; set; } = string.Empty;
 | 
			
		||||
        public bool Status { get; set; } = true;
 | 
			
		||||
        public string Message { get; set; } = string.Empty;
 | 
			
		||||
        public string LogCategory { get; set; } = string.Empty;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,21 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("TrialAttachment")]
 | 
			
		||||
    public class TrialAttachment : Entity, IAuditUpdate, IAuditAdd
 | 
			
		||||
    {
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
        public string Type { get; set; } = String.Empty;
 | 
			
		||||
        public string DocumentName { get; set; } = String.Empty;
 | 
			
		||||
        public string DocumentPath { get; set; } = String.Empty;
 | 
			
		||||
 | 
			
		||||
        public string UserTypes { get; set; } = String.Empty;
 | 
			
		||||
        
 | 
			
		||||
        public DateTime CreateTime { get; set; }
 | 
			
		||||
        public Guid CreateUserId { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; }
 | 
			
		||||
        public Guid UpdateUserId { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,67 +0,0 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.ComponentModel.DataAnnotations.Schema;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Domain.Models
 | 
			
		||||
{
 | 
			
		||||
    [Table("WorkloadTP")]
 | 
			
		||||
    public class WorkloadTP : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
        public Guid SiteId { get; set; }
 | 
			
		||||
        public Guid SubjectId { get; set; }
 | 
			
		||||
        public Guid SubjectVisitId { get; set; }
 | 
			
		||||
        public Guid StudyId { get; set; }
 | 
			
		||||
        public string TimepointCode { get; set; }
 | 
			
		||||
        public Guid ReviewerId { get; set; }
 | 
			
		||||
        public int Status { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Table("WorkloadGlobal")]
 | 
			
		||||
    public class WorkloadGlobal : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid SiteId { get; set; }
 | 
			
		||||
        public Guid VisitId { get; set; }
 | 
			
		||||
        public string VisitName { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // 项目Id,受试者Id,num 共同决定 Global 关联的所有study,
 | 
			
		||||
        // 暂定设计成这样,后期如有需要,爱用中间表 关联。
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
        public Guid SubjectId { get; set; }
 | 
			
		||||
        public decimal VisitNum { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string GlobalCode { get; set; }
 | 
			
		||||
        public Guid ReviewerId { get; set; }
 | 
			
		||||
        public int Status { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Table("WorkloadAD")]
 | 
			
		||||
    public class WorkloadAD : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid TrialId { get; set; }
 | 
			
		||||
        public Guid SiteId { get; set; }
 | 
			
		||||
        public Guid SubjectId { get; set; }
 | 
			
		||||
        public string ADCode { get; set; }
 | 
			
		||||
        public Guid ReviewerId { get; set; }
 | 
			
		||||
        public int Status { get; set; }
 | 
			
		||||
        public DateTime UpdateTime { get; set; }
 | 
			
		||||
        public Guid Global1Id { get; set; }
 | 
			
		||||
        public Guid Global2Id { get; set; }
 | 
			
		||||
 | 
			
		||||
        public Guid? SelectGlobalId { get; set; }
 | 
			
		||||
 | 
			
		||||
        public string AdNote { get; set; }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    [Table("WorkloadDetail")]
 | 
			
		||||
    public class WorkloadDetail : Entity
 | 
			
		||||
    {
 | 
			
		||||
        public Guid WorkloadId { get; set; }
 | 
			
		||||
        public string OptUserName { get; set; }
 | 
			
		||||
        public DateTime OptTime { get; set; } = DateTime.Now;
 | 
			
		||||
        public int Status { get; set; }
 | 
			
		||||
        public Guid ReviewerId { get; set; } = Guid.Empty;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -311,7 +311,6 @@ namespace IRaCIS.Core.Infra.EFCore
 | 
			
		|||
        public virtual DbSet<PreviousOther> PreviousOther { get; set; }
 | 
			
		||||
        public virtual DbSet<PreviousHistory> PreviousHistory { get; set; }
 | 
			
		||||
 | 
			
		||||
        public virtual DbSet<StudyDTF> StudyDTF { get; set; }
 | 
			
		||||
        public virtual DbSet<DicomStudy> DicomStudys { get; set; }
 | 
			
		||||
        public virtual DbSet<DicomSeries> DicomSeries { get; set; }
 | 
			
		||||
        public virtual DbSet<DicomInstance> DicomInstances { get; set; }
 | 
			
		||||
| 
						 | 
				
			
			@ -367,7 +366,6 @@ namespace IRaCIS.Core.Infra.EFCore
 | 
			
		|||
        public virtual DbSet<TrialSiteEquipmentSurvey> TrialSiteEquipmentSurvey { get; set; }
 | 
			
		||||
        public virtual DbSet<TrialSiteSurvey> TrialSiteSurvey { get; set; }
 | 
			
		||||
 | 
			
		||||
        public virtual DbSet<StudyStatusDetail> StudyStatusDetails { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,17 +0,0 @@
 | 
			
		|||
using IRaCIS.Core.Domain.Models;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Infra.EFCore
 | 
			
		||||
{
 | 
			
		||||
    public interface ITURepository : IRepository<TU>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
    public interface ITRRepository : IRepository<TR>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
    public interface IRSRepository : IRepository<RS>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,19 +0,0 @@
 | 
			
		|||
using IRaCIS.Core.Domain.Models;
 | 
			
		||||
using IRaCIS.Core.Domain;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Infra.EFCore
 | 
			
		||||
{
 | 
			
		||||
    public interface IWorkloadTPRepository : IRepository<WorkloadTP>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
    public interface IWorkloadGlobalRepository : IRepository<WorkloadGlobal>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
    public interface IWorkloadADRepository : IRepository<WorkloadAD>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public interface IWorkloadDetailRepository : IRepository<WorkloadDetail>
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,27 +0,0 @@
 | 
			
		|||
using IRaCIS.Core.Infra.EFCore;
 | 
			
		||||
using IRaCIS.Core.Domain.Models;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Infra.EFCore
 | 
			
		||||
{
 | 
			
		||||
    //public class TURepository : Repository<TU>, ITURepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public TURepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
    //public class TRRepository : Repository<TR>, ITRRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public TRRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
    //public class RSRepository : Repository<RS>, IRSRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public RSRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,35 +0,0 @@
 | 
			
		|||
using IRaCIS.Core.Infra.EFCore;
 | 
			
		||||
using IRaCIS.Core.Domain.Models;
 | 
			
		||||
 | 
			
		||||
namespace IRaCIS.Core.Infra.EFCore
 | 
			
		||||
{
 | 
			
		||||
    //public class WorkloadTPRepository : Repository<WorkloadTP>, IWorkloadTPRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public WorkloadTPRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
    //public class WorkloadGlobalRepository : Repository<WorkloadGlobal>, IWorkloadGlobalRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public WorkloadGlobalRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
    //public class WorkloadADRepository : Repository<WorkloadAD>, IWorkloadADRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public WorkloadADRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
 | 
			
		||||
    //public class WorkloadDetailRepository : Repository<WorkloadDetail>, IWorkloadDetailRepository
 | 
			
		||||
    //{
 | 
			
		||||
    //    public WorkloadDetailRepository(IRaCISDBContext db) : base(db)
 | 
			
		||||
    //    {
 | 
			
		||||
 | 
			
		||||
    //    }
 | 
			
		||||
    //}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue