| 1 | SPNPM1 ;SD/AB,WDE-PROGRAM MEASURE #1 ;5/28/98
 | 
|---|
| 2 |  ;;2.0;Spinal cord Dysfunction;**6,8**;01/02/1997
 | 
|---|
| 3 | MAIN ;-- This programs main purpose is to retrieve the number of SCD Pts who are SCD-CURRENTLY SERVED by the end of Previous FY and who have any SCI ICD-9 code in a Transmitted PTF record (DENOMINATOR)
 | 
|---|
| 4 |  ;-- It also gets the number of SCD-CURRENTLY SERVED Pts (CS by the end of Previous FY) who also have a Primary Care Provider entered into the respective SCD-R records (NUMERATOR)
 | 
|---|
| 5 |  ;-- Variable array (SPN) list:
 | 
|---|
| 6 |  ;-- DFN = DFN
 | 
|---|
| 7 |  ;-- END# = Ending ICD-9 code
 | 
|---|
| 8 |  ;-- END_DT = FM-format Ending Date (Last Day of FY)
 | 
|---|
| 9 |  ;-- FY = FY (2-digit) used for data calculations
 | 
|---|
| 10 |  ;-- I = As FOR Loop parameter for get range of ICD-9 codes
 | 
|---|
| 11 |  ;-- ICD_FLG = ICD FLAG (set to 1 if SCI ICD-9 code found)
 | 
|---|
| 12 |  ;-- ICD_IEN = IEN in ^ICD9( global
 | 
|---|
| 13 |  ;-- ICDPT = SCI ICD-9 Pointer in ^TMP($J,"SPNPMDX","SPNICD") global
 | 
|---|
| 14 |  ;-- PC_FLG = Primary Care flag (set to 1 if PC Provider found in SCD-R record)
 | 
|---|
| 15 |  ;-- PIECE = Piece containing ICD-9 pointers in ^DGPT(PTF_IEN,70)
 | 
|---|
| 16 |  ;-- PROV# = Provider pointer to ^VA(200)
 | 
|---|
| 17 |  ;-- PTF_IEN = PTF IEN
 | 
|---|
| 18 |  ;-- REG_DT = SCD-R REGISTRATION DATE
 | 
|---|
| 19 |  ;-- REG_STAT = SCD-R REGISTRATION STATUS
 | 
|---|
| 20 |  ;-- ST# = Starting ICD-9 code
 | 
|---|
| 21 |  ;-- TOT_CSREG = Total # SCD CS Pts Registered by end of FY
 | 
|---|
| 22 |  ;-- TOT_NO_ICD = Total # SCD CS Pts Registered by end of FY w/o matching SCI ICD-9 codes in any Transmitted PTF record
 | 
|---|
| 23 |  ;-- TOT_NO_PTF = Total # SCD CS Pts Registered by end of FY w/o any PTF record
 | 
|---|
| 24 |  ;-- TOT_PC = Total # SCD CS Pts Registered by end of FY with PC Provider entered into SCD-R
 | 
|---|
| 25 |  ;-- TOT_PTF = Total # SCD CS Pts Registered by end of FY with matching SCI ICD-9 codes in any Transmitted PTF record
 | 
|---|
| 26 |  ;-- TOT_PTS = Grand Total of ALL SCD Pts in SCD-R
 | 
|---|
| 27 |  K:$D(^TMP($J)) ^($J)
 | 
|---|
| 28 |  D GETYR
 | 
|---|
| 29 |  D GETSCD
 | 
|---|
| 30 |  ;-- Get SCI ICD-9 codes
 | 
|---|
| 31 |  D ^SPNPMDX
 | 
|---|
| 32 |  ;-- Get DENOMINATOR of PM #1
 | 
|---|
| 33 |  D ^SPNPM1D
 | 
|---|
| 34 |  ;-- Get NUMERATOR of PM #1
 | 
|---|
| 35 |  D ^SPNPM1N
 | 
|---|
| 36 |  ;-- Put PM #1 totals into SPNTXT array
 | 
|---|
| 37 |  D SETTXT
 | 
|---|
| 38 | EXIT K SPN
 | 
|---|
| 39 |  K:$D(^TMP($J)) ^($J)
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | GETYR ;-- Get FY for previous FY, and set Ending Date (END_DT) to FM FY_0930
 | 
|---|
| 42 |  I +$E($G(DT),4,7)<931 S SPN("FY")=$E($G(DT),1,3)-1
 | 
|---|
| 43 |  E  S SPN("FY")=$E($G(DT),1,3)
 | 
|---|
| 44 |  S SPN("END_DT")=+SPN("FY")_"0930"
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | GETSCD ;-- Loop thru SCD Registry file (^SPNL(154)) and get all SCD Pts who are Registered and Curr Served (CS) by end of Previous FY
 | 
|---|
| 47 |  S (SPN("DFN"),SPN("TOT_CSREG"),SPN("TOT_PTS"))=0
 | 
|---|
| 48 |  F  S SPN("DFN")=$O(^SPNL(154,SPN("DFN"))) Q:'+SPN("DFN")  D
 | 
|---|
| 49 |  .;-- Quit if no zero node
 | 
|---|
| 50 |  .Q:'$D(^SPNL(154,SPN("DFN"),0))
 | 
|---|
| 51 |  .;-- Increment Total # SCD Pts (TOT_PTS)
 | 
|---|
| 52 |  .S SPN("TOT_PTS")=SPN("TOT_PTS")+1
 | 
|---|
| 53 |  .S SPN("REG_DT")=$P($G(^SPNL(154,SPN("DFN"),0)),U,2),SPN("REG_STAT")=$P($G(^(0)),U,3)
 | 
|---|
| 54 |  .;-- Quit if REG_DT null
 | 
|---|
| 55 |  .Q:'+SPN("REG_DT")
 | 
|---|
| 56 |  .;-- Quit if REG_DT '< END_DT and/or REG_STAT '=1 (SCD-Curr Served)
 | 
|---|
| 57 |  .I SPN("REG_DT")>SPN("END_DT")!(SPN("REG_STAT")'=1) Q
 | 
|---|
| 58 |  .;-- Okay, then save to ^TMP global
 | 
|---|
| 59 |  .S ^TMP($J,"SPNPM1","DFN",SPN("DFN"))="" S SPN("TOT_CSREG")=SPN("TOT_CSREG")+1
 | 
|---|
| 60 |  .Q
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | SETTXT ;-- Set up SPNTXT message text array
 | 
|---|
| 63 |  I $G(SPNPARM("SITE"))="" S SPNPARM("SITE")=$G(^DD("SITE"))
 | 
|---|
| 64 |  S $P(SPNTXT(1),U,7)=""
 | 
|---|
| 65 |  S $P(SPNTXT(1),U,1)=SPNPARM("SITE")
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  ;  Total # of CS SCD-R Pts Registered by End of FY with matching
 | 
|---|
| 68 |  ;   SCI ICD-9 codes in any Transmitted PTF Record = SPN("TOT_PTF")
 | 
|---|
| 69 |  ;  *** This is PM #1 DENOMINATOR ***
 | 
|---|
| 70 |  S $P(SPNTXT(1),U,2)=SPN("TOT_PTF")
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 |  ;  Total # of All SCD-R Pts /w PC Provider Entered into
 | 
|---|
| 73 |  ;   SCD-R = SPN("TOT_PC")
 | 
|---|
| 74 |  ;  *** This is PM #1 NUMERATOR ***
 | 
|---|
| 75 |  S $P(SPNTXT(1),U,3)=SPN("TOT_PC")
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ;  Total # of SCD-R Pts Registered by End of FY  w/o^ matching SCI 
 | 
|---|
| 78 |  ;  ICD-9 codes in any Transmitted PTF Record = SPN("TOT_NO_ICD")
 | 
|---|
| 79 |  S $P(SPNTXT(1),U,4)=SPN("TOT_NO_ICD")
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ;  Total CS SCD-R Pts Registered by End of FY  w/o any 
 | 
|---|
| 82 |  ;  PTF record = SPN("TOT_NO_PTF")
 | 
|---|
| 83 |  S $P(SPNTXT(1),U,5)=SPN("TOT_NO_PTF")
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 |  ;  Total # of CS SCD-R Pts Registered by End of FY = SPN("TOT_CSREG")
 | 
|---|
| 86 |  S $P(SPNTXT(1),U,6)=SPN("TOT_CSREG")
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  ;  Total # of All SCD-R Pts  = SPN("TOT_PTS")
 | 
|---|
| 89 |  S $P(SPNTXT(1),U,7)=SPN("TOT_PTS")
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 |  S SPNDESC="Program Measure 1 "_$G(^DD("SITE"))
 | 
|---|
| 92 |  D ^SPNMAIL
 | 
|---|
| 93 |  Q
 | 
|---|