*************************************************************************; * PROGRAM NAME: NYCSyndromicMacros.sas *; * DATE CREATED: Oct 2001 *; * LAST UPDATED: 10/29/03 *; * *; * PROGRAMMERS: NYC DOHMH Bureau of Communicable Disease *; * PURPOSE: Code free-text CC (chief complaint) into syndromes *; * Standardize 3-character age variable *; * Identify valid zip codes *; ************************************************************************; * NEW YORK CITY DEPARTMENT OF HEALTH AND MENTAL HYGIENE BUREAU OF COMMUNICABLE DISEASE EMERGENCY DEPARTMENT CHIEF COMPLAINT SYNDROME CODING AND OTHER MACROS CREATED Oct 2001 LAST UPDATED Oct 29, 2003 * NOTES: * To reference the macros in this program either run the program or paste the following 2 lines of code (without the asterixes) into your other program prior to referencing the macros; * filename syndcode 'c:\NYCSyndromicMacros.sas'; * %include syndcode; * YOU MUST TRANSFORM CC (CHIEF COMPLAINT) TO UPPERCASE [ie. CC=UPCASE(CC)] OR LOWER CASE STRINGS WILL BE MISSED; * The Key ID Syndromes were initially created over a period of several weeks by manually reviewing chief complaints in each category and adjusting the algorithm as needed when chief complaints were found to fall in the wrong category. * Notable features of the NYC algorithm that may differ from other syndrome coding systems are Our daily analysis uses the hierarchical, mutually-exclusive variable SYNDROME Common cold is removed from other syndrome categories Respiratory syndrome does not include Asthma unless cough, SOB, DIB etc. are mentioned in CC Diarrhea and vomiting syndromes are analyzed separately Diarrhea with vomiting is coded as diarrhea Sore Throat\pharyngitis is not included in respiratory * The code may need tuning when applied to other data sources. If you find obvious errors please let us know by email: rheffern@health.nyc.gov ddas@health.nyc.gov ***************************************************************************************; ************************************ KEY ID SYNDROMES *********************************; ***************************************************************************************; %Macro Age; * Create numeric age variable; AGE=UPCASE(AGE); IF AGE="EXP" OR AGE="?" THEN AGE=""; IF INDEX(AGE,"D") > 0 THEN AGENUM=0; ELSE IF INDEX(AGE,"W") > 0 THEN DO; WKS=1*COMPRESS(AGE,'WKS'); AGENUM=INT(WKS/52); END; ELSE IF INDEX(AGE,"M") > 0 THEN DO; MOS=1*COMPRESS(AGE,'MOS'); AGENUM=INT(MOS/12); END; ELSE AGENUM=INT(1*COMPRESS(AGE,'YRS ')); IF 0<=AGENUM<13 THEN AGECAT="A"; ELSE IF 13<=AGENUM<40 THEN AGECAT="B"; ELSE IF 40<=AGENUM<65 THEN AGECAT="C"; ELSE IF 65<=AGENUM<=120 THEN AGECAT="D"; IF 0<=AGENUM<2 THEN AGEGRP=0; ELSE IF 2<=AGENUM<5 THEN AGEGRP=1; ELSE IF 5<=AGENUM<13 THEN AGEGRP=2; ELSE IF 13<=AGENUM<18 THEN AGEGRP=3; ELSE IF 18<=AGENUM<40 THEN AGEGRP=4; ELSE IF 40<=AGENUM<65 THEN AGEGRP=5; ELSE IF 65<=AGENUM<=120 THEN AGEGRP=6; SEX=UPCASE(sex); IF SEX NOT IN ('F','M','U') then SEX=""; %Mend; %Macro Sepsis; *Includes DOA, unresponsive...; IF CC=:"UNRESPON" OR CC=:"CARDIAC ARRES" OR CC=:"SEPSI" AND INDEX(CC,"URO")=0 AND INDEX(CC,"R/O")=0 AND INDEX(CC,"RO SEPSIS")=0 THEN SEPSIS=1; ELSE DO; IF ( ( INDEX(CC,"SEPTIC") OR INDEX(CC,"SEPSIS") OR INDEX(CC,"SEPTIS") ) AND INDEX(CC,"URO")=0 AND INDEX(CC,"R/O")=0 ) OR INDEX(CC,"ARREST") OR INDEX(CC,"DOA") OR INDEX(CC,"UNRESP") OR INDEX(CC,"FOUND") OR INDEX(CC,"UNCONS") OR INDEX(CC,"BACTEREM") OR INDEX(CC,"780.0") OR INDEX(CC,"7800") OR INDEX(CC,"785.5") THEN SEPSIS=1; ELSE SEPSIS=0; END; *HYPOTENSION?; %Mend; %Macro Cold; *Common cold, remove from fever and resp syndromes; IF INDEX(cc,"STUFFI") OR INDEX(cc,"STUFFY") OR INDEX(CC,"SNEEZ") OR ( ( INDEX(CC,"NASAL") OR INDEX(CC,"NASEL") ) AND ( INDEX(CC,'CONG') OR INDEX(CC,'CONJ') OR INDEX(CC,'DRIP') OR INDEX(CC,'DISCH') OR INDEX(CC,'RUNN') OR INDEX(CC,'CONG') ) ) OR ( INDEX(CC,"RUNN") AND INDEX(CC,"NOSE") ) OR ( (INDEX(cc,"CONGESTED") OR INDEX(CC,"CONGESTION") ) AND INDEX(CC,"CHEST")=0 ) OR ( INDEX(CC,"COLD") AND INDEX(CC,"CHEST")=0 AND INDEX(CC,"SORE")=0 ) THEN COLD=1; ELSE COLD=0; %Mend; %Macro Resp; *Respiratory; IF CC=:'COUGH' OR CC=:'SOB' OR CC=:'COUGHING' OR CC=:'DIFFICULTY BREATHING' OR CC='URI' OR CC='BREATHING PROBLEMS' OR CC=:'SHORTNESS OF BREA' OR CC=:'DIFF BREA' THEN RESP=1; ELSE DO; RESP=INDEX(CC,"PNEUMON") + INDEX(CC,"GASP") + INDEX(CC,"S.O.B") + INDEX(CC,"PULMON") + INDEX(CC,"MONIA") + INDEX(CC,"INFILTR") + INDEX(CC,"CROUP") + INDEX(CC,"BRONCH") + INDEX(CC,"HYPOX") + INDEX(CC,"786.2") + INDEX(CC,"786.0") + INDEX(CC,"480") + INDEX(CC,"481") + INDEX(CC,"482")+ INDEX(CC,"483") + INDEX(CC,"465") + INDEX(CC,"466") + INDEX(CC,"484") + INDEX(CC,"485") + INDEX(CC,"486")+ INDEX(CC,"PLEUR") + INDEX(CC,"DYSPN") + INDEX(cc,"COUG")+ INDEX(cc,"COUH")+ INDEX(CC,"BREAT")+ INDEX(CC,"BEATH")+ INDEX(CC,"DIB")+ INDEX(CC,"D I B")+ INDEX(CC,"D.I.B")+ INDEX(CC,"BRATHING")+ INDEX(CC,"DIFF BR")+ INDEX(CC,"DIFF, BR")+ INDEX(CC,"URI ")+ INDEX(CC,"URI/")+ INDEX(CC,"URI;")+ INDEX(CC,"U R I")+ INDEX(CC,"URI,")+ INDEX(CC,"U.R.I")+ INDEX(cc,"SOB")+ INDEX(CC,"S O B")+ INDEX(CC,"S O B")+ INDEX(CC,"S.O.B")+ INDEX(CC,"S.OB"); IF RESP GE 1 OR ( INDEX(CC,"URTI") AND (INDEX(CC,"URTIC")=0 AND INDEX(CC,"HURT")=0) ) OR ( INDEX(CC,"CHEST") AND INDEX(CC,"CONGEST") ) OR ( INDEX(CC,"RESP") AND INDEX(CC,"RESPO")=0 ) OR ( INDEX(CC,"CAUGHT")=0 AND INDEX(CC,"CAUGH") ) OR ( INDEX(CC,"COLD") AND INDEX(CC,"CHEST") ) THEN RESP=1; ELSE RESP=0; END; %Mend; %Macro Asthma; IF CC=:"ASTHMA" OR CC=:"WHEEZING" THEN ASTHMA=1; ELSE DO; IF INDEX(CC,"ASTH") + INDEX(CC,"ASMTHA") + INDEX(CC,"ASHTMA") + INDEX(CC,"ASTMA") + INDEX(CC,"ASYHMA") + INDEX(CC,"WHEZ") + INDEX(CC,"AZTH") + INDEX(CC,"AZ ") + INDEX(CC,"AIRWAY") + ( INDEX(CC,"WHEE") - INDEX(CC,"WHEEL") ) + INDEX(CC,"490") + INDEX(CC,"491") + INDEX(CC,"492") + INDEX(CC,"493") + INDEX(CC,"COPD") + INDEX(CC,"C.O.P.D") >= 1 THEN ASTHMA=1; ELSE ASTHMA=0; END; IF ASTHMA=1 AND RESP=0 THEN ASTHnoRESP=1; ELSE ASTHnoRESP=0; %Mend; %Macro Rash; RASH= INDEX(CC,"RED BUMP") + INDEX(CC,"SHINGLE") + INDEX(CC,"VESIC") + INDEX(CC,"HERP") + INDEX(CC,"FOLLIC") + INDEX(CC,"POX") + INDEX(CC,"DERM") + INDEX(CC,"RED SPOT") + INDEX(CC,"RASH") + INDEX(CC,"ZOSTER") + INDEX(CC,"782.1"); IF ( RASH GE 1 OR ( INDEX(CC,"RUSH")>0 AND INDEX(CC,"CRUSH")=0 AND INDEX(CC,"THRUSH")=0 ) ) AND ( INDEX(CC,"DIAPER") + INDEX(CC,"CRASH") + INDEX(CC,"GENITAL") + INDEX(CC,"PUBIC") + INDEX(CC,"PUBLIC") + INDEX(CC,"PENI") + INDEX(CC,"VAG") + INDEX(CC,"GROIN") ) = 0 THEN RASH=1; ELSE RASH=0; %Mend; %Macro MVA; * To remove from body ache all over in fevflu; IF CC="MVA" THEN MVA=1; ELSE DO; IF ( INDEX(CC,"MVA") + INDEX(CC,"M.V.A") + INDEX(CC,"M V A") + INDEX(CC,"MVC") )>0 OR ( ( INDEX(CC,"PED") OR INDEX(CC,"CAR") OR INDEX(CC,"VAN") OR INDEX(CC,"TRUCK") OR INDEX(CC,"AUTO") OR INDEX(CC,"CAB") OR INDEX(CC,"MOTORCY") OR INDEX(CC,"VEHICL") OR INDEX(CC,"BUS") ) AND ( INDEX(CC,"STRUCK") OR INDEX(CC,"ACC") OR INDEX(CC,"HIT") ) ) THEN MVA=1;ELSE MVA=0; END; %Mend; %Macro Fevflu; IF CC=:"FEVER" OR CC=:"VIRAL SYND" OR CC="FLU" THEN FEVFLU=1; ELSE DO; %Mva; * To remove motor vehicle accident 'pain all over'; FEVFLU= INDEX(CC,"FEV")+ INDEX(CC,"FUO")+ INDEX(CC,"HIGH TEMP")+ INDEX(CC,"ELEVATED TEMP")+ INDEX(CC,"HI TEMP")+ INDEX(CC,"TEMP 10")+ INDEX(CC,"TEMP10")+ INDEX(CC,"SHIVER")+ INDEX(CC,'FEELING HOT')+ INDEX(CC,'FEEL HOT')+ INDEX(CC,'FEELS HOT')+ INDEX(CC,"NIGHT SWEAT")+ INDEX(CC,"FEB")+ INDEX(CC,"780.6")+ INDEX(CC,"487"); IF ( INDEX(CC,"FLUI")=0 AND INDEX(CC,"FLUS")=0 AND INDEX(CC,"FLUT")=0 AND INDEX(CC,"FLUX")=0 AND INDEX(CC,"FLU") >0 ) OR ( FEVFLU >= 1 AND INDEX(CC,"DENIES FEV")=0 ) OR ( INDEX(CC,"CHILL")>0 AND INDEX(CC,"ACHILLES")=0 ) OR INDEX(CC,"PAIN ALL OVER")>0 OR ( INDEX(CC,"BODY")>0 AND INDEX(CC," ACHE")>0 ) OR ( INDEX(CC,"BODY")>0 AND INDEX(CC,"PAIN")>0 AND ( INDEX(CC,"ALL")>0 OR INDEX(CC,"TOTAL")>0 ) AND INDEX(CC,"SIDE")=0 ) OR ( INDEX(CC,"GEN")>0 AND ( INDEX(CC,"BODY")>0 OR INDEX(CC,"MALAIS")>0) ) AND INDEX(CC,"ITCH")=0 AND INDEX(CC,"RASH")=0 OR ( INDEX(CC,"VIRAL")>0 AND ( INDEX(CC,"INF")>0 OR INDEX(CC,"SYN")>0 OR INDEX(CC,"ILL")>0 ) ) AND MVA=0 AND INDEX(CC,"HAY FEV")=0 THEN FEVFLU=1;ELSE FEVFLU=0; END; %Mend; %Macro Diar; *Diarrhea with or without vomiting; IF CC=:"DIAR" THEN DIAR=1; ELSE DO; IF ( INDEX(CC,"DIAR") + INDEX(CC,"DAIR") + INDEX(CC,"DIAH") + INDEX(CC,"DEARRH") + INDEX(CC,"DIRRHE") + INDEX(CC,"DIAAR") + INDEX(CC,"ENTERI") + INDEX(CC,"GASTROEN") + INDEX(CC,"558") ) >= 1 OR ( ( INDEX(CC,"STOOL") OR INDEX(CC,"BOWEL") OR INDEX(CC,"BM") ) AND ( INDEX(CC,"LOOSE") OR INDEX(CC,"WATERY") OR INDEX(CC,"LIQUID") ) AND NOT ( INDEX(CC,"NO STOOL") OR ( INDEX(CC,"PASS ") AND INDEX(CC,"STOOL") ) ) ) OR ( INDEX(CC,"STOM") AND ( INDEX(CC,"VIR") OR INDEX(CC,"FLU") ) AND ( INDEX(CC,"STOMY")+INDEX(CC,"YSTOM") )=0 ) THEN DIAR=1; ELSE DIAR=0; END; %Mend; %Macro Vomit; VOMIT= INDEX(CC,"THROWING UP") + INDEX(CC,"THREW UP") + INDEX(CC,"FOOD POIS") + INDEX(CC,"VOM") + INDEX(CC,"VMT") + INDEX(CC,"N/V") + INDEX(CC,"787.0"); IF VOMIT GE 1 AND INDEX(CC,"VAG")=0 AND INDEX(CC,"BLOOD")=0 THEN VOMIT=1; ELSE VOMIT=0; %Mend; %Macro Syndrome;*Hierarchical syndrome variable; *The following macros define syndromes independently so some overlap (not much); %Sepsis; %Cold; %Resp; %Asthma; %Rash; %FevFlu; %Diar; %Vomit; *Define hierarchy of mutually exclusive syndromes; SYNDROME=0; IF SEPSIS THEN SYNDROME=1; ELSE IF COLD THEN SYNDROME=5; ELSE IF RESP THEN SYNDROME=2; ELSE IF DIAR THEN SYNDROME=6; ELSE IF FEVFLU THEN SYNDROME=4; ELSE IF RASH THEN SYNDROME=3; ELSE IF ASTHMA THEN SYNDROME=7; ELSE IF VOMIT THEN SYNDROME=8; %Mend; **** CODE FOR LINELISTS: RARE, COMBINATION SYNDROMES *****; %Macro FevChest; *Based on our former Anthracis definition; IF (INDEX(CC,"CHEST") OR INDEX(CC,"CP") OR INDEX(CC,"PLEUR") OR INDEX(CC,"TIGHTNESS") OR INDEX(CC,"ANGINA")) AND INDEX(CC,"CONGEST")=0 AND INDEX(CC,"COLD")=0 THEN CHEST=1; ELSE CHEST=0; IF CHEST AND ( INDEX(CC,"FEV")+ INDEX(CC,"HIGH TEMP") + INDEX(CC,"TEMP 10")+INDEX(CC,"TEMP10") + INDEX(CC,"SHIVER") + INDEX(CC,"NIGHT SWEAT")+ INDEX(CC,"FEB")+ INDEX(CC,"CHILL")+ INDEX(CC,"780.6"))>0 THEN FEVCHEST=1; ELSE FEVCHEST=0; ANTHRACIS=FEVCHEST; IF index(cc,"ANTHRAX")>0 or index (cc, "RAX")>0 or index (cc, "POWDER")>0 THEN mention=1 ; %Mend; %Macro RashFev; *Smallpox; IF (RASH AND FEVFLU AND INDEX(CC,"FAC")) OR (INDEX(CC,"POX")>0 AND INDEX(CC,"HYPOXI")=0) THEN RASHFEV=1; ELSE RASHFEV=0; %Mend; %Macro RespBlood; *Plague; IF RESP=1 AND ( INDEX(cc,"BLOOD") OR INDEX(CC,"HEMOPTYS") ) THEN RESPBLOOD=1; ELSE RESPBLOOD=0; IF RESPBLOOD=1 THEN PLAGUE=1; %Mend; ***** Poisoning ****; %Macro PoisonIvy; *Used to get rid of things for poisoning macro; IF INDEX(CC,"POISON IVY")+ INDEX(CC,"POISON INY")+ INDEX(CC,"POISON IVEY") + INDEX(CC,"POISON IVUY")+ INDEX(CC,"POISONIVY")+ INDEX(CC,"POISON OAK") + INDEX(CC,"POISIN IVY")+ INDEX(CC,"POISIN IVEY")+ INDEX(CC,"POISIN IVUY") + INDEX(CC,"POISEN IVY")+ INDEX(CC,"POISEN IVEY")+ INDEX(CC,"POISEN IVUY") + INDEX(CC,"POISONIVEY")+ INDEX(CC,"POISONIVUY") + INDEX(CC,"POISONOAK") + INDEX(CC,"PIOSON IVY")+ INDEX(CC,"PIOSON IVEY")+ INDEX(CC,"PIOSON IVUY") =1 THEN POISONIVY=1; ELSE POISONIVY=0; %Mend; %Macro ODMisc; *Used to get rid of things for poisoning macro; IF INDEX (CC,"ODE") + INDEX(CC,"ODF") + INDEX(CC,"ODO") + INDEX(CC,"ODY") =1 THEN ODMISC=1; ELSE ODMISC=0; %Mend; %Macro Poisoning; *Poisoning macro for line list; IF INDEX(CC,"POISON")+ INDEX(CC,"POISIN")+ INDEX(CC,"POISEN") + INDEX(CC,"POIZEN") + INDEX(CC,"POIZON")+ INDEX(CC,"PIOSON")+ INDEX(CC,"PIOSIN")+ INDEX(CC,"PIOSEN") + INDEX(CC,"PIOZEN") + INDEX(CC,"PIOZON") + INDEX(CC,"OVERDOSE") + INDEX(CC,"OD") + INDEX(CC,"INGEST") =1 AND POISONIVY=0 AND ODMISC=0 THEN POISONING=1; ELSE POISONING=0; %Mend; ***************************************************************************************; ******************************** MISCELLANEOUS SYNDROMES ******************************; ***************************************************************************************; ** NOTE: THE SYNDROMES BELOW HAVE NOT BEEN USED VERY MUCH SO ARE LIKELY TO CONTAIN ERRORS AND OMMISSIONS; %Macro BloodyDiar; IF ( INDEX(CC,"BLOOD")+ INDEX(CC,"BLODD")+ INDEX(CC,"BLEED")+ INDEX(CC,"BLACK")+ INDEX(CC,"TARRY")+ INDEX(CC,"DARK") ) >0 AND ( ( INDEX(CC,"STOOL")+ INDEX(CC,"GI")+ INDEX(CC,"DIAR") )>0 AND INDEX(CC,"VAG")=0 AND INDEX(CC,"GINAL")=0 ) OR INDEX(CC,"HEMATEMES") OR INDEX(CC,"COFFEE GROUND") OR INDEX(CC,"MELENA") OR INDEX(CC,"BRBPR") THEN BLOODYDIAR=1; ELSE BLOODYDIAR=2; %Mend; %Macro Smoke; IF (INDEX (CC, "SMOKE INH")) THEN SMOKE=1; ELSE SMOKE=0; %mend; %Macro Nausea; IF (INDEX(CC,"NAUS") + INDEX(CC,"NUASEA"))>0 THEN NAUSEA=1; ELSE NAUSEA=0; %Mend; %Macro Headache; IF (INDEX(CC,"HEADAC")+INDEX(CC,"HEDAC")+INDEX(CC,"HAEDAC")+INDEX(CC,"HEADCA")+INDEX(CC,"HEAD AC")+ INDEX(CC," HA ")+INDEX(CC,"HEADAHC")+INDEX(CC,"MIGRAIN"))>0 THEN HEADACHE=1; ELSE HEADACHE=0; IF CC IN ('HA') THEN HEADACHE=1; %Mend; %Macro Bike; IF (INDEX(CC,"BICYCL")+INDEX(CC,"BIKE"))>0 THEN BIKE=1;ELSE BIKE=0; %Mend; %Macro ETOH; IF (INDEX(CC,"ALCO")+INDEX(CC,"ETOH")+INDEX(CC,"E T O H")+INDEX(CC,"DRINKING")+ INDEX(CC,"DRUNK")+INDEX(CC,"DRANK")+INDEX(CC,"TOO MUCH TO DRINK")+ INDEX(CC,"E.T.O.H")+INDEX(CC,"INTOX")+INDEX(CC,"DETOX")+INDEX(CC,"DTOX")+INDEX(CC,"AOB")+INDEX(CC,"A.O.B."))>0 THEN ETOH=1;ELSE ETOH=0; %mend; *EDP; %Macro Drugs; * should detox be here instead of in etoh??; IF (INDEX(CC,"OVERDOSE")+INDEX(CC,"OVER DOSE")+INDEX(CC,"METHADON")+INDEX(CC,"HEROIN")+INDEX(CC,"DRUG ABUSE")+ INDEX(CC,"DRUG OD")+INDEX(CC,"CRACK")+INDEX(CC,"MARIJ")+INDEX(CC,"OPIO")+ INDEX(CC,"SUBSTANCE ABUSE")+INDEX(CC,"SUB ABUSE")+INDEX(CC,"SHOOTING DRUGS")+INDEX(CC,"COCAINE")+INDEX(CC,"WITHDRAW")+ INDEX(CC,"ECSTACY")+INDEX(CC,"TOOK PILLS")+INDEX(CC,"304.9"))>0 OR CC IN ('OD','O.D.','O.D','OD OF PILLS') THEN DRUGS=1; ELSE DRUGS=0; %Mend; %Macro Bites; IF INDEX(CC,"BIT")>0 AND ( INDEX(CC,"INSECT")=0 AND INDEX(CC,"SPIDER")=0 AND INDEX(CC,"MOSQUITO")=0 AND INDEX(CC,"PHLEBIT")=0 AND INDEX(CC,"RBIT")=0 AND INDEX(CC,"CUBIT")=0 AND INDEX(CC,"HABIT")=0 AND INDEX(CC,"THING BIT")=0 AND INDEX(CC,"LITTLE")=0 AND INDEX(CC,"FLEA BITE")=0 AND INDEX(CC,"BITTER")=0 ) then bite=1; ELSE BITE=0; IF INDEX(CC,"DOG")>0 THEN DOG=1; ELSE DOG=0; IF BITE=1 and DOG=1 THEN DOGBITE=1; IF INDEX(CC,"CAT")>0 THEN CAT=1; ELSE CAT=0; IF BITE=1 and CAT=1 THEN CATBITE=1; IF ( INDEX(CC,"MOUSE") + INDEX(CC,"MICE") + INDEX(CC,"RODENT") + INDEXW(CC,"RAT") ) > 0 THEN RODENT=1; IF BITE=1 AND RODENT=1 THEN RODENTBITE=1; * HUMAN BITE,TICK, INSECT, BUG; *CAT SCRATCH; *RABIES VACCINE; *BEE STING; *SNAKE; %Mend; %Macro Pain; IF ( INDEX(CC,'PAIN')+INDEX(CC,'PIAN ')+INDEX(CC,'HURT')+INDEX(CC,'STRAIN')+INDEX(CC,'DISCOMF')+ INDEX(CC,'ACHE')+INDEX(CC,'PN')+ INDEX(CC,'PX')+INDEX(CC,'DISCOMF') )>0 THEN PAIN=1; ELSE PAIN=0; %Mend; %Macro MI; *Heart attack; IF (INDEX(CC," MI ") OR INDEX(CC,"M.I.") OR SUBSTR(CC,1,3)='MI ' OR INDEX(CC,"HEART ATT") OR INDEX(CC,"HEART FAIL") OR INDEX(CC,"INFARCT") OR INDEX(CC,"ARREST") OR INDEX(CC,"CHF") OR INDEX(CC,"C.H.F.") ) AND (INDEX(CC,"UNDER")+INDEX(CC,"NYPD")+INDEX(CC,"RESISTED"))=0 THEN MI=1;ELSE MI=0; %Mend; %Macro Cardiac; IF MI=1 OR INDEX(CC,"CARDIAC") OR INDEX(CC,"CORONARY") OR INDEX(CC,"EDP") OR INDEX(CC,"E.D.P") OR INDEX(CC,"E.D.P") OR INDEX(CC,"TIA") OR INDEX(CC,"PVB") OR INDEX(CC,"LBP") OR INDEX(CC,"EKG") OR INDEX(CC,"E.K.G") OR INDEX(CC,"PALPITAT") OR INDEX(CC,"PALPATAT") OR INDEX(CC,"TACHYCARD") OR INDEX(CC,"AFIB") OR (INDEX(CC,"HEART") AND INDEX(CC,'BURN')=0) THEN CARDIAC=1;ELSE CARDIAC=0; %Mend; %Macro CP; *CHEST PAIN; IF ( ( INDEX(CC,'CHEST')+INDEX(CC,'QUADRANT')+INDEX(CC,'RLQ')+INDEX(CC,'R.L.Q')+ INDEX(CC,'RUQ')+INDEX(CC,'R.U.Q')+INDEX(CC,'LLQ')+INDEX(CC,'L.L.Q')+INDEX(CC,'LUQ')+INDEX(CC,'L.U.Q') )>0 AND (PAIN=1 OR INDEX(CC,'PRESSURE') OR INDEX(CC,"TIGHTNESS") ) OR INDEX(CC,"ANGINA") OR INDEX(CC,'CP ') OR INDEX(CC,'C.P.') OR INDEX(CC,'CHES PAIN') OR INDEX(CC,'CHETS PAIN') OR INDEX(CC,'CHEAT PAIN') OR INDEX(CC,'CHSET PAIN') OR INDEX(CC,'CHET PAIN') OR INDEX(CC,'HEST PAIN') ) THEN CP=1; ELSE CP=0; %Mend; %Macro DOA; IF (INDEX(CC,"DOA") + INDEX(CC,"EXPIRED"))>0 AND INDEX(CC,"DOAR")=0 THEN DOA=1;ELSE DOA=0; %Mend; %Macro Nonresp; *UNRESPONSIVE; IF (INDEX(CC,"UNRESP")+INDEX(CC,"NOT RESPON")+INDEX(CC,"UNCONS")+INDEX(CC,"FOUND"))>0 THEN UNRESP=1;ELSE UNRESP=0; %Mend; * Heat-related ED visits; %Macro Heat; *Rick 4/02; *Must run %Resp %FevFlu and %Asthma first for this to work; %Pain; %MI; %Cardiac; %CP; %DOA; %Nonresp; * RESPIRATORY WITHOUT FEVER-FLU-VIRAL; IF RESP AND FEVFLU=0 THEN RESPNOFEV=1;ELSE RESPNOFEV=0; *HEAT EXHAUSTION, STROKE, EXPOSURE, RASH; IF (INDEX(CC," HEAT ") OR SUBSTR(CC,1,5)='HEAT ' OR INDEX(CC,'HOT')) AND (INDEX(CC,'RADIAT')+INDEX(CC,'FEELING')+INDEX(CC,'FEELS')+ INDEX(CC,'HEAT BEA'))=0 THEN HEAT=1; ELSE HEAT=0; IF (INDEX(CC,"HEAT EX") OR INDEX(CC,"HEAT ST") OR INDEX(CC,"HEAT RASH") OR INDEX(CC,'SUN STROKE') OR INDEX(CC,'OVERHEAT') OR INDEX(CC,'HYPERTHERMIA')) THEN HEATEX=1;ELSE HEATEX=0; *overheat hot hyperthermia; *DEHYDRATION; * Not useful for heat, mostly GI, kidney oth underlying; IF INDEX(CC,"DEHY") THEN DEHYD=1;ELSE DEHYD=0; *FAINTING; IF (INDEX(CC,"FAINT")+INDEX(CC,"DIZ")+INDEX(CC,"WEAK")+INDEX(CC,'SYNCOP')+INDEX(CC,'SYCOP')+INDEX(CC,"LETHARG")+ INDEX(CC,"VASOVAGAL")+INDEX(CC,'VERTIG')+INDEX(CC,'LIGHTHEAD')+INDEX(CC,'LIGHT HEAD'))>0 OR (INDEX(CC,"PASS")>0 AND INDEX(CC,"OUT")>0)>0 THEN FAINT=1;ELSE FAINT=0; *CHEST PAIN OR CARDIAC; IF MI OR CP THEN CP_MI=1; ELSE CP_MI=0; *REMOVE ACCIDENTS, INJURIES, DRUGS, ALCOHOL FROM OTHER CATEGORIES; %MVA; %ETOH; %DRUGS; IF MVA OR ETOH OR DRUGS THEN DO; HEAT=0;HEATEX=0;DEHYD=0;FAINT=0;MI=0;CP_MI=0;UNRESP=0;DOA=0; END; *COMBINATION HEAT SYNDROMES; if heat or faint or heatex or doa or unresp then heatcombo1=1; else heatcombo1=0; if heat or heatex or doa or unresp then heatcombo2=1; else heatcombo2=0; %Mend; %Macro Throat; * Sore throat; IF ( INDEX(CC,'THROAT')+ INDEX(CC,'SORET')+ INDEX(CC,'SORE T')+ INDEX(CC,'TOAT')+ INDEX(CC,'TONSIL')+ INDEX(CC,'HOARSE')+ INDEX(CC,'SOART')+ INDEX(CC,'SOAR T')+ INDEX(CC,'PHARING')+ INDEX(CC,'PHARYNG')+ INDEX(CC,'STREP TH')+ INDEX(CC,'LARYNG') )>0 AND INDEX(CC,'CANCER')=0 THEN THROAT=1; ELSE IF ( INDEX(CC,"VOICE")>0 AND (INDEX(CC,"LOSS")>0 OR INDEX(CC,"LOST")>0) ) THEN THROAT=1; ELSE THROAT=0; %mend; %Macro ScarletFever;*Rick/Don 4/02; * ANY MENTION OF SCARLET FEVER; IF INDEX(CC,"SCARL")>0 OR INDEX(CC,"SCRLET")>0 THEN SCARLET=1; ELSE SCARLET=0; %Throat; * SCARLET FEVER-LIKE RASH; RASH2= INDEX(CC,"RED BUMP")+INDEX(CC,"DERM") +INDEX(CC,"RED SPOT")+INDEX(CC,"RASH") + INDEX(CC,"782.1"); IF (RASH2 GE 1 OR (INDEX(CC,"RUSH")>0 AND INDEX(CC,"CRUSH")=0 AND INDEX(CC,"THRUSH")=0 ) ) AND (INDEX(CC,"DIAPER") + INDEX(CC,"CRASH") + INDEX(CC,"GENITAL") + INDEX(CC,"PUBIC") + INDEX(CC,"PUBLIC") + INDEX(CC,"PENI") + INDEX(CC,"VAG") + INDEX(CC,"GROIN") )=0 THEN RASH2=1; ELSE RASH2=0; IF (INDEX(CC,"STRAWB")>0 OR INDEX(CC,"RED")>0) AND INDEX(CC,"TONGUE")>0 THEN REDTONGUE=1; ELSE REDTONGUE=0; * SORE THROAT AND SCARLET FEVER RASH; IF THROAT=1 AND (RASH2=1 OR REDTONGUE=1) THEN THROATRASH=1;ELSE THROATRASH=0; %FevFlu; * OUR STANDARD FEVER/FLU; * SORE THROAT AND STANDARD FEVER/FLU; IF THROAT=1 AND FEVFLU=1 THEN THROATFEV=1; ELSE THROATFEV=2; %Mend; %Macro Mening; *Don/Elsie/Rick 9/02; IF (FEVER=1 AND HEADACHE=1) OR INDEX(CC,"STIFF NECK")>0 THEN MENING=1; IF SYNDROME=4 THEN SYNDROME=.; IF MENING=1 THEN SYNDROME=4; %Mend; %Macro Gunshots; *Rick Jun 20, 2002; * GUN SHOT; IF (INDEX(CC,"BULLET")>0 OR (INDEX(CC,"SHOT")>0 AND INDEX(CC,"GUN")>0) OR (INDEX(cc,"SHOOTING")>0 AND INDEX(CC,"PAIN")=0 AND INDEX(CC,"PX")=0 AND INDEX(CC,"DRUGS")=0)) then gunshot=1; else gunshot=2; %Mend; %Macro Violence; *Rick Jun 20, 2002; * Assault; IF ( INDEX(CC,"ASSAULT")+INDEX(CC,"ASAULT")+INDEX(CC,"ASSUALT")+INDEX(CC,"ASSULT")+ INDEX(CC,"RAPE")+ INDEX(CC,"FIGHT")+INDEX(CC,"BEAT UP")+INDEX(CC,"JUMPED")+INDEX(CC,"ATTACKED")+INDEX(CC,"PUNCH")+ INDEX(CC,"KICKED")+ INDEX(CC,"STAB WOUND")+INDEX(CC,"ABUSE")+INDEX(CC,"HIT WITH")+INDEX(CC,"STABBED")+INDEX(CC,"STABBING")+INDEX(CC,"KNIFE") )>0 then ASSAULT=1; else ASSAULT=2;*HIT BY BAT; *HIT WITH BAT; *HIT WITH BOTTLE; %Mend; %Macro Botulism; * Deb/Don May 16, 2002; if ((index(CC,"EYE")>0 or index(cc,"VIS")>0) and index(CC,"BLUR")>0) or (index(CC,"DIFF")>0 and (index(CC,"SWALLOW")>0 OR index(CC,"SPEAK")>0 ) or (index(CC,"DRY")>0 and index(CC,"MOUTH")>0))and index(CC,"SORE") le 0 and index(CC,"FEVER") le 0 then bot=1; %Mend; %Macro measles; * MEASLES; IF INDEX(CC,"MEAS") AND NOT INDEX(CC,"MEASUR") then measl=1; * MEASLES-LIKE RASH; MEASRASH= INDEX(CC,"RED BUMP")+ INDEX(CC,"VESIC")+ INDEX(CC,"FOLLIC")+ INDEX(CC,"DERM") +INDEX(CC,"RED SPOT")+INDEX(CC,"RASH") + INDEX(CC,"782.1"); IF (MEASRASH GE 1 OR (INDEX(CC,"RUSH")>0 AND INDEX(CC,"CRUSH")=0 AND INDEX(CC,"THRUSH")=0 ) ) AND (INDEX(CC,"DIAPER") + INDEX(CC,"CRASH") + INDEX(CC,"GENITAL") + INDEX(CC,"PUBIC") + INDEX(CC,"PUBLIC") + INDEX(CC,"PENI") + INDEX(CC,"VAG") + INDEX(CC,"GROIN") )=0 THEN MEASRASH=1; ELSE MEASRASH=0; %FevFlu; %Resp; if index(cc,"EXAN")>0 then exanth=1; if measl=1 or ((measrash=1 or exanth=1) and (fevflu=1 or resp=1)) then measles=1; if index(cc,"CHICKEN POX") >0 then measles=.; %mend; %Macro psych; *Psych; IF (INDEX(CC,'PSY')+INDEX(CC,'PYSCH')+INDEX(CC,'PYCH')+INDEX(CC,'MENTAL HYG')+INDEX(CC,'SCHIZ')+INDEX(CC,'NERVOUS')+ INDEX(CC,'ANXI')+INDEX(CC,'EMOT')+INDEX(CC,'PARANO')+INDEX(CC,'IDEATION')+INDEX(CC,'NEUROTIC')+INDEX(CC,'NEUROSIS')+ INDEX(CC,'DELUSION')+ INDEX(CC,'SUICID')+INDEX(CC,'SUCID')+INDEX(CC,'KILLING')+ INDEX(CC,'WANTS TO KILL')+INDEX(CC,'WANT TO KILL')+INDEX(CC,'WANTS TO HURT')+INDEX(CC,'WANT TO HURT')+ INDEX(CC,'WANTS TO DIE')+INDEX(CC,'WANT TO DIE')+ INDEX(CC,'DEPRES')+INDEX(CC,'VIOLENT')+INDEX(CC,'PANIC')+INDEX(CC,'HALLUC')+INDEX(CC,'AGITAT')+INDEX(CC,'COMBATIVE')+ INDEX(CC,'IRRATIONAL')+INDEX(CC,'ACTING STRANGE')+INDEX(CC,'VOICES')+INDEX(CC,'BIPOLAR')+INDEX(CC,'DIMENTIA')+ INDEX(CC,'BEHAV')+INDEX(CC,'MENTAL DISORD') )>0 THEN PSYCH=1; ELSE PSYCH=0; *INDEX(CC,'BIZARRE BEHAV')+INDEX(CC,'ABNORMAL BEHAV')+INDEX(CC,'AGRESSIVE BEHAV')+; %mend; %Macro Abdom; * Abdominal pain; IF ( ( INDEX(CC,'ABD')+INDEX(CC,'A.B.D')+INDEX(CC,'OMINAL')+INDEX(CC,'STOM')+INDEX(CC,'BELLY')+INDEX(CC,'GASTRIC')+INDEX(CC,'EPIG') ) >0 AND (PAIN=1 OR INDEX(CC,'DISTEN')) ) OR ( INDEX(CC,'AB PAIN')+INDEX(CC,'ADB PAIN')+INDEX(CC,'GASTRITIS') )>0 THEN ABDOM=1; ELSE ABDOM=0; %mend; %Macro Injury; *SUTURE/WOUND CHK; IF ( INDEX(CC,'SUTUR') OR INDEX(CC,'SULTUR') OR INDEX(CC,'SURTUR') OR INDEX(CC,'WOUND CHECK') OR INDEX(CC,'WOUND CARE') OR INDEX(CC,'DRAIN') OR INDEX(CC,'WOUND CK') OR INDEX(CC,'DRESSING CHANGE') OR INDEX(CC,'PACKING CHANGE') OR INDEX(CC,'REMOV') OR INDEX(CC,'STAPLE') OR INDEX(CC,'CAST') ) THEN SUTURE=1; ELSE SUTURE=0; *Injury; IF SUTURE=0 THEN DO; IF ( INDEX(CC,'WOUND')+INDEX(CC,'ABRASION')+INDEX(CC,'CONTUSION')+INDEX(CC,'CONCUSION')+ INDEX(CC,'STEPPED ON')+ INDEX(CC,'INJUR')+ INDEX(CC,'BLUNT TRA')+INDEX(CC,'TRAUMA')+INDEX(CC,'TRUAMA')+INDEX(CC,'BROKEN')+ INDEX(CC,'BUSTED')+INDEX(CC,'FRACT')+ INDEX(CC,'TRAMA')+ INDEX(CC,'FX')+INDEX(CC,'LAC')+INDEX(CC,'FALL')+INDEX(CC,'SMASH')+INDEX(CC,'CRUSH')+ INDEX(CC,'JAMM')+INDEX(CC,'SLAMM')+ INDEX(CC,'FOREIGN BODY')+INDEX(CC,'FB')+INDEX(CC,'F.B')+INDEX(CC,'FELL')+ INDEX(CC,'CUT ')+ INDEX(CC,'HEAD INJ')+INDEX(CC,'HEAD TRA')+INDEX(CC,'STUB')+ INDEX(CC,"DISLOCAT")+INDEX(CC,'STRAIN')+INDEX(CC,'TWIST')+INDEX(CC,'SPRAIN') )>0 OR ( INDEX(CC,"HEAD") AND ( INDEX(CC,'HIT') OR INDEX(CC,'BANG') OR INDEX(CC,'BUMP') ) ) THEN INJURY=1; ELSE INJURY=0; END; *Other leg, arm, hand, ankle, etc. problem; IF INJURY=0 THEN DO; IF ( INDEX(CC,'FINGER')+INDEX(CC,'LEG')+INDEX(CC,'FEET')+INDEX(CC,'THUMB')+ INDEX(CC,'ARM ')+INDEX(CC,'ANKLE')+INDEX(CC,'FOOT')+INDEX(CC,'ELBOW')+ INDEX(CC,'SHOULDER')+INDEX(CC,'KNEE')+INDEX(CC,'WRIST')+ INDEX(CC,'HIP')+ INDEX(CC,'FLANK')+INDEX(CC,'SIDE')+INDEX(CC,'THIGH')+ INDEX(CC,'MUSCULOSK')+INDEX(CC,'JOINT')+INDEX(CC,'RIB')+INDEX(CC,'HAND')+ INDEX(CC,'TOE') ) > 0 THEN LIMB=1; ELSE LIMB=0; *AND ( PAIN=1 OR INDEX(CC,'INFECT') OR INDEX(CC,'SWOLLEN') OR INDEX(CC,'SWELL') ); END; %mend; %Macro Vag; *Female reproductive health; if ( INDEX(CC,'VAG')+INDEX(CC,'SPOTTING')+INDEX(CC,'PERIOD')+INDEX(CC,'CRAMP')+ INDEX(CC,'MENSES')+INDEX(CC,'MENSTR')+ INDEX(CC,'MORNING AFTER PILL')+INDEX(CC,'EMERGENCY CONTRACEPTION')+ INDEX(CC,'YEAST INFECTION')+INDEX(CC,'CANDIDIASIS')+INDEX(CC,'UTERIN') )>0 OR CC IN ("VB") THEN VAG=1; ELSE VAG=0; %mend; %Macro Preg; *Pregnancy, labor, abortion; if (INDEX(CC,'TRIMEST')+INDEX(CC,'ABORT')+INDEX(CC,'C/SECTION')+INDEX(CC,'C SECTION')+INDEX(CC,'ECTOP')+INDEX(CC,'C-SECTION')+INDEX(CC,'MISSCAR')+ INDEX(CC,'FETAL')+INDEX(CC,'PREG')+INDEX(CC,'LABOR')+INDEX(CC,'LABOUR')+INDEX(CC,'FULLTERM')+INDEX(CC,'DELIVER')+ INDEX(CC,'PRETERM')+ INDEX(CC,'INDUCTION')+INDEX(CC,'AMNIO')+ INDEX(CC,'L&D')+INDEX(CC,'L AND D')+INDEX(CC,'L & D')+INDEX(CC,'L & D')+INDEX(CC,'L & D')+INDEX(CC,'L + D')+ INDEX(CC,'WATER BROKE')+INDEX(CC,'FULL TERM')+INDEX(CC,'PTL')+INDEX(CC,'IUP')+INDEX(CC,'CONTRACTION')+INDEX(CC,'CONTRATION') )>0 then PREG=1; ELSE PREG=2; IF CC IN ('OB','GYN','OBS EVALUATION') THEN PREG=1; %mend; %Macro STD; *STD ETC; if (INDEX(CC,'STD')+INDEX(CC,'UTI')+INDEX(CC,'U T I')+INDEX(CC,'U.T.I.')+INDEX(CC,'URINARY TRACT')+INDEX(CC,'599.')+ INDEX(CC,'URETHR')+INDEX(CC,'NSU')+INDEX(CC,'PID')+INDEX(CC,'GENITAL WARTS')+INDEX(CC,'PELVIC INFLAMATORY DIS')+ INDEX(CC,'PENIS')+INDEX(CC,'SYPHIL')+INDEX(CC,'HERPES')+INDEX(CC,'CHLAMYD')+INDEX(CC,'PENILE')+INDEX(CC,'GONNOR')+ INDEX(CC,'VENEREAL')+INDEX(CC,'STI')+INDEX(CC,'TESTIC')+INDEX(CC,'CONDOM')+INDEX(CC,'GONOR'))>0 OR ((INDEX(CC,'BURN') OR INDEX(CC,'PAIN') OR INDEX(CC,'INFECT')) AND (INDEX(CC,'URIN') OR INDEX(CC,'GROIN'))) THEN STD=1; ELSE STD=0; %mend; %Macro Dental; *DENTAL/TEETH; if ( INDEX(CC,'TOOTH') OR INDEX(CC,'TOOTAC') OR INDEX(CC,'TOOHAC') OR INDEX(CC,'TOTHAC') OR INDEX(CC,'TEETH') OR INDEX(CC,'ORAL') OR INDEX(CC,'MOLAR') OR INDEX(CC,'DENTAL') OR INDEX(CC,'GUMS') OR INDEX(CC,'GINGIV') OR INDEX(CC,'MOUTH') OR INDEX(CC,'TONGUE') ) THEN DENTAL=1; ELSE DENTAL=0; %mend; %Macro Other; *Meant to sub-categorize our 'other' category; %Headache; %Psych; %Throat; %Abdom; %Suture; %Injury; %Vag; %Preg; %MVA; %etoh; %drugs; %std; %dental; *Hypertension; IF ( INDEX(CC,'HYPERTEN')+INDEX(CC,'HTN')+INDEX(CC,'HBP')+INDEX(CC,'401.') )>0 OR ( ( INDEX(CC,'HIGH')+INDEX(CC,'HI ')+INDEX(CC,'ELEV') )>0 AND ( INDEX(CC,'PRESSURE')+INDEX(CC,'BP')+INDEX(CC,'B.P')+INDEX(CC,'B/P') )>0 ) THEN HYPERTENSION=1; ELSE HYPERTENSION=0; *Back pain; IF ( (INDEX(CC,'BACK') OR INDEX(CC,'LUMBAR') OR INDEX(CC,'SPIN') ) AND (PAIN=1 OR INDEX(CC,"INJUR")) ) OR CC IN ('BACK') THEN BACKPAIN=1; ELSE BACKPAIN=0; IF INDEX(CC,'BACHACHE') THEN BACKPAIN=1; *Neck pain; IF INDEX(CC,'NECK')>0 AND PAIN=1 THEN NECKPAIN=1; ELSE NECKPAIN=0; *Ear; IF INDEX(CC,'EAR') OR INDEX(CC,'OTITIS') THEN EAR=1; ELSE EAR=0; *Eyes; IF INDEX(CC,'EYES') OR INDEX(CC,'EYE ') OR INDEX(CC,'CORNEA') OR INDEX(CC,'VISION') OR INDEX(CC,'VISUAL') THEN EYES=1; ELSE EYES=0; *SICKLE CELL; IF (INDEX(CC,"SICKLE") OR INDEX(CC,"SIKLE CELL") OR INDEX(CC,"SICKEL")) THEN SICKLE=1;ELSE SICKLE=0; *BLOODY NOSE; if ( INDEX(CC,'NOSE') AND ( INDEX(CC,'BLEED') OR INDEX(CC,'BLOOD') )) OR INDEX(CC,'EPISTAX') OR INDEX(CC,'EPITA') OR INDEX(CC,'EPATAX') THEN NOSEBLEED=1; ELSE NOSEBLEED=0; *DIABETES; if ( INDEX(CC,'DIAB') OR INDEX(CC,'SUGAR') OR INDEX(CC,'HYPERGLY') OR INDEX(CC,'INSULIN')) THEN DIABETES=1; ELSE DIABETES=0; *MENTAL; IF ( INDEX(CC,"AMS")+INDEX(CC,"A M S")+INDEX(CC,"A.M.S.")+INDEX(CC,"CONFUSED")+INDEX(CC,"DISORIENT") )>0 OR ( ( INDEX(CC,"ALTER") OR INDEX(CC,"CHANGE") ) AND ( INDEX(CC,"MENTAL") OR INDEX(CC,"MS") ) ) THEN ALTMENTAL=1; ELSE ALTMENTAL=0; *MENTAL STATUS; *SEIZURE; IF ( INDEX(CC,"SEIZ")+INDEX(CC,"SIEZ")+INDEX(CC,"SIZUR")+INDEX(CC,"SEZIUR")+ INDEX(CC,"SEISUR")+INDEX(CC,"SEZ")+ INDEX(CC,"CONVULS") )>0 THEN SEIZURE=1; ELSE SEIZURE=0; IF CC IN ("SZ") THEN SEIZURE=1; *SICK/FEELING BAD; if CC IN ("SICK","IM SICK","I FEEL SICK","ILL","FEELING SICK","FEELING BAD","ILLNESS","DON'T FEEL WELL","I DON'T FEEL WELL", "I DONT FEEL WELL","I'M SICK","FEEL SICK","I DON'T FEEL GOOD","PAIN","C/O PAIN") OR ( INDEX(CC,"NOT FEEL") OR INDEX(CC,"DON'T FEEL") OR INDEX(CC,"DONT FEEL") ) THEN SICK=1; ELSE SICK=0; * Collapse chief complaints into groups. Freq on CC2 shows relative frequency of all categories; ATTRIB CC2 LENGTH=$50; CC2=CC; IF CCMISS=1 THEN CC2=' '; ELSE IF CCMISS=2 THEN CC2='UNK/TRIAGE/EVAL/NA ETC'; ELSE IF CCMISS=3 THEN CC2='MED REFILL/NEEDS MEDS ETC'; ELSE IF SYNDROME>0 THEN CC2=PUT(SYNDROME,SYNDFMT.); ELSE DO; IF MVA=1 THEN CC2='MVA/CAR ACCIDENT'; ELSE IF PREG=1 THEN CC2='PREGNANT/LABOR/ABORT'; ELSE IF PSYCH=1 THEN CC2='PSYCH/PSY/DEPRESS'; ELSE IF ETOH=1 THEN CC2='ETOH/ALC ABUSE'; ELSE IF DRUGS=1 THEN CC2='DRUG/HEROIN ABUSE'; ELSE IF INJURY=1 THEN CC2='INJURY/TRAUMA/LAC'; ELSE IF LIMB=1 THEN CC2='LEG/ARM/ANKLE ETC PAIN'; ELSE IF VAG=1 THEN CC2='VAG/MENSTR/SPOTTING'; ELSE IF STD=1 THEN CC2='STD/UTI/SYPHILLIS'; ELSE IF ABDOM=1 THEN CC2='ABDOM PAIN/STOMACH HURTS'; ELSE IF BACKPAIN=1 THEN CC2='BACK PAIN/HURTS'; ELSE IF NECKPAIN=1 THEN CC2='NECK PAIN/HURTS'; ELSE IF HEADACHE=1 THEN CC2='HEADACHE/MIGRAINE'; ELSE IF THROAT=1 THEN CC2='THROAT/TONSILITIS'; ELSE IF GUNSHOT=1 THEN CC2='GUNSHOT/BULLET'; ELSE IF CARDIAC=1 THEN CC2='CARDIAC/MI/CHF'; ELSE IF CP=1 THEN CC2='CHEST PAIN/CP/TIGHTNESS'; ELSE IF EAR=1 THEN CC2='EAR/OTITIS'; ELSE IF DENTAL=1 THEN CC2='DENTAL/MOUTH/TEETH'; ELSE IF HEAT=1 THEN CC2='HEAT/HEAT STROKE'; ELSE IF DEHYD=1 THEN CC2='DEHYD/NO DIARR'; ELSE IF FAINT=1 THEN CC2='FAINT/DIZZY/SYNCOPE'; ELSE IF BLOODYDIAR=1 THEN CC2='BLOODY STOOL/BLACK STOOL'; ELSE IF HYPERTENSION=1 THEN CC2='HYPERTENSION/HIGH BP/HTN'; ELSE IF BIKE=1 THEN CC2='BICYCLE/BIKE ACCIDENT'; ELSE IF NOSEBLEED=1 THEN CC2='BLOODY NOSE/NOSE BLEED'; ELSE IF DOGBITE=1 THEN CC2='DOG BITE/BITTEN BY DOG'; ELSE IF CATBITE=1 THEN CC2='CAT BITE/BITTEN BY CAT'; ELSE IF ASSAULT=1 THEN CC2='ASSAULT/STABBING'; ELSE IF SICKLE=1 THEN CC2='SICKLE CELL/SIKLE CELL'; ELSE IF SICK=1 THEN CC2='SICK/FEELING BAD'; ELSE IF DIABETES=1 THEN CC2='DIABETES/INSULIN'; ELSE IF INJURY=1 THEN CC2='INJURY/CUT/LAC'; ELSE IF SUTURE=1 THEN CC2='SUTURE/WOUND CHK/CAST'; ELSE IF ALTMENTAL=1 THEN CC2='ALTERED MENTAL/CONFUSED'; ELSE IF EYES=1 THEN CC2='EYES/VISION'; ELSE IF SEIZURE=1 THEN CC2='SEIZURE/CONVULSION'; END; %Mend; %Macro CCmiss; *Missing or uninformative CC; IF CC="" THEN CCMISS=1; *Reason not specified; ELSE IF ( INDEX(CC,"SEE TRI")+INDEX(CC,"SE TRIAGE")+INDEX(CC,"SEE TRI")+INDEX(CC,"SEE TRAIGE")+ INDEX(CC,"C-TRIAGE")+INDEX(CC,"\par")+INDEX(CC,"SEE WRITTEN")+INDEX(CC,"APPOINTMENT")+ INDEX(CC,"LAMA")+INDEX(CC,"LBB")+INDEX(CC,"WALKED OUT")+ INDEX(CC,"NEEDS EVA")+INDEX(CC,"MED EVAL")+INDEX(CC,"MEDICAL EVAL")+ INDEX(CC,"TRANSFER"))>0 AND INDEX(CC,"INFLAM")=0 THEN CCMISS=2; ELSE IF CC IN ("0","E","ER","E.R","00","N","SERFU","SER FU","SER F/U","S.E.R. F/UP","BIBA", "N/A","NA","UNK","UNKNOWN","NONE","EVALUATION","UTO","MEDICAL CLEARANCE", "EVAL,","EVAL.","EVAL","EVALAUTION","EVLUATION","NEEDS EVALUATION","FOR EVALUATION", "FOR EVAL","MED. EVAL","CHECK UP","MED EVA", "WALKOUT","PT LEFT AFTER TRIAGE","NOTIFICATION", "REF FROM CLINIC","NO RESPONSE", "SEE ATT NOTES","SEE NURSES NOTE", "DR VISIT","REFERRED BY PMD","REFERRED FROM PMD", "REF BY PMD","SENT BY DR.","SENT BY PMD","SENT FROM PMD", "ADMIT","DIRECT ADMIT","ADMISSION", "REVISIT","FU","F/U","FOLLOWUP","FOLLOW UP","FOLOW UP","FOLLOW UP CARE","FOLLOW-UP", "RECALL","RECALLED","TRANS FROM CLINIC","REFERRAL") THEN CCMISS=2; *No longer coded as missing, will end up in Other category; ELSE IF ( INDEX(CC,"MED") OR INDEX(CC,"RX") OR INDEX(CC,"PRESCRIPT") ) AND ( INDEX(CC,"REFIL") OR INDEX(CC,"NEED") OR INDEX(CC,"REQ") OR INDEX(CC,"RAN OUT") OR INDEX(CC,"OUT OF") ) THEN CCMISS=3; ELSE IF CC IN ("MEDS","MEDICATION") THEN CCMISS=3; *Look for records mistakenly coded as missing; IF CCMISS IN (1,2,3) THEN DO; %syndrome; %preg; %vag; %mva; %psych; %injury; %abdom; %pain; %mi; %cardiac; %cp; if 1<=syndrome<=8 or preg=1 or vag=1 or mva=1 or psych=1 or suture=1 or injury=1 or limb=1 or abdom=1 or pain=1 or mi=1 or cardiac=1 or cp=1 then ccmiss=.; drop preg vag mva psych suture injury limb abdom pain cardiac cp; END; %Mend; proc format; value ccmissf 1='1-Blank' 2='2-Unk/Tri/Eval' 3='3-Meds'; %Macro NYCzips; *List of valid NYC zips; if zip=:"100" then do; if zip in ("10001","10002","10003","10004","10005","10006","10007","10009","10010", "10011","10012","10013","10014", "10016","10017","10018","10019","10020", "10021","10022","10023","10024","10025","10026","10027","10028","10029","10030", "10031","10032","10033","10034","10035","10036","10037","10038","10039","10040", "10044") then nyczip=1; end; else if zip=:"10" then do; if zip in ("10128","10280", "10301","10302","10303","10304","10305","10306","10307","10308","10309","10310", "10312", "10314", "10451","10452","10453","10454","10455","10456","10457","10458","10459","10460", "10461","10462","10463","10464","10465","10466","10467","10468","10469","10470", "10471","10472","10473","10474","10475") then nyczip=1; end; else if zip=:"11" then do; if zip in ("11001","11004","11005","11040","11096", "11101","11102","11103","11104","11105","11106", "11109", "11201", "11203","11204","11205","11206","11207","11208","11209","11210", "11211","11212","11213","11214","11215","11216","11217","11218","11219","11220", "11221","11222","11223","11224","11225","11226", "11228","11229","11230", "11231","11232","11233","11234","11235","11236","11237","11238","11239", "11251", "11354","11355","11356","11357","11358","11359","11360", "11361","11362","11363","11364","11365","11366","11367","11368","11369","11370", "11371","11372","11373","11374","11375", "11377","11378","11379", "11385", "11411","11412","11413","11414","11415","11416","11417","11418","11419","11420", "11421","11422","11423", "11426","11427","11428","11429","11430", "11432","11433","11434","11435","11436", "11451", "11691","11692","11693","11694","11697") then nyczip=1; end; else if zip="00083" then nyczip=1; %Mend; %Macro ValidZip; *Valid zips in NYC metropolitan area; if zip=:"07" then do; if zip in ("07001","07002","07003","07004","07005","07006","07008", "07009","07010","07011","07012","07013","07014","07016","07017","07018","07020","07021","07022","07023","07024","07026","07027","07028","07029", "07030","07031","07032","07033","07034","07035","07036","07039","07040","07041","07042","07043","07044","07045","07046","07047","07050","07052", "07054","07055","07057","07058","07059","07060","07062","07063","07064","07065","07066","07067","07068","07070","07071","07072","07073","07074", "07075","07076","07077","07078","07079","07080","07081","07082","07083","07087","07088","07090","07092","07093","07094","07095","07102","07103", "07104","07105","07106","07107","07108","07109","07110","07111","07112","07114","07201","07202","07203","07204","07205","07206","07208","07302", "07304","07305","07306","07307","07310","07401","07403","07405","07407","07410","07416","07417","07418","07419","07420","07421","07422","07423", "07424","07430","07432","07435","07436","07438","07439","07440","07442","07444","07446","07450","07452","07456","07457","07458","07460","07461", "07462","07463","07465","07470","07480","07481","07501","07502","07503","07504","07505","07506","07508","07512","07513","07514","07522","07524", "07601","07603","07604","07605","07606","07607","07608","07620","07621","07624","07626","07627","07628","07630","07631","07632","07640","07641", "07642","07643","07644","07645","07646","07647","07648","07649","07650","07652","07656","07657","07660","07661","07662","07663","07666","07670", "07675","07701","07702","07703","07704","07711","07712","07716","07717","07718","07719","07720","07721","07722","07723","07724","07726","07727", "07728","07730","07731","07732","07733","07734","07735","07737","07738","07739","07740","07746","07747","07748","07750","07751","07753","07755", "07756","07757","07758","07760","07762","07764","07801","07803","07821","07822","07823","07825","07826","07827","07828","07830","07832","07834", "07836","07838","07840","07843","07847","07848","07849","07850","07851","07852","07853","07856","07857","07860","07863","07865","07866","07869", "07871","07874","07876","07882","07885","07901","07920","07921","07922","07924","07927","07928","07930","07931","07932","07933","07934","07935", "07936","07940","07945","07946","07950","07960","07974","07976","07980","07981") then validzip=1; end; else if zip=:"08" then do; if zip in ("08002","08003","08004","08005","08007","08008","08009","08010", "08012","08014","08015","08016","08019","08020","08021","08022","08026","08027","08028","08029","08030","08031","08032","08033","08034","08035", "08037","08041","08043","08045","08046","08048","08049","08050","08051","08052","08053","08054","08055","08056","08057","08059","08060","08061", "08062","08063","08065","08066","08067","08068","08069","08070","08071","08075","08077","08078","08079","08080","08081","08083","08084","08085", "08086","08087","08088","08089","08090","08091","08092","08093","08094","08096","08097","08098","08102","08103","08104","08105","08106","08107", "08108","08109","08110","08201","08202","08203","08204","08210","08215","08221","08223","08225","08226","08230","08232","08234","08241","08242", "08243","08244","08247","08248","08251","08260","08270","08302","08310","08311","08312","08314","08317","08318","08319","08322","08323","08324", "08326","08327","08328","08330","08332","08340","08341","08343","08344","08345","08346","08349","08350","08360","08361","08401","08402","08403", "08406","08501","08502","08505","08510","08511","08512","08514","08515","08518","08520","08525","08526","08527","08528","08530","08533","08534", "08535","08536","08540","08542","08544","08550","08551","08553","08554","08556","08558","08559","08560","08562","08608","08609","08610","08611", "08618","08619","08620","08628","08629","08638","08640","08641","08648","08690","08691","08701","08721","08722","08723","08724","08730","08731", "08733","08734","08735","08736","08738","08740","08741","08742","08750","08751","08752","08753","08755","08757","08758","08759","08801","08802", "08804","08805","08807","08809","08810","08812","08816","08817","08820","08822","08823","08824","08825","08826","08827","08828","08829","08830", "08831","08832","08833","08835","08836","08837","08840","08846","08848","08850","08852","08853","08854","08857","08859","08861","08863","08865", "08867","08869","08872","08873","08876","08879","08880","08882","08884","08886","08887","08889","08901","08902","08904") then validzip=1; end; else if zip=:"10" then do; if zip in ("10001","10002","10003","10004","10005","10006","10007","10009","10010","10011","10012","10013","10014","10016","10017","10018","10019","10020","10021","10022","10023", "10024","10025","10026","10027","10028","10029","10030","10031","10032","10033","10034","10035","10036","10037","10038","10039","10040","10044", "10128","10280","10301","10302","10303","10304","10305","10306","10307","10308","10309","10310","10312","10314","10451","10452","10453","10454", "10455","10456","10457","10458","10459","10460","10461","10462","10463","10464","10465","10466","10467","10468","10469","10470","10471","10472", "10473","10474","10475","10501","10502","10504","10505","10506","10507","10509","10510","10511","10512","10514","10516","10518","10520","10522", "10523","10524","10526","10527","10528","10530","10532","10533","10535","10536","10537","10538","10541","10543","10546","10547","10548","10549", "10550","10552","10553","10560","10562","10566","10567","10570","10573","10576","10577","10578","10579","10580","10583","10588","10589","10590", "10591","10594","10595","10597","10598","10601","10603","10604","10605","10606","10607","10701","10703","10704","10705","10706","10707","10708", "10709","10710","10801","10803","10804","10805","10901","10911","10913","10916","10917","10918","10919","10920","10921","10923","10924","10925", "10926","10927","10928","10930","10931","10940","10941","10950","10952","10954","10956","10958","10960","10962","10963","10964","10965","10968", "10969","10970","10973","10974","10975","10976","10977","10980","10983","10984","10985","10986","10987","10989","10990","10992","10993","10994", "10996","10998") then validzip=1; end; else if zip=:"11" then do; if zip in ("11001","11003","11004","11005","11010","11020","11021","11023","11024","11030","11040","11042","11050","11096","11101","11102", "11103","11104","11105","11106","11109","11201","11203","11204","11205","11206","11207","11208","11209","11210","11211","11212","11213","11214", "11215","11216","11217","11218","11219","11220","11221","11222","11223","11224","11225","11226","11228","11229","11230","11231","11232","11233", "11234","11235","11236","11237","11238","11239","11251","11354","11355","11356","11357","11358","11359","11360","11361","11362","11363","11364", "11365","11366","11367","11368","11369","11370","11371","11372","11373","11374","11375","11377","11378","11379","11385","11411","11412","11413", "11414","11415","11416","11417","11418","11419","11420","11421","11422","11423","11426","11427","11428","11429","11430","11432","11433","11434", "11435","11436","11451","11501","11507","11509","11510","11514","11516","11518","11520","11530","11542","11545","11548","11549","11550","11552", "11553","11554","11557","11558","11559","11560","11561","11563","11565","11566","11568","11570","11572","11575","11576","11577","11579","11580", "11581","11590","11596","11598","11691","11692","11693","11694","11697","11701","11702","11703","11704","11705","11706","11709","11710","11713", "11714","11715","11716","11717","11718","11719","11720","11721","11722","11724","11725","11726","11727","11729","11730","11731","11732","11733", "11735","11738","11740","11741","11742","11743","11746","11747","11751","11752","11753","11754","11755","11756","11757","11758","11762","11763", "11764","11765","11766","11767","11768","11769","11771","11772","11776","11777","11778","11779","11780","11782","11783","11784","11786","11787", "11788","11789","11790","11791","11792","11793","11794","11795","11796","11797","11798","11801","11803","11804","11901","11933","11934","11935", "11937","11939","11940","11941","11942","11944","11946","11948","11949","11950","11951","11952","11953","11954","11955","11957","11958","11961", "11963","11964","11965","11967","11968","11971","11976","11977","11978","11980") then validzip=1; end; else if zip=:"12" then do; if zip in ("12007","12008","12009","12010","12015","12017","12018","12019","12020","12022","12023","12024","12025","12027","12028","12029","12031","12032", "12033","12035","12036","12037","12041","12042","12043","12046", "12047","12051","12052","12053","12054","12056","12057","12058","12059","12060","12061","12062","12064","12065","12066","12067","12068","12070", "12071","12072","12074","12075","12076","12077","12078","12083","12084","12086","12087","12090","12092","12093","12094","12095","12106","12108", "12110","12115","12116","12117","12118","12120","12121","12122","12123","12125","12130","12131","12134","12136","12137","12138","12139","12140", "12143","12144","12147","12148","12149","12150","12151","12153","12154","12155","12156","12157","12158","12159","12160","12164","12165","12166", "12167","12168","12169","12170","12173","12175","12176","12180","12182","12183","12184","12185","12186","12187","12188","12189","12190","12192", "12193","12194","12196","12197","12198","12202","12203","12204","12205","12206","12207","12208","12209","12210","12211","12302","12303","12304", "12305","12306","12307","12308","12309","12401","12404","12405","12406","12407","12409","12410","12411","12412","12413","12414","12416","12418", "12419","12421","12422","12423","12424","12427","12428","12430","12431","12433","12435","12439","12440","12442","12443","12444","12446","12448", "12449","12450","12451","12454","12455","12456","12457","12458","12460","12461","12463","12464","12465","12466","12468","12469","12470","12472", "12473","12474","12477","12480","12481","12482","12484","12485","12486","12487","12491","12492","12494","12495","12496","12498","12501","12502", "12503","12507","12508","12513","12514","12515","12516","12517","12518","12520","12521","12522","12523","12524","12525","12526","12528","12529", "12531","12533","12534","12538","12540","12542","12543","12545","12546","12547","12548","12549","12550","12553","12561","12563","12564","12566", "12567","12569","12570","12571","12572","12575","12577","12578","12580","12581","12582","12583","12585","12586","12589","12590","12592","12594", "12601","12603","12604","12701","12719","12720","12721","12723","12725","12726","12727","12729","12732","12733","12734","12736","12737","12738", "12739","12740","12741","12742","12743","12745","12746","12747","12748","12750","12751","12752","12754","12758","12759","12760","12762","12763", "12764","12765","12766","12768","12770","12771","12775","12776","12777","12779","12780","12782","12783","12786","12787","12788","12789","12790", "12791","12792","12801","12803","12804","12808","12809","12810","12812","12814","12815","12816","12817","12819","12821","12822","12823","12824", "12827","12828","12831","12832","12833","12834","12835","12836","12837","12838","12839","12842","12843","12844","12845","12846","12847","12849", "12850","12851","12852","12853","12854","12855","12857","12858","12859","12860","12861","12863","12865","12866","12870","12871","12872","12873", "12878","12883","12885","12886","12887","12901","12903","12910","12911","12912","12913","12914","12916","12917","12918","12919","12920","12921", "12922","12923","12924","12926","12928","12930","12932","12934","12935","12936","12937","12941","12942","12943","12944","12945","12946","12949", "12950","12952","12953","12955","12956","12957","12958","12959","12960","12961","12962","12964","12965","12966","12967","12969","12970","12972", "12973","12974","12978","12979","12980","12981","12983","12985","12986","12987","12989","12992","12993","12996","12997") then validzip=1; end; else if zip=:"13" then do; if zip in ("13021","13026","13027","13028","13029","13030","13031","13032","13033","13034","13035","13036","13037","13039","13040","13041","13042","13044","13045","13052","13053", "13054","13057","13060","13061","13063","13066","13068","13069","13071","13072","13073","13074","13076","13077","13078","13080","13081","13082", "13083","13084","13088","13090","13092","13101","13103","13104","13108","13110","13111","13112","13114","13116","13118","13120","13122","13124", "13126","13131","13132","13135","13136","13140","13141","13142","13143","13144","13145","13146","13147","13148","13152","13155","13156","13158", "13159","13160","13164","13165","13166","13167","13202","13203","13204","13205","13206","13207","13208","13209","13210","13211","13212","13214", "13215","13219","13224","13244","13301","13302","13303","13304","13308","13309","13310","13314","13315","13316","13317","13318","13319","13320", "13322","13323","13324","13325","13326","13327","13328","13329","13331","13332","13333","13334","13335","13337","13338","13339","13340","13342", "13343","13345","13346","13348","13350","13353","13354","13355","13357","13360","13361","13363","13365","13367","13368","13402","13403","13406", "13407","13408","13409","13411","13413","13415","13416","13417","13418","13420","13421","13424","13425","13428","13431","13433","13436","13437", "13438","13439","13440","13450","13452","13454","13456","13459","13460","13461","13464","13468","13469","13470","13471","13473","13475","13476", "13477","13478","13480","13482","13483","13485","13486","13488","13489","13490","13491","13492","13493","13494","13495","13501","13502","13601", "13602","13603","13605","13606","13607","13608","13611","13612","13613","13614","13616","13617","13618","13619","13620","13621","13622","13624", "13625","13626","13630","13633","13634","13635","13636","13637","13638","13639","13640","13642","13646","13648","13650","13652","13654","13655", "13656","13658","13659","13660","13661","13662","13665","13666","13667","13668","13669","13670","13672","13673","13675","13676","13679","13680", "13681","13682","13684","13685","13687","13690","13691","13693","13694","13695","13696","13697","13699","13730","13731","13732","13733","13734", "13736","13739","13740","13743","13744","13746","13748","13750","13751","13752","13753","13754","13755","13756","13757","13760","13775","13776", "13777","13778","13780","13782","13783","13786","13787","13788","13790","13795","13796","13797","13801","13802","13803","13804","13806","13807", "13808","13809","13810","13811","13812","13813","13815","13820","13825","13826","13827","13830","13832","13833","13834","13835","13838","13839", "13841","13842","13843","13844","13846","13849","13850","13856","13859","13861","13862","13863","13864","13865","13901","13903","13904","13905") then validzip=1; end; else if zip=:"14" then do; if zip in ("14001","14003","14004","14005","14006","14008","14009","14011","14012","14013","14020","14024","14025","14026","14028","14030","14031","14032", "14033","14034","14036","14037","14039","14040","14041","14042","14043","14047","14048","14051","14052","14054","14055","14057","14058","14059", "14060","14062","14063","14065","14066","14067","14068","14069","14070","14072","14075","14080","14081","14082","14083","14085","14086","14091", "14092","14094","14098","14101","14102","14103","14105","14108","14109","14111","14113","14120","14125","14127","14129","14131","14132","14134", "14136","14138","14139","14141","14143","14145","14150","14167","14170","14171","14172","14174","14201","14202","14203","14204","14206","14207", "14208","14209","14210","14211","14212","14213","14214","14215","14216","14217","14218","14219","14220","14221","14222","14223","14224","14225", "14226","14227","14228","14260","14301","14303","14304","14305","14410","14411","14414","14415","14416","14418","14420","14422","14423","14424", "14425","14427","14428","14432","14433","14435","14437","14441","14445","14450","14454","14456","14462","14464","14466","14467","14468","14469", "14470","14471","14472","14475","14476","14477","14478","14480","14481","14482","14485","14486","14487","14489","14502","14504","14505","14506", "14507","14510","14512","14513","14514","14516","14517","14519","14521","14522","14525","14526","14527","14530","14532","14533","14534","14536", "14541","14543","14544","14545","14546","14548","14550","14551","14555","14559","14560","14561","14564","14568","14569","14571","14572","14580", "14586","14589","14590","14591","14604","14605","14606","14607","14608","14609","14610","14611","14612","14613","14614","14615","14616","14617", "14618","14619","14620","14621","14622","14623","14624","14625","14626","14627","14642","14701","14706","14708","14709","14710","14711","14712", "14714","14715","14716","14717","14718","14719","14721","14723","14724","14726","14727","14728","14729","14731","14733","14735","14736","14737", "14738","14739","14740","14741","14743","14744","14747","14748","14750","14753","14754","14755","14757","14760","14767","14769","14770","14772", "14775","14777","14779","14781","14782","14784","14787","14801","14802","14803","14804","14805","14806","14807","14808","14809","14810","14812", "14813","14814","14815","14816","14817","14818","14819","14820","14821","14822","14823","14824","14825","14826","14830","14836","14837","14838", "14839","14840","14841","14842","14843","14845","14846","14847","14850","14853","14855","14858","14859","14860","14861","14864","14865","14867", "14869","14870","14871","14872","14873","14874","14877","14878","14879","14880","14881","14882","14883","14884","14885","14886","14889","14891", "14892","14894","14895","14897","14898","14901","14903","14904","14905") then validzip=1; end; else if zip in ("00083","06390") then validzip=1; *This approach is much faster than one long list. On 2.6 million records long list took real time=4:08.34 cpu time=3:17.53. This approach takes real time=1:07.56 cpu time=33.09 seconds; %Mend; * Outstanding questions: REMOVE ASTHMA FROM RESP? WHAT ABOUT WHEN CAUSE OF FEVER IS KNOWN, EG. OTITIS, ABCESS, HIV, AIDS? REMOVE PREGNANCY-RELATED ILLNESS FROM OTHER CATEGORIES, EG FEVER AND VOMITING? ; * Possible errors: SER follow-up? Verify that EDP is cardiac end-diastolic pressure What should seizure be in? OBS? Look at ICD9 codes again ATU UTO 789 780.9 789.0 787 BLOOD IN URINE, HEMATURIA SCC CTXS Add CVA to stroke? 786.5 v67.9 410.9 462 HIVES IN RASH?, ITCHING, BUMPS ALL OVER BODY, ANGIOADEMA,URTICARIA PINK EYE, CONJUNCTIVITIS, CONJUCTIVITIS,RED EYE,EYE DISCHARGE,EYE IRRITATION,REDNESS TO EYE,BILATERAL CONJUNCTIVITIS 959.7 SMOKE INHALATION HEAD HURTS ACHING (ALL OVER) OB IN OBSTETRICS 724.2 729.5 724.5 `784.0 782.2 EPISTAXIS HEAD HURTS DIABETES, DIABETIC, SUGAR HIGH or HIGH SUGAR, HYPERGLYCEMIA, HYPERGLECEMIA, SUGAR IS HIGH, INSULIN,HIGH BLOOD GLUCOSE, SUGAR IS UP... 386.70 LETHARGIC, WEAK, TIRED JAUNDICE 578.9 GI BLEED RECTAL BLEEDING, BLEEDING FROM RECTUM, HEMMOROIDS, HEMORRHOID,HEMMORRHOID, PERIANAL ABCESS, LOWER GI BLEED RECTAL ITCHING TIA 629.9 TINEA CORPORIS, RINGWORM,ECZEMA, RING WORM SHOULDNT ANY MALAISE BE IN FEV/FLU S.E.R. F/UP, SERFU, SERFU APPT HA, H/A RECTAL BLEEDING, SCC AP F PVB PELVIC PAIN, SUPRAPUBIC PAIN, SUPRA PUBIC PAIN, PUBIC PAIN ITCHING BREAST PAIN MY HEAD HURTS, HEAD PAIN EMR SHOULDNT R/O BE INCLUDED HIT IN HEAD L&D EVAL, L & D,L + D,L & D DM CPR APE STOMACH VIRUS BRADYCARDIA LBP DKA FEELING TIRED,FATIGUE,WEAK,WEAKNESS,WEEKNESS,FEEL WEEK,MALAISE NON VERBAL, UNABLE TO SPEAK BOIL, ABCESS, INFECTION JAUNDICE, DARK URINE, YELLOW EYES, HEPATITIS STROKE, SLURRED SPEACH,STOKE ARTHRITIS ALLERGIES, ALLERGIC, ALLEGIC DISURIA, CANNOT URINATE, BLOOD IN URINE NUMBNESS ENCEPHALOPATHY,ENCEPHALITIS AGE, A G E X RAY, CHEST X RAY,CHEST X-RAY DOE L.A.P INDUCTION CELLULITIS, SKIN INFECTION,ECZEMA ABCESS,BOIL BURNS PANCREATITIS KIDNEY RESPIRATORY DISTRESS, RESPIRATORY FAILURE as distinct category AGE, A.G.E ETC (ACUTE GASTROENTERITIS) ;