Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

Commit

Permalink
Merge pull request #77 from thehyve/obs_end_dates
Browse files Browse the repository at this point in the history
Add end dates to observation fact table
  • Loading branch information
Spayralbe committed Jun 13, 2019
2 parents 0cb7b29 + 05e0aea commit 65c929c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
12 changes: 12 additions & 0 deletions tests/skinny_loader_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@ def test_modifier_instance_num(self):
df = self.export.observation_fact.df
self.assertEqual(len(set(df[df.modifier_cd == 'TRANSMART:SAMPLE_CODE']['instance_num'])), 2)

def test_start_date_in_observation_fact(self):
start_date_series = pd.to_datetime(self.export.observation_fact.df['start_date'])
self.assertEqual(sum(start_date_series.isnull()), 0)
self.assertEqual(max(start_date_series).date(), pd.to_datetime('2016-04-19').date())
self.assertEqual(min(start_date_series).date(), pd.to_datetime('2016-02-26').date())

def test_end_date_in_observation_fact(self):
end_date_series = pd.to_datetime(self.export.observation_fact.df['end_date'])
self.assertEqual(sum(end_date_series.isnull()), 413)
self.assertEqual(max(end_date_series.dropna()).date(), pd.to_datetime('2016-04-07').date())
self.assertEqual(min(end_date_series.dropna()).date(), pd.to_datetime('2016-03-02').date())

def test_trial_visit_dimension(self):
df = self.export.trial_visit_dimension.df
self.assertEqual(df.shape[0], 8)
Expand Down
2 changes: 2 additions & 0 deletions tmtk/toolbox/skinny_loader/i2b2demodata/observation_fact.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ def get_value_fields(values, visual_attributes_):
# Preload these, so we don't have to get them for every value in the current variable
modifiers = var.modifiers
start_date = var.start_date
end_date = var.end_date

if var.trial_visit:
trial_visit_num = var.trial_visit.values.map(self.skinny.trial_visit_dimension.get_num)
Expand All @@ -106,6 +107,7 @@ def get_value_fields(values, visual_attributes_):
'concept_cd': var.concept_code or self.skinny.concept_dimension.map.get(var_full_path),
'provider_id': '@',
'start_date': start_date.values if start_date else None,
'end_date': end_date.values if end_date else None,
'modifier_cd': '@',
'trial_visit_num': trial_visit_num,
# because of poorly suited primary key on observation_fact
Expand Down

0 comments on commit 65c929c

Please sign in to comment.