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))
|
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
|
else
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,35 +4,35 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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;font-size: 16px'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0} ,
|
Dear {0} ,
|
||||||
</div>
|
</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;'>
|
||||||
Extensive Imaging has generated a user account for you. <br>The account information is as follows:
|
Extimaging has added an account for you. The account information is as follows:
|
||||||
</div>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
User ID: {1}
|
User name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {2}
|
Role: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Before logging in for the first time, please initialize your account information through this link:
|
Before logging in for the first time, please modify your account information by 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'>
|
<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 Account Information
|
Initialize the account information
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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;font-size: 16px'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0} ,
|
Dear {0} ,
|
||||||
</div>
|
</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;'>
|
||||||
Extensive Imaging has reset your password.<br>The account information is as follows:
|
Extimaging has reset your account password, and the account information is as follows:
|
||||||
</div>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
User ID: {1}
|
User name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {2}
|
Role: {2}
|
||||||
|
@ -27,9 +27,9 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,22 +4,22 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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;font-size: 16px'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear Sir or Madam:
|
Dear:
|
||||||
</div>
|
</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;'>
|
||||||
Thank you for using our IRC imaging system.
|
Thank you for using Extensive Imaging Cloud System.
|
||||||
</div>
|
</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}。
|
{0}。
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
尊敬的 {0} ,您好:
|
尊敬的 {0} ,您好:
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||||
展影医疗作为 [{1} (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC阅片相关工作。
|
展影医疗作为 [{1} (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC阅片相关工作,欢迎您提供指导和建议,非常感谢!
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0},
|
Dear {0},
|
||||||
</div>
|
</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;'>
|
||||||
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.
|
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>
|
||||||
<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;'>
|
||||||
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>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
Trial ID: {3}
|
Trial ID: {3}
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,22 +25,23 @@
|
||||||
Protocol ID: {2}
|
Protocol ID: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Study Name: {1}
|
Study name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
User Name: {4}
|
User name: {4}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {5}
|
Role: {5}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Login URL: {6}
|
System login address:{6}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
|
||||||
<div>Best regards,</div>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div>Best Regards</div>
|
||||||
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,21 +4,20 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0},
|
Dear {0},
|
||||||
</div>
|
</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;'>
|
||||||
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.
|
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>
|
||||||
<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;'>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;font-size: 16px'>
|
This project adopts electronic workflow. The system and your account information are as follows:
|
||||||
Digital workflow is implemented for this trial, and your account information is as follows:
|
|
||||||
</div>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
Trial ID: {3}
|
Trial ID: {3}
|
||||||
</div>
|
</div>
|
||||||
|
@ -26,26 +25,26 @@
|
||||||
Protocol ID: {2}
|
Protocol ID: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Study Name: {1}
|
Study name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
User ID: {4}
|
User name: {4}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {5}
|
Role: {5}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Before logging in for the first time, please modify your account information through this link:
|
Before logging in for the first time, please modify your account information by 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;'>
|
<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 Account Information
|
Initialize the account information
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;font-size: 16px'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,17 +4,17 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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;font-size: 16px'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;font-size: 16px'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0} ,
|
Dear {0} ,
|
||||||
</div>
|
</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;'>
|
||||||
The site survey questionnaire you filled in has been rejected. Details are as follows:
|
Hello, the center survey form you filled in has been rejected. The details are as follows:
|
||||||
</div>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
Trial ID: {1}
|
Trial ID: {1}
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,26 +22,26 @@
|
||||||
Protocol ID: {2}
|
Protocol ID: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Study Name: {3}
|
Study name: {3}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Site ID: {4}
|
Site ID: {4}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Site Name: {5}
|
Site name: {5}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Reason for rejection: {6}
|
Reason for rejection: {6}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</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'>
|
<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 & View
|
Login and view
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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;font-size: 16px'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;font-size: 16px'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0},
|
Dear {0},
|
||||||
</div>
|
</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;'>
|
||||||
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.
|
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>
|
||||||
<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;'>
|
||||||
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>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
Trial ID: {3}
|
Trial ID: {3}
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,23 +25,23 @@
|
||||||
Protocol ID: {2}
|
Protocol ID: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Study Name: {1}
|
Study name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
User Name: {4}
|
User name: {4}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {5}
|
Role: {5}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Login URL: {6}
|
System login address:{6}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
尊敬的 {0} ,您好:
|
尊敬的 {0} ,您好:
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||||
展影医疗作为 [{1} (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作。
|
展影医疗作为 [{1} (试验方案号:{2 })] 项目的IRC供应商,诚邀您参加该项目IRC相关工作,欢迎您提供指导和建议,非常感谢!
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<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 style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!/Best Regards</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear {0},
|
Dear {0},
|
||||||
</div>
|
</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;'>
|
||||||
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.
|
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>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<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>
|
</div>
|
||||||
<span style="color: #00D1B2"></span>
|
<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>
|
<div>
|
||||||
Trial ID: {3}
|
Trial ID: {3}
|
||||||
</div>
|
</div>
|
||||||
|
@ -25,26 +25,26 @@
|
||||||
Protocol ID: {2}
|
Protocol ID: {2}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Study Name: {1}
|
Study name: {1}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
User Name: {4}
|
User name: {4}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Role: {5}
|
Role: {5}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
Before logging in for the first time, please modify your account information through this link:
|
Before logging in for the first time, please modify your account information by 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;'>
|
<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 Account Information
|
Initialize the account information
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 16px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -8,18 +8,20 @@
|
||||||
<div style='padding-left: 40px;background: #f6f6f6'>
|
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 18px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
亲爱的用户 ,
|
Hello {0},
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||||
感谢您使用展影云平台。
|
感谢您使用展影云平台。
|
||||||
</div>
|
</div>
|
||||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
<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>
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>祝您顺利!/Best Regards</div>
|
<div>祝您顺利!</div>
|
||||||
<div style="font-size: 14px;">展影医疗</div>
|
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -4,25 +4,25 @@
|
||||||
<meta charset='UTF-8'>
|
<meta charset='UTF-8'>
|
||||||
<title>Title</title>
|
<title>Title</title>
|
||||||
</head>
|
</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-left: 40px;background: #f6f6f6'>
|
||||||
<div style='padding-top: 20px;'>
|
<div style='padding-top: 20px;'>
|
||||||
<div style='line-height: 40px;font-size: 16px'>
|
<div style='line-height: 40px;font-size: 18px'>
|
||||||
Dear Sir or Madam:
|
Hello {0},
|
||||||
</div>
|
</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;'>
|
||||||
Thank you for using our IRC imaging system.
|
Thank you for using Extensive Imaging’s cloud system!
|
||||||
</div>
|
</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}, the verification code is {1}. Please enter this code within 3 minutes for follow-up operations.
|
{1}, and the verification code is <span style="font-weight:bold">{2}</span>.
|
||||||
</div>
|
</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;'>
|
||||||
If you are not the intended person, please ignore this email.
|
Please enter this verification code within 3 minutes for subsequent operations.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;font-size: 16px'>
|
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||||
<div>Best regards,</div>
|
<div>Best Regards</div>
|
||||||
<div style="font-size: 16px;">Extensive Imaging</div>
|
<div style="font-size: 14px;">Extensive Imaging</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
[HttpDelete("{commonDocumentId:guid}")]
|
[HttpDelete("{commonDocumentId:guid}")]
|
||||||
public async Task<IResponseOutput> DeleteCommonDocument(Guid commonDocumentId)
|
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();
|
return ResponseOutput.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
public CommonConfig()
|
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();
|
CreateMap<FrontAuditConfig, FrontAuditConfigAddOrEdit>().ReverseMap();
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@ namespace IRaCIS.Application.Services
|
||||||
public class DoctorService : BaseService, IDoctorService
|
public class DoctorService : BaseService, IDoctorService
|
||||||
{
|
{
|
||||||
private readonly IRepository<Doctor> _doctorRepository;
|
private readonly IRepository<Doctor> _doctorRepository;
|
||||||
private readonly IRepository<Message> _messageRepository;
|
|
||||||
private readonly IRepository<Enroll> _enrollRepository;
|
private readonly IRepository<Enroll> _enrollRepository;
|
||||||
private readonly IRepository<DoctorDictionary> _doctorDictionaryRepository;
|
private readonly IRepository<DoctorDictionary> _doctorDictionaryRepository;
|
||||||
private readonly IRepository<Attachment> _attachmentRepository;
|
private readonly IRepository<Attachment> _attachmentRepository;
|
||||||
|
@ -26,7 +25,7 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
public DoctorService(IRepository<Doctor> doctorInfoRepository,
|
public DoctorService(IRepository<Doctor> doctorInfoRepository,
|
||||||
IRepository<Dictionary> dictionaryRepository,
|
IRepository<Dictionary> dictionaryRepository,
|
||||||
IRepository<Message> sysMessageRepository, IRepository<Enroll> intoGroupRepository,
|
IRepository<Enroll> intoGroupRepository,
|
||||||
IRepository<DoctorDictionary> doctorDictionaryRepository,
|
IRepository<DoctorDictionary> doctorDictionaryRepository,
|
||||||
IRepository<Attachment> attachmentRepository,
|
IRepository<Attachment> attachmentRepository,
|
||||||
IRepository<DoctorCriterionFile> doctorCriterionFileRepository,
|
IRepository<DoctorCriterionFile> doctorCriterionFileRepository,
|
||||||
|
@ -35,7 +34,6 @@ namespace IRaCIS.Application.Services
|
||||||
IRepository<TrialPaymentPrice> trialExtRepository, IRepository<Vacation> vacationRepository)
|
IRepository<TrialPaymentPrice> trialExtRepository, IRepository<Vacation> vacationRepository)
|
||||||
{
|
{
|
||||||
_doctorRepository = doctorInfoRepository;
|
_doctorRepository = doctorInfoRepository;
|
||||||
_messageRepository = sysMessageRepository;
|
|
||||||
_enrollRepository = intoGroupRepository;
|
_enrollRepository = intoGroupRepository;
|
||||||
_doctorDictionaryRepository = doctorDictionaryRepository;
|
_doctorDictionaryRepository = doctorDictionaryRepository;
|
||||||
_attachmentRepository = attachmentRepository;
|
_attachmentRepository = attachmentRepository;
|
||||||
|
@ -457,20 +455,20 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(auditResumeParam.MessageContent))
|
//if (!string.IsNullOrWhiteSpace(auditResumeParam.MessageContent))
|
||||||
{
|
//{
|
||||||
var message = new Message
|
// var message = new Message
|
||||||
{
|
// {
|
||||||
FromUserId = userId,
|
// FromUserId = userId,
|
||||||
ToDoctorId = auditResumeParam.Id,
|
// ToDoctorId = auditResumeParam.Id,
|
||||||
Title = "Resume review results",
|
// Title = "Resume review results",
|
||||||
Content = auditResumeParam.MessageContent,
|
// Content = auditResumeParam.MessageContent,
|
||||||
HasRead = false,
|
// HasRead = false,
|
||||||
MessageTime = DateTime.Now
|
// MessageTime = DateTime.Now
|
||||||
};
|
// };
|
||||||
await _repository.AddAsync(message);
|
// await _repository.AddAsync(message);
|
||||||
success = await _repository.SaveChangesAsync();
|
// success = await _repository.SaveChangesAsync();
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseOutput.Result(success);
|
return ResponseOutput.Result(success);
|
||||||
|
|
|
@ -11,13 +11,14 @@ namespace IRaCIS.Core.Application.Services
|
||||||
{
|
{
|
||||||
private readonly IRepository<DicomInstance> _instanceRepository;
|
private readonly IRepository<DicomInstance> _instanceRepository;
|
||||||
private readonly IRepository<DicomStudy> _studyRepository;
|
private readonly IRepository<DicomStudy> _studyRepository;
|
||||||
private readonly IRepository<KeyInstance> _keyInstanceRepository;
|
//private readonly IRepository<KeyInstance> _keyInstanceRepository;
|
||||||
public InstanceService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository,
|
public InstanceService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository
|
||||||
IRepository<KeyInstance> keyInstanceRepository )
|
//,IRepository<KeyInstance> keyInstanceRepository
|
||||||
|
)
|
||||||
{
|
{
|
||||||
_instanceRepository = instanceRepository;
|
_instanceRepository = instanceRepository;
|
||||||
_studyRepository = studyRepository;
|
_studyRepository = studyRepository;
|
||||||
_keyInstanceRepository = keyInstanceRepository;
|
//_keyInstanceRepository = keyInstanceRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary> 指定资源Id,获取Dicom序列所属的实例信息列表 </summary>
|
/// <summary> 指定资源Id,获取Dicom序列所属的实例信息列表 </summary>
|
||||||
|
@ -42,11 +43,11 @@ namespace IRaCIS.Core.Application.Services
|
||||||
[HttpGet, Route("{seriesId:guid}/{tpCode?}/{key?}")]
|
[HttpGet, Route("{seriesId:guid}/{tpCode?}/{key?}")]
|
||||||
public IEnumerable<Guid> List(Guid seriesId, string tpCode, bool? key)
|
public IEnumerable<Guid> List(Guid seriesId, string tpCode, bool? key)
|
||||||
{
|
{
|
||||||
if (key != null && key.HasValue && key.Value)
|
//if (key != null && key.HasValue && key.Value)
|
||||||
{
|
//{
|
||||||
return _keyInstanceRepository.Where(s => s.TpCode == tpCode).Select(t => t.InstanceId).Distinct();
|
// return _keyInstanceRepository.Where(s => s.TpCode == tpCode).Select(t => t.InstanceId).Distinct();
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
return _instanceRepository.Where(s => s.SeriesId == seriesId).OrderBy(s => s.InstanceNumber).Select(t => t.Id);
|
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]
|
[AllowAnonymous]
|
||||||
public class SeriesService : BaseService
|
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<DicomSeries> _seriesRepository;
|
||||||
private readonly IRepository<DicomInstance> _instanceRepository;
|
private readonly IRepository<DicomInstance> _instanceRepository;
|
||||||
private readonly IRepository<DicomStudy> _studyRepository;
|
private readonly IRepository<DicomStudy> _studyRepository;
|
||||||
private readonly IRepository<KeyInstance> _keyInstanceRepository;
|
public SeriesService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository, IRepository<DicomSeries> seriesRepository
|
||||||
public SeriesService(IRepository<DicomInstance> instanceRepository, IRepository<DicomStudy> studyRepository,
|
/* IRepository<KeyInstance> keyInstanceRepository, IRepository<ImageLabel> imageLabelRepository*/)
|
||||||
IRepository<KeyInstance> keyInstanceRepository, IRepository<DicomSeries> seriesRepository, IRepository<ImageLabel> imageLabelRepository)
|
|
||||||
{
|
{
|
||||||
_seriesRepository = seriesRepository;
|
_seriesRepository = seriesRepository;
|
||||||
_instanceRepository = instanceRepository;
|
_instanceRepository = instanceRepository;
|
||||||
_studyRepository = studyRepository;
|
_studyRepository = studyRepository;
|
||||||
_keyInstanceRepository = keyInstanceRepository;
|
//_keyInstanceRepository = keyInstanceRepository;
|
||||||
_imageLabelRepository = imageLabelRepository;
|
//_imageLabelRepository = imageLabelRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,8 +19,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
CreateMap<AddInstanceDto, DicomInstance>();
|
CreateMap<AddInstanceDto, DicomInstance>();
|
||||||
|
|
||||||
CreateMap<Report, ReportDTO>();
|
|
||||||
CreateMap<ImageLabel, ImageLabelDTO>();
|
|
||||||
CreateMap<DicomSeries, DicomSeriesWithLabelDTO>();
|
CreateMap<DicomSeries, DicomSeriesWithLabelDTO>();
|
||||||
|
|
||||||
//影像上传 检查
|
//影像上传 检查
|
||||||
|
@ -73,11 +72,9 @@ namespace IRaCIS.Core.Application.Service
|
||||||
|
|
||||||
CreateMap<ImageShareCommand, ImageShare>();
|
CreateMap<ImageShareCommand, ImageShare>();
|
||||||
|
|
||||||
CreateMap<StudyDTFAddOrUpdateCommand, StudyDTF>();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CreateMap<StudyStatusDetail, StudyStatusDetailDTO>();
|
|
||||||
|
|
||||||
CreateMap<DicomInstance, DicomInstanceDTO>()
|
CreateMap<DicomInstance, DicomInstanceDTO>()
|
||||||
.ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
|
.ForMember(o => o.IsDeleted, t => t.MapFrom(u => u.DicomSerie.IsDeleted))
|
||||||
|
|
|
@ -69,7 +69,6 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public class AdReportDTO
|
public class AdReportDTO
|
||||||
{
|
{
|
||||||
public WorkloadAD ADInfo { get; set; } = new WorkloadAD();
|
|
||||||
public PreviousGlobalReadsView Global1 { get; set; } = new PreviousGlobalReadsView();
|
public PreviousGlobalReadsView Global1 { get; set; } = new PreviousGlobalReadsView();
|
||||||
public PreviousGlobalReadsView Global2 { get; set; } = new PreviousGlobalReadsView();
|
public PreviousGlobalReadsView Global2 { get; set; } = new PreviousGlobalReadsView();
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,7 @@ namespace IRaCIS.Core.Application.Service
|
||||||
{
|
{
|
||||||
CreateMap<LesionInformation, VisitLesion>();
|
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; }
|
public string TrialStatusStr { get; set; }
|
||||||
|
|
||||||
|
#region PM
|
||||||
public int? ExpetiedTaskCount { get; set; }
|
public int? ExpetiedTaskCount { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
@ -299,6 +299,9 @@ namespace IRaCIS.Core.Application.Contracts
|
||||||
|
|
||||||
public int? PendingResponseCount { get; set; }
|
public int? PendingResponseCount { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
public bool IsIQCHaveToBeDone { get; set; }
|
public bool IsIQCHaveToBeDone { get; set; }
|
||||||
public bool IsCRCHaveToBeDone { 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
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -548,7 +548,6 @@ namespace IRaCIS.Application.Services
|
||||||
|
|
||||||
await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId);
|
await _repository.BatchDeleteAsync<VisitTaskReReading>(t => t.OriginalReReadingTask.TrialId == trialId);
|
||||||
await _repository.BatchDeleteAsync<VisitTask>(t => t.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) ;
|
await _repository.BatchDeleteAsync<TrialStateChange>(t => t.TrialId == trialId) ;
|
||||||
|
|
||||||
return ResponseOutput.Ok();
|
return ResponseOutput.Ok();
|
||||||
|
|
|
@ -112,14 +112,14 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||||
|
|
||||||
|
|
||||||
StringBuilder dialogMsg = new StringBuilder();
|
StringBuilder dialogMsg = new StringBuilder();
|
||||||
//---您好,根据本系统自动识别,该受试者当前访视在IRC系统中已提交的影像检查情况如下:
|
//---您好,根据本系统自动识别,该受试者当前访视在IRC系统中已提交的影像检查情况如下:
|
||||||
dialogMsg.Append(StaticData.International("ConsistencyVerification_Img"));
|
dialogMsg.Append(StaticData.International("ConsistencyVerification_Img"));
|
||||||
var num = 0;
|
var num = 0;
|
||||||
List<ParamInfoDto> paramInfoList = new List<ParamInfoDto>();
|
List<ParamInfoDto> paramInfoList = new List<ParamInfoDto>();
|
||||||
foreach (var item in dbVisitStudyList)
|
foreach (var item in dbVisitStudyList)
|
||||||
{
|
{
|
||||||
num++;
|
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()
|
paramInfoList.Add(new ParamInfoDto()
|
||||||
{
|
{
|
||||||
Modality = item.Modality,
|
Modality = item.Modality,
|
||||||
|
@ -176,7 +176,7 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||||
if (dbExceptExcel.Count() == 0 && excelExceptDB.Count() == 0)
|
if (dbExceptExcel.Count() == 0 && excelExceptDB.Count() == 0)
|
||||||
{
|
{
|
||||||
dialogMsg.AppendLine($"<br/>");
|
dialogMsg.AppendLine($"<br/>");
|
||||||
//---核对EDC数据,完全一致, 审核通过
|
//---核对EDC数据,完全一致, 审核通过
|
||||||
dialogMsg.AppendLine(StaticData.International("ConsistencyVerification_EDCA"));
|
dialogMsg.AppendLine(StaticData.International("ConsistencyVerification_EDCA"));
|
||||||
|
|
||||||
|
|
||||||
|
@ -184,9 +184,9 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||||
dbSV.CheckState = CheckStateEnum.CVPassed;
|
dbSV.CheckState = CheckStateEnum.CVPassed;
|
||||||
dbSV.CheckUserId = _userInfo.Id;
|
dbSV.CheckUserId = _userInfo.Id;
|
||||||
dbSV.CheckPassedTime = DateTime.Now;
|
dbSV.CheckPassedTime = DateTime.Now;
|
||||||
//---核对EDC数据,完全一致
|
//---核对EDC数据,完全一致
|
||||||
dbSV.CheckResult = StaticData.International("ConsistencyVerification_EDCB");
|
dbSV.CheckResult = StaticData.International("ConsistencyVerification_EDCB");
|
||||||
//---自动核查通过
|
//---自动核查通过
|
||||||
dbSV.ManualPassReason = StaticData.International("ConsistencyVerification_Auto");
|
dbSV.ManualPassReason = StaticData.International("ConsistencyVerification_Auto");
|
||||||
|
|
||||||
//维护状态
|
//维护状态
|
||||||
|
@ -214,14 +214,19 @@ namespace IRaCIS.Core.Application.MediatR.Handlers
|
||||||
{
|
{
|
||||||
num++;
|
num++;
|
||||||
//影像检查(EDC 缺少) ConsistencyVerification_EdcL
|
//影像检查(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)
|
foreach (var item in excelExceptDB)
|
||||||
{
|
{
|
||||||
num++;
|
num++;
|
||||||
|
|
||||||
// 影像检查(IRC 缺少)
|
// 影像检查(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/>");
|
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<PreviousOther> PreviousOther { get; set; }
|
||||||
public virtual DbSet<PreviousHistory> PreviousHistory { 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<DicomStudy> DicomStudys { get; set; }
|
||||||
public virtual DbSet<DicomSeries> DicomSeries { get; set; }
|
public virtual DbSet<DicomSeries> DicomSeries { get; set; }
|
||||||
public virtual DbSet<DicomInstance> DicomInstances { 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<TrialSiteEquipmentSurvey> TrialSiteEquipmentSurvey { get; set; }
|
||||||
public virtual DbSet<TrialSiteSurvey> TrialSiteSurvey { 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