1 | RGMTUT01 ;BIR/CML-MPI/PD Compile and Correct Data Validation Data for Local Sites ;08/12/02
|
---|
2 | ;;1.0;CLINICAL INFO RESOURCE NETWORK;**20,31,41**;30 Apr 99
|
---|
3 | ;
|
---|
4 | ;Reference to $$UPDATE^MPIFAPI supported by IA #2706
|
---|
5 | ;Reference to VAFCTFU supported by IA #2988
|
---|
6 | ;Reference to ^DPT( supported by IA #2070
|
---|
7 | ;Reference to ^DGCN(391.91,"APAT" supported by IA #2911
|
---|
8 | ;Reference to ^%ZTSCH("TASK" supported by IA #3520
|
---|
9 | ;
|
---|
10 | EN1 ;Use this entry point to get only display diagnostics for development team
|
---|
11 | ;BYPASS=0 means prohibit times are enforced
|
---|
12 | ;SITEOPT=0 means CMOR, TF, and diagnostics are included in report
|
---|
13 | ;SITEOPT=1 means diagnostics are omitted from report (this is the report for the site)
|
---|
14 | ;SITEOPT=2 means only diagnostics are in report
|
---|
15 | ;
|
---|
16 | S BYPASS=0,SITEOPT=2 G BEGIN
|
---|
17 | ;
|
---|
18 | EN2 ;Use this entry point from remote query
|
---|
19 | S BYPASS=1,SITEOPT=0 G BEGIN ; **41
|
---|
20 | ;
|
---|
21 | EN3 ;Use this entry point for site menu option [RG NATIONAL ICN STATISTICS] to omit
|
---|
22 | ;diagnostic section from report
|
---|
23 | S BYPASS=0,SITEOPT=1 G BEGIN
|
---|
24 | ;
|
---|
25 | BY ;use this call to bypass check to prohibit primetime run
|
---|
26 | S BYPASS=1,SITEOPT=2
|
---|
27 | ;
|
---|
28 | BEGIN ;
|
---|
29 | S PRT=0,QFLG=0 K RGROU
|
---|
30 | I $D(^XTMP("RGMT","UT01","@@","COMPILE STARTED"))&('$D(^XTMP("RGMT","UT01","@@","COMPILE STOPPED"))) D I QFLG G QUIT
|
---|
31 | .;check running tasks to see if compile is running
|
---|
32 | .S TASK=0 F S TASK=$O(^%ZTSCH("TASK",TASK)) Q:'TASK D
|
---|
33 | ..S RGROU=$P(^%ZTSCH("TASK",TASK),"^",2)
|
---|
34 | ..I RGROU="RGMTSTAT" D
|
---|
35 | ...I TASK=$G(ZTSK) Q
|
---|
36 | ...S QFLG=1
|
---|
37 | ...I '$D(RGHLMQ) W !!,"The Stat Report is currently being compiled."
|
---|
38 | .I 'QFLG K ^XTMP("RGMT","UT01"),^XTMP("RGMT","REINDDT")
|
---|
39 | ;
|
---|
40 | I $D(RGHLMQ) G STARTQ
|
---|
41 | W !!,"This option provides the following statistics:"
|
---|
42 | W !?3,"1. Total patients assigned to each unique COORDINATING MASTER OF"
|
---|
43 | W !?3," RECORD (CMOR)."
|
---|
44 | W !?3,"2. Total patients shared with each unique entry in the TREATING"
|
---|
45 | W !?3," FACILITY LIST (#391.91) file."
|
---|
46 | W !?3,"3. Totals for national ICNs, local ICNs, and patients with no ICN."
|
---|
47 | I SITEOPT=1 G START
|
---|
48 | W !?3,"4. Total CMOR assignments missing a matching Treating Facility."
|
---|
49 | W !?3,"5. Total patients with NATIONAL ICN and missing local Treating Facility."
|
---|
50 | W !?3,"6. Total number of patients with duplicate entries in the TREATING"
|
---|
51 | W !?3," FACILITY LIST file (#391.91)."
|
---|
52 | W !?3,"7. Patient File xref problems for ""AICN"", ""AICNL"", and ""SSN""."
|
---|
53 | W !?3,"8. Total number of patients with a no ICN but have a CMOR assignment."
|
---|
54 | W !?3,"9. Total number of patients with a no ICN but have TF assignments."
|
---|
55 | W !?3,"10. Total number of patients with a local ICN but have remote TFs."
|
---|
56 | ;
|
---|
57 | START ;
|
---|
58 | S QFLG=0
|
---|
59 | I '$D(^XTMP("RGMT","UT01","@@","COMPILE STARTED")) W !!,"No data is currently available." I SITEOPT=1 G QUIT
|
---|
60 | ;
|
---|
61 | W !!,"===> NOTE <==="
|
---|
62 | I SITEOPT=1 D
|
---|
63 | .W !,"This data is compiled by a remote process initiated from the MPI in Austin"
|
---|
64 | .W !,"on a regular basis for reporting purposes. It is not compiled by the local"
|
---|
65 | .W !,"site, however, the local site can view the last report that was compiled.",!
|
---|
66 | ;
|
---|
67 | I $D(^XTMP("RGMT","UT01","@@","COMPILE STOPPED")) D G:QFLG QUIT I PRT D ^RGMTUT03 G QUIT
|
---|
68 | .S PRT=0
|
---|
69 | .S LAST=^XTMP("RGMT","UT01","@@","COMPILE STOPPED")
|
---|
70 | .S LAST=$$FMTE^XLFDT(LAST)
|
---|
71 | .W !,"This data was last compiled on ",LAST,"."
|
---|
72 | .I SITEOPT=1 S PRT=1 Q
|
---|
73 | .S DIR(0)="Y",DIR("B")="YES",DIR("A")="Do you just want a reprint of that data"
|
---|
74 | .S DIR("?",1)="Enter:"
|
---|
75 | .S DIR("?",2)=" ""YES"" or <RET> to reprint current data and NOT recompile."
|
---|
76 | .S DIR("?",3)=" ""NO"" to recompile new data (this may take several hours)."
|
---|
77 | .S DIR("?")=" ""^"" to HALT."
|
---|
78 | .D ^DIR K DIR
|
---|
79 | .I Y="^" S QFLG=1 Q
|
---|
80 | .I +Y=1 S PRT=1 Q
|
---|
81 | ;
|
---|
82 | STARTQ ;pick up here for queued job
|
---|
83 | D NOW^%DTC
|
---|
84 | ;
|
---|
85 | ;check to be sure stat report not being run during prime time
|
---|
86 | S TODAY=$$DOW^XLFDT($$NOW^XLFDT()) I TODAY="Saturday"!(TODAY="Sunday") S BYPASS=1
|
---|
87 | S QUIT=0
|
---|
88 | I 'BYPASS D I QUIT G QUIT
|
---|
89 | .S CHKTIME=$E($P(%,".",2),1,4)
|
---|
90 | .I CHKTIME>"0700"&(CHKTIME<"1700") S QUIT=1 I '$D(RGHLMQ) D
|
---|
91 | ..W !!,"<< STAT report cannot be compiled between 7:00am and 5:00pm! >>"
|
---|
92 | ;
|
---|
93 | I '$D(RGHLMQ) W !!,"Recompiling data..."
|
---|
94 | ;
|
---|
95 | S ^XTMP("RGMT",0)=$$FMADD^XLFDT(DT,30)_"^"_$$NOW^XLFDT_"^MPI/PD Maintenance Data"
|
---|
96 | K ^XTMP("RGMT","UT01"),^XTMP("RGMT","REINDDT") ; **41
|
---|
97 | S ^XTMP("RGMT","UT01","@@","COMPILE STARTED")=%
|
---|
98 | ;
|
---|
99 | D REIND^RGMTUT02
|
---|
100 | D CMOR,TF,TFCHK
|
---|
101 | ;
|
---|
102 | I 'PRT D
|
---|
103 | .D NOW^%DTC
|
---|
104 | .S ^XTMP("RGMT","UT01","@@","COMPILE STOPPED")=%
|
---|
105 | D ^RGMTUT03
|
---|
106 | ;
|
---|
107 | QUIT ;
|
---|
108 | K %,BYPASS,CHKTIME,LAST,LOC,PRT,QFLG,QUIT,SITEOPT,TODAY,Y,RGROU,TASK
|
---|
109 | Q
|
---|
110 | ;
|
---|
111 | CMOR ; Check "ACMOR" xref for:
|
---|
112 | ; - existence of a TF entry for the CMOR in the TF file #391.91
|
---|
113 | ; - existence of a TF for the local site (if not the CMOR)
|
---|
114 | ; - CMOR totals by site
|
---|
115 | ;
|
---|
116 | I '$D(RGHLMQ) D
|
---|
117 | .W !!,"Check #1 for:"
|
---|
118 | .W !,"- Patients missing Treating Facility entries for their CMOR."
|
---|
119 | .W !,"- Patients missing Treating Facility entries for their local site."
|
---|
120 | .W !,"- Unique CMOR totals."
|
---|
121 | ;
|
---|
122 | K ^XTMP("RGMT","UT01","CMOR")
|
---|
123 | K ^XTMP("RGMT","UT01","TOT CMOR MISS TF")
|
---|
124 | K ^XTMP("RGMT","UT01","TOT LOC SITE MISS TF")
|
---|
125 | K ^XTMP("RGMT","UT01","CMOR WITH NO ICN")
|
---|
126 | S (CNT,NOICN,TOTMISSC,TOTMISSL)=0
|
---|
127 | S SITESTA=$P($$SITE^VASITE(),"^",3),SITEDA=$P($$SITE^VASITE(),"^")
|
---|
128 | ;
|
---|
129 | S CMOR=0 F S CMOR=$O(^DPT("ACMOR",CMOR)) Q:'CMOR D
|
---|
130 | .I '$D(CMOR(CMOR)) S CMOR(CMOR)=0
|
---|
131 | .S DFN=0 F S DFN=$O(^DPT("ACMOR",CMOR,DFN)) Q:'DFN D
|
---|
132 | ..S CNT=CNT+1 I '$D(RGHLMQ) W:'(CNT#10000) "."
|
---|
133 | ..S ICN=$P($G(^DPT(DFN,"MPI")),"^")
|
---|
134 | ..I $E(ICN,1,3)=SITESTA Q
|
---|
135 | ..I ICN="" D Q
|
---|
136 | ...S NOICN=NOICN+1
|
---|
137 | ...I '$D(RGHLMQ) W !?3,"DFN #",DFN," has no ICN and a CMOR of ",$P($$NS^XUAF4(CMOR),"^")
|
---|
138 | ...S ^XTMP("RGMT","UT01","CMOR WITH NO ICN",DFN)=""
|
---|
139 | ...S LOC(991.03)="@" W $$UPDATE^MPIFAPI(DFN,"LOC")
|
---|
140 | ..S CMOR(CMOR)=CMOR(CMOR)+1
|
---|
141 | ..I '$D(^DGCN(391.91,"APAT",DFN,CMOR)) D
|
---|
142 | ...S TOTMISSC=TOTMISSC+1
|
---|
143 | ...S SSN=$P($G(^DPT(DFN,0)),"^",9)
|
---|
144 | ...S NAME=$P($G(^DPT(DFN,0)),"^")
|
---|
145 | ...S ^XTMP("RGMT","UT01","CMOR","ZZMISSC",CMOR,DFN)="DFN/"_DFN_"^NAME/"_NAME_"^SSN/"_SSN_"^ICN/"_ICN
|
---|
146 | ...D FILE^VAFCTFU(DFN,CMOR,1)
|
---|
147 | ..I SITEDA'=CMOR,'$D(^DGCN(391.91,"APAT",DFN,SITEDA)) D
|
---|
148 | ...S TOTMISSL=TOTMISSL+1
|
---|
149 | ...S SSN=$P($G(^DPT(DFN,0)),"^",9)
|
---|
150 | ...S NAME=$P($G(^DPT(DFN,0)),"^")
|
---|
151 | ...S ^XTMP("RGMT","UT01","CMOR","ZZMISSL",CMOR,DFN)="DFN/"_DFN_"^NAME/"_NAME_"^SSN/"_SSN_"^ICN/"_ICN
|
---|
152 | ...D FILE^VAFCTFU(DFN,SITEDA,1)
|
---|
153 | ;
|
---|
154 | S CMOR=0 F S CMOR=$O(CMOR(CMOR)) Q:'CMOR D
|
---|
155 | .S CMORNM=$P($$NS^XUAF4(CMOR),"^"),CMORSTA=$P($$NS^XUAF4(CMOR),"^",2) Q:CMORSTA=""
|
---|
156 | .S ^XTMP("RGMT","UT01","CMOR",CMORNM,CMORSTA)=CMOR(CMOR)
|
---|
157 | S ^XTMP("RGMT","UT01","TOT CMOR MISS TF")=TOTMISSC
|
---|
158 | S ^XTMP("RGMT","UT01","TOT LOC SITE MISS TF")=TOTMISSL
|
---|
159 | S ^XTMP("RGMT","UT01","CMOR WITH NO ICN")=NOICN
|
---|
160 | I '$D(RGHLMQ) W !,"Check #1 - Complete"
|
---|
161 | K CMOR,CMORNM,CMORSTA,CNT,DFN,ICN,NAME,NOICN,SITEDA,SITESTA,SSN,TOTMISSC,TOTMISSL
|
---|
162 | Q
|
---|
163 | ;
|
---|
164 | TF ; Get totals for unique sites in the TF file (#391.91)
|
---|
165 | I '$D(RGHLMQ) D
|
---|
166 | .W !!,"Check #2 for:"
|
---|
167 | .W !,"- Unique Treating Facility totals."
|
---|
168 | K ^XTMP("RGMT","UT01","TF"),TFCNT S CNT=0
|
---|
169 | S SITE=$P($$SITE^VASITE(),"^",3)
|
---|
170 | S TF=0 F S TF=$O(^DGCN(391.91,"AINST",TF)) Q:'TF D
|
---|
171 | .S CNT=CNT+1 I '$D(RGHLMQ) W:'(CNT#10000) "."
|
---|
172 | .I '$D(TFCNT(TF)) S TFCNT(TF)=0
|
---|
173 | .S TFIEN=0 F S TFIEN=$O(^DGCN(391.91,"AINST",TF,TFIEN)) Q:'TFIEN S TFCNT(TF)=TFCNT(TF)+1
|
---|
174 | S TF=0 F S TF=$O(TFCNT(TF)) Q:'TF D
|
---|
175 | .S TFNM=$P($$NS^XUAF4(TF),"^"),TFSTA=$P($$NS^XUAF4(TF),"^",2) Q:TFSTA=""
|
---|
176 | .S ^XTMP("RGMT","UT01","TF",TFNM,TFSTA)=TFCNT(TF)
|
---|
177 | I '$D(RGHLMQ) W !,"Check #2 - Complete"
|
---|
178 | K CNT,SITE,TF,TFCNT,TFIEN,TFNM,TFSTA
|
---|
179 | Q
|
---|
180 | ;
|
---|
181 | TFCHK ; Get totals for duplicates in TF file (#391.91)
|
---|
182 | ;NOICN=# of patients found with remote TFs and no ICN
|
---|
183 | ;LOCICN=# of patients found with remote TFs and a local ICN
|
---|
184 | ;
|
---|
185 | I '$D(RGHLMQ) D
|
---|
186 | .W !!,"Check #3 for:"
|
---|
187 | .W !,"- Duplicate Treating Facility assignments."
|
---|
188 | .W !,"- Patients with Treating Facilities and no ICN."
|
---|
189 | .W !,"- Patients remote treating Facilities and Local ICN."
|
---|
190 | ;
|
---|
191 | K ^XTMP("RGMT","UT01","TOT TFDUP"),^XTMP("RGMT","UT01","TOT NO ICN W/TF"),^XTMP("RGMT","UT01","TOT LOC ICN W/REMOTE TF")
|
---|
192 | S (PTCNT,DUPCNT,NOICN,LOCICN)=0
|
---|
193 | S SITESTA=$P($$SITE^VASITE(),"^",3),SITEDA=$P($$SITE^VASITE(),"^")
|
---|
194 | S DFN=0 F S DFN=$O(^DGCN(391.91,"APAT",DFN)) Q:'DFN D
|
---|
195 | .S PTCNT=PTCNT+1 I '$D(RGHLMQ) W:'(PTCNT#10000) "."
|
---|
196 | .S TF=0 F S TF=$O(^DGCN(391.91,"APAT",DFN,TF)) Q:'TF D
|
---|
197 | ..S MPI0=$G(^DPT(DFN,"MPI")),ICN=$P(MPI0,"^")
|
---|
198 | ..;delete all TFs for patients with no ICN
|
---|
199 | ..I ICN="" D Q
|
---|
200 | ...S NOICN=NOICN+1
|
---|
201 | ...S TFIEN=0 F S TFIEN=$O(^DGCN(391.91,"APAT",DFN,TF,TFIEN)) Q:'TFIEN D
|
---|
202 | ....S ^XTMP("RGMT","UT01","NO ICN WITH REMOTE OR LOCAL TF",DFN,TFIEN)=""
|
---|
203 | ....D DELETE^VAFCTFU(TFIEN)
|
---|
204 | ..;delete all remote TFs for patients with local ICNs
|
---|
205 | ..I $E(ICN,1,3)=SITESTA,TF'=SITEDA D Q
|
---|
206 | ...S TFIEN=0 F S TFIEN=$O(^DGCN(391.91,"APAT",DFN,TF,TFIEN)) Q:'TFIEN D
|
---|
207 | ....S LOCICN=LOCICN+1
|
---|
208 | ....S ^XTMP("RGMT","UT01","LOCAL ICN WITH REMOTE TF",DFN,TFIEN)=""
|
---|
209 | ....D DELETE^VAFCTFU(TFIEN)
|
---|
210 | ..;look for TF dups
|
---|
211 | ..S (TFCNT,TFIEN)=0 F S TFIEN=$O(^DGCN(391.91,"APAT",DFN,TF,TFIEN)) Q:'TFIEN D
|
---|
212 | ...S TFCNT=TFCNT+1 I TFCNT>1 D
|
---|
213 | ....S DUPCNT=DUPCNT+1
|
---|
214 | ....S SSN=$P($G(^DPT(DFN,0)),"^",9)
|
---|
215 | ....S NM=$P($G(^(0)),"^")
|
---|
216 | ....S ^XTMP("RGMT","UT01","TFDUP",DFN,TFIEN)=TF_"^"_NM_"^"_SSN
|
---|
217 | ....D DELETE^VAFCTFU(TFIEN)
|
---|
218 | ;
|
---|
219 | S ^XTMP("RGMT","UT01","TOT TFDUP")=DUPCNT
|
---|
220 | S ^XTMP("RGMT","UT01","TOT NO ICN W/TF")=NOICN
|
---|
221 | S ^XTMP("RGMT","UT01","TOT LOC ICN W/REMOTE TF")=LOCICN
|
---|
222 | I '$D(RGHLMQ) W !,"Check #3 - Complete"
|
---|
223 | K DFN,DUPCNT,ICN,LOCICN,MPI0,NM,NOICN,PTCNT,SITEDA,SITESTA,SSN,TF,TFCNT,TFIEN
|
---|
224 | Q
|
---|