BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
galtay
Obsidian | Level 7

Hello SAS'ers,

 

I'm working with a catalog file I got from the CMS website (checking out their HCC risk model https://www.cms.gov/Medicare/Health-Plans/MedicareAdvtgSpecRateStats/Risk-Adjustors.html  After downloading and unzipping the files I came across one called "F221690P".  I managed to determine that it is a catalog file.  When I run the following code,

 

filename inf "/folders/myfolders/sasuser.v94/2017/F221690P";
libname cmshccfm "/folders/myfolders/sasuser.v94/2017";
proc cimport library=cmshccfm infile=inf;
run;

I notice a file called formats.sas7bcat appears in the file browser on the left (I'm using SAS Studio University Eddition).  I've also been able to see some high level data about the catalog using the following code,

proc catalog catalog = cmshccfm.formats;
contents stat;
run;

that produces output that looks like this ...

#       Name            Type            Create Date             Modified Date           Description                                             PgSi    BlkSi   NmBlk   LBB     LBS    Pages
1 AGEL FORMATC 09/04/2015 15:45:46 09/04/2015 15:46:21 Age should be greater or equal to the format number 4096 4096 1 405 508 1 2 AGEU FORMATC 09/04/2015 15:45:46 09/04/2015 15:46:21 Age should be less or equal to the format number 4096 4096 1 407 508 1 3 AGE_EDITS FORMATC 09/04/2015 15:45:46 09/04/2015 15:46:21 MCE AGE EDIT CATEGORIES 4096 4096 1 490 1016 1 4 FSEX FORMATC 09/04/2015 15:45:46 09/04/2015 15:46:21 SEX CATEGORIES 4096 4096 1 314 508 1 5 I0AGEY16MCE FORMATC 09/04/2015 15:46:20 09/04/2015 15:46:21 ICD10 list for MCE AGE FY 2016 EDITS 4096 4096 5 2089 2286 5 6 I0DUPV22Y16RC FORMATC 09/04/2015 15:46:20 09/04/2015 15:46:21 FY 2016 ICD10: duplicate assignments to CC V22 4096 4096 3 323 508 3 7 I0SECV22Y16RC FORMATC 09/04/2015 15:46:20 09/04/2015 15:46:21 FY 2016 ICD10: secondary assignments to CC V22 4096 4096 1 465 508 1 8 I0SEXY16MCE FORMATC 09/04/2015 15:46:21 09/04/2015 15:46:21 ICD10 list for MCE SEX FY 2016 EDITS 4096 4096 2 2275 2540 2 9 I0V22Y16RC FORMATC 09/04/2015 15:46:19 09/04/2015 15:46:21 FY 2016 ICD10 xwalk to CC V22 4096 4096 111 2256 2540 111 10 I9AGEY15MCE FORMATC 09/04/2015 15:46:02 09/04/2015 15:46:21 ICD9 list for MCE AGE FY 2015 EDITS 4096 4096 1 1503 2032 1 11 I9DUPV22Y15RC FORMATC 09/04/2015 15:46:01 09/04/2015 15:46:21 FY 2015 ICD9: duplicate assignments to CC V22 4096 4096 1 409 508 1 12 I9SEXY15MCE FORMATC 09/04/2015 15:46:02 09/04/2015 15:46:21 ICD9 list for MCE SEX FY 2015 EDITS 4096 4096 1 2653 3048 1 13 I9V22Y15RC FORMATC 09/04/2015 15:46:01 09/04/2015 15:46:21 FY 2015 ICD9 xwalk to CC V22 4096 4096 39 2706 3048 39 14 TABLE_AGE FORMATC 09/04/2015 15:45:46 09/04/2015 15:45:46 4096 4096 1 390 508 1 15 TABLE_SEX FORMATC 09/04/2015 15:45:46 09/04/2015 15:45:46 4096 4096 1 290 508 1

This seems to be equivalent to what the code snippet "List Catalog Entries" produces.   My question is how do I see the format numbers associated with these entries?  For example, the first two entries AGEU and AGEL are upper and lower age limits for a particular model.  I might be misunderstanding what is actually in this catalog file, but I feel like there is more information to see, I just dont know the commands I need to give in order to see it.  Any help appreciated! I'm attaching the file in case anyone wants to poke around on their system (note that I had to add the "txt" extension so the system would accept the upload.  in the zipfile on the CMS website the file has not extension).

1 ACCEPTED SOLUTION

Accepted Solutions
art297
Opal | Level 21

You don't have to know or type in all of the variables. The following will also work (although you'd have to change the libname):

 

proc format lib=work.formats;
  select a-zzzzzzzz  $a-$zzzzzzzz;
run;

Art, CEO, AnalystFinder.com

 

View solution in original post

5 REPLIES 5
Shmuel
Garnet | Level 18

Assuming your formats catalog is in library cmshccfm and you have the formats names 

then use next code to get the format details:

proc format lib=cmshccfm;
  select AGEL AGEU  ;    /* any format list */
run;

I have tested it with SAS UE.

art297
Opal | Level 21

You don't have to know or type in all of the variables. The following will also work (although you'd have to change the libname):

 

proc format lib=work.formats;
  select a-zzzzzzzz  $a-$zzzzzzzz;
run;

Art, CEO, AnalystFinder.com

 

galtay
Obsidian | Level 7

Thanks Art!  That does indeed expose the details I was looking for in the file.  On the off chance that anyone else is working with the CMS HCC risk models and stumbles on this question here is the full code snippet I used,

 

filename inf "/folders/myfolders/sasuser.v94/2017/F221690P";
libname cmshccfm "/folders/myfolders/sasuser.v94/2017";
proc cimport library=cmshccfm infile=inf;
run;

proc catalog catalog = cmshccfm.formats;
contents stat;
run;

proc format lib=cmshccfm.formats;
  select a-zzzzzzzz  $a-$zzzzzzzz;
run;

The output of that last "proc format" statement looks like this in SAS Studio,

 

                            ----------------------------------------------------------------------------                            
                            |       FORMAT NAME: $AGEL    LENGTH:    2   NUMBER OF VALUES:    5        |                            
                            |   MIN LENGTH:   1  MAX LENGTH:  40  DEFAULT LENGTH:   2  FUZZ:        0  |                            
                            |--------------------------------------------------------------------------|                            
                            |START           |END             |LABEL  (VER. V7|V8   04SEP2015:15:45:46)|                            
                            |----------------+----------------+----------------------------------------|                            
                            |0               |0               |0                                       |                            
                            |1               |1               |0                                       |                            
                            |2               |2               |12                                      |                            
                            |3               |3               |15                                      |                            
                            |**OTHER**       |**OTHER**       |-1                                      |                            
                            ----------------------------------------------------------------------------                            
                                                                                                                                    
                                                                                                                                    
                            ----------------------------------------------------------------------------                            
                            |       FORMAT NAME: $AGEU    LENGTH:    3   NUMBER OF VALUES:    5        |                            
                            |   MIN LENGTH:   1  MAX LENGTH:  40  DEFAULT LENGTH:   3  FUZZ:        0  |                            
                            |--------------------------------------------------------------------------|                            
                            |START           |END             |LABEL  (VER. V7|V8   04SEP2015:15:45:46)|                            
                            |----------------+----------------+----------------------------------------|                            
                            |0               |0               |0                                       |                            
                            |1               |1               |17                                      |                            
                            |2               |2               |55                                      |                            
                            |3               |3               |999                                     |                            
                            |**OTHER**       |**OTHER**       |-1                                      |                            
                            ----------------------------------------------------------------------------                            
                                                                                                                                    
                                                                                                                                    
                            ----------------------------------------------------------------------------                            
                            |                    FORMAT NAME: $AGE_EDITS LENGTH: 23                    |                            
                            |   MIN LENGTH:   1  MAX LENGTH:  40  DEFAULT LENGTH:  23  FUZZ:        0  |                            
                            |--------------------------------------------------------------------------|                            
                            |START           |END             |LABEL  (VER. 9.4     04SEP2015:15:45:46)|                            
                            |----------------+----------------+----------------------------------------|                            
                            |0               |0               |0 newborn (age 0)                       |                            
                            |1               |1               |1 pediatric (age 0 -17)                 |                            
                            |2               |2               |2 maternity (age 12-55)                 |                            
                            |3               |3               |3 adult (age 14+)                       |                            
                            |**OTHER**       |**OTHER**       |                                        |                            
                            ---------------------------------------------------------------------------- 

Follow up question, would it be possible to dump this to some form of human readable file (csv perhaps)?  Actually I suppose I could simply copy and paste this plain text from the SAS Studio "Results" page, but would be geat to have it dumped to a file.

galtay
Obsidian | Level 7

Actually, I should have looked at the SAS Studio interface for more than a few seconds.  There are buttons to download in html, rtf, and pdf.

art297
Opal | Level 21

Alternatively, you could download it to a SAS dataset. Then you could change it, run it, and/or export it to a csv or whatever kind of file you want. e.g.:

 

proc format lib=work.formats cntlout=want;;
  select a-zzzzzzzz  $a-$zzzzzzzz;
run;

Art, CEO, AnalystFinder.com

 

 

 

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 4543 views
  • 6 likes
  • 3 in conversation