<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Attempting to flag overlaps based on drug class in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588786#M75912</link>
    <description>&lt;P&gt;A reasonable (but untested, that's up to you) approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
   by user start_date;
run;

data want;
set have;
by user drug_class notsorted;
prior_end = lag(end_date);
if first.user=0 and first.drug_class=1 and start_date &amp;lt;= prior_end then flag=1;
else flag=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In this case, I'm assuming that "same day" is an overlap.&amp;nbsp; If that's not the definition, then change "&amp;lt;=" to "&amp;lt;"&lt;/P&gt;</description>
    <pubDate>Sun, 15 Sep 2019 01:41:44 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2019-09-15T01:41:44Z</dc:date>
    <item>
      <title>Attempting to flag overlaps based on drug class</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588746#M75908</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having a really hard time attempting to flag users that are concurrently using two different classes of medications. My goal is to flag any dispensing of a drug if it overlaps with a drug of another class on the start of the dispensing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have created an example data set to show what I mean. So essentially I have:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;User&lt;/TD&gt;&lt;TD&gt;Drug_Class&lt;/TD&gt;&lt;TD&gt;Year_Month&lt;/TD&gt;&lt;TD&gt;Start_date&lt;/TD&gt;&lt;TD&gt;End_Date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/01/2011&lt;/TD&gt;&lt;TD&gt;01/20/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/15/2011&lt;/TD&gt;&lt;TD&gt;02/15/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;201102&lt;/TD&gt;&lt;TD&gt;02/01/2011&lt;/TD&gt;&lt;TD&gt;02/10/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201102&lt;/TD&gt;&lt;TD&gt;02/11/2011&lt;/TD&gt;&lt;TD&gt;02/20/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/05/2011&lt;/TD&gt;&lt;TD&gt;01/20/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/15/2011&lt;/TD&gt;&lt;TD&gt;02/15/2011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/12/2011&lt;/TD&gt;&lt;TD&gt;01/30/2011&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;Where class A and Class B are two different drug classes. I only care about when there is an overlap of use of a drug in Class A and Class B, not when there is an overlap of drug in the same class. So ultimately, I would want a new flag variable that would look like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Obs&lt;/TD&gt;&lt;TD&gt;User&lt;/TD&gt;&lt;TD&gt;Drug_Class&lt;/TD&gt;&lt;TD&gt;Year_Month&lt;/TD&gt;&lt;TD&gt;Start_date&lt;/TD&gt;&lt;TD&gt;End_Date&lt;/TD&gt;&lt;TD&gt;Flag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/01/2011&lt;/TD&gt;&lt;TD&gt;01/20/2011&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/15/2011&lt;/TD&gt;&lt;TD&gt;02/15/2011&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;201102&lt;/TD&gt;&lt;TD&gt;02/01/2011&lt;/TD&gt;&lt;TD&gt;02/10/2011&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201102&lt;/TD&gt;&lt;TD&gt;02/11/2011&lt;/TD&gt;&lt;TD&gt;02/20/2011&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/05/2011&lt;/TD&gt;&lt;TD&gt;01/20/2011&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/15/2011&lt;/TD&gt;&lt;TD&gt;02/15/2011&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;201101&lt;/TD&gt;&lt;TD&gt;01/12/2011&lt;/TD&gt;&lt;TD&gt;01/30/2011&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So observation 2 doesn't get a flag because it's an overlap of a drug in the same class, but then on the dispensing in observation 3 would get a flag since it is a dispensing of a drug in class B while they were taking a drug of class A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The "Year_Month" variable is only relevant because I want to know the month in which they started concurrent use of a drug in class A and B.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any help would be greatly appreciated!&lt;/P&gt;</description>
      <pubDate>Sat, 14 Sep 2019 17:46:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588746#M75908</guid>
      <dc:creator>cmccor</dc:creator>
      <dc:date>2019-09-14T17:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Attempting to flag overlaps based on drug class</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588786#M75912</link>
      <description>&lt;P&gt;A reasonable (but untested, that's up to you) approach:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
   by user start_date;
run;

data want;
set have;
by user drug_class notsorted;
prior_end = lag(end_date);
if first.user=0 and first.drug_class=1 and start_date &amp;lt;= prior_end then flag=1;
else flag=0;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;In this case, I'm assuming that "same day" is an overlap.&amp;nbsp; If that's not the definition, then change "&amp;lt;=" to "&amp;lt;"&lt;/P&gt;</description>
      <pubDate>Sun, 15 Sep 2019 01:41:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588786#M75912</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-09-15T01:41:44Z</dc:date>
    </item>
    <item>
      <title>Re: Attempting to flag overlaps based on drug class</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588794#M75913</link>
      <description>&lt;P&gt;This will flag all overlaps:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input User Drug_Class $ Year_Month $ (Start_date End_Date) (:mmddyy10.);
format start_date end_date yymmdd10.;
datalines;
1 A 201101 01/01/2011 01/20/2011
1 A 201101 01/15/2011 02/15/2011
1 B 201102 02/01/2011 02/10/2011
1 A 201102 02/11/2011 02/20/2011
2 A 201101 01/05/2011 01/20/2011
2 B 201101 01/15/2011 02/15/2011
2 A 201101 01/12/2011 01/30/2011
;

proc sql;
select 
	a.user,
	a.drug_class as class1,
	b.drug_class as class2,
	max(a.start_date, b.start_date) as overlap_start format=yymmdd10.,
	min(a.end_date, b.end_date) as overlap_end format=yymmdd10.,
	calculated overlap_end - calculated overlap_start + 1 as overlap_days
from 
	have as a inner join
	have as b on a.user=b.user and a.drug_class &amp;lt; b.drug_class and
		max(a.start_date, b.start_date) &amp;lt;= min(a.end_date, b.end_date);
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;User 	class1 	class2 	overlap_start 	overlap_end 	overlap_days
1 	A 	B 	2011-02-01 	2011-02-10 	10
2 	A 	B 	2011-01-15 	2011-01-20 	6
2 	A 	B 	2011-01-15 	2011-01-30 	16&lt;/PRE&gt;</description>
      <pubDate>Sun, 15 Sep 2019 03:42:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Attempting-to-flag-overlaps-based-on-drug-class/m-p/588794#M75913</guid>
      <dc:creator>PGStats</dc:creator>
      <dc:date>2019-09-15T03:42:04Z</dc:date>
    </item>
  </channel>
</rss>

