1 | SD53P491 ;ALB/ESW - SD*5.3*491 POST INIT; Oct 04, 2006 ; 10/23/06 5:40pm ; Compiled June 17, 2008 10:41:32
|
---|
2 | ;;5.3;SCHEDULING;**491**;AUG 13, 1993;Build 53
|
---|
3 | ;Remove trigger - field .01 in the SD WL CLINIC LOCATION file (# 409.32)
|
---|
4 | ;Verify setup of Billable Appointment type: ein=11 - SC
|
---|
5 | ;Update encounters with Appointment Type matching the SC set up on the encounter level
|
---|
6 | ;Update file 409.32 and 409.3 with proper institution set up
|
---|
7 | ;Retransmission of updated encounters has been disabled
|
---|
8 | Q
|
---|
9 | ;
|
---|
10 | POST ;
|
---|
11 | N SDA
|
---|
12 | S SDA(1)="",SDA(2)=" SD*5.3*491 Post-Install .....",SDA(3)="" D ATADDQ
|
---|
13 | N SDA
|
---|
14 | S SDA(1)="",SDA(2)=" Deleting cross-reference definition - trigger of the CLINIC field"
|
---|
15 | S SDA(3)=" in the SD WL CLINIC LOCATION file (# 409.32)",SDA(4)=""
|
---|
16 | D DELIX^DDMOD(409.32,.01,2,"K") D ATADDQ
|
---|
17 | ;
|
---|
18 | D ATADD ; Verify Billable Appointment Type: ien=11
|
---|
19 | ; ^IBE(352.1,11,0)=11^11^2880101^0^1^1
|
---|
20 | S SDA(1)="",SDA(2)=" SD*5.3*491 SC Billable Appointment Type error checking is complete",SDA(3)="" D ATADDQ
|
---|
21 | N SDA
|
---|
22 | S SDA(1)="",SDA(2)="Starting Appointment Type verification for Outpatient Encounter file entries",SDA(3)="with encounter-level Service Connection for encounter entries created",SDA(4)="Jan 20, 2006 or later",SDA(5)="" D ATADDQ
|
---|
23 | ;
|
---|
24 | D CHKSC
|
---|
25 | N SDA
|
---|
26 | S SDA(1)="",SDA(2)="Appointment Type correction to file 409.68 and to sub-file 2.98 finished.",SDA(3)="" D ATADDQ
|
---|
27 | ;
|
---|
28 | N SDA
|
---|
29 | S SDA(1)="",SDA(2)="Checking file 409.32 and 409.3 for valid national institutions, and pointers",SDA(3)="that don't match institutions of the Medical Center Division of their related",SDA(4)="Hospital Location",SDA(5)="" D ATADDQ
|
---|
30 | N INERROR,SDWLSC,SDX,CNT S INERROR=""
|
---|
31 | S SDX(1)="Checking file 409.32 and 409.3 for valid national institutions, and pointers"
|
---|
32 | S SDX(2)="that don't match institutions of the Medical Center Division of their related"
|
---|
33 | S SDX(3)="Hospital Location"
|
---|
34 | S SDX(4)="",CNT=4 S SDWLSC=0 F S SDWLSC=$O(^SDWL(409.32,SDWLSC)) Q:'SDWLSC D UPDINS(SDWLSC,.CNT,.INERROR)
|
---|
35 | D MSGG(.SDX)
|
---|
36 | Q:INERROR
|
---|
37 | N DIK S DIK="SDWL(409.32," D IXALL^DIK
|
---|
38 | N SDA
|
---|
39 | S SDA(1)="",SDA(2)="Verification and update of files 409.32 and 409.3",SDA(3)=" with proper institution finished.",SDA(4)="",SDA(5)=" SD*5.3*491 Post-Install finished...."
|
---|
40 | D ATADDQ
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | ATADD ; New Billable Appointment Type (352.1) to correspond to the New 'SERVICE CONNECTED' Appointment Type (409.1)
|
---|
44 | N DD,DO,DLAYGO,DINUM,DIC,DIE,DA,DR,X,Y,SDA,IBFOUND,SDATFN,IBNUM,SDAT,IBFN
|
---|
45 | S SDA(1)=" >> Verifying 'Service Connected' Billable Appointment Type (#352.1)"
|
---|
46 | S (SDATFN,IBNUM)=11,SDAT="SERVICE CONNECTED"
|
---|
47 | S IBFOUND=$G(^IBE(352.1,SDATFN,0)) ; new IA confirmed to be created
|
---|
48 | I IBFOUND="11^11^2880101^0^1^1" D D ATADDQ Q
|
---|
49 | .D MSG(" Done. Billable Appointment Type Service Connected is set up properly")
|
---|
50 | D MSG(" "),MSG("* ERROR IN CONFIGURATION OF ENTRY IEN=11 IN FILE 352.1 *")
|
---|
51 | D MSG("IT IS MANDATORY THAT YOU CREATE AN INTEGRATED BILLING REMEDY TICKET"),MSG("Entry 11 should be configured for the SERVICE CONNECTED appointment type.")
|
---|
52 | D MSG(" --------------------------") D ATADDQ
|
---|
53 | Q
|
---|
54 | ATADDQ D MES^XPDUTL(.SDA) K SDA
|
---|
55 | Q
|
---|
56 | CHKSC ;Match SC encounter value with proper Appointment Type.
|
---|
57 | ; look for encounters only
|
---|
58 | N SCE,CNT,CNTA S CNT=0,CNTA=0
|
---|
59 | ;SCE - EIN of Outpatient Encounter
|
---|
60 | K ^XTMP("SD53P491-"_$J),^XTMP("SD53P491AP-"_$J)
|
---|
61 | S ^XTMP("SD53P491-"_$J,0)=$$FMADD^XLFDT(""_DT_"",7)_U_DT
|
---|
62 | S ^XTMP("SD53P491AP-"_$J,0)=$$FMADD^XLFDT(""_DT_"",7)_U_DT
|
---|
63 | S SCE=0
|
---|
64 | F S SCE=$O(^SCE(SCE)) Q:SCE'>0 I $P($G(^SCE(SCE,"USER")),U,4)>3060120 D
|
---|
65 | .N STR,SDSCV,SDT,SDVST,DFN,SDAPDF,SDVSCL S STR=$G(^SCE(SCE,0))
|
---|
66 | .S DFN=$P(STR,U,2),SDT=+STR,SDVSCL=$P(STR,U,4)
|
---|
67 | .S SDVST=$P($G(STR),U,5)
|
---|
68 | .Q:'SDVST Q:'$D(^AUPNVSIT(SDVST,800))
|
---|
69 | .S SDSCV=$$GET1^DIQ(9000010,SDVST_",",80001,"I") ;SC flag in Visit file
|
---|
70 | .Q:SDSCV="" ;do not proceed if SC not determined
|
---|
71 | .S SDAPDF=$$GET1^DIQ(44,SDVSCL_",",2507,"I") ;default appt type
|
---|
72 | .I SDAPDF'="" S SDAPDPT=SDAPDF ; set to default if exists for this clinic
|
---|
73 | .E S SDAPDPT=9 ; set to regular
|
---|
74 | .N UPDAP I SDSCV S UPDAP=11
|
---|
75 | .E S UPDAP=SDAPDPT
|
---|
76 | .N SDR D APPT(DFN,SDT,SCE,UPDAP,.SDR)
|
---|
77 | .I $P(^SCE(SCE,0),U,10)=11 D ; change only if original appt type was SC
|
---|
78 | ..Q:SDSCV
|
---|
79 | ..M ^XTMP("SD53P491-"_$J,DFN,SDT,SCE)=^SCE(SCE,0) S CNT=CNT+1
|
---|
80 | ..S $P(^SCE(SCE,0),U,10)=SDAPDPT
|
---|
81 | ..;I 'SDR D RETR(SCE)
|
---|
82 | .E D
|
---|
83 | ..Q:'SDSCV
|
---|
84 | ..; change only if original appt type was SC
|
---|
85 | ..M ^XTMP("SD53P491-"_$J,DFN,SDT,SCE)=^SCE(SCE,0) S CNT=CNT+1
|
---|
86 | ..S $P(^SCE(SCE,0),U,10)=11
|
---|
87 | ..;I 'SDR D RETR(SCE)
|
---|
88 | .D CRST(SDVST,SDSCV,SDAPDPT,.CNT)
|
---|
89 | N SDA
|
---|
90 | S SDA(1)="",SDA(2)=" "_CNT_" OUTPATIENT ENCOUNTER entry(ies) updated with an Appointment Type."
|
---|
91 | S SDA(3)=" "_CNTA_" APPOINTMENT Multiple entry(ies) in the PATIENT file updated"
|
---|
92 | S SDA(4)=" "_"with an Appointment Type."
|
---|
93 | S SDA(5)=""
|
---|
94 | D ATADDQ
|
---|
95 | Q
|
---|
96 | APPT(DFN,SDT,SCE,UPDAP,SDR) ;update appointment multiple in Patient file
|
---|
97 | N STR S STR=$G(^DPT(DFN,"S",SDT,0))
|
---|
98 | S SDR=0
|
---|
99 | I $P(STR,U,20)'=SCE Q
|
---|
100 | I $P(STR,U,16)'=UPDAP D
|
---|
101 | .M ^XTMP("SD53P491AP-"_$J,DFN,SDT,SCE)=STR
|
---|
102 | .S $P(^DPT(DFN,"S",SDT,0),U,16)=UPDAP
|
---|
103 | .S CNTA=CNTA+1,SDR=1
|
---|
104 | .;I SDR D RETR(SCE)
|
---|
105 | Q
|
---|
106 | RETR(SCE) ; mark encounter for retransmission
|
---|
107 | N SDXM
|
---|
108 | S SDXM=$$FINDXMIT^SCDXFU01(SCE)
|
---|
109 | D STREEVNT^SCDXFU01(SDXM,2)
|
---|
110 | D XMITFLAG^SCDXFU01(SDXM)
|
---|
111 | Q
|
---|
112 | MSG(X) ;
|
---|
113 | N SDX S SDX=$O(SDA(999999),-1) S:'SDX SDX=1 S SDX=SDX+1
|
---|
114 | S SDA(SDX)=$G(X)
|
---|
115 | Q
|
---|
116 | CRST(SDVST,SDSCV,SDAPDPT,CNT) ;check for credit stop encounter for each scanned encounter
|
---|
117 | N SDVSTS,SDE S SDE="" S SDVSTS=$O(^AUPNVSIT("AD",SDVST,"")) ; only one child visit
|
---|
118 | I SDVSTS>0 S SDE=$O(^SCE("AVSIT",SDVSTS,""))
|
---|
119 | Q:'SDE
|
---|
120 | I SDSCV D
|
---|
121 | .I $P(^SCE(SDE,0),U,10)'=11 D
|
---|
122 | ..M ^XTMP("SD53P491-"_$J,DFN,SDT,SDE,1)=^SCE(SDE,0) S CNT=CNT+1
|
---|
123 | ..S $P(^SCE(SDE,0),U,10)=11
|
---|
124 | ..;D RETR(SDE)
|
---|
125 | I 'SDSCV D
|
---|
126 | .I $P(^SCE(SDE,0),U,10)=11 D
|
---|
127 | ..M ^XTMP("SD53P491-"_$J,DFN,SDT,SDE,1)=^SCE(SDE,0) S CNT=CNT+1
|
---|
128 | ..S $P(^SCE(SDE,0),U,10)=SDAPDPT
|
---|
129 | ..;D RETR(SDE)
|
---|
130 | Q
|
---|
131 | UPDINS(SDWLSC,CNT,INERROR) ; update 409.32 and the related entries in 409.3
|
---|
132 | N SDWLINS S SDWLINS=$$GET1^DIQ(409.32,SDWLSC_",",.02,"I") ; current set up IN 409.32
|
---|
133 | ;check set up in file 44
|
---|
134 | ;get clinic
|
---|
135 | N CL,CLN S CL=$$GET1^DIQ(409.32,SDWLSC_",",.01,"I"),CLN=$$GET1^DIQ(44,CL_",",.01)
|
---|
136 | N STR,SDWMES S SDWMES="",STR=$$CLIN^SDWLPE(CL)
|
---|
137 | S SDWMES=SDWMES_$P(STR,U,6)
|
---|
138 | I $P(STR,U,5)="L" S CNT=CNT+1 S (SDWMES,SDX(CNT))=SDWMES_" - Local Institution assigned to clinic. "
|
---|
139 | I SDWMES'="" D Q
|
---|
140 | .S CNT=CNT+1,SDX(CNT)=" ** Invalid configuration of Clinic "_CLN_" ("_CL_")"_": **"
|
---|
141 | .W !!,SDX(CNT)
|
---|
142 | .S CNT=CNT+1,SDX(CNT)=SDWMES
|
---|
143 | .W !,SDX(CNT)
|
---|
144 | .S CNT=CNT+1,SDX(CNT)="YOU MUST UPDATE THIS FILE 44 ENTRY'S DIVISION OR ITS MEDICAL CENTER DIVISION'S"
|
---|
145 | .W !,SDX(CNT)
|
---|
146 | .S CNT=CNT+1,SDX(CNT)="INSTITUTION FILE POINTER."
|
---|
147 | .W !,SDX(CNT)
|
---|
148 | .S CNT=CNT+1,SDX(CNT)=""
|
---|
149 | .S:INERROR="" INERROR=1 Q
|
---|
150 | I +STR'=SDWLINS D
|
---|
151 | .S CNT=CNT+1,SDX(CNT)="The Medical Center Division for file 44 Clinic "_CLN_" ("_CL_")"
|
---|
152 | .W !!,SDX(CNT)
|
---|
153 | .S CNT=CNT+1,SDX(CNT)="has a different Institution than the file 409.32 entry for EWL."
|
---|
154 | .W !,SDX(CNT)
|
---|
155 | .N SDI,SDI1 S SDI=$$GET1^DIQ(4,SDWLINS_",",.01),SDI1=$$GET1^DIQ(4,SDWLINS_",",99)
|
---|
156 | .S CNT=CNT+1,SDX(CNT)="EWL Clinic INSTITUTION: "_SDI_" - "_SDI1
|
---|
157 | .W !,SDX(CNT)
|
---|
158 | .S CNT=CNT+1,SDX(CNT)="Clinic INSTITUTION: "_$P(STR,U,3)_" - "_$P(STR,U,2)
|
---|
159 | .W !,SDX(CNT)
|
---|
160 | .N DIE,DR,DA S DR=".02////^S X=+STR",DIE="^SDWL(409.32,",DA=SDWLSC
|
---|
161 | .L +^SDWL(409.32,DA):0 I '$T S CNT=CNT+1,SDX(CNT)="Entry locked; Run SD WAIT LIST CLEANUP later" W !?5,SDX(CNT) Q
|
---|
162 | .D ^DIE L -^SDWL(409.32,DA)
|
---|
163 | .S CNT=CNT+1,SDX(CNT)="Updated EWL Clinic to match."
|
---|
164 | .W !,SDX(CNT),!
|
---|
165 | .S CNT=CNT+1,SDX(CNT)=""
|
---|
166 | .;loop to update EWL entries in FILE 409.3 if any
|
---|
167 | .N SCL,DA,DR,CNT1 S SCL="",CNT1=0 F S SCL=$O(^SDWL(409.3,"SC",CL,SCL)) Q:SCL'>0 D
|
---|
168 | ..I '$D(^SDWL(409.3,SCL,0)) K ^SDWL(409.3,"SC",CL,SCL) Q
|
---|
169 | ..S DR="2////^S X=+STR",DIE="^SDWL(409.3,",DA=SCL
|
---|
170 | ..L +^SDWL(409.3,SCL):0 I '$T S CNT=CNT+1,SDX(CNT)="Entry locked; Run SD WAIT LIST CLEANUP later" W !?5,SDX(CNT),! Q
|
---|
171 | ..D ^DIE L -^SDWL(409.3,SCL) S CNT1=CNT1+1
|
---|
172 | .I CNT1>0 W !,CNT1_" wait list entry(ies) for "_CLN_" clinic updated in SD WAIT LIST file #409.3." S CNT=CNT+1,SDX(CNT)=""
|
---|
173 | N DA I $$GET1^DIQ(409.32,SDWLSC_",",3,"I")="" I $$GET1^DIQ(409.32,SDWLSC_",",1,"I")'>0 D
|
---|
174 | .S DA=SDWLSC L +^SDWL(409.32,SDWLSC):0 I '$T S CNT=CNT+1,SDX(CNT)="Entry locked; Run SD WAIT LIST CLEANUP later" W !?5,SDX(CNT) Q
|
---|
175 | .S DR="1////^S X=DT;2////^S X=DUZ",DIE="^SDWL(409.32," ;enter activation date and user
|
---|
176 | .D ^DIE L -^SDWL(409.32,SDWLSC)
|
---|
177 | .S CNT=CNT+1,SDX(CNT)="EWL Clinic entry for "_CLN_" updated with today's activation date."
|
---|
178 | .W !,SDX(CNT)
|
---|
179 | .S CNT=CNT+1,SDX(CNT)=""
|
---|
180 | Q
|
---|
181 | MSGG(SDX) ;send message
|
---|
182 | N SDAMX,XMSUB,XMY,XMTEXT,XMDUZ,DIFROM
|
---|
183 | S XMSUB="PATCH SD*5.3*491 POST-INSTALL: UPDATE FILES 409.3 and 409.32"
|
---|
184 | S XMY("G.SD EWL BACKGROUND UPDATE")=""
|
---|
185 | S XMY(DUZ)=""
|
---|
186 | S XMTEXT="SDX("
|
---|
187 | S CNT=$O(SDX(""),-1)
|
---|
188 | S CNT=CNT+1,SDX(CNT)=""
|
---|
189 | S CNT=CNT+1,SDX(CNT)="SD WL CLINIC LOCATION file update is finished."
|
---|
190 | W !!,SDX(CNT)
|
---|
191 | S CNT=CNT+1,SDX(CNT)="Open EWL entries in the SD WAIT LIST file have also been updated."
|
---|
192 | W !,SDX(CNT)
|
---|
193 | S CNT=CNT+1,SDX(CNT)="If invalid/local Institution pointers were indicated above for"
|
---|
194 | W !!,SDX(CNT)
|
---|
195 | S CNT=CNT+1,SDX(CNT)="Hospital Location file #44, correct the DIVISION on those clinics"
|
---|
196 | W !,SDX(CNT)
|
---|
197 | S CNT=CNT+1,SDX(CNT)="and/or the INSTITUTION FILE POINTER of the Medical Center Division"
|
---|
198 | W !,SDX(CNT)
|
---|
199 | S CNT=CNT+1,SDX(CNT)="that the clinic points to, then run option SD WAIT LIST CLEANUP"
|
---|
200 | W !,SDX(CNT)
|
---|
201 | S CNT=CNT+1,SDX(CNT)="which will update institutions in EWL files 409.32 and 409.3."
|
---|
202 | W !,SDX(CNT)
|
---|
203 | S CNT=CNT+1,SDX(CNT)=""
|
---|
204 | W !,SDX(CNT)
|
---|
205 | S CNT=CNT+1,SDX(CNT)="NOTE: SD WAIT LIST CLEANUP must be run any time corrections are made to"
|
---|
206 | W !,SDX(CNT)
|
---|
207 | S CNT=CNT+1,SDX(CNT)="a Hospital Location file #44 entry's DIVISION or to an INSTITUTION FILE POINTER"
|
---|
208 | W !,SDX(CNT)
|
---|
209 | S CNT=CNT+1,SDX(CNT)="in the Medical Center division file #40.8."
|
---|
210 | W !,SDX(CNT)
|
---|
211 | D ^XMD
|
---|