Filtering of studies is now by creation date instead of modified date.

This commit is contained in:
jpitts-uva 2022-09-15 15:36:17 -04:00
parent eb8e626d8f
commit 33016005c2
4 changed files with 26 additions and 6 deletions

View File

@ -69,8 +69,8 @@ PB_IRB_INFO_URL = environ.get('PB_IRB_INFO_URL', default=PB_BASE_URL + "current_
PB_CHECK_STUDY_URL = environ.get('PB_CHECK_STUDY_URL', default=PB_BASE_URL + "check_study/%i")
PB_PRE_REVIEW_URL = environ.get('PB_PRE_REVIEW_URL', default=PB_BASE_URL + "pre_reviews/%i")
# The earliest date a study was last modified in PB that we will import.
PB_MIN_DATE = environ.get('PB_MIN_DATE', default="2020-01-01T00:00:00.000Z")
# Only studies with a creation date greater than or equal to PB_MIN_DATE will be imported.
PB_MIN_DATE = environ.get('PB_MIN_DATE', default="2020-05-01T00:00:00.000Z")
# Ldap Configuration
LDAP_URL = environ.get('LDAP_URL', default="ldap.virginia.edu").strip('/') # No trailing slash or http://

View File

@ -34,3 +34,5 @@ LDAP_URL = 'mock'
SYNC_FILE_ROOT = 'tests/SPECS'
GIT_BRANCH = 'my_testing_branch'
PB_MIN_DATE = "2020-01-01T00:00:00.000Z"

View File

@ -470,11 +470,12 @@ class StudyService(object):
# has a reference to every available workflow (though some may not have started yet)
for pb_study in pb_studies:
try:
if pb_study.DATELASTMODIFIED:
last_modified = parser.parse(pb_study.DATELASTMODIFIED)
if pb_study.DATECREATED:
created_date = parser.parse(pb_study.DATECREATED)
else:
last_modified = parser.parse(pb_study.DATECREATED)
if last_modified.date() < StudyService.PB_MIN_DATE.date():
continue
# last_modified = parser.parse(pb_study.DATECREATED)
if created_date.date() < StudyService.PB_MIN_DATE.date():
continue
except Exception as e:
# Last modified is null or undefined. Don't import it.

View File

@ -82,3 +82,20 @@ class TestProtocolBuilder(BaseTest):
self.assertIsNotNone(response)
self.assertIn('DETAIL', response[0].keys())
self.assertIn('STATUS', response[0].keys())
@patch('crc.services.protocol_builder.requests.get')
def test_pb_startdate(self, mock_get):
# self.add_users()
# user = session.query(UserModel).first()
# ProtocolBuilderService.get_studies(user.uid)
app.config['PB_ENABLED'] = True
# app.config['PB_MIN_DATE'] = "2000-01-01T00:00:00.000Z"
mock_get.return_value.ok = True
mock_get.return_value.text = self.protocol_builder_response('user_studies.json')
# api_response = self.app.get('/v1.0/study', headers=self.logged_in_headers(), content_type="application/json")
# self.assertEqual(4, len(api_response.json))
app.config['PB_MIN_DATE'] = "2020-06-01T00:00:00.000Z"
api_response = self.app.get('/v1.0/study', headers=self.logged_in_headers(), content_type="application/json")
self.assertEqual(3, len(api_response.json))
print("Hi")