<?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 Assigning Inpatient first date to interim bills with a 1 day gap in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376220#M90275</link>
    <description>&lt;P&gt;Below is a snap shot of the table, obviously it’s bigger than this, but these are the fields I need to use.&amp;nbsp; The issue is that lines 3 and 4 are all 1 inpatient stay, with just an interim bill submitted with a 1 day "gap".&amp;nbsp; Lines 1, 2, 5 are all discrete IP stays.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to group lines 3 and 4 and assign 06/15/2017 as the IP_START_DATE to both so that a “visit”: would be (123456||06/15/2017||987654) for all lines 3 and 4. &amp;nbsp;The other part of this is that it is not always just two lines, it could be 3 or more that all combine to a &amp;gt; 90 day stay with interim bills so the lag function doesn't seem to be working for me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My idea was to make a “sub_visit” of (FK_PTY_ID||HOSP_CODE), sort by that, then list all the MEDI_START_DATE by ascending and get the “gap” from MEDI_END_DATE to MEDI_START_DATE2 (lagged).&amp;nbsp; If that “gap” is &amp;lt;= 1 then consider it all one visit.&amp;nbsp; If not, it’s a new visit.&amp;nbsp; Something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;SUB_VISIT&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;GAP&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;97&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;41&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then, reading back it will look for a gap &amp;lt;= to 1 and assign the first MEDI_START_DATE within that visit only.&amp;nbsp; (without reading all the way back to line 1, b/c is was the same member at the same provider but a very different visit months before.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;SUB_VISIT&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;GAP&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;IP_START&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;97&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2015&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;41&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had been trying to use code like this, but it will pnly look back one line.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SORT&lt;/STRONG&gt; DATA=ALLORES.SUB_VISIT&amp;nbsp; OUT=ALLORES.SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY MEDI_START_DATE;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DATA&lt;/STRONG&gt; SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET WORK.SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_S1= MEDI_START_DATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_S2 = LAG(MEDI_START_DATE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_E1 = MEDI_END_DATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_E2 = LAG(MEDI_END_DATE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GAP = MEDI_E1 - MEDI_S2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF FK_PTY_ID = LAG(FK_PTY_ID)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND HOSP_CODE = LAG(HOSP_CODE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND GAP &amp;lt;= &lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;THEN IP_START_DATE = put(MEDI_START_DATE,yymmdd10.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ELSE IP_START_DATE = put(lag(MEDI_START_DATE),yymmdd10.);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in adance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 15 Jul 2017 11:51:11 GMT</pubDate>
    <dc:creator>allores</dc:creator>
    <dc:date>2017-07-15T11:51:11Z</dc:date>
    <item>
      <title>Assigning Inpatient first date to interim bills with a 1 day gap</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376220#M90275</link>
      <description>&lt;P&gt;Below is a snap shot of the table, obviously it’s bigger than this, but these are the fields I need to use.&amp;nbsp; The issue is that lines 3 and 4 are all 1 inpatient stay, with just an interim bill submitted with a 1 day "gap".&amp;nbsp; Lines 1, 2, 5 are all discrete IP stays.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to group lines 3 and 4 and assign 06/15/2017 as the IP_START_DATE to both so that a “visit”: would be (123456||06/15/2017||987654) for all lines 3 and 4. &amp;nbsp;The other part of this is that it is not always just two lines, it could be 3 or more that all combine to a &amp;gt; 90 day stay with interim bills so the lag function doesn't seem to be working for me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My idea was to make a “sub_visit” of (FK_PTY_ID||HOSP_CODE), sort by that, then list all the MEDI_START_DATE by ascending and get the “gap” from MEDI_END_DATE to MEDI_START_DATE2 (lagged).&amp;nbsp; If that “gap” is &amp;lt;= 1 then consider it all one visit.&amp;nbsp; If not, it’s a new visit.&amp;nbsp; Something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;SUB_VISIT&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;GAP&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;97&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;41&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then, reading back it will look for a gap &amp;lt;= to 1 and assign the first MEDI_START_DATE within that visit only.&amp;nbsp; (without reading all the way back to line 1, b/c is was the same member at the same provider but a very different visit months before.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Index&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Member ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS Start&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;DOS End&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Provider ID&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;EM&gt;Created&lt;/EM&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;OBS&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;FK_PTY_ID&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_START_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;MEDI_END_DATE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;HOSP_CODE&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;SUB_VISIT&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;GAP&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;IP_START&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;.&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;02/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;03/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/30/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;97&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/01/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;07/10/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;06/15/2015&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/24/2017&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;12345987654&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;41&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;08/20/2017&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I had been trying to use code like this, but it will pnly look back one line.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt; &lt;STRONG&gt;SORT&lt;/STRONG&gt; DATA=ALLORES.SUB_VISIT&amp;nbsp; OUT=ALLORES.SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BY MEDI_START_DATE;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DATA&lt;/STRONG&gt; SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET WORK.SUB_VISIT;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_S1= MEDI_START_DATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_S2 = LAG(MEDI_START_DATE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_E1 = MEDI_END_DATE;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MEDI_E2 = LAG(MEDI_END_DATE);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GAP = MEDI_E1 - MEDI_S2;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF FK_PTY_ID = LAG(FK_PTY_ID)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND HOSP_CODE = LAG(HOSP_CODE)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AND GAP &amp;lt;= &lt;STRONG&gt;1&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;THEN IP_START_DATE = put(MEDI_START_DATE,yymmdd10.);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ELSE IP_START_DATE = put(lag(MEDI_START_DATE),yymmdd10.);&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in adance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 15 Jul 2017 11:51:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376220#M90275</guid>
      <dc:creator>allores</dc:creator>
      <dc:date>2017-07-15T11:51:11Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Inpatient first date to interim bills with a 1 day gap</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376230#M90278</link>
      <description>&lt;P&gt;A few things stand out about your question. &amp;nbsp;Areas to learn more:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;First, become more comfortable with dates. &amp;nbsp;When creating IP_START_DATE, there is no need to create it as a character variable. &amp;nbsp;Keep it as a numeric SAS date, and apply a format to it.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Second, as you have seen the LAG function won't handle everything. &amp;nbsp;Sometimes it won't even give the right answer. &amp;nbsp;If you want to retrieve the value on the previous observation, LAG has to execute on every observation (outside of any IF/THEN conditions).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Third, learning the use of a BY statement in a DATA step is vital. &amp;nbsp;There's more to learn than can be posted here, but it is vital.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All that being said, let's take a look at the problem you posted. &amp;nbsp;Here is a variation on what you posted that works with the original data set (without adding SUB_VISIT):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=original_data_set;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;by fk_pty_id hosp_code;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The following approach will get you part-way there by assigning observations to a visit, based on the gap. &amp;nbsp;Other calculations (such as when does the visit begin, when does it end) are not included here:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set original_data_set;&lt;/P&gt;
&lt;P&gt;by fk_pty_id hosp_code;&lt;/P&gt;
&lt;P&gt;gap = medi_end_date - lag(medi_start_date);&lt;/P&gt;
&lt;P&gt;if first.fk_pty_id then visit = 1;&lt;/P&gt;
&lt;P&gt;else if first.hosp_code or gap &amp;gt; 1 then visit + 1;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Take a look at just that much, and see how close it gets you to where you need to go with this.&lt;/P&gt;</description>
      <pubDate>Sat, 15 Jul 2017 13:43:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376230#M90278</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2017-07-15T13:43:21Z</dc:date>
    </item>
    <item>
      <title>Re: Assigning Inpatient first date to interim bills with a 1 day gap</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376296#M90304</link>
      <description>Thank You! This worked as a step to what I needed to get to. I switched gap to = medi_start - lag(medi_end). I appreciate the help and I am also going to learn more about the 3 bullets in your response.</description>
      <pubDate>Sun, 16 Jul 2017 02:50:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Assigning-Inpatient-first-date-to-interim-bills-with-a-1-day-gap/m-p/376296#M90304</guid>
      <dc:creator>allores</dc:creator>
      <dc:date>2017-07-16T02:50:39Z</dc:date>
    </item>
  </channel>
</rss>

