<?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: Finding matched Diagnosis code in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677787#M204508</link>
    <description>&lt;BR /&gt;Hi ballardw,&lt;BR /&gt;No, the order is not important, finding a match is important.&lt;BR /&gt;Number of Diagnosis codes is unknown.&lt;BR /&gt;I want keep only one diagnosis code that matches, if there are duplicate codes for the same id&lt;BR /&gt;ICD10 code list not an exhaustive, it contains more codes about 100.&lt;BR /&gt;</description>
    <pubDate>Wed, 19 Aug 2020 13:29:51 GMT</pubDate>
    <dc:creator>sas33</dc:creator>
    <dc:date>2020-08-19T13:29:51Z</dc:date>
    <item>
      <title>Finding matched Diagnosis code</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677653#M204430</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have dataset with member id along with diagnosis codes, that needs to be bumped against certain icd10 code list.&lt;/P&gt;&lt;P&gt;If there a match found,&amp;nbsp;i just want to output the matched code into new column.&lt;/P&gt;&lt;P&gt;How do i achieve it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;below is the sample data.&lt;/P&gt;&lt;P&gt;member dataset&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Memberid&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8001&lt;/TD&gt;&lt;TD&gt;R413 E039 H900 NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8002&lt;/TD&gt;&lt;TD&gt;I10 R9431 R4181 Z23 E119&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8003&lt;/TD&gt;&lt;TD&gt;G9341 R4189 G4701 I639 NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8004&lt;/TD&gt;&lt;TD&gt;I2699 R413 E119 E782 E039&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8005&lt;/TD&gt;&lt;TD&gt;G4752 F0390 Z6828 R296 R2681 R413 G609 I672 NA&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8006&lt;/TD&gt;&lt;TD&gt;I63511 I10 Z6822 G3184 K3184 R4182 R4181 E538 L988 I69354 F0390 E119&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8007&lt;/TD&gt;&lt;TD&gt;M79641 R29898 E1142 R41841 I130&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8008&lt;/TD&gt;&lt;TD&gt;B348 G309 F0280 J449 NA F0390 R1312 R2689 F419 F329 E039 I10 J209 J329 R5081&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;icd10 dataset;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ICD9_10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;R413&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;R4931&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E119&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;E782&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F0390&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;L988&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;I130&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F329&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Expected Output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Memberid&lt;/TD&gt;&lt;TD&gt;Diagnosis&lt;/TD&gt;&lt;TD&gt;Match1&lt;/TD&gt;&lt;TD&gt;Match2&lt;/TD&gt;&lt;TD&gt;Match3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8001&lt;/TD&gt;&lt;TD&gt;R413 E039 H900 NA&lt;/TD&gt;&lt;TD&gt;R413&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8002&lt;/TD&gt;&lt;TD&gt;I10 R9431 R4181 Z23 E119&lt;/TD&gt;&lt;TD&gt;E119&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8003&lt;/TD&gt;&lt;TD&gt;G9341 R4189 G4701 I639 NA&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8004&lt;/TD&gt;&lt;TD&gt;I2699 R413 E119 E782 E039&lt;/TD&gt;&lt;TD&gt;R413&lt;/TD&gt;&lt;TD&gt;E119&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8005&lt;/TD&gt;&lt;TD&gt;G4752 F0390 Z6828 R296 R2681 R413 G609 I672 NA&lt;/TD&gt;&lt;TD&gt;R413&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8006&lt;/TD&gt;&lt;TD&gt;I63511 I10 Z6822 G3184 K3184 R4182 R4181 E538 L988 I69354 F0390 E119&lt;/TD&gt;&lt;TD&gt;E119&lt;/TD&gt;&lt;TD&gt;F0390&lt;/TD&gt;&lt;TD&gt;L988&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8007&lt;/TD&gt;&lt;TD&gt;M79641 R29898 E1142 R41841 I130&lt;/TD&gt;&lt;TD&gt;I130&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8008&lt;/TD&gt;&lt;TD&gt;B348 G309 F0280 J449 NA F0390 R1312 R2689 F419 F329 E039 I10 J209 J329 R5081&lt;/TD&gt;&lt;TD&gt;F0390&lt;/TD&gt;&lt;TD&gt;F329&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Tue, 18 Aug 2020 21:39:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677653#M204430</guid>
      <dc:creator>sas33</dc:creator>
      <dc:date>2020-08-18T21:39:57Z</dc:date>
    </item>
    <item>
      <title>Re: Finding matched Diagnosis code</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677683#M204445</link>
      <description>&lt;P&gt;Is the order of the values in the ICD10 data set important in this problem?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I ask because for Memberid = 8004 the match variables are in the order as they appear from left to right in that Diagnosis varible. But for Memberid = 8006 the right most match is reported in the first match position (actually in reverse of their appearance in the diagnosis variable for all three).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What is the maximum number of diagnosis codes that appears in any record? Since potentially &lt;STRONG&gt;all &lt;/STRONG&gt;of the codes could be matches then you need that many match variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What do you want to do if the same diagnosis code appears twice or more times for the same memberid? (or have you even looked).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is that an exhaustive list of ICD10 codes or are there more?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Aug 2020 02:26:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677683#M204445</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2020-08-19T02:26:19Z</dc:date>
    </item>
    <item>
      <title>Re: Finding matched Diagnosis code</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677776#M204506</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards expandtabs truncover;
input Memberid	Diagnosis &amp;amp; $80.;
cards;
8001	R413 E039 H900 NA
8002	I10 R9431 R4181 Z23 E119
8003	G9341 R4189 G4701 I639 NA
8004	I2699 R413 E119 E782 E039
8005	G4752 F0390 Z6828 R296 R2681 R413 G609 I672 NA
8006	I63511 I10 Z6822 G3184 K3184 R4182 R4181 E538 L988 I69354 F0390 E119
8007	M79641 R29898 E1142 R41841 I130
8008	B348 G309 F0280 J449 NA F0390 R1312 R2689 F419 F329 E039 I10 J209 J329 R5081
;

data icd10;
input ICD9_10 $;
cards;
R413
R4931
E119
E782
F0390
L988
I130
F329
;

data temp;
if _n_=1 then do;
 if 0 then set icd10;
 declare hash h(dataset:'icd10');
 h.definekey('icd9_10');
 h.definedone();
end;
set have;
found=0;
do i=1 to countw(Diagnosis,' ');
  temp=scan(Diagnosis,i,' '); 
  if h.check(key:temp)=0 then do;found=1;var=temp;output;end;
end;
if not found then output;
drop i found temp;
run;

proc transpose data=temp out=want prefix=match;
by memberid Diagnosis;
var var;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 19 Aug 2020 12:27:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677776#M204506</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2020-08-19T12:27:28Z</dc:date>
    </item>
    <item>
      <title>Re: Finding matched Diagnosis code</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677787#M204508</link>
      <description>&lt;BR /&gt;Hi ballardw,&lt;BR /&gt;No, the order is not important, finding a match is important.&lt;BR /&gt;Number of Diagnosis codes is unknown.&lt;BR /&gt;I want keep only one diagnosis code that matches, if there are duplicate codes for the same id&lt;BR /&gt;ICD10 code list not an exhaustive, it contains more codes about 100.&lt;BR /&gt;</description>
      <pubDate>Wed, 19 Aug 2020 13:29:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Finding-matched-Diagnosis-code/m-p/677787#M204508</guid>
      <dc:creator>sas33</dc:creator>
      <dc:date>2020-08-19T13:29:51Z</dc:date>
    </item>
  </channel>
</rss>

