def setUp(self, **kwargs): super(MetricsEhrMultiEndpointTest, self).setUp(**kwargs) # # insert some test data # for date in iter_dates(datetime.date(2017, 12, 30), datetime.date(2018, 2, 1)): calendar_day = Calendar(day=date) CalendarDao().insert(calendar_day) # noinspection PyArgumentList participant_1 = Participant(participantId=1, biobankId=4) summary_1 = self._make_participant( participant_1, 'Alice', 'Aardvark', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4)) # noinspection PyArgumentList participant_2 = Participant(participantId=2, biobankId=5) summary_2 = self._make_participant( participant_2, 'Bo', 'Badger', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5)) self._update_ehr(summary_1, update_time=datetime.datetime(2018, 1, 5)) self._update_ehr(summary_2, update_time=datetime.datetime(2018, 1, 6))
def GET(self): params = web.input() if not params.has_key('location'): raise web.seeother('../') location_id = params.location length_update = Dbevent.updateDb(location_id) length_delete = Dbevent.deleteDb(location_id) Calendar.deleteMemcacheCity(location_id) db.put(SyncQueue(key_name=location_id, location_id=location_id, update_at=datetime.utcnow())) logging.info('update %s %d' %(location_id, length_update)) logging.info('delete %s %d' %(location_id, length_delete)) return 'ok'
def GET(self, location): web.header('Content-Type', 'text/plain;charset=UTF-8') params = web.input(type='all', length=None) # web.py post/get默认值 category = params.type # 活动类型 length = params.length # 活动长度 if length is not None and length.isdigit() and length > 0: length = int(length) else: length = None calendar = Calendar.getCalendar(location, category, length) try: return calendar.getICalendarStr() except ValueError, e: raise web.notfound()
def GET(self, location): web.header("Content-Type", "text/plain;charset=UTF-8") params = web.input(type="all", length=None) # web.py post/get默认值 category = params.type # 活动类型 length = params.length # 活动长度 if length is not None and length.isdigit() and length > 0: length = int(length) else: length = None calendar = Calendar.getCalendar(location, category, length) try: return calendar.getICalendarStr() except ValueError, e: raise web.notfound()
def test_consented_counts(self): # Set up data for date in iter_dates( datetime.date(2017, 12, 30), datetime.date(2018, 2, 1) ): calendar_day = Calendar(day=date) CalendarDao().insert(calendar_day) # noinspection PyArgumentList participant_1 = Participant(participantId=1, biobankId=4) self._make_participant( participant_1, 'Alice', 'Aardvark', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_study=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4), ) # noinspection PyArgumentList participant_2 = Participant(participantId=2, biobankId=5) self._make_participant( participant_2, 'Bo', 'Badger', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_study=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) ) # Begin testing response = self.send_get('MetricsEHR') self.assertEqual(response['metrics']['EHR_CONSENTED'], 2) self.assertEqual( response['metrics']['EHR_CONSENTED'], sum([o['total_ehr_consented'] for o in response['organization_metrics'].values()]) ) # test with organization filtering response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'organization': 'foo_a', })) self.assertEqual(response['metrics']['EHR_CONSENTED'], 1) self.assertEqual( response['metrics']['EHR_CONSENTED'], sum([o['total_ehr_consented'] for o in response['organization_metrics'].values()]) )
def setUp(self): super(ParticipantCountsOverTimeApiTest, self).setUp(use_mysql=True) self.dao = ParticipantDao() self.ps_dao = ParticipantSummaryDao() self.ps = ParticipantSummary() self.calendar_dao = CalendarDao() self.hpo_dao = HPODao() # Needed by ParticipantCountsOverTimeApi self.hpo_dao.insert(HPO(hpoId=TEST_HPO_ID, name=TEST_HPO_NAME, displayName='Test', organizationType=OrganizationType.UNSET)) self.time1 = datetime.datetime(2017, 12, 31) self.time2 = datetime.datetime(2018, 1, 1) self.time3 = datetime.datetime(2018, 1, 2) self.time4 = datetime.datetime(2018, 1, 3) # Insert 2 weeks of dates curr_date = datetime.date(2017, 12, 22) for _ in xrange(0, 14): calendar_day = Calendar(day=curr_date ) CalendarDao().insert(calendar_day) curr_date = curr_date + datetime.timedelta(days=1)
def index(): content = read_static('view/index.html') p = Calendar('nanjing') current_time = p.current content = content.replace("@@abc", current_time) return content
def test_schema(self): session = self.database.make_session() hpo = HPO(hpoId=1, name='UNSET', displayName='No organization set', organizationType=OrganizationType.UNSET) calendar = Calendar(day=datetime.date(2018, 1, 1)) code_book = CodeBook(codeBookId=1, created=datetime.datetime.now(), latest=True, name="pmi", system="http://foo/bar", version="v0.1.1") session.add(hpo) session.add(calendar) session.add(code_book) session.commit() organization = Organization(organizationId=1, externalId='org', displayName='Organization', hpoId=1) session.add(organization) session.commit() site = Site(siteId=1, siteName='site', googleGroup='*****@*****.**', mayolinkClientNumber=12345, organizationId=1) code1 = Code(codeId=1, codeBookId=1, system="a", value="b", shortValue="q", display=u"c", topic=u"d", codeType=CodeType.MODULE, mapped=True, created=datetime.datetime.now()) codeHistory1 = CodeHistory(codeId=1, codeBookId=1, system="a", value="b", shortValue="q", display=u"c", topic=u"d", codeType=CodeType.MODULE, mapped=True, created=datetime.datetime.now()) session.add(site) session.add(code1) session.add(codeHistory1) session.commit() code2 = Code(codeId=2, codeBookId=1, parentId=1, system="a", value="c", display=u"X", topic=u"d", codeType=CodeType.QUESTION, mapped=True, created=datetime.datetime.now()) codeHistory2 = CodeHistory(codeId=2, codeBookId=1, parentId=1, system="a", value="c", display=u"X", topic=u"d", codeType=CodeType.QUESTION, mapped=True, created=datetime.datetime.now()) session.add(code2) session.add(codeHistory2) session.commit() code3 = Code(codeId=3, codeBookId=1, parentId=2, system="a", value="d", display=u"Y", topic=u"d", codeType=CodeType.ANSWER, mapped=False, created=datetime.datetime.now()) codeHistory3 = CodeHistory(codeId=3, codeBookId=1, parentId=2, system="a", value="d", display=u"Y", topic=u"d", codeType=CodeType.ANSWER, mapped=False, created=datetime.datetime.now()) session.add(code3) session.add(codeHistory3) session.commit() session.commit() p = self._participant_with_defaults( participantId=1, version=1, biobankId=2, clientId='*****@*****.**', hpoId=hpo.hpoId, signUpTime=datetime.datetime.now(), lastModified=datetime.datetime.now()) ps = self._participant_summary_with_defaults( participantId=1, biobankId=2, lastModified=datetime.datetime.now(), hpoId=hpo.hpoId, firstName=self.fake.first_name(), middleName=self.fake.first_name(), lastName=self.fake.last_name(), email=self.fake.email(), zipCode='78751', dateOfBirth=datetime.date.today(), genderIdentityId=1, consentForStudyEnrollment=QuestionnaireStatus.SUBMITTED, consentForStudyEnrollmentTime=datetime.datetime.now(), numBaselineSamplesArrived=2) p.participantSummary = ps session.add(p) ph = self._participant_history_with_defaults( participantId=1, biobankId=2, clientId='*****@*****.**', hpoId=hpo.hpoId, signUpTime=datetime.datetime.now(), lastModified=datetime.datetime.now()) session.add(ph) session.commit() session.add( BiobankStoredSample(biobankStoredSampleId='WEB1234542', biobankId=p.biobankId, biobankOrderIdentifier='KIT', test='1UR10', confirmed=datetime.datetime.utcnow())) session.add( BiobankStoredSample( biobankStoredSampleId='WEB99999', # Sample ID must be unique. biobankId=p. biobankId, # Participant ID and test may be duplicated. biobankOrderIdentifier='KIT', test='1UR10', confirmed=datetime.datetime.utcnow())) pm = PhysicalMeasurements(physicalMeasurementsId=1, participantId=1, created=datetime.datetime.now(), resource='blah', final=False, logPosition=LogPosition()) pm2 = PhysicalMeasurements(physicalMeasurementsId=2, participantId=1, created=datetime.datetime.now(), resource='blah', final=True, amendedMeasurementsId=1, logPosition=LogPosition()) session.add(pm) session.add(pm2) session.commit() q1 = Measurement(measurementId=3, physicalMeasurementsId=pm.physicalMeasurementsId, codeSystem='codeSystem', codeValue='codeValue', measurementTime=datetime.datetime.now(), valueCodeSystem='valueCodeSystem', valueCodeValue='value3') session.add(q1) session.commit() m1 = Measurement(measurementId=1, physicalMeasurementsId=pm.physicalMeasurementsId, codeSystem='codeSystem', codeValue='codeValue', measurementTime=datetime.datetime.now(), bodySiteCodeSystem='bodySiteCodeSystem', bodySiteCodeValue='bodySiteCodeValue', valueString='a', valueDecimal=1.2, valueUnit='cm', valueCodeSystem='valueCodeSystem', valueCodeValue='value', valueDateTime=datetime.datetime.now(), qualifierId=q1.measurementId) session.add(m1) session.commit() m2 = Measurement(measurementId=2, physicalMeasurementsId=pm.physicalMeasurementsId, codeSystem='codeSystem', codeValue='codeValue', measurementTime=datetime.datetime.now(), valueCodeSystem='valueCodeSystem', valueCodeValue='value2', parentId=m1.measurementId, qualifierId=q1.measurementId) session.add(m2) session.commit() q = Questionnaire(questionnaireId=1, version=1, created=datetime.datetime.now(), lastModified=datetime.datetime.now(), resource='what?') qh = QuestionnaireHistory(questionnaireId=1, version=1, created=datetime.datetime.now(), lastModified=datetime.datetime.now(), resource='what?') qh.questions.append( QuestionnaireQuestion(questionnaireQuestionId=1, questionnaireId=1, questionnaireVersion=1, linkId="1.2.3", codeId=2, repeats=True)) qh.concepts.append( QuestionnaireConcept(questionnaireConceptId=1, questionnaireId=1, questionnaireVersion=1, codeId=1)) session.add(q) session.add(qh) session.commit() qr = QuestionnaireResponse(questionnaireResponseId=1, questionnaireId=1, questionnaireVersion=1, participantId=1, created=datetime.datetime.now(), resource='blah') qr.answers.append( QuestionnaireResponseAnswer(questionnaireResponseAnswerId=1, questionnaireResponseId=1, questionId=1, endTime=datetime.datetime.now(), valueSystem='a', valueCodeId=3, valueDecimal=123, valueString=self.fake.first_name(), valueDate=datetime.date.today())) session.add(qr) session.commit() mv = MetricsVersion(metricsVersionId=1, inProgress=False, complete=True, date=datetime.datetime.utcnow(), dataVersion=1) session.add(mv) session.commit() mb = MetricsBucket(metricsVersionId=1, date=datetime.date.today(), hpoId='PITT', metrics='blah') session.add(mb) session.commit()
def test_organization_counts(self): # Set up data for date in iter_dates(datetime.date(2017, 12, 30), datetime.date(2018, 2, 1)): calendar_day = Calendar(day=date) CalendarDao().insert(calendar_day) # noinspection PyArgumentList participant_1 = Participant(participantId=1, biobankId=4) summary_1 = self._make_participant( participant_1, 'A', 'Aardvark', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4)) self._update_ehr(summary_1, update_time=datetime.datetime(2018, 1, 5)) # noinspection PyArgumentList participant_2 = Participant(participantId=2, biobankId=5) summary_2 = self._make_participant( participant_2, 'B', 'Badger', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4)) self._update_ehr(summary_2, update_time=datetime.datetime(2018, 1, 5)) # noinspection PyArgumentList participant_3 = Participant(participantId=3, biobankId=6) summary_3 = self._make_participant( participant_3, 'C', 'Chicken', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5)) self._update_ehr(summary_3, update_time=datetime.datetime(2018, 1, 6)) # noinspection PyArgumentList participant_4 = Participant(participantId=4, biobankId=7) summary_4 = self._make_participant( participant_4, 'D', 'Dog', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5)) self._update_ehr(summary_4, update_time=datetime.datetime(2018, 1, 6)) self._update_ehr(summary_4, update_time=datetime.datetime(2018, 1, 7)) # Begin testing response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'start_date': '2018-01-01', 'end_date': '2018-01-08', 'interval': 'day' })) counts_by_date = { day['date']: day['metrics']['ORGANIZATIONS_ACTIVE'] for day in response['metrics_over_time'] } self.assertEqual( counts_by_date, { u'2018-01-01': 0, u'2018-01-02': 0, u'2018-01-03': 0, u'2018-01-04': 0, u'2018-01-05': 1, u'2018-01-06': 2, u'2018-01-07': 1, u'2018-01-08': 0, }) # test with organization filtering response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'start_date': '2018-01-01', 'end_date': '2018-01-08', 'interval': 'day', 'organization': 'FOO_A', })) counts_by_date = { day['date']: day['metrics']['ORGANIZATIONS_ACTIVE'] for day in response['metrics_over_time'] } self.assertEqual( counts_by_date, { u'2018-01-01': 0, u'2018-01-02': 0, u'2018-01-03': 0, u'2018-01-04': 0, u'2018-01-05': 1, u'2018-01-06': 1, u'2018-01-07': 0, u'2018-01-08': 0, }) # test organization filter multiple response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'start_date': '2018-01-01', 'end_date': '2018-01-08', 'interval': 'day', 'organization': 'FOO_A,BAR_A', })) counts_by_date = { day['date']: day['metrics']['ORGANIZATIONS_ACTIVE'] for day in response['metrics_over_time'] } self.assertEqual( counts_by_date, { u'2018-01-01': 0, u'2018-01-02': 0, u'2018-01-03': 0, u'2018-01-04': 0, u'2018-01-05': 1, u'2018-01-06': 2, u'2018-01-07': 1, u'2018-01-08': 0, })
def test_consented_counts(self): # Set up data for date in iter_dates(datetime.date(2017, 12, 30), datetime.date(2018, 2, 1)): calendar_day = Calendar(day=date) CalendarDao().insert(calendar_day) # noinspection PyArgumentList participant_1 = Participant(participantId=1, biobankId=4) self._make_participant( participant_1, 'Alice', 'Aardvark', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4), ) # noinspection PyArgumentList participant_2 = Participant(participantId=2, biobankId=5) self._make_participant(participant_2, 'Bo', 'Badger', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5)) # Begin testing response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'start_date': '2018-01-01', 'end_date': '2018-01-06', 'interval': 'day' })) counts_by_date = { day['date']: day['metrics']['EHR_CONSENTED'] for day in response['metrics_over_time'] } self.assertEqual( counts_by_date, { u'2018-01-01': 0, u'2018-01-02': 0, u'2018-01-03': 1, u'2018-01-04': 2, u'2018-01-05': 2, u'2018-01-06': 2, }) # test with organization filtering response = self.send_get('MetricsEHR', query_string=urllib.urlencode({ 'start_date': '2018-01-01', 'end_date': '2018-01-06', 'interval': 'day', 'organization': 'foo_a', })) counts_by_date = { day['date']: day['metrics']['EHR_CONSENTED'] for day in response['metrics_over_time'] } self.assertEqual( counts_by_date, { u'2018-01-01': 0, u'2018-01-02': 0, u'2018-01-03': 1, u'2018-01-04': 1, u'2018-01-05': 1, u'2018-01-06': 1, })
from model.calendar import Calendar year, month = 0, 0 while year <= 0: year = int(input("Enter a year: ")) while not 1 <= month <= 12: month = int(input("Enter a month: ")) print() c = Calendar(year, month) c.show_calendar()
def _fill_calendar_range(self, start, end): for date in self._iter_dates_in_range(start, end): self.calendar_dao.insert(Calendar(day=date))
def setUp(self, **kwargs): super(MetricsEhrMultiEndpointTest, self).setUp(**kwargs) # # insert some test data # for date in iter_dates( datetime.date(2017, 12, 30), datetime.date(2018, 2, 1) ): calendar_day = Calendar(day=date) CalendarDao().insert(calendar_day) # noinspection PyArgumentList participant_1 = Participant(participantId=1, biobankId=1) summary_1 = self._make_participant( participant_1, 'Alice', 'Aardvark', self.hpo_foo, self.org_foo_a, time_int=datetime.datetime(2018, 1, 2), time_mem=datetime.datetime(2018, 1, 3), time_study=datetime.datetime(2018, 1, 3), time_fp=datetime.datetime(2018, 1, 4) ) self._update_ehr( summary_1, update_time=datetime.datetime(2018, 1, 5) ) # noinspection PyArgumentList participant_2 = Participant(participantId=2, biobankId=2) summary_2 = self._make_participant( participant_2, 'Bo', 'Badger', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_study=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) ) self._update_ehr( summary_2, update_time=datetime.datetime(2018, 1, 6) ) # noinspection PyArgumentList participant_3 = Participant(participantId=3, biobankId=3) self._make_participant( participant_3, 'Cheryl', 'Caterpillar', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_study=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) ) participant_3.withdrawalStatus = WithdrawalStatus.NO_USE self.dao.update(participant_3) # noinspection PyArgumentList participant_4 = Participant(participantId=4, biobankId=4) self._make_participant( participant_4, 'Dan', 'Donkey', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_study=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) ) participant_4.isGhostId = True self.dao.update(participant_4) # noinspection PyArgumentList participant_5 = Participant(participantId=5, biobankId=5) self._make_participant( participant_5, 'Elia', 'Elephant', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_study=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) ) # noinspection PyArgumentList participant_6 = Participant(participantId=6, biobankId=6) self._make_participant( participant_6, 'Elia', 'Elephant', self.hpo_bar, self.org_bar_a, time_int=datetime.datetime(2018, 1, 3), time_mem=datetime.datetime(2018, 1, 4), time_fp=datetime.datetime(2018, 1, 5) )