| 1 | SPNPM4 ;SD/AB,WDE-PROGRAM MEASURE #4 ;5/28/98 | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;**6,8**;01/02/1997 | 
|---|
| 3 | MAIN ;-- This program will collect all SCD-R Pts who are SCD-CURRENTLY SERVED and registered on or before previous FY into the ^TMP($J,"SPNPM4","REGCS_FY",DFN) global | 
|---|
| 4 | ;-- Other temp globals used or created are: | 
|---|
| 5 | ;-- ^TMP($J,"SPNPMDX","SPNICD",DFN) | 
|---|
| 6 | ;-- ^TMP($J,"SPNPM2","ALL_SCD",DFN) | 
|---|
| 7 | ;-- ^TMP($J,"SPNPM2","TOT_ICD",DFN) | 
|---|
| 8 | ;-- ^TMP($J,"SPNPM4","TOT_DENOM",DFN) | 
|---|
| 9 | ; | 
|---|
| 10 | ;-- SPN Variable Array list: | 
|---|
| 11 | ;-- BEG_DT = Beginning Date (FOR loop) | 
|---|
| 12 | ;-- DFN = DFN | 
|---|
| 13 | ;-- END# = Ending number (ICD9) | 
|---|
| 14 | ;-- END_DT = Ending Date (FOR loop) | 
|---|
| 15 | ;-- EVAL_FLGO = Annual Rehab Evaluation Offered Flag | 
|---|
| 16 | ;-- EVAL_FLGR = Annual Rehab Evaluation Received Flag | 
|---|
| 17 | ;-- FY = Previous FY | 
|---|
| 18 | ;-- I = Variable used in FOR Loop for ICD9 codes | 
|---|
| 19 | ;-- ICDPT = Pointer from PTF file to ICD9 Dx file (#80) | 
|---|
| 20 | ;-- ICD_FLG = ICD9 flag (set to 1 if SCI Dx found) | 
|---|
| 21 | ;-- ICD_IEN = IEN in ICD9 Dx file (#80) | 
|---|
| 22 | ;-- OFFRD_DT = Date Annual Rehab Eval Offered | 
|---|
| 23 | ;-- ONSET_DT = SCD Date of Onset | 
|---|
| 24 | ;-- PIECE = Piece in 70 node of PTF file (#45) | 
|---|
| 25 | ;-- PTF_IEN = IEN in PTF file (#45) | 
|---|
| 26 | ;-- RECVD_DT = Date Annual Rehab Eval Received | 
|---|
| 27 | ;-- REG_DT = Registration Date | 
|---|
| 28 | ;-- REG_STAT = Registration Status | 
|---|
| 29 | ;-- REHAB_NODE = Annual Rehab Evaluation Node in ^SPNL(154,DFN,"REHAB") | 
|---|
| 30 | ;-- ST# = Starting number for ICD9 code FOR Loop | 
|---|
| 31 | ;-- TOT_CNT = Total # of All SCD Pts | 
|---|
| 32 | ;-- TOT_CSREG = Total of SCD Pts who are CS and registered on or before End of Previous FY | 
|---|
| 33 | ;-- TOT_DEN = Denominator Total for PM #4 | 
|---|
| 34 | ;-- TOT_NUM = Numerator Total for PM #4 (Offered and Received) | 
|---|
| 35 | ;-- TOT_NUMO = Numerator Total for PM #4 (Offered) | 
|---|
| 36 | ;-- TOT_NUMR = Numerator Total for PM #4 (Received) | 
|---|
| 37 | ; | 
|---|
| 38 | ;-- 1st get previous FY info | 
|---|
| 39 | D GETYR^SPNPM2 | 
|---|
| 40 | D CHKALL | 
|---|
| 41 | D CHKREG | 
|---|
| 42 | D CHKICD | 
|---|
| 43 | D GETDEN | 
|---|
| 44 | ;-- Get PM #2 Numerator | 
|---|
| 45 | D ^SPNPM4N | 
|---|
| 46 | ;-- Put PM #2 totals into SPNTXT array | 
|---|
| 47 | D SETTXT | 
|---|
| 48 | EXIT K SPN | 
|---|
| 49 | K:$D(^TMP($J,"SPNPMDX")) ^("SPNPMDX") | 
|---|
| 50 | K:$D(^TMP($J,"SPNPM2")) ^("SPNPM2") | 
|---|
| 51 | K:$D(^TMP($J,"SPNPM4")) ^("SPNPM4") | 
|---|
| 52 | Q | 
|---|
| 53 | CHKALL ;-- Check for existence of $D(^TMP($J,"SPNPM2","ALL_SCD")), create if necessary | 
|---|
| 54 | I $D(^TMP($J,"SPNPM2","ALL_SCD")) Q | 
|---|
| 55 | ;-- Otherwise create this temp global | 
|---|
| 56 | D GETALL^SPNPM2 | 
|---|
| 57 | Q | 
|---|
| 58 | CHKREG ;-- Check to see if Pt in ^TMP($J,"SPNPM2","ALL_SCD",DFN) is registered on or before End of Given FY AND is SCD-CURRENTLY SERVED | 
|---|
| 59 | ;-- Quit if '$D(^TMP($J,"SPNPM2","ALL_SCD")) | 
|---|
| 60 | Q:'$D(^TMP($J,"SPNPM2","ALL_SCD")) | 
|---|
| 61 | S (SPN("DFN"),SPN("TOT_CSREG"))=0 | 
|---|
| 62 | F  S SPN("DFN")=$O(^TMP($J,"SPNPM2","ALL_SCD",SPN("DFN"))) Q:'+SPN("DFN")  D | 
|---|
| 63 | .;-- Get Registration Date (REG_DT) and Regisration Status (REG_STAT) of DFN | 
|---|
| 64 | .S SPN("REG_DT")=$P($G(^SPNL(154,SPN("DFN"),0)),U,2),SPN("REG_STAT")=$P($G(^(0)),U,3) | 
|---|
| 65 | .;-- Quit if REG_DT is null | 
|---|
| 66 | .Q:'+SPN("REG_DT") | 
|---|
| 67 | .;-- Quit if REG_DT '< END_DT and REG_STAT '= 1 (1=SCD-CURRENTLY SERVED) | 
|---|
| 68 | .I SPN("REG_DT")>SPN("END_DT")!(SPN("REG_STAT")'=1) Q | 
|---|
| 69 | .;-- Okay then save to ^TMP($J,"SPNPM4","REGCS_FY",DFN) global | 
|---|
| 70 | .S ^TMP($J,"SPNPM4","REGCS_FY",SPN("DFN"))=SPN("REG_DT")_"^"_SPN("REG_STAT") S SPN("TOT_CSREG")=SPN("TOT_CSREG")+1 | 
|---|
| 71 | .Q | 
|---|
| 72 | Q | 
|---|
| 73 | CHKICD ;-- Check for the existence of ^TMP($J,"SPNPM2","TOT_ICD"), if not exist then create | 
|---|
| 74 | Q:$D(^TMP($J,"SPNPM2","TOT_ICD")) | 
|---|
| 75 | ;-- Okay then create this temp global | 
|---|
| 76 | D ^SPNPMDX,GETICD^SPNPM2B | 
|---|
| 77 | Q | 
|---|
| 78 | GETDEN ;-- Get Denominator | 
|---|
| 79 | ;-- Check if Pt (DFN) is in both ^TMP($J,"SPNPM4","REGCS_FY") ^TMP($J,"SPNPM2","TOT_ICD") globals | 
|---|
| 80 | ;-- Quit if '$D(^TMP($J,"SPNPM2","ALL_SCD")) | 
|---|
| 81 | Q:'$D(^TMP($J,"SPNPM2","ALL_SCD")) | 
|---|
| 82 | ;-- Loop thru ^TMP($J,"SPNPM2","ALL_SCD",DFN) Pts, initialize Denominator counter (TOT_DEN) | 
|---|
| 83 | S (SPN("DFN"),SPN("TOT_DEN"))=0 | 
|---|
| 84 | F  S SPN("DFN")=$O(^TMP($J,"SPNPM2","ALL_SCD",SPN("DFN"))) Q:'+SPN("DFN")  D | 
|---|
| 85 | .I +$D(^TMP($J,"SPNPM4","REGCS_FY",SPN("DFN"))),+$D(^TMP($J,"SPNPM2","TOT_ICD",SPN("DFN"))) D | 
|---|
| 86 | ..;-- Count and collect the Denominator | 
|---|
| 87 | ..S SPN("TOT_DEN")=SPN("TOT_DEN")+1,^TMP($J,"SPNPM4","TOT_DENOM",SPN("DFN"))="" | 
|---|
| 88 | ..Q | 
|---|
| 89 | .Q | 
|---|
| 90 | Q | 
|---|
| 91 | SETTXT ;-- Put PM #4 totals into SPNTXT array | 
|---|
| 92 | I $G(SPNPARM("SITE"))="" S SPNPARM("SITE")=$G(^DD("SITE")) | 
|---|
| 93 | S $P(SPNTXT(1),U,7)=0 | 
|---|
| 94 | ; | 
|---|
| 95 | S $P(SPNTXT(1),U,1)=SPNPARM("SITE") | 
|---|
| 96 | ; | 
|---|
| 97 | ;   Program Measure #4 Denominator = SPN("TOT_DEN") | 
|---|
| 98 | S $P(SPNTXT(1),U,2)=SPN("TOT_DEN") | 
|---|
| 99 | ; | 
|---|
| 100 | ;   Program Measure #4 Numerator (Offered and Received) = SPN("TOT_NUM") | 
|---|
| 101 | S $P(SPNTXT(1),U,3)=SPN("TOT_NUM") | 
|---|
| 102 | ; | 
|---|
| 103 | ;   Program Measure #4 Numerator (Offered) = SPN("TOT_NUMO") | 
|---|
| 104 | S $P(SPNTXT(1),U,4)=SPN("TOT_NUMO") | 
|---|
| 105 | ; | 
|---|
| 106 | ;   Program Measure #4 Numerator (Received) = SPN("TOT_NUMR") | 
|---|
| 107 | S $P(SPNTXT(1),U,5)=SPN("TOT_NUMR") | 
|---|
| 108 | ; | 
|---|
| 109 | ;   Total SCD-R Pts Currently Served by End of FY =  SPN("TOT_CSREG") | 
|---|
| 110 | S $P(SPNTXT(1),U,6)=SPN("TOT_CSREG") | 
|---|
| 111 | ; | 
|---|
| 112 | ;   Total # ALL SCD-R Pts = SPN("TOT_CNT") | 
|---|
| 113 | S $P(SPNTXT(1),U,7)=SPN("TOT_CNT") | 
|---|
| 114 | ; | 
|---|
| 115 | S SPNDESC="Program Measure 4 "_^DD("SITE") | 
|---|
| 116 | D ^SPNMAIL | 
|---|
| 117 | Q | 
|---|