************************************************************ * Project: UNC School of Medicine ROME III scoring * * * * Jobname: c:\Rome3\Rom3SAScoring3.sas * * * * Purpose: [1] Display screens for entering Rome III data * * [2] Score Rome III data to make diagnoses * * [3] Output diagnoses in a spreadsheet table * * * * Output: [1] raw data=c:\Rome3\Rom3data * * [2] final data=c:\Rome3\Rome301 * * [2] diagnoses=c:\Rome3\Rom3Diag.htm * * * * Language: SAS 9.1 for Windows XP * * * * Programmer: Yuming J.B. Hu * * Verified by: Carolyn B. Morris * * * * Date run: Summer 2007 at UNC-Chapel Hill * *************************************************************; libname rome3 'c:\Rome3'; libname library 'c:\Rome3'; options nodate nonumber ps=50 ls=130; **************************************************************** * Score Rome III data to make diagnoses * * per 'Scoring Algorithm: Rome III Diagnostic * * Questionnaire for the Adult FGIDS', pages 937-951 of * * Rome III: The Functional Gastrointestinal Disorders * * 3rd Edition edited by Douglas A. Drossman et al, 2006 * * Requires following SAS files stored in c:\rome3 *********** * [1] 'rom3data' data * * [2] 'rom3scrn' screen file * * [3] 'formats' file * ******************************************************; data rome3.rome301; set rome3.rom3data;; ******************************************* * A. Functional Esophageal Disorders *******************************************; ***************************************************** * Diagnosing A1. Functional Heartburn *****************************************************; if Q8>3 then HEARTBRN=2; * else HEARTBRN=0; label HEARTBRN = 'A1 Func HEARTBRN if NO Gastroesophageal acid reflux/histopathology-based esophageal motility disorders'; format HEARTBRN ynx.; if HEARTBRN=2 and Q9=1 then HRTBRN6m=2; * else HRTBRN6m=0; label HRTBRN6m = 'A1 HRTBRN6m: func heartburn at least 6 months'; format HRTBRN6m ynx.; ***************************************************** * Diagnosing A2. Functional Chest pain *****************************************************; if Q5>2 and Q7=0 then CHESPAIN=2; * else CHESPAIN=0; label CHESPAIN = 'A2 Func CHESTPAIN if NO histopathology-based esophageal motility disorders'; format CHESPAIN ynx.; if CHESPAIN=2 and Q6=1 then CHESPN6m=2; * else CHESPN6m=0; label CHESPN6m = 'A2 CHESPN6m: func CHESTPAIN at least 6 months?'; format CHESPN6m ynx.; ****************************************************** * Diagnosing A3. Functional Dysphagia ******************************************************; if Q10>1 and Q11=0 and Q8<4 then DYSPHAGI=2; * else DYSPHAGI=0; label DYSPHAGI = 'A3 Func DYSPHAGIA if NO histopathology-based esophageal motility disorders'; format DYSPHAGI ynx.; if DYSPHAGI=2 and Q12=1 then DYSPHG6m=2; * else DYSPHG6m=0; label DYSPHG6m = 'A3 DYSPHG6m: Functional DYSPHAGIA at least 6 months?'; format DYSPHG6m ynx.; ************************************************* * Diagnosing A4. Globus *************************************************; if Q1>2 and Q3=1 and Q10<3 and Q4=0 and Q8<3 then GLOBUS=2; * else GLOBUS=0; label GLOBUS= 'A4 GLOBUS if NO histopathology-based esophageal motility disorders'; format GLOBUS ynx.; if GLOBUS=2 and Q2=1 then GLOBUS6m=2; * else GLOBUS6m=0; label GLOBUS6m = 'A4 GLOBUS at least 6 months'; format GLOBUS6m ynx.; ******************************************* * Below are for * B. Functional Gastroduodenal Disorders *******************************************; ************************************************* * Diagnosing B1. Functional Dyspepsia *************************************************; if Q13>4 and Q14=1 then POSTPFUL=1; * else POSTPFUL=0; label POSTPFUL = 'B1a For Functional Dyspepsia: Bothersome postprandial fullness'; format POSTPFUL yn.; if Q15>4 and Q16=1 then EARLYSAT=1; * else EARLYSAT=0; label EARLYSAT = 'B1b For Functional Dyspepsia: Early satiation'; format EARLYSAT yn.; if Q17>3 and Q18=1 then EPIGASPN=1; * else EPIGASPN=0; label EPIGASPN = 'B1c For Functional Dyspepsia: Epigastric pain/burning'; format EPIGASPN yn.; if POSTPFUL=1 or EARLYSAT=1 or EPIGASPN=1 then DYSPEPS=2; * else DYSPEPS=0; label DYSPEPS = 'B1 Func DYSPEPSIA if NO structural disease explains it'; format DYSPEPS ynx.; if DYSPEPS=2 and Q18=1 then DYSPEP6m=2; * else DYSPEP6m=0; label DYSPEP6m= 'B1 Functional DYSPEPSIA for at least 6 months'; format DYSPEP6m ynx.; ******************************************************** * Diagnosing B1a. Postprandial Distress Syndrome (PDS) ********************************************************; if Q13>4 or Q15>4 then PDS=1; * else PDS=0; ** Note: NO exclusion criteria; label PDS = 'B1a Functional DYSPEPSIA: Postprandial Distress Syndrome or PDS'; format PDS yn.; if PDS=1 and Q14=1 and Q16=1 then PDS6m=1; * else PDS6m=0; label PDS6m = 'B1a Functional DYSPEPSIA: PDS at least 6 months'; format PDS6m yn.; ********************************************************************** * Diagnosing E. Functional Gallbladder and Sphincter of Oddi Disorder * Moved ahead here because this E diagnosis is a prerequisite for * diagnosing 'B1b Epigastric Pain Syndrome or EPS' next ***********************************************************************; if Q68>0 and Q69>1 and Q71>1 and Q70>1 and Q72>1 and Q46=0 and Q51=0 and Q22=0 then FNGBSOD=2; * else FNGBSOD=0; label FNGBSOD = 'E: Func Gallbladder/Sphincter of Oddi Disorder if NO structural disease explains it'; format FNGBSOD ynx.; ******************************************************** * Diagnosing B1b: Epigastric Pain Syndrome (EPS) ********************************************************; if Q17>3 and Q20>2 and Q19>1 and Q5<3 and Q8<3 and Q23=0 and FNGBSOD ne 2 then EPS=1; * else EPS=0; ** Note: Not fulfilling criteria gallbladder and sphincter of Oddi disorder; label EPS = 'B1b Func DYSPEPSIA: Epigastric Pain Syndrome EPS if NO Gallbladder&Sphincter of Oddi Disorders seen'; format EPS yn.; if EPS=1 and Q18=1 then EPS6m=1; * else EPS6m=0; label EPS6m = 'B1b Functional DYSPEPSIA: EPS for at least 6 months?'; format EPS6m yn.; ******************************************************** * Diagnosing B2: BELCHING DISORDERS ********************************************************; ******************************************************** * Diagnosing B2a: Aerophagia ********************************************************; if Q39>4 then AEROPHAG=2; * else AEROPHAG=0; ** Note: Must also show that air swallowing is objectively observed or measured; label AEROPHAG= 'B2a Belching Disorders: AEROPHAGIA if air swallowing also is seen'; format AEROPHAG ynx.; if AEROPHAG=2 and Q40=1 then AIRPHG6m=2; * else AIRPHG6m=0; label AIRPHG6m = 'B2a Belching Disorders: AEROPHAGIA for at least 6 months?'; format AIRPHG6m ynx.; ******************************************************** * Diagnosing B2b: Unspecified excessive belching ********************************************************; if Q39>4 then EXSBELCH=2; * else EXSBELCH=0; ** Note: Must show NO evidence that excessive air swallowing underlies the symptom; label EXSBELCH = 'B2b Unspecified Excessive Belching if NO excessive air swallowing explains it'; format EXSBELCH ynx.; if EXSBELCH=2 and Q40=1 then XBELCH6m=2; * else XBELCH6m=0; label XBELCH6m = 'B2b Unspecified excessive belching for at least 6 months'; format XBELCH6m ynx.; ******************************************************** * Diagnosing B3: Nausea and Vomiting Disorders ********************************************************; ******************************************************** * Diagnosing B3a: Chronic Idiopathic Nausea (CIN) ********************************************************; if Q26>4 and Q28<4 then CIN=2; * else CIN=0; ** Note: Must show Absence of abnormalities at upper endoscopy or metabolic disease that explains the nausea; label CIN = 'B3a Chronic Idiopathic Nausea or CIN if NO abnormalities@UpperEndoscopy or NO metabolic disease'; format CIN ynx.; if CIN=2 and Q27=1 then CIN6m=2; * else CIN6m=0; label CIN6m= 'B3a Chronic idiopathic nausea for at least 6 months'; format CIN6m ynx.; ********************************************************************* * Diagnosing B4: Rumination Syndrome in Adults * This precedes B3b:FncVomit because B3b diagnosis depends on B4 *********************************************************************; if Q33>3 and Q35>1 and Q36=0 then RumiSynd=1; * else RumiSynd=0; label RumiSynd = 'B4 Rumination Syndrome in Adults'; format RumiSynd yn.; if RumiSynd=1 and Q34=1 then RumSyn6m=1; * else RumSyn6m=0; label RumSyn6m = 'B4 Rumination Syndrome for at least 6 months'; format RumSyn6m yn.; ******************************************************** * Diagnosing B3b: Functional vomiting ********************************************************; if Q28>3 and RumiSynd ne 1 and Q30=0 then FncVomit=2; * else FncVomit=0; ** Note: Must show [1] Absence of criteria for an eating disorder, rumination, or major psychiatric disease according by DSM-IV, i.e. Patient does not meet criteria for Rumination Disorder, [2] Absence of self-induced vomiting and chronic cannabinoid use and absence of abnormalities in the central nervous system or metabolic diseases to explain the recurrent vomiting, and [3] Absence of abnormalities at upper endoscopy or metabolic disease that explains the nausea; label FncVOmit = 'B3b Functional vomiting if NO (eating disorder/rumination/major DSM-IV disease)'; format FncVOmit ynx.; if FncVomit=2 and Q29=1 then FVomit6m=2; * else FVomit6m=0; label FVomit6m = 'Functional vomiting for at least 6 months'; format FVomit6m ynx.; ************************************************************* * Diagnosing B3c: Cyclic Vomiting Syndrome (CVS) *************************************************************; if Q28>0 and Q32=1 and Q31>0 then CVS=1; * else CVS=0; label CVS = 'B3b Nausea/Vomiting Disorders: Cyclic Vomiting Syndrome or CVS'; format CVS yn.; ** Note: 'B3c: Cyclic Vomiting Syndrome' does not have a symptom onset at least 6 months prior to diagnosis as others do; ********************************************************************* * Diagnosing B4: Rumination Syndrome in Adults * [moved ahead of B3b because B3b diagnosis may depend on B4 *********************************************************************; ************************************************************* * Below are for * Diagnosing C. Functional Bowel Disorders *************************************************************; *************************************************************************** * Construct 3 component vars for diagnosing C1: Irritable Bowel Syndrome ****************************************************************************; /********************************************************************** C1. Irritable Bowel Syndrome Diagnostic Criteria* Recurrent abdominal pain or discomfort** at least 3 days/month in last 3 months associated with two or more of criteria #1-#3 below: Pain or discomfort at least 2-3 days/month (question 41>2) For women, does pain occur only during menstrual bleeding? (question 43=0 or 2) 1. Improvement with defecation Pain or discomfort gets better after BM at least sometimes (question 46>0) 2. Onset associated with a change in frequency of stool Onset of pain or discomfort associated with more stools at least sometimes (question 47>0), OR Onset of pain or discomfort associated with fewer stools at least sometimes (question 48>0) 3. Onset associated with a change in form (appearance) of stool Onset of pain or discomfort associated with looser stools at least sometimes (question 49>0), OR Onset of pain or discomfort associated wit harder stools at least sometimes (question 50>0) * Criteria fulfilled for the last 3 months with symptom onset at least 6 months prior to diagnosis Yes. (question 45=1) ** "Discomfort" means an uncomfortable sensation not described as pain. In pathophysiology research and clinical trials, a pain/discomfort frequency of at least two days a week is recommended for subject eligibility. Pain or discomfort more than one day per week (question 41>4) *******************************************************************************/; if Q46>0 then IBS1=1; else IBS1=0; label IBS1 = 'IBS1: 1st var to define IBS'; format IBS1 yn.; if Q47>0 or Q48>0 then IBS2=1; else IBS2=0; label IBS2 = 'IBS2: 2nd var to define IBS'; format IBS2 yn.; if Q49>0 or Q50>0 then IBS3=1; else IBS3=0; label IBS3 = 'IBS3: 3rd var to define IBS'; format IBS3 yn.; IBS3a=sum(of IBS1-IBS3); label IBS3a = 'IBS3a: sum of 3 vars to define IBS: IBS possible if IBS3a ge 2'; if Q41>2 and Q43 ne 1 and IBS3a>1 then IBS=1; * else IBS=0; label IBS = 'C1 Irritable bowel syndrome or IBS'; format IBS yn.; ** 'Q43 ne 1' so that women who felt such pain only during menses are excluded from being diagnosed IBS; if IBS=1 and Q45=1 then IBS6m=1; * else IBS6m=0; label IBS6m = 'C1 Irritable bowel syndrome or IBS for at least 6 months'; format IBS6m yn.; ** IBS variable test results indicate correct coding; /*** proc print; id id; var ibs1-ibs3 ibs3a q41 q43 ibs; run; *** OK ***/; ***************************************************************** * Diagnosing C3. Functional constipation * C3 precedes C2 [bloating] because C2 diagnosis depends on C3 *****************************************************************; if Q54>1 then CONSTIP1=1; * else CONSTIP1=0; label CONSTIP1 = 'Functional Constipation component 1: Yes/No'; format CONSTIP1 yn.; if Q53>1 then CONSTIP2=1; * else CONSTIP2=0; label CONSTIP2 = 'Functional Constipation component 2: Yes/No'; format CONSTIP2 yn.; if Q55>0 then CONSTIP3=1; * else CONSTIP3=0; label CONSTIP3 = 'Functional Constipation component 3: Yes/No'; format CONSTIP3 yn.; if Q56>0 then CONSTIP4=1; * else CONSTIP4=0; label CONSTIP4 = 'Functional Constipation component 4: Yes/No'; format CONSTIP4 yn.; if Q57>0 then CONSTIP5=1; * else CONSTIP5=0; label CONSTIP5 = 'Functional Constipation component 5: Yes/No'; format CONSTIP5 yn.; if Q52>1 then CONSTIP6=1; * else CONSTIP6=0; label CONSTIP6 = 'Functional Constipation component 6: Yes/No'; format CONSTIP6 yn.; CONSTIP7=sum(of CONSTIP1-CONSTIP6); label CONSTIP7 = 'sum of 6 Functional Constipation components'; if CONSTIP7>1 and Q61=1 and IBS ne 1 then CONSTIP=1; * else CONSTIP=0; label CONSTIP = 'C3 Functional Constipation in absence of IBS'; format CONSTIP yn.; if CONSTIP=1 and Q59=1 then CONSTP6m=1; * else CONSTP6m=0; label CONSTP6m = 'Functional Constipation for at least 6 months'; format CONSTP6m yn.; ************************************************************* * Diagnosing C2. Functional Bloating *************************************************************; ** Must have insufficient criteria for a diagnosis of functional dyspepsia, irritable bowel syndrome, or functional constipation; ** also 'Insufficient criteria for other functional GI disorder'; ** This FGID is not specified in Rome III book, presumably it means functional constipation; if Q66>2 and DYSPEPS ne 2 and IBS ne 1 and CONSTIP ne 1 then BLOATING=1; * else BLOATING=0; label BLOATING = 'C2 Functional Bloating in absence of Dyspepsia/IBS/Constipation'; format BLOATING yn.; if BLOATING=1 and Q67=1 then BLOAT6m=1; * else BLOAT6m=0; label BLOAT6m = 'C2 Functional Bloating for at least 6 months'; format BLOAT6m yn.; /*** proc print; id id; var constip1-constip7 constip dyspeps ibs bloating; run; ** OK ***/; ***************************************************************** * Diagnosing C3. Functional constipation * Moved ahead of C2 [bloating] because C2 diagnosis depends on C3 *****************************************************************; ************************************************************* * Diagnosing C4. Functional Diarrhea *************************************************************; if Q62=1 and Q41=0 then DIARRHEA=1; * else DIARRHEA=0; label DIARRHEA = 'C4 Functional Diarrhea'; format DIARRHEA yn.; if DIARRHEA=1 and Q63=1 then DIRHEA6m=1; * else DIRHEA6m=0; label DIRHEA6m = 'C4 Functional Diarrhea for at least 6 months'; format DIRHEA6m yn.; ************************************************************* * Diagnosing C5. Unspecified Functional Bowel Disorder *************************************************************; if Q41 in (1, 2) and Q45=1 then UNSPEC1=1; * else UNSPEC1=0; label UNSPEC1 ='Unspecified FuncBowelDisorder Part1'; format UNSPEC1 yn.; if Q66 in (1, 2) and Q67=1 then UNSPEC2=1; * else UNSPEC1=0; label UNSPEC2 ='Unspecified FuncBowelDisorder Part2'; format UNSPEC2 yn.; if Q54=1 and Q59=1 then UNSPEC3=1; * else * else UNSPEC3=0; label UNSPEC3 ='Unspecified FuncBowelDisorder Part3'; format UNSPEC3 yn.; if Q53=1 and Q59=1 then UNSPEC4=1; * else UNSPEC4=0; label UNSPEC4 ='Unspecified FuncBowelDisorder Part4'; format UNSPEC4 yn.; if Q55=1 and Q59=1 then UNSPEC5=1; * else UNSPEC5=0; label UNSPEC5 ='Unspecified FuncBowelDisorder Part5'; format UNSPEC5 yn.; if Q57=1 and Q59=1 then UNSPEC6=1; * else UNSPEC6=0; label UNSPEC6 ='Unspecified FuncBowelDisorder Part6'; format UNSPEC6 yn.; if Q52=1 and Q59=1 then UNSPEC7=1; * else UNSPEC7=0; label UNSPEC7 ='Unspecified FuncBowelDisorder Part7'; format UNSPEC7 yn.; if Q60=1 and Q63=1 then UNSPEC8=1; * else UNSPEC8=0; label UNSPEC8 ='Unspecified FuncBowelDisorder Part8'; format UNSPEC8 yn.; if Q58=1 and Q59=1 then UNSPEC9=1; * else UNSPEC9=0; label UNSPEC9 ='Unspecified FuncBowelDisorder Part9'; format UNSPEC9 yn.; if Q64=1 then UNSPEC10=1; * else UNSPEC10=0; label UNSPEC10 ='Unspecified FuncBowelDisorder Part0'; format UNSPEC10 yn.; if sum(of UNSPEC1-UNSPEC10)>. and IBS ne 1 and BLOATING ne 1 and CONSTIP ne 1 and DIARRHEA ne 1 then UNSPEFBD=1; * else UNSPEFBD=0; label UNSPEFBD ='C5 Unspecified Functional Bowel Disorder'; format UNSPEFBD yn.; /*** proc contents; run; proc print data=Rome3.rome302; id id; var UNSPEC0-UNSPEC9 UNSPEFBD IBS EPIGASPN EPS FAPS; run; ** OK; ***/; ************************************************************* * Below are for * Diagnosing D. Functional abdominal pain syndrome FAPS *************************************************************; **** Insufficient symptoms to meet criteria for another functional GI disorder that would explain the pain * Epigastric pain syndrome criteria not met, & * IBS criteria not met , & * Functional gallbladder or sphincter of Oddi disorders not met (FNGBSOD=No) [This replaces 'Anorectal pain criteria not met' seen on the Rome III book per Drossman/Whitehead approval April 2007 recorded by JB Hu]; if Q41=6 and Q42>0 and Q21<2 and Q46<2 and Q47<2 and Q48<2 and Q49<2 and Q50<2 and Q25<2 and Q24<2 and Q44>0 and EPS ne 1 and IBS ne 1 and FNGBSOD ne 2 then FAPS=1; * else FAPS=0; label FAPS = 'D. Functional Abdominal Pain Syndrome=FAPS if NO EPS/IBS/FNGBSOD'; format FAPS yn.; if FAPS=1 and Q45=1 then FAPS6m=1; * else FAPS6m=0; label FAPS6m = 'D. FAPS for at least at least 6 months'; format FAPS6m yn.; ******************************************************************************** * Below are for * Diagnosing E. Functional Gallbladder and Sphincter of Oddi Disorder [FNGBSOD] * Moved ahead of diagnosing 'B1b Epigastric Pain Syndrome or EPS' & because EPS diagnosis depends on it ********************************************************************************; ** CODES OMITTED **; *********************************************************************** * Diagnosing E1. Functional Gallbladder Disorder ***********************************************************************; *** Must include all of the following: 1. Criteria for Functional Biliary Disorder Yes. 2. Gallbladder is present Gallbladder has not been removed No. (question 73=0) 3. Normal liver enzymes, conjugated bilirubin and amylase/lipase No question. Laboratory studies needed; if FNGBSOD=2 and Q73=0 then FNcGalD=2; * else FNcGalD=0; label FNcGalD = 'E1 Func Gallbladder Disorder if normal liver enzymes/conjugated libirubin/amylase/lipase'; format FNcGalD ynx.; ****************************************************************** * Diagnosing E2: Functional Biliary Sphincter of Oddi disorder ******************************************************************; if FNGBSOD=2 and Q73=1 and Q74>0 then BILIARY=1; * else BILIARY=0; label BILIARY = 'E2 Functional Billiary SO Disorder if normal amylase/lipase'; format BILIARY yn.; *********************************************************************** * Diagnosing E3. Functional Pancreatic Sphincter of Oddi Disorder ***********************************************************************; *** Must include all of the following: 1. Criteria for Functional Biliary Disorder Yes. 2. Elevated amylase/lipase No question; if FNGBSOD=2 then PANCREAT=2; label PANCREAT ='E3 Func Pancreatic SO Disorder if elevated amylase/lipase'; format PANCREAT ynx.; ********************************************************************* * Below are for * Diagnosing F. Functional Anorectal Disorders * Diagnosing F1: Functional Fecal Incontinence *********************************************************************; if Q75>1 then INCONTIN=2; * else INCONTIN=0; label INCONTIN = 'F1 Func Fecal Incontinence contingent on clinical/lab/psychological assessments'; format INCONTIN ynx.; ********************************************************************************* * Diagnosing F. Functional Anorectal Disorders * Diagnosing F2. Functional Anorectal Pain * Diagnosing F2a. Chronic proctalgia *********************************************************************************; if Q78>2 and Q79=2 then PROCTALG=2; * else PROCTALG=0; label PROCTALG = 'F2a Chronic Proctalgia if NO other causes of rectal pain'; format PROCTALG ynx.; if PROCTALG=2 and Q81=1 then PROCTG6m=2; * else PROCTG6m=0; label PROCTG6m = 'Chronic proctalgia for at least 6 months'; format PROCTG6m ynx.; ********************************************************************* * Diagnosing F2. Functional Anorectal Pain * Diagnosing F2a1. Levator Ani Syndrome *********************************************************************; if PROCTALG=2 then LEVATOR=2; label LEVATOR = 'F2a1 Levator Ani Syndrome pending YES to tenderness during posterior traction on puborectalis' foramt LEVATOR ynx.; ** No question, Physical examination needed; ********************************************************************* * Diagnosing F2. Functional Anorectal Pain * Diagnosing F2a2. Unspecified Functional Anorectal Pain *********************************************************************; if PROCTALG=2 then UnspFANP=2; label UnspFANP = 'F2a2 Unspecified Functional Anorectal Pain if NO to tenderness during posterior traction on puborectalis'; format UnspFANP ynx.; ** No question, Physical examination needed; ********************************************************************* * Diagnosing F2. Functional Anorectal Pain * Diagnosing F2b. Proctalgia Fugax *********************************************************************; if Q78>1 and Q79=1 and Q80=1 then PROFUGAX=1; * else PROFUGAX=0; label PROFUGAX = 'F2b Proctalgia Fugax: For research purposes criteria must be fulfilled for 3 months'; format PROFUGAX yn.; ** For research purposes criteria must be fulfilled for 3 months; ** However, clinical diagnosis and evaluation may be made prior to 3 months; ** CODES OMITTED **; ********************************************************************* * Diagnosing F. Functional Anorectal Disorders * Diagnosing F3. Functional Defecation Disorders *********************************************************************; if (Q54>1 or Q55>1 or Q56>1 or Q57>1 or Q58>1) and (CONSTIP=1 and Q59=1) then FDD=2; * else FDD=0; label FDD = 'F3 Possbile Functional Defecation Disorders or FDD pending lab tests'; format FDD ynx.; ** Algorithm says 'AND' to require all five numbered criteria [Q54 through Q58] to be >1; ** Changed to 'OR' because screening criteria say 'A response of at least 'often' to any of these questions identifies a possible case of FDD'; ** The 'at least 6 months' query is missing; ********************************************************************* * Diagnosing F. Functional Anorectal Disorders * Diagnosing F3a. Dyssyergic Defection *********************************************************************; DYSYGDEF='Exam(s) needed to make a diagnosis'; label DYSYGDEF ='F3a DyssyergicDefection if inappropriate PelvicFloorContraction or <20% relaxation of basal testing sphincter pressure'; ********************************************************************* * Diagnosing F. Functional Anorectal Disorders * Diagnosing F3b. Inadequate Defecatory Propulsion *********************************************************************; InadDefP='Exam(s) needed to make a diagnosis'; label InadDefP ='F3ab InadequateDefecatoryPropulsion if InappropriatePropulisiveForces or <20% relaxation of anal sphincter during BM'; *END***********************************END* * END OF ROME III DIAGNOSTIC CRITERIA * *END***********************************END*; run; ** NOTE: Missing values were generated as a result of performing an operation on missing values. Each place is given by: (Number of times) at (Line):(Column). 1 at 429:18 1 at 511:10; ** NOTE: There were 1 observations read from the data set ROME3.ROM3DATA; ** NOTE: The data set ROME3.ROME301 has 1 observations and 176 variables; ************************************************************************** * ODS output of ALL diagnoses [Thanks to Carolyn B. Morris] * * Requires the follwoing files in c:\rome3 ******************************* * [1] 'rom3data' data set * * [2] 'rom3scrn' with screen specifications * * [3] 'formats' file * * *********************** * Output file='C:\rome3\Rom3Diag.htm', an html file * * Rom3Diag.htm can be opened or displayed in Windows Explorer * * and in Microsoft Excel * * When opened in Excel, the output file can be saved as an Excel file * **************************************************************************; proc sort data=rome3.rome301; by id; run; ods taGsets.MSOFFICE2K file='C:\rome3\Rom3Diag.htm' style=BANKER; proc print data=rome3.rome301 label; where id > .; by id; pageby id; id id ptname; var GENDER HEARTBRN CHESPAIN DYSPHAGI GLOBUS DYSPEPS PDS EPS AEROPHAG EXSBELCH CIN RumiSynd FncVOmit CVS IBS CONSTIP BLOATING DIARRHEA UNSPEFBD FAPS FNGBSOD FNcGalD BILIARY PANCREAT INCONTIN PROCTALG LEVATOR UnspFANP PROFUGAX FDD DYSYGDEF InadDefP; title1 'YES under each symptom label indicates diagnosis based on answers to Rome III'; title2 'YES pending Exam under each symptom suggests diagnosis pending on further examination[s]'; title3 'Objective observations/lab test/other exclusionary criteria may need be considered'; title4 'Check Scoring Algorithm on Pages 937-951 of the Rome III book for other requirements for diagnoses'; title5 'Multiple diagnoses may coexist'; run; ODS TAGSETS.MSOFFICE2K CLOSE; /************************************************************************ * along with diagnoses of symptoms lasting at least 6 months ************************************************************************ ods taGsets.MSOFFICE2K file='C:\rome3\Rom3diag6m.htm' style=BANKER; proc print data=rome3.rome301 label; by id; id id ptname; pageby id; var HEARTBRN HRTBRN6m CHESPAIN CHESPN6m DYSPHAGI DYSPHG6m GLOBUS GLOBUS6m DYSPEPS DYSPEP6m PDS PDS6m FNGBSOD EPS EPS6m AEROPHAG AIRPHG6m EXSBELCH XBELCH6m CIN CIN6m RumiSynd RumSyn6m FncVOmit FVomit6m CVS IBS IBS6m CONSTIP CONSTP6m BLOATING BLOAT6m DIARRHEA DIRHEA6m UNSPEFBD FAPS FAPS6m FNGBSOD FNcGalD BILIARY PANCREAT INCONTIN PROCTALG PROCTG6m LEVATOR UnspFANP PROFUGAX FDD DYSYGDEF InadDefP; title1 'YES under each symptom label indicates diagnosis based on answers to Rome III'; title2 'YES pending Exam under each symptom suggests diagnosis pending on further examination[s]'; title3 'Objective observations/lab test/other exclusionary criteria may need be considered'; title4 'Check Scoring Algorithm on Pages 937-951 of the Rome III book for other requirements for diagnoses'; title5 'Multiple diagnoses may coexist'; run; ODS TAGSETS.MSOFFICE2K CLOSE; ***********************************************************/;