1 | SPNPM2 ;SD/AB-PROGRAM MEASURE #2 ;5/26/98
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**6**;01/02/1997
|
---|
3 | MAIN ;-- This program will 1st collect all SCD-R Pts into the ^TMP($J,"SPNPM2","ALL_SCD") global then it will collect into 4 seperate ^TMP($J,"SPNPM2") as follows:
|
---|
4 | ;-- TOT_ADM = All SCD-R Pts /w FY 97 admissions
|
---|
5 | ;-- TOT_DIS = All SCD-R Pts /w FY 97 disharges
|
---|
6 | ;-- TOT_ONSET = All SCD-R Pts /w Date of Onset between 4/1/96 and 9/30/97
|
---|
7 | ;-- TOT_ICD = All SCD-R Pts /w any SCI ICD-9 codes in any PTF record
|
---|
8 | ;-- TOT_PTF = All SCD-R Pts /w PTF records meeting PM #2 Denominator criteria
|
---|
9 | ;-- This program also calls ^SPNPM2B which calls ^SPNPMDX which collects all SCI ICD9 codes into the ^TMP($J,"SPNPMDX","SPNICD",ICD_IEN) global
|
---|
10 | ;
|
---|
11 | ;-- SPN Variable Array List:
|
---|
12 | ;-- ADM_DT = admission date
|
---|
13 | ;-- BEG_DT = beginning date (for loop)
|
---|
14 | ;-- BEG_DT1 = variable/changing beginning date
|
---|
15 | ;-- DC_DT = discharge date
|
---|
16 | ;-- DFN = DFN
|
---|
17 | ;-- END# = ending number (ICD9)
|
---|
18 | ;-- END_DT = ending date (for loop)
|
---|
19 | ;-- E_NODE = "E" node of file 154 global
|
---|
20 | ;-- FIM_DT = FIM date
|
---|
21 | ;-- FIM_IEN = FIM IEN (in file 154.1)
|
---|
22 | ;-- FY = fiscal year
|
---|
23 | ;-- I = FOR loop variable
|
---|
24 | ;-- ICDPT = pointer from PTF file to ICD9 Dx file
|
---|
25 | ;-- ICD_FLG = ICD9 flag (set to 1 if SCI Dx found)
|
---|
26 | ;-- ICD_IEN = IEN in ICD9 Dx file (#80)
|
---|
27 | ;-- ONSET_DT = beginning SCD onset date (for loop)
|
---|
28 | ;-- ONS_DT = actual SCD onset date found from file 154 record
|
---|
29 | ;-- ONS_FLG = SCD onset date flag (set to 1 if date is between 4/1/96 and 9/30/97)
|
---|
30 | ;-- PIECE = piece in 70 node of PTF file global (ICD9 pointer)
|
---|
31 | ;-- PTF_ADMDT = PTF record admission date
|
---|
32 | ;-- PTF_DCDT = PTF record discharge date
|
---|
33 | ;-- PTF_FLG = PTF flag (set to 1 if PTF record is correct type, is transmitted, has at least one SCI ICD9 code, and admission date on or after Onset Date)
|
---|
34 | ;-- PTF_IEN = IEN in PTF file
|
---|
35 | ;-- ST# = starting number for ICD9 code FOR loop
|
---|
36 | ;-- TOT_ADM = total # SCD Pts with FY admissions
|
---|
37 | ;-- TOT_CNT = total count (used to count total of all SCD Pts)
|
---|
38 | ;-- TOT_DENOM1 = denominator total based on FY admissions
|
---|
39 | ;-- TOT_DENOM2 = denominator total based on discharges
|
---|
40 | ;-- TOT_DIS = total # of SCD-R Pts /w FY discharges
|
---|
41 | ;-- TOT_FIM = total # of FIMS found (1-2)
|
---|
42 | ;-- TOT_ICD = total # of SCD-R Pts /w any SCI ICD9 codes in any PTF record
|
---|
43 | ;-- TOT_NUM = Numerator total for PM #2
|
---|
44 | ;-- TOT_ONSET = total # of SCD-R Pts /w SCD Onset Date between 4/1/96 and 9/30/97
|
---|
45 | ;-- TOT_PTF = Denominator total for PM #2
|
---|
46 | ;-- TOT_SCORE = FIM total score (from file 154.1)
|
---|
47 | ;
|
---|
48 | K:$D(^TMP($J)) ^($J)
|
---|
49 | ;-- Get previous FY information, BEG_DT and END_DT
|
---|
50 | D GETYR
|
---|
51 | D GETALL
|
---|
52 | D GETADM
|
---|
53 | D GETDIS
|
---|
54 | D GETONS
|
---|
55 | ;-- Get PTF and ICD info
|
---|
56 | D ^SPNPM2B
|
---|
57 | ;-- Now get Denominator totals
|
---|
58 | D ^SPNPM2D
|
---|
59 | ;-- Get Numerator
|
---|
60 | D ^SPNPM2N
|
---|
61 | ;-- Print Results
|
---|
62 | D ^SPNPM2C
|
---|
63 | EXIT K SPN
|
---|
64 | K:$D(^TMP($J)) ^($J)
|
---|
65 | Q
|
---|
66 | GETYR ;-- Get FY for previous FY, and set Ending Date (END_DT) to FM FY_0930
|
---|
67 | I +$E($G(DT),4,7)<931 S SPN("FY")=$E($G(DT),1,3)-1
|
---|
68 | E S SPN("FY")=$E($G(DT),1,3)
|
---|
69 | S SPN("END_DT")=+SPN("FY")_"0930"
|
---|
70 | S SPN("BEG_DT")=+(SPN("FY")-1)_"1001"
|
---|
71 | S SPN("ONSET_DT")=+(SPN("FY")-1)_"0401"
|
---|
72 | Q
|
---|
73 | GETALL ;-- Get all SCD-R patients and store into ^TMP($J,"SPNPM2","ALL_SCD",DFN) global
|
---|
74 | S SPN("DFN")=0
|
---|
75 | F S SPN("DFN")=$O(^SPNL(154,SPN("DFN"))) Q:'+SPN("DFN") D
|
---|
76 | .;-- Quit if no Zero Node
|
---|
77 | .Q:'$D(^SPNL(154,SPN("DFN"),0))
|
---|
78 | .;-- Set ^TMP($J,"SPNPM2","ALL_SCD",DFN)
|
---|
79 | .S ^TMP($J,"SPNPM2","ALL_SCD",SPN("DFN"))=""
|
---|
80 | .Q
|
---|
81 | Q
|
---|
82 | GETADM ;-- Get all SCD pts who have had admissions in FY 97
|
---|
83 | ;-- Loop thru date range (BEG_DT thru END_DT) in Pt Movement file (^DGPM)
|
---|
84 | ;-- Store into ^TMP($J,"SPNPM2","TOT_ADM",DFN) global
|
---|
85 | ;-- Initialize DFN variable
|
---|
86 | S SPN("DFN")=0,SPN("END_DT")=SPN("END_DT")+.999
|
---|
87 | F S SPN("DFN")=$O(^DGPM("APTT1",SPN("DFN"))) Q:'+SPN("DFN") D
|
---|
88 | .S SPN("BEG_DT1")=SPN("BEG_DT")-.001
|
---|
89 | .F S SPN("BEG_DT1")=$O(^DGPM("APTT1",SPN("DFN"),SPN("BEG_DT1"))) Q:'+SPN("BEG_DT1")!(SPN("BEG_DT1")>SPN("END_DT")) D
|
---|
90 | ..;-- Get PTF pointer# from PM_IEN
|
---|
91 | ..;S SPN("PM_IEN")=$O(^DGPM("APTT1",SPN("DFN"),SPN("BEG_DT1"),0))
|
---|
92 | ..;S SPN("PTF_IEN")=$P($G(^DGPM(SPN("PM_IEN"),0)),U,16)
|
---|
93 | ..;-- Check to see if Pt in SCD-R, if so then set ^TMP($J,"SPNPM2","TOT_ADM",DFN) global
|
---|
94 | ..I +$D(^SPNL(154,SPN("DFN"),0)) S ^TMP($J,"SPNPM2","TOT_ADM",SPN("DFN"))=""
|
---|
95 | ..Q
|
---|
96 | .Q
|
---|
97 | Q
|
---|
98 | GETDIS ;-- Get all SCD pts who have had discharges in FY 97
|
---|
99 | ;-- Loop thru date range (BEG_DT thru END_DT) in Pt Movement file (^DGPM)
|
---|
100 | ;-- Store into ^TMP($J,"SPNPM2","TOT_DIS",DFN) global
|
---|
101 | ;-- Initialize DFN variable
|
---|
102 | S SPN("DFN")=0
|
---|
103 | F S SPN("DFN")=$O(^DGPM("APTT3",SPN("DFN"))) Q:'+SPN("DFN") D
|
---|
104 | .S SPN("BEG_DT1")=SPN("BEG_DT")-.001
|
---|
105 | .F S SPN("BEG_DT1")=$O(^DGPM("APTT3",SPN("DFN"),SPN("BEG_DT1"))) Q:'+SPN("BEG_DT1")!(SPN("BEG_DT1")>SPN("END_DT")) D
|
---|
106 | ..;-- Get PTF pointer# from PM_IEN
|
---|
107 | ..;S SPN("PM_IEN")=$O(^DGPM("APTT3",SPN("DFN"),SPN("BEG_DT1"),0))
|
---|
108 | ..;S SPN("PTF_IEN")=$P($G(^DGPM(SPN("PM_IEN"),0)),U,16)
|
---|
109 | ..;-- Check to see if Pt in SCD-R, if so then set ^TMP($J,"SPNPM2","TOT_DIS",DFN) global
|
---|
110 | ..I +$D(^SPNL(154,SPN("DFN"),0)) S ^TMP($J,"SPNPM2","TOT_DIS",SPN("DFN"))=""
|
---|
111 | ..Q
|
---|
112 | .Q
|
---|
113 | Q
|
---|
114 | GETONS ;-- Get all SCD pts who have an ETIOLOGY /w a DATE OF ONSET between 4/1/96 and 9/30/97
|
---|
115 | ;-- Store into ^TMP($J,"SPNPM2","TOT_ONSET",DFN) global
|
---|
116 | ;-- Quit if '$D(^TMP($J,"SPNPM2","ALL_SCD"))
|
---|
117 | Q:'$D(^TMP($J,"SPNPM2","ALL_SCD"))
|
---|
118 | ;-- Inititalze SPN("DFN")
|
---|
119 | S SPN("DFN")=0
|
---|
120 | F S SPN("DFN")=$O(^TMP($J,"SPNPM2","ALL_SCD",SPN("DFN"))) Q:'+SPN("DFN") D
|
---|
121 | .;-- Initialize Onset flag (ONS_FLG) - this flag=1 if DATE OF ONSET is between 4/1/96 and 9/30/97
|
---|
122 | .S SPN("ONS_FLG")=0
|
---|
123 | .I +$D(^SPNL(154,SPN("DFN"),"E",0)) D
|
---|
124 | ..S SPN("E_NODE")=0
|
---|
125 | ..F S SPN("E_NODE")=$O(^SPNL(154,SPN("DFN"),"E",SPN("E_NODE"))) Q:'+SPN("E_NODE")!(SPN("ONS_FLG")=1) D
|
---|
126 | ...S SPN("ONS_DT")=$P($G(^SPNL(154,SPN("DFN"),"E",SPN("E_NODE"),0)),U,2)
|
---|
127 | ...;-- If ONS_DT>0 and then ONST_DT is between 4/1/96 and 9/30/97, then set ONS_FLG and store into ^TMP($J,"SPNPM2","TOT_ONSET",DFN)
|
---|
128 | ...I SPN("ONS_DT")>0,SPN("ONS_DT")>2960331&(SPN("ONS_DT")<2971001) S ^TMP($J,"SPNPM2","TOT_ONSET",SPN("DFN"))=SPN("ONS_DT") S SPN("ONS_FLG")=1
|
---|
129 | ...Q
|
---|
130 | ..Q
|
---|
131 | .Q
|
---|
132 | Q
|
---|