DATA Step, Macro, Functions and more

Calculate duration of medication use

Reply
Contributor
Posts: 29

Calculate duration of medication use

Hi,

 

I have claims dataset that I need to calculate duration of continuous medication use for 90 days.

 

My dataset looks like this:

 

Pat_ID    fill_date               Medication     day supply           

1             01/01/2017           A                    15

1             02/01/2017           B                    20

1             03/01/2017           A                    30

1             04/01/2017           A                    30 

1            05/01/2017            A                    30

 

I am not sure if it is possible to achieve a result looking like this

Pat Id    Medication day supply   continuous day use

1             A                 15                      15

1             B                 20                       20

1             A                30                        90

1             A                30                        90 

1             A                30                        90

 

Thanks much

 

 

 

 

Super User
Super User
Posts: 9,227

Re: Calculate duration of medication use

Not directly with the info provided.  I would first assign a intake number, then you can simply group and sum and merge back on, something like (and not tested as i don't type test data in):

data have;
  set have;
  by pat_id;
  if first.pat_id then do;
    start_date=fill_date;
    end_date=fill_date;
    continuous=day_supply;
  end; 
  else if medication ne lag(medication) or fill_date ne lag(fill_date)+1 then do;
    output;
    start_date=fill_date;
    end_date=fill_date;
    continuous=day_supply;
  end;
  else do;
    end_date=fill_date;
    continuous=sum(continuous,day_supply);
  end;
run;

Basically keep a count of start_date and end_date and sum(day_intake) for each group, and output one record at the end of the group - note you need start and end to be able to merge sum() back to the data.

Ask a Question
Discussion stats
  • 1 reply
  • 133 views
  • 0 likes
  • 2 in conversation