예제 #1
0
    def test_procedureGET(self):
        self.add_procedure()
        self.login()
        rv = self.client.get('/api/patient/%s/procedure' % TEST_USER_ID)

        data = json.loads(rv.data)
        self.assertEquals(
            '367336001',
            data['entry'][0]['resource']['code']['coding'][0]['code'])
        self.assertEquals(
            'Chemotherapy',
            data['entry'][0]['resource']['code']['coding'][0]['display'])
        self.assertEquals(
            Reference.patient(TEST_USER_ID).as_fhir()['reference'],
            data['entry'][0]['resource']['meta']['by']['reference'])
        last_updated = FHIR_datetime.parse(
            data['entry'][0]['resource']['meta']['lastUpdated'])
        self.assertAlmostEquals(datetime.utcnow(),
                                last_updated,
                                delta=timedelta(seconds=5))
        start_time = FHIR_datetime.parse(
            data['entry'][0]['resource']['performedPeriod']['start'])
        self.assertAlmostEquals(datetime.utcnow(),
                                start_time,
                                delta=timedelta(seconds=5))
        self.assertEquals(current_app.config.metadata.version,
                          data['entry'][0]['resource']['meta']['version'])
예제 #2
0
def test_microsecond_truncation():
    """Microseconds should be rounded in FHIR output"""
    sample = datetime.utcnow()
    sample = sample.replace(tzinfo=pytz.utc)

    if sample.microsecond == 0:
        sample = sample.replace(microsecond=1234567890)
    assert sample.isoformat() != FHIR_datetime.as_fhir(sample)

    expected = sample.replace(microsecond=0)
    assert expected.isoformat() == FHIR_datetime.as_fhir(sample)
예제 #3
0
def test_tz_aware_output():
    """FHIR_datetime.as_fhir() should always be tz aware (UTC)"""
    unaware = datetime(2016, 7, 15, 9, 20, 37, 0)

    # generate fhir - expect UTC tz info at end
    isostring = FHIR_datetime.as_fhir(unaware)
    assert isostring[-6:] == '+00:00'
예제 #4
0
def test_tz_aware_conversion():
    eastern = pytz.timezone('US/Eastern')
    aware = datetime(2016, 7, 15, 9, 20, 37, 0, eastern)
    parsed = FHIR_datetime.parse(aware.strftime("%Y-%m-%dT%H:%M:%S%z"))
    # FHIR_datetime converts to UTC and strips the tzinfo
    # for safe comparisons with other tz unaware strings
    assert parsed.tzinfo is None
    # Add it back in to confirm values match
    parsed = parsed.replace(tzinfo=pytz.utc)
    assert aware == parsed
예제 #5
0
    def test_procedureGET(self):
        self.add_procedure()
        self.login()
        response = self.client.get('/api/patient/%s/procedure' % TEST_USER_ID)

        data = response.json
        assert ('367336001'
                == data['entry'][0]['resource']['code']['coding'][0]['code'])
        assert ('Chemotherapy' ==
                data['entry'][0]['resource']['code']['coding'][0]['display'])
        assert (Reference.patient(TEST_USER_ID).as_fhir()['reference']
                == data['entry'][0]['resource']['meta']['by']['reference'])
        last_updated = FHIR_datetime.parse(
            data['entry'][0]['resource']['meta']['lastUpdated'])
        self.assertAlmostEqual(
            datetime.utcnow(), last_updated, delta=timedelta(seconds=5))
        start_time = FHIR_datetime.parse(
            data['entry'][0]['resource']['performedPeriod']['start'])
        self.assertAlmostEqual(
            datetime.utcnow(), start_time, delta=timedelta(seconds=5))
        assert (current_app.config.metadata['version']
                == data['entry'][0]['resource']['meta']['version'])
예제 #6
0
 def test_tz_unaware_conversion(self):
     unaware = datetime(2016, 7, 15, 9, 20, 37, 0)
     parsed = FHIR_datetime.parse(unaware.strftime("%Y-%m-%dT%H:%M:%S"))
     self.assertEquals(unaware, parsed)
예제 #7
0
 def test_tz_aware_conversion(self):
     eastern = pytz.timezone('US/Eastern')
     aware = datetime(2016, 7, 15, 9, 20, 37, 0, eastern)
     parsed = FHIR_datetime.parse(aware.strftime("%Y-%m-%dT%H:%M:%S%z"))
     self.assertEquals(aware, parsed)
     self.assertEquals(pytz.utc, parsed.tzinfo)
예제 #8
0
def test_tz_unaware_conversion():
    unaware = datetime(2016, 7, 15, 9, 20, 37, 0)
    parsed = FHIR_datetime.parse(unaware.strftime("%Y-%m-%dT%H:%M:%S"))
    assert unaware == parsed