Merge branch 'Test.IRC' of http://192.168.3.69:2000/XCKJ/irc-netcore-api into Test.IRC

IRC_NewDev
he 2023-11-08 09:08:23 +08:00
commit 5bcba84acb
49 changed files with 185 additions and 715 deletions

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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} trialProtocol 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}) ] projectExtiming 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>

View File

@ -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>

View File

@ -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}) ] projectExtiming 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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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}) ] projectExtiming 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>

View File

@ -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>

View File

@ -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}) ] projectExtiming 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>

View File

@ -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>

View File

@ -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 Imagings 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>

View File

@ -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();
}

View File

@ -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();

View File

@ -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);

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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))

View File

@ -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();

View File

@ -12,10 +12,7 @@ namespace IRaCIS.Core.Application.Service
{
CreateMap<LesionInformation, VisitLesion>();
CreateMap<ReportDTO, Report>();
CreateMap<ImageLabelDTO, ImageLabel>();
CreateMap<GlobalReportCommand, GlobalRS>();
}
}

View File

@ -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; }

View File

@ -1283,25 +1283,6 @@ namespace IRaCIS.Core.Application
}
#region 废弃
#region 上传影像
#endregion
#region QC
#endregion
#region 一致性核查
#endregion
#region 阅片
#endregion
#endregion
#endregion

View File

@ -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();

View File

@ -112,14 +112,14 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
StringBuilder dialogMsg = new StringBuilder();
//---您好,根据本系统自动识别该受试者当前访视在IRC系统中已提交的影像检查情况如下
//---您好,根据本系统自动识别该受试者当前访视在IRC系统中已提交的影像检查情况如下
dialogMsg.Append(StaticData.International("ConsistencyVerification_Img"));
var num = 0;
List<ParamInfoDto> paramInfoList = new List<ParamInfoDto>();
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,
@ -176,7 +176,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
if (dbExceptExcel.Count() == 0 && excelExceptDB.Count() == 0)
{
dialogMsg.AppendLine($"<br/>");
//---核对EDC数据完全一致, 审核通过
//---核对EDC数据完全一致, 审核通过
dialogMsg.AppendLine(StaticData.International("ConsistencyVerification_EDCA"));
@ -184,9 +184,9 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
dbSV.CheckState = CheckStateEnum.CVPassed;
dbSV.CheckUserId = _userInfo.Id;
dbSV.CheckPassedTime = DateTime.Now;
//---核对EDC数据完全一致
//---核对EDC数据完全一致
dbSV.CheckResult = StaticData.International("ConsistencyVerification_EDCB");
//---自动核查通过
//---自动核查通过
dbSV.ManualPassReason = StaticData.International("ConsistencyVerification_Auto");
//维护状态
@ -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/>");

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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; }
}
}

View File

@ -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;
}
}

View File

@ -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;//备注说明
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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; }
}
}

View File

@ -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受试者Idnum 共同决定 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;
}
}

View File

@ -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; }

View File

@ -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>
{
}
}

View File

@ -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>
{
}
}

View File

@ -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)
// {
// }
//}
}

View File

@ -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)
// {
// }
//}
}