© OCS Biometric Support 1 MedDRA data as SAS formats Jim Groeneveld, OCS Biometric Support, Leiden, the Netherlands. SGF 170 –2009 SAS Global Forum 2009.

Slides:



Advertisements
Similar presentations
CST8177 awk. The awk program is not named after the sea-bird (that's auk), nor is it a cry from a parrot (awwwk!). It's the initials of the authors, Aho,
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Chapter 3: Editing and Debugging SAS Programs. Some useful tips of using Program Editor Add line number: In the Command Box, type num, enter. Save SAS.
Macro Processor.
© OCS Consulting 1 SAS Macro Version Control Jim Groeneveld, OCS Consulting, Rosmalen, the Netherlands – SGF 2007.
Student Manager Catalog Builder An ACEware Webinar.
MODULE 4 File and Folder Management. Creating file and folder A computer file is a resource for storing information, which is available to a computer.
Chapter 6: Machine dependent Assembler Features
Memory Management (II)
Catalog: Batch delete old Patron Records How to conduct global/batch updates to records – patron Adding Faculty and Patron/Student Records Manually Standardizing.
Guide To UNIX Using Linux Third Edition
Basic And Advanced SAS Programming
Chapter 1 Program Design
Chapter 7. 2 Objectives You should be able to describe: The string Class Character Manipulation Methods Exception Handling Input Data Validation Namespaces.
1 Chapter 2 Reviewing Tables and Queries. 2 Chapter Objectives Identify the steps required to develop an Access application Specify the characteristics.
CHAPTER 6 FILE PROCESSING. 2 Introduction  The most convenient way to process involving large data sets is to store them into a file for later processing.
© OCS Biometric Support 1 Updating an MS SQL database from SAS Jim Groeneveld, OCS Biometric Support, ‘s Hertogenbosch, Netherlands. PhUSE 2010 – CC04.
Pet Fish and High Cholesterol in the WHI OS: An Analysis Example Joe Larson 5 / 6 / 09.
EVAT Solution Workshop Public. ©2013 SAP AG. All rights reserved.2 Public 1. eVAT Background 2. SARS process 3. SAP Reporting 4. Note Information 5. Short.
Homework Reading –Finish K&R Chapter 1 (if not done yet) –Start K&R Chapter 2 for next time. Programming Assignments –DON’T USE and string library functions,
Documentation 1. User Documentation 2. Technical Documentation 3. Program Documentation.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Introduction To Databases IDIA 618 Fall 2014 Bridget M. Blodgett.
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
Biostatistics Analysis Center Center for Clinical Epidemiology and Biostatistics University of Pennsylvania School of Medicine Minimum Documentation Requirements.
Linux Operations and Administration
© 2011 Octagon Research Solutions, Inc. All Rights Reserved. The contents of this document are confidential and proprietary to Octagon Research Solutions,
Homework Reading Programming Assignments
4-1 Coding Complete COBOL Programs: The PROCEDURE DIVISION Chapter 4.
© OCS Consulting The flexible extension to your IT team 1 Jim Groeneveld, OCS Consulting, ´s Hertogenbosch, Netherlands. PhUSE 2011 Comparing dataset metadata.
1 Chapter 4. To familiarize you with methods used to 1. Access input and output files 2. Read data from an input file 3. Perform simple move operations.
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
Ts_print in a few easy steps There are four screens: Entities, Data Items, Date, and Report Format.
MIS 301 Information Systems in Organizations Dave Salisbury ( )
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
©Spring 2012 Imelda Go, John Grego, Jennifer Lasecki and the University of South Carolina Chapter 17 supplement: Review of Formatting Data STAT 541.
Multiple Uses for a Simple SQL Procedure Rebecca Larsen University of South Florida.
Indexed and Relative File Processing
Section 5: Troubleshooting and Backing Up GPOs Using Group Policy Troubleshooting Tools Integration of RSoP Functionality Using Logging Options Backing.
ISU Basic SAS commands Laboratory No. 1 Computer Techniques for Biological Research Animal Science 500 Ken Stalder, Professor Department of Animal Science.
Define your Own SAS® Command Line Commands Duong Tran – Independent Contractor, London, UK Define your Own SAS® Command Line Commands Duong Tran – Independent.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
FIX Eye FIX Eye Getting started: The guide EPAM Systems B2BITS.
© OCS Biometric Support 1 SAS macro %_COUNT_ Jim Groeneveld, OCS Biometric Support, Leiden, the Netherlands. CC01 – PhUSE 2008.
© OCS Biometric Support 1 APPEND, EXECUTE and MACRO Jim Groeneveld, OCS Biometric Support, ‘s Hertogenbosch, Netherlands. PhUSE 2010 – CC05 PhUSE 2010.
Creating and Using Custom Formats for Data Manipulation and Summarization Presented by John Schmitz, Ph.D. Schmitz Analytic Solutions, LLC Certified Advanced.
NSF DUE ; Wen M. Andrews J. Sargeant Reynolds Community College Richmond, Virginia.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
1 CSC 221: Introduction to Programming Fall 2011 Input & file processing  input vs. raw_input  files: input, output  opening & closing files  read(),
Chapter 2 Getting Data into SAS Directly enter data into SAS data sets –use the ViewTable window. You can define columns (variables) with the Column Attributes.
1 EPIB 698C Lecture 1 Instructor: Raul Cruz-Cano
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
SAS ® Global Forum 2014 March Washington, DC.
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
Working Efficiently with Large SAS® Datasets Vishal Jain Senior Programmer.
SAS ® 101 Based on Learning SAS by Example: A Programmer’s Guide Chapters 5 & 6 By Ravi Mandal.
3.1 Fundamentals of algorithms
Machine dependent Assembler Features
ECONOMETRICS ii – spring 2018
Input/Output Input/Output operations are performed using input/output functions Common input/output functions are provided as part of C’s standard input/output.
Designing and Debugging Batch and Interactive COBOL Programs
Topics Introduction to File Input and Output
Machine Independent Features
E-Resources in Prospector
Topics Introduction to File Input and Output
Chapter 11: Indexing and Hashing
SPL – PS1 Introduction to C++.
Globalization Services: Spell Checking API
Writing Robust SAS Macros
Presentation transcript:

© OCS Biometric Support 1 MedDRA data as SAS formats Jim Groeneveld, OCS Biometric Support, Leiden, the Netherlands. SGF 170 –2009 SAS Global Forum 2009

© OCS Biometric Support 2 MedDRA data as SAS formats AGENDA / CONTENTS 1.Purpose: Facilitate the use of MedDRA tables in SAS 2.(Dis)advantages of permanent formats 3.What the user has to know and do 4.How the SAS formats are being built

© OCS Biometric Support 3 MedDRA data as SAS formats What is MedDRA? The Medical Dictionary for Regulatory Activities (MedDRA) Terminology is the international medical terminology developed under the auspices of the International Conference on Harmonisation (ICH) of Technical Requirements for Registration of Pharmaceuticals for Human Use. It is a hierarchical classification of terms at various levels, a coding system.

© OCS Biometric Support 4 MedDRA data as SAS formats What are MedDRA tables? MedDRA tables consist of data files in which medical terminology is coded with 8-digit numbers at various hierarchical levels: LLT, PT, HLT, HLGT and SOC (PSOC). Relations between terminology codes at adjacent levels are indicated in the tables. The relations upwards can be ambiguous (multiple) or unambiguous (unique).

© OCS Biometric Support 5 MedDRA data as SAS formats PURPOSE: Facilitate the use of MedDRA tables in SAS {1} 1.Traditionally MedDRA data tables are merged with user data with LLT codes a.MedDRA ascii data files; b.MedDRA SAS datasets; 2.Many (different, dedicated) merges; 3.Quite a lot of merging program code; 4.Resulting in large SAS datasets.

© OCS Biometric Support 6 MedDRA data as SAS formats PURPOSE: Facilitate the use of MedDRA tables in SAS {2} Instead of merging SAS datasets create MedDRA formats once and use them multiple times wherever, whenever. 1.To fetch the level names, descriptions from the level codes; 2.To fetch the higher level codes from the lower level codes.

© OCS Biometric Support 7 MedDRA data as SAS formats Advantages of permanent formats 1.No merges needed, create or update formats once and use multiple times; 2.Smaller datasets, formatted values are not part of datasets; 3.Centrally maintained formats, recreate format catalog once MedDRA updated; 4.Language support: create language specific format catalogs as desired.

© OCS Biometric Support MedDRA data as SAS formats Disadvantage of MedDRA SAS formats Many lower level codes (PT, HLT, HLGT) have multiple linked higher level codes. SAS formats yield only one formatted value for an unformatted value. SAS supports the MULTILABEL format option, which can only be applied with PROCs MEANS and TABULATE. Else apply conventional dataset merging. This will be discussed in detail later. 8

© OCS Biometric Support 9 MedDRA data as SAS formats What the user has to know The formatting system to be discussed, that creates the MedDRA format catalog consists of several SAS programs, run from MedDRA.sas: MedDRA.sas defines a few macro variables containing local filename and directory settings for these programs, the MedDRA tables and the MedDRA format catalog name and location.

© OCS Biometric Support 10 MedDRA data as SAS formats What the user has to do Given a copy of the MedDRA data tables: 1.Put the SAS programs to create the format catalog into one directory; 2.Adapt the settings in MedDRA.sas; 3.Run MedDRA.sas, from which the other programs are being included; 4.Move the generated format catalog to the FMTSEARCH directory and use it. (Formats list and examples later.)

© OCS Biometric Support 11 MedDRA data as SAS formats SAS algorithms building the formats {1} The formatting system discussed here starts from the MedDRA SAS datasets, whether already present or created from the MedDRA ascii data using the SAS programs llt.sas, pt.sas and mdhier.sas. The LLT data contain the LLT codes, their names/descriptions and their uniquely associated PT codes.

© OCS Biometric Support 12 MedDRA data as SAS formats SAS algorithms building the formats {2} The PT data contain the PT codes, their names/descriptions and their uniquely associated PSOC (primary SOC) codes. The MDHIER data contain the PT, HLT, HLGT and SOC codes, their names/ descriptions and their multiple, non- uniquely associated higher level codes. There are often multiple records per PT code in the MDHIER data (not always).

© OCS Biometric Support 13 MedDRA data as SAS formats SAS algorithms building the formats {3} The SAS program llt_fmt.sas creates the formats for the LLT names (llt_fmt) and the unique LLT to PT association / translation (llt_pt) from the LLT data. The SAS program pt_psoc.sas creates the format for the unique PT to PSOC association / translation (pt_psoc) from the PT data. The MDHIER data has ‘buggy’ PSOC data.

© OCS Biometric Support 14 MedDRA data as SAS formats SAS algorithms building the formats {4} SAS format types are (since vs. 8): a.Standard formats (unique correspondence); b.Multi-label formats (more routes/level up). The MULTILABEL type is only supported by the PROCs MEANS and TABULATE. In all other PROCs and in the DATA step only the first defined formatted value is returned from a multi-label format.

© OCS Biometric Support 15 MedDRA data as SAS formats SAS algorithms building the formats {5} The SAS program Low_High.sas creates all other (MULTILABEL) formats from the MDHIER data. These are the name formats pt_fmt, hlt_fmt, hlgt_fmt and soc_fmt, and the (MULTILABEL) translation formats pt_hlt, pt_hlgt, pt_soc, hlt_hlgt, hlt_soc and hlgt_soc.

© OCS Biometric Support 16 MedDRA data as SAS formats SAS algorithms building the formats {6} It would be preferable if the usual single (first) returned formatted value would be a value in the route from the PT to the PSOC (Primary SOC). That would mean that at least the most relevant translation would be returned. However, it appears that the route to a PSOC is not always the first one specified per PT in the MDHIER data.

© OCS Biometric Support 17 MedDRA data as SAS formats SAS algorithms building the formats {7} So the algorithm has been extended to force the “primary routes” to be the firstly defined formatted values. The word route refers to the associations between successive, adjacent level values that correspond to a defined relation between a pt and its primary soc or a secondary soc.

© OCS Biometric Support 18 MedDRA data as SAS formats SAS algorithms building the formats {8} PSOC problems in the MDHIER data: 1.Many 100s of times the PSOC indicator was missing for a PT, not ‘Y’ at all; 2.Many 100s of times the PSOC value was missing or incomplete by digits; 3.4 times HLGT codes have more than 1 PSOC due to routes from different PTs.

© OCS Biometric Support 19 MedDRA data as SAS formats SAS algorithms building the formats {9} Solution of problems with PSOCs: 1.The “Primary route” from a PT to a PSOC was taken from the PT data; 2.The correct PSOC value for a PT was uniquely taken from the PT data; 3.More than 1 PSOC per HLGT regarded valid; arbitrary which route first.

© OCS Biometric Support 20 MedDRA data as SAS formats Summary of the SAS MedDRA formats 1.llt_fmtllt_code and name (llt_name) 2.llt_ptllt to pt translation (unique) 3.pt_fmtpt_code and name (pt_name) 4.pt_hltpt to hlt translation (multilabel) 5.pt_hgltpt to hlgt translation (multilabel) 6.pt_socpt to soc translation (multilabel) 7.pt_psocpt to psoc translation (unique) 8.hlt_fmthlt_code and name (hlt_name) 9.hlt_hlgthlt to hlgt translation (multilabel) 10.hlt_sochlt to soc translation (multilabel) 11.hlgt_fmthlgt_code and name (hlgt_name) 12.hlgt_sochlgt to soc translation (multilabel) 13.soc_fmtsoc_code and name (soc_name)

© OCS Biometric Support 21 MedDRA data as SAS formats SAS variable type of MedDRA codes MedDRA codes are not meaningless strings of 8 digits in text fields, but meaningless 8 digit (8-byte) numeric values (above 10,000,000). For such meaningless, nominal identifiers I would have preferred text fields. The codes are not meant to be used in arithmetic expressions. But given the MedDRA system all SAS formats are numeric formats with either names/ descriptions or other (numeric) codes as formatted values.

© OCS Biometric Support 22 MedDRA data as SAS formats What the user does (not) need to know No need to know about programming details of the formats generating code (advanced PROC FORMAT features like CNTLIN, MULTILABEL). The full code is presented in the paper and via home.hccnet.nl/jim.groeneveld/meddrafmt Need to know about applying formats in DATA step and PROCedures in order to be able to use the generated formats (PUT and FORMAT statements).

© OCS Biometric Support 23 MedDRA data as SAS formats Examples of use of MedDRA formats {1} To fetch an HLGT translation of a PT code: hlgt_pt = INPUT(PUT(pt_code,pt_hlgt.),8.); or: hlgt_pt = %NumToNum (pt_code, pt_hlgt.) ; where: %MACRO NumToNum (Value, Format); INPUT ( PUT ( &Value, &Format ),8.) %MEND NumToNum;

© OCS Biometric Support 24 MedDRA data as SAS formats Examples of use of MedDRA formats {2} To fetch a name of an HLT code: hlt_name = PUT (hlt_code, hlt_fmt.); To fetch a SOC translation of an LLT code: soc_llt = %NumToNum ( %NumToNum ( llt_code, llt_pt.), pt_soc. ) ; To fetch an HLGT name of a PT code: hlgt_name = PUT (%NumToNum ( pt_code, pt_hlgt. ), hlgt_fmt.);

© OCS Biometric Support 25 MedDRA data as SAS formats Supported SAS versions and OSs 1.SAS vs 8.x / MS Windows 2000: MedDRA vs 5 & 6 (a prototype system) 2.SAS vs 9.x / MS Windows XP: MedDRA vs 9, 10 & 11; 3.SAS vs X.y / any operating system: expected: any future MedDRA version. 4.Any current and future human language releases of MedDRA tables if unchanged data structure

© OCS Biometric Support 26 Q&A: MedDRA data as SAS formats QUESTIONS & ANSWERS home.hccnet.nl/jim.groeneveld/meddrafmt

© OCS Biometric Support Q&A: MedDRA data as SAS formats Other classes of codes Associations between various levels of other (classes of) coding systems, e.g. ICD-9-CM or WHO-ART (included in the MedDRA distribution), could similarly be created as SAS formats. This has not (yet) been done. Developing the SAS code would basically need to be done only once too. 27