1 | SD53430P ;WOIFO/CLC - PFSS Scheduled Outpatient Conversion Backload ;22-APR-2005
|
---|
2 | ;;5.3;Scheduling;**430**;Aug 13, 1993
|
---|
3 | D HDR
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | PRECHK ;
|
---|
7 | N VCNT
|
---|
8 | D HDR W !!,"Pre-Backload Analysis - Outpatient future appointments."
|
---|
9 | S VCNT=$$FUTRAPP(0)
|
---|
10 | I VCNT<0 W !,"Analysis exited without processing..." Q
|
---|
11 | W !!,VCNT," Outpatient future appointments identified in VistA..."
|
---|
12 | W !!,"Analysis complete...."
|
---|
13 | Q
|
---|
14 | FUTRAPP(CMP) ;
|
---|
15 | N I,DFN,APP,STDT,DT,APPINFO
|
---|
16 | S (DFN,APP)=0
|
---|
17 | S STDT=$$GETRESP($$NOW^XLFDT(),"Future Appointment search start date") I STDT="" S APP=-1 G OFAQ
|
---|
18 | W !,"Checking VistA future appointments ",STDT," forward..."
|
---|
19 | F I=1:1 S DFN=$O(^DPT(DFN)) Q:+DFN<1 D
|
---|
20 | .I I#10000=0 W "."
|
---|
21 | .S DT=STDT
|
---|
22 | .F S DT=$O(^DPT(DFN,"S",DT)) Q:+DT<1 D
|
---|
23 | ..S APPINFO=$G(^DPT(DFN,"S",DT,0))
|
---|
24 | ..I APPINFO="" W !,"Invalid Patient Appointment Node:",DFN,"-",DT Q
|
---|
25 | ..I $P(APPINFO,"^",2)="" D
|
---|
26 | ...S APP=APP+1
|
---|
27 | ...I CMP I $G(^TMP($J,"OFA",DFN))="" S EXC(DFN_"^"_DT)=^DPT(DFN,0)
|
---|
28 | OFAQ Q APP
|
---|
29 | POSTCHK ;
|
---|
30 | N PATH,FILENM,LN,TMP,I,DFN,BLCNT,EXC,VCNT
|
---|
31 | D HDR W !!,"Post-Backload Analysis - Outpatient future appointments."
|
---|
32 | S FILENM="SDCONV_ACCT.TXT",BLCNT=0,PATH=$$PWD^%ZISH()
|
---|
33 | S PATH=$$GETRESP(PATH,"Select Backload Path") Q:PATH=""
|
---|
34 | I '$$LISTF(PATH) S FILENM=""
|
---|
35 | S FILENM=$$GETRESP(FILENM,"Select Backload File") Q:FILENM=""
|
---|
36 | ;
|
---|
37 | K ^TMP($J,"OFA")
|
---|
38 | D OPEN^%ZISH("SD",PATH,FILENM,"R")
|
---|
39 | F U IO R LN:1 Q:LN']"" S ^TMP($J,"OFA",$P(LN,"^"))=LN,BLCNT=BLCNT+1
|
---|
40 | D CLOSE^%ZISH(IO)
|
---|
41 | ;
|
---|
42 | W !!,"File: ",FILENM," contains: ",BLCNT," records."
|
---|
43 | S VCNT=$$FUTRAPP(1)
|
---|
44 | W !!,VCNT," Outpatient future appointments identified in VistA..."
|
---|
45 | ;
|
---|
46 | W !," VistA Total:",$J(VCNT,10)
|
---|
47 | W !,"Backload Total:",$J(BLCNT,10)
|
---|
48 | W !,"=================================="
|
---|
49 | W !," ",$J(VCNT-BLCNT,10)
|
---|
50 | ;
|
---|
51 | I '$D(EXC) W !,"No Discrepencies between VistA and the Backload file" Q
|
---|
52 | W !!,"Missing patients from backload file:",!
|
---|
53 | S DFN=0
|
---|
54 | F I=1:1 S DFN=$O(EXC(DFN)) Q:DFN="" W !,I,") ",DFN,"^",EXC(DFN)
|
---|
55 | W !!,"Post analysis complete...."
|
---|
56 | K ^TMP($J,"OFA")
|
---|
57 | Q
|
---|
58 | EP1 ;
|
---|
59 | N CNT,GOOD,ERR,SDKEY,ANS,PATH,Y,FN,GFILE,RFILE,FILENM
|
---|
60 | S SDKEY="SDCONV_ACCT.TXT",FILENM=SDKEY
|
---|
61 | S PATH=$$PWD^%ZISH(),(CNT,GOOD)=0
|
---|
62 | D HDR
|
---|
63 | S PATH=$$GETRESP(PATH,"Select Backload Path") Q:PATH=""
|
---|
64 | ;
|
---|
65 | I '$$LISTF(PATH) S FILENM=""
|
---|
66 | S FILENM=$$GETRESP(FILENM,"Select Backload File") Q:FILENM=""
|
---|
67 | S CNT=$$LOADFILE(PATH,FILENM)
|
---|
68 | ;
|
---|
69 | I CNT>0 S GOOD=$$PROCESS(CNT)
|
---|
70 | D RPTERR(CNT,GOOD,PATH_FILENM)
|
---|
71 | W !!,"Finished.... Mailman message sent to:",$$GET1^DIQ(200,DUZ,.01)," and G.PATCHES"
|
---|
72 | Q
|
---|
73 | LISTF(PATH) ;
|
---|
74 | N GFILE,Y,RFILE,FN
|
---|
75 | S GFILE("SD*.TXT")=""
|
---|
76 | S Y=$$LIST^%ZISH(PATH,"GFILE","RFILE")
|
---|
77 | W !!,"SD*.TXT Files in ",PATH,!,"=================================="
|
---|
78 | I Y=1 S FN="" F S FN=$O(RFILE(FN)) Q:FN="" W !,?10,FN
|
---|
79 | I Y=0 W !!,?10,"** No files matching the SD*.TXT filter exists **"
|
---|
80 | Q Y
|
---|
81 | HDR ;
|
---|
82 | D HOME^%ZIS W @IOF
|
---|
83 | W !!,"==========================================================="
|
---|
84 | W !,"Scheduled Outpatient Conversion Backload",!
|
---|
85 | W !," **********************************************************"
|
---|
86 | W !," * This Routine should ONLY be run by PFSS Implementation *"
|
---|
87 | W !," * Staff. DO NOT run this routine as part of the normal *"
|
---|
88 | W !," * Patch installation process. *"
|
---|
89 | W !," **********************************************************"
|
---|
90 | W !!,"==========================================================="
|
---|
91 | Q
|
---|
92 | GETRESP(DEF,TXT) ;
|
---|
93 | N DIR,DIRUT,DTOUT,X,Y
|
---|
94 | S DIR(0)="Fr",DIR("A")=TXT,DIR("B")=DEF D ^DIR
|
---|
95 | I $D(DIRUT)!$D(DTOUT) S Y=""
|
---|
96 | Q Y
|
---|
97 | RPTERR(CNT,GOOD,FULLPATH) ;
|
---|
98 | N REC,CAT,ROW,ERR,ET,DETAIL
|
---|
99 | N XMDF,XMDUZ,XMSUB,XMDUN,XMTEXT,XMSTRIP,XMROU,XMY,XMZ,XMMG
|
---|
100 | S XMDF="",XMDUZ="SD53430P-"_$TR($P($$SITE^VASITE(),"^",2,3),"^","-")
|
---|
101 | S XMY(DUZ)="",XMY("G.PATCHES")=""
|
---|
102 | S XMSUB="PFSS Scheduled Outpatient Conversion"
|
---|
103 | D XMZ^XMA2 ; Call Create Message Module
|
---|
104 | I XMZ<1 D Q
|
---|
105 | .W !!,"** UNABLE TO CREATE MAILMAN MESSAGE PLEASE CHECK XTMP FOR DETAILS!"
|
---|
106 | ;
|
---|
107 | S ^XMB(3.9,XMZ,2,1,0)="Scheduled OutPatient Conversion Backload"
|
---|
108 | S ^XMB(3.9,XMZ,2,2,0)=" File: "_FULLPATH
|
---|
109 | S ^XMB(3.9,XMZ,2,3,0)=" Run By: "_$$GET1^DIQ(200,DUZ,.01)
|
---|
110 | S ^XMB(3.9,XMZ,2,4,0)=""
|
---|
111 | S ^XMB(3.9,XMZ,2,5,0)="Sucessful Records: "_GOOD
|
---|
112 | S ^XMB(3.9,XMZ,2,7,0)=" ----------------------"
|
---|
113 | S ^XMB(3.9,XMZ,2,8,0)=" Total Processed: "_CNT
|
---|
114 | S ^XMB(3.9,XMZ,2,9,0)="==============================================="
|
---|
115 | ;
|
---|
116 | S REC="",ROW=9,ERR=0
|
---|
117 | F S REC=$O(^XTMP(SDKEY,"ERR",REC)) Q:REC="" D
|
---|
118 | .S ERR=ERR+1,ROW=ROW+1
|
---|
119 | .S ^XMB(3.9,XMZ,2,ROW,0)="Record: "_REC_" ----------------------"
|
---|
120 | .S CAT=""
|
---|
121 | .F S CAT=$O(^XTMP(SDKEY,"ERR",REC,CAT)) Q:CAT="" D
|
---|
122 | ..S ROW=ROW+1,^XMB(3.9,XMZ,2,ROW,0)=" "_CAT
|
---|
123 | ..S ET=""
|
---|
124 | ..F S ET=$O(^XTMP(SDKEY,"ERR",REC,CAT,ET)) Q:ET="" D
|
---|
125 | ...S ROW=ROW+1
|
---|
126 | ...S ^XMB(3.9,XMZ,2,ROW,0)=" "_^XTMP(SDKEY,"ERR",REC,CAT,ET)
|
---|
127 | ;
|
---|
128 | S ^XMB(3.9,XMZ,2,6,0)=" Error Records: "_ERR
|
---|
129 | I ROW=9 S ROW=10,^XMB(3.9,XMZ,2,ROW,0)="Sucessful Backload..... No ERRORS found..."
|
---|
130 | ;
|
---|
131 | S ^XMB(3.9,XMZ,2,0)="^3.92^"_ROW_"^"_ROW_"^"_$$NOW^XLFDT()
|
---|
132 | D ENT1^XMD ;Deliver MSG
|
---|
133 | K ^XTMP(SDKEY)
|
---|
134 | Q
|
---|
135 | LOADFILE(PATH,FILENM) ;
|
---|
136 | N POP,NOW,PURGDT,STOP,TOT,LN
|
---|
137 | W !,"Loading backload file..."
|
---|
138 | K ^XTMP(SDKEY)
|
---|
139 | S NOW=$$NOW^XLFDT(),PURGDT=NOW+2,TOT=0 ;Purge 2 days later
|
---|
140 | S ^XTMP(SDKEY,0)=PURGDT_"^"_NOW_"^PFSS Scheduled Outpatient Back Load"
|
---|
141 | ;
|
---|
142 | D OPEN^%ZISH("SD",PATH,FILENM,"R")
|
---|
143 | I $G(POP) S ^XTMP(SDKEY,"ERR",0,"FATAL",1)="Could NOT PROCESS File!"
|
---|
144 | ;
|
---|
145 | S (STOP,TOT)=0
|
---|
146 | F U IO R LN:1 Q:LN']"" Q:$$STATUS^%ZISH Q:STOP D
|
---|
147 | .I $G(LN)="" S STOP=1 Q
|
---|
148 | .S TOT=TOT+1,^XTMP(SDKEY,"DAT",TOT)=LN I TOT#1000=0 U 0 W "."
|
---|
149 | ;
|
---|
150 | D CLOSE^%ZISH(IO)
|
---|
151 | LFQ Q TOT
|
---|
152 | ;
|
---|
153 | PROCESS(TOT) ;
|
---|
154 | N CNT,INFO,DFN,SDT,SDCLN,SDEXVN,SDANR,SDCHK,GOOD
|
---|
155 | W !,"Processing data..."
|
---|
156 | S GOOD=0
|
---|
157 | F CNT=1:1:TOT D
|
---|
158 | .I CNT#1000=0 W "."
|
---|
159 | .S INFO=^XTMP(SDKEY,"DAT",CNT)
|
---|
160 | .S DFN=$P(INFO,"^",1),SDT=$P(INFO,"^",18)
|
---|
161 | .S SDCLN=$P(INFO,"^",8),SDEXVN=$TR($P(INFO,"^",21)," ","")
|
---|
162 | .;
|
---|
163 | .Q:$$CHKINFO(CNT,DFN,SDT,SDCLN,SDEXVN)
|
---|
164 | .S SDANR=$$GETARN^SDPFSS2(SDT,DFN,SDCLN)
|
---|
165 | .I +SDANR>0 D Q
|
---|
166 | ..I $$EXTNUM^IBBAPI(DFN,SDANR)'=SDEXVN D Q
|
---|
167 | ...S ^XTMP(SDKEY,"ERR",CNT,"ACCT",1)="Visit Number Discrepancy: "_INFO_" NOT EQUAL: "_SDANR
|
---|
168 | ..S GOOD=GOOD+1
|
---|
169 | .;
|
---|
170 | .S SDANR=$$IBBACONV^IBBAADTI(DFN,"O",SDT,SDCLN,SDEXVN)
|
---|
171 | .I SDANR="" S ^XTMP(SDKEY,"ERR",CNT,"ACCT",2)="PFSS Account Reference NOT Created" Q
|
---|
172 | .;
|
---|
173 | .S SDCHK=$$FILE^SDPFSS(DFN,SDT,SDCLN,SDANR)
|
---|
174 | .I +SDCHK<0 D
|
---|
175 | ..S ^XTMP(SDKEY,"ERR",CNT,"APPT LINK",1)="Unable to update file 409.55"
|
---|
176 | ..S ^XTMP(SDKEY,"ERR",CNT,"APPT LINK",2)=SDCHK
|
---|
177 | .I SDCHK="" S ^XTMP(SDKEY,"ERR",CNT,"APPT LINK",3)="Link Already Exists:"_INFO
|
---|
178 | .I +SDCHK=1 S GOOD=GOOD+1
|
---|
179 | Q GOOD
|
---|
180 | CHKINFO(CNT,DFN,SDT,SDCLN,SDEXVN) ;
|
---|
181 | I SDEXVN="" S ^XTMP(SDKEY,"ERR",CNT,"IDX",1)="NO IDX Vist Number:"_INFO
|
---|
182 | ;
|
---|
183 | I +DFN=0 S ^XTMP(SDKEY,"ERR",CNT,"PATIENT",1)="DFN Invalid or Missing"
|
---|
184 | I +DFN>0 D
|
---|
185 | .I $G(^DPT(DFN,0))="" S ^XTMP(SDKEY,"ERR",CNT,"PATIENT",2)="Invalid Patient: "_DFN
|
---|
186 | ;
|
---|
187 | I +SDT=0 S ^XTMP(SDKEY,"ERR",CNT,"APPT DT/TIME",1)="Appointment Date/Time Invalid or Missing"
|
---|
188 | ;
|
---|
189 | I +SDCLN=0 S ^XTMP(SDKEY,"ERR",CNT,"LOCATION",1)="Location Invalid or Missing"
|
---|
190 | I +SDCLN>0 D
|
---|
191 | .I $G(^SC(SDCLN,0))="" S ^XTMP(SDKEY,"ERR",CNT,"LOCATION",2)="Invalid Location:"_SDCLN
|
---|
192 | Q $D(^XTMP(SDKEY,"ERR",CNT))
|
---|
193 | ;
|
---|