1 | ONCACD0 ;Hines OIFO/GWB - NAACCR extract driver ;06/11/01
|
---|
2 | ;;2.11;Oncology;**9,12,20,24,25,28,29,30,36,37,38,40,41,44,45,47**;Mar 07, 1995;Build 19
|
---|
3 | ;
|
---|
4 | EN1(DEVICE,STEXT) ;Select extract from ONCOLOGY DATA EXTRACT FORMAT (160.16)
|
---|
5 | EN2 N EXTRACT,HDRIEN,STAT,STAT1,STAT2,DATE,YESNO,BDT,SDT,EDT,QUEUE
|
---|
6 | K ^TMP($J)
|
---|
7 | S DEVICE=$G(DEVICE,0),STEXT=$G(STEXT,0),(EXTRACT,QUEUE)=0,EXT=""
|
---|
8 | I STEXT=0 S EXTRACT=$O(^ONCO(160.16,"B","NCDB EXTRACT V11.1",0))
|
---|
9 | S (STAT,DATE,OUT,SDT,EDT)=0
|
---|
10 | S HDRIEN=EXTRACT
|
---|
11 | D DISPLAY
|
---|
12 | I STEXT=1 D GETREC(.EXTRACT,.OUT)
|
---|
13 | I 'OUT S STAT=$$GETHOSP
|
---|
14 | I 'STAT S OUT=1
|
---|
15 | I 'OUT S STAT1=$P(STAT,U,1),STAT2=$P(STAT,U,2)
|
---|
16 | I 'OUT D GETDATE(.DATE,.OUT)
|
---|
17 | I 'OUT,STEXT D GETDT(.SDT,.EDT,DATE,.OUT)
|
---|
18 | I 'OUT D VERIFY(STAT,DATE,SDT,EDT,STEXT,.YESNO,.OUT)
|
---|
19 | I 'OUT G:'YESNO EN2
|
---|
20 | I 'OUT D DEVICE(DEVICE,.OUT)
|
---|
21 | I 'OUT D:'QUEUE PRINT(DEVICE,.OUT)
|
---|
22 | D EXIT
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | GETREC(EXTRACT,OUT) ;Select record layout
|
---|
26 | W !!," Available record layouts:",!
|
---|
27 | W !," 1) VACCR Record Layout v11.1 (VA Registry)"
|
---|
28 | W !," 2) NAACCR State Record Layout v11.1"
|
---|
29 | W !
|
---|
30 | N DIR,X,Y
|
---|
31 | S DIR(0)="SAO^1:VACCR Record Layout v11.1;2:NAACCR State Record Layout v11.1"
|
---|
32 | S DIR("A")=" Select record layout: "
|
---|
33 | S DIR("?")="Select the record layout to use"
|
---|
34 | D ^DIR
|
---|
35 | I $D(DIRUT) S OUT=1 Q
|
---|
36 | I +Y<1 S OUT=1 Q
|
---|
37 | I Y=1 S EXT="VACCR",EXTRACT=$O(^ONCO(160.16,"B","VACCR EXTRACT V11.1",0))
|
---|
38 | I Y=2 S EXT="STATE",EXTRACT=$O(^ONCO(160.16,"B","STATE EXTRACT V11.1",0))
|
---|
39 | S HDRIEN=EXTRACT
|
---|
40 | Q
|
---|
41 | ;
|
---|
42 | DISPLAY ;Display on-line instructions
|
---|
43 | N X,DIR,Y
|
---|
44 | S DIR("A")=" DISPLAY/PRINT on-line instructions"
|
---|
45 | S DIR("B")="No"
|
---|
46 | S DIR(0)="Y"
|
---|
47 | D ^DIR I ($D(DIRUT))!(+Y<1) Q
|
---|
48 | I X=0 Q
|
---|
49 | I X<0 S OUT=1 Q
|
---|
50 | W ! S DIC="^ONCO(160.2,",L=0,DHD="@"
|
---|
51 | S FLDS="1",BY="@.01"
|
---|
52 | I STEXT S (FR,TO)="STATE REPORTING ACOS INFOA"
|
---|
53 | E S (FR,TO)="PRIMARY ACOS INFO (850)"
|
---|
54 | D EN1^DIP
|
---|
55 | S:'($D(DTOUT)+$D(DUOUT)=0) OUT=1
|
---|
56 | S X=$$ASKY^ONCOU("Continue")
|
---|
57 | S:X<1 OUT=1
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | GETDT(SDT,EDT,DATE,OUT) ; Select a date range
|
---|
61 | K DIR
|
---|
62 | S DIR(0)="SAO^1:Date Case Completed;2:Date Case Last Changed"
|
---|
63 | S DIR("A")=" Select date field to be used for Start/End range: "
|
---|
64 | S DIR("?")="Select the date field you wish to use for this download's Start/End range prompts."
|
---|
65 | D ^DIR
|
---|
66 | I $D(DIRUT) S OUT=1 Q
|
---|
67 | I Y<1 S OUT=1 Q
|
---|
68 | I +Y=2 S STEXT=2
|
---|
69 | K DIR
|
---|
70 | S DIR(0)="D^::X"
|
---|
71 | I STEXT=1 D
|
---|
72 | .S DIR("A")=" Start, Date Case Completed"
|
---|
73 | .S DIR("?",1)=" Enter the DATE CASE COMPLETED of the"
|
---|
74 | .S DIR("?",2)=" FIRST abstract you would like to report."
|
---|
75 | I STEXT=2 D
|
---|
76 | .S DIR("A")=" Start, Date Case Last Changed"
|
---|
77 | .S DIR("?",1)=" Enter the DATE CASE LAST CHANGED of the"
|
---|
78 | .S DIR("?",2)=" FIRST abstract you would like to report."
|
---|
79 | S DIR("?")=" "
|
---|
80 | D ^DIR I $D(DIRUT) S OUT=1 Q
|
---|
81 | S (SDT,BDT)=Y
|
---|
82 | S DIR(0)="D^::X"
|
---|
83 | I STEXT=1 D
|
---|
84 | .S DIR("A")=" End, Date Case Completed"
|
---|
85 | .S DIR("?",1)=" Enter the DATE CASE COMPLETED of the"
|
---|
86 | .S DIR("?",2)=" LAST abstract you would like to report."
|
---|
87 | I STEXT=2 D
|
---|
88 | .S DIR("A")=" End, Date Case Last Changed"
|
---|
89 | .S DIR("?",1)=" Enter the DATE CASE LAST CHANGED of the"
|
---|
90 | .S DIR("?",2)=" LAST abstract you would like to report."
|
---|
91 | D ^DIR I $D(DIRUT) S OUT=1 Q
|
---|
92 | S EDT=Y
|
---|
93 | I EXT="" Q
|
---|
94 | I EXT="VACCR" S ACO=1 Q
|
---|
95 | K DIR
|
---|
96 | S DIR("A")=" Analytic cases only"
|
---|
97 | S DIR("B")="YES"
|
---|
98 | S DIR(0)="Y"
|
---|
99 | S DIR("?")=" "
|
---|
100 | S DIR("?",1)=" Answer 'YES' if you want only analytic cases (CLASS OF CASE 0-2) extracted."
|
---|
101 | S DIR("?",2)=" Answer 'NO' if you want all cases (analytic and non-analytic) extracted."
|
---|
102 | D ^DIR
|
---|
103 | I $D(DIRUT) S OUT=1 Q
|
---|
104 | S ACO=Y
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | PRINT(DEVICE,OUT) ;Capture output data
|
---|
108 | I 'DEVICE D Q:OUT
|
---|
109 | .N X
|
---|
110 | .W !!
|
---|
111 | .W !,?6,"--------------------------------------------------------------"
|
---|
112 | .W !,?6,"|Please activate your PC capture program. The data will be |"
|
---|
113 | .W !,?6,"|sent in 2 minutes or when you press the return key. |"
|
---|
114 | .W !,?6,"--------------------------------------------------------------"
|
---|
115 | .W !!!
|
---|
116 | .R X:120
|
---|
117 | .I X="^" S OUT=1
|
---|
118 | U IO D EN1^ONCACD1
|
---|
119 | Q
|
---|
120 | ;
|
---|
121 | EXIT ;Exit
|
---|
122 | K D0,DI,DIC,DISYS,DQ,FIL,ONCOM,ONCOT,ONCOYR,OUT,ST,STGIND,X,Y
|
---|
123 | I '$D(^TMP($J)) W !?3,"No records extracted." G EX
|
---|
124 | W !
|
---|
125 | S DIC="^ONCO(165.5,",L=0,FLDS="[ONC EXTRACT]",BY(0)="^TMP($J,",L(0)=1
|
---|
126 | S:DEVICE IOP=ION
|
---|
127 | I STEXT=0 S DHD=$P(^ONCO(160.16,HDRIEN,0),U,1) W !
|
---|
128 | I (STEXT=1)!(STEXT=2) S DHD=$P(^ONCO(160.16,HDRIEN,0),U,1)_" "_$$FMTE^XLFDT(BDT,"2D")_" - "_$$FMTE^XLFDT(EDT,"2D")
|
---|
129 | D EN1^DIP
|
---|
130 | I IOST?1"C".E K DIR S DIR(0)="E" D ^DIR Q:'Y
|
---|
131 | EX K ^TMP($J)
|
---|
132 | K %ZIS
|
---|
133 | D ^%ZISC
|
---|
134 | Q
|
---|
135 | ;
|
---|
136 | DEVICE(DEVICE,OUT) ;Select output device
|
---|
137 | Q:'DEVICE
|
---|
138 | S %ZIS="Q"
|
---|
139 | D ^%ZIS
|
---|
140 | I POP S OUT=1 Q
|
---|
141 | I $D(IO("Q")) D
|
---|
142 | .S ZTRTN="PRINT^ONCACD0(DEVICE,.OUT)"
|
---|
143 | .S ZTDESC=$S('STEXT:"ONC NCDB Extract",STEXT:"ONC State Extract",1:"")
|
---|
144 | .S ZTSAVE("STAT1")=""
|
---|
145 | .S ZTSAVE("DATE")=""
|
---|
146 | .S ZTSAVE("STEXT")=""
|
---|
147 | .S ZTSAVE("DEVICE")=""
|
---|
148 | .S ZTSAVE("OUT")=""
|
---|
149 | .S ZTSAVE("BDT")=""
|
---|
150 | .S ZTSAVE("SDT")=""
|
---|
151 | .S ZTSAVE("EDT")=""
|
---|
152 | .S ZTSAVE("EXTRACT")=""
|
---|
153 | .S ZTSAVE("HDRIEN")=""
|
---|
154 | .D ^%ZTLOAD
|
---|
155 | .I $D(ZTSK)[0 S OUT=1 W !!,?20,"Report Canceled!"
|
---|
156 | .E W !!,?20,"Report Queued!" S QUEUE=1
|
---|
157 | .D HOME^%ZIS
|
---|
158 | Q
|
---|
159 | ;
|
---|
160 | VERIFY(STAT,DATE,SDT,EDT,STEXT,YESNO,OUT) ;Verify settings
|
---|
161 | N DIR,Y
|
---|
162 | S RL=$P(^ONCO(160.16,HDRIEN,0),U,1)
|
---|
163 | W !!," These are your current settings:"
|
---|
164 | W !
|
---|
165 | W !," Record layout.......................: ",RL
|
---|
166 | W !," Facility Identification Number (FIN): ",STAT1
|
---|
167 | I EXT="STATE" D
|
---|
168 | .W !," State to be extracted...............: ",STATE
|
---|
169 | I STEXT=0 W !," Accession Year......................: ",DATE
|
---|
170 | I (STEXT=1)!(STEXT=2) D
|
---|
171 | .W !," Start date..........................: ",$$FMTE^XLFDT(SDT,"2D")
|
---|
172 | .W !," End date............................: ",$$FMTE^XLFDT(EDT,"2D")
|
---|
173 | I EXT="STATE" D
|
---|
174 | .W !," Analytic cases only.................: ",$S(ACO=1:"YES",1:"NO")
|
---|
175 | W !
|
---|
176 | S DIR("A")=" Are these settings correct"
|
---|
177 | S DIR("B")="YES"
|
---|
178 | S DIR(0)="Y"
|
---|
179 | D ^DIR
|
---|
180 | I $D(DIRUT) S OUT=1 Q
|
---|
181 | S YESNO=Y
|
---|
182 | Q
|
---|
183 | ;
|
---|
184 | GETDATE(DATE,OUT) ;Select ACCESSION YEAR
|
---|
185 | Q:STEXT=1
|
---|
186 | N CYR,DIR,SCREEN,Y
|
---|
187 | S DATE=0
|
---|
188 | S CYR=1700+($E(DT,1,3)),SCREEN="K:X>CYR X"
|
---|
189 | S DIR(0)="NAO^1900:"_CYR_":0^"_SCREEN
|
---|
190 | S DIR("A")=" Accession Year: "
|
---|
191 | D ^DIR
|
---|
192 | I $D(DIRUT) S OUT=1 Q
|
---|
193 | S DATE=Y
|
---|
194 | Q
|
---|
195 | ;
|
---|
196 | GETHOSP() ;Facility Identification Number (FIN)
|
---|
197 | N STAT,STATI,ALLOK
|
---|
198 | S STAT=0,ALLOK=$$GETDXH(.STAT)
|
---|
199 | I STAT S STATI=6_STAT_0,STAT=STAT_"^"_STATI
|
---|
200 | Q STAT
|
---|
201 | ;
|
---|
202 | GETDXH(DXH) ;INSTITUTION ID NUMBER (160.1,27)
|
---|
203 | N OKHERE,DIE,DA,DR,ONCOL
|
---|
204 | W !
|
---|
205 | S DIE=160.1
|
---|
206 | S DA=$O(^ONCO(160.1,"C",DUZ(2),0))
|
---|
207 | I DA="" S DA=$O(^ONCO(160.1,0))
|
---|
208 | S DR=27_$J("",1)_"Facility Identification Number (FIN)"
|
---|
209 | S ONCOL=0
|
---|
210 | L +^ONCO(160.1,DA):0 I $T D ^DIE L -^ONCO(160.1,DA) S ONCOL=1
|
---|
211 | I 'ONCOL W !,"This site paramaters record is being edited by another user."
|
---|
212 | K ONCOL,DIE
|
---|
213 | I $D(Y)=0 S DXH=$$GET1^DIQ(160.19,X,.01,"I")
|
---|
214 | I X'="" S STATE=$P($G(^ONCO(160.19,X,0)),U,4)
|
---|
215 | S OKHERE=($D(Y)=0)
|
---|
216 | Q OKHERE
|
---|