| 1 | SD132PT ;ALB/MJK - Patch SD*5.3*132 Post-Init Routine ; 11/5/97 | 
|---|
| 2 | ;;5.3;Scheduling;**132**;Aug 13, 1993 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ; --- main entry point | 
|---|
| 5 | S U="^" | 
|---|
| 6 | D BMES^XPDUTL("Post-Init Started...") | 
|---|
| 7 | ; | 
|---|
| 8 | ; -- main driver calls | 
|---|
| 9 | D MAS,HL,LOG,ACG,AG,OVER | 
|---|
| 10 | ; | 
|---|
| 11 | D BMES^XPDUTL("Post-Init Finished.") | 
|---|
| 12 | Q | 
|---|
| 13 | ; | 
|---|
| 14 | MAS ; -- delete MAS PARAMETERS (#43) fields and related data | 
|---|
| 15 | N SDARY | 
|---|
| 16 | ; | 
|---|
| 17 | D BMES^XPDUTL("   >>> Deleting MAS PARAMETERS (#43) fields...") | 
|---|
| 18 | ; | 
|---|
| 19 | ; -- get fields to delete | 
|---|
| 20 | D BUILDR(43,.SDARY) | 
|---|
| 21 | ; | 
|---|
| 22 | IF '$O(SDARY(0)) G MASQ | 
|---|
| 23 | ; | 
|---|
| 24 | ; -- delete data | 
|---|
| 25 | N SDFDA,SDFLD | 
|---|
| 26 | S SDFLD=0 | 
|---|
| 27 | F  S SDFLD=$O(SDARY(SDFLD)) Q:'SDFLD  D | 
|---|
| 28 | . S SDFDA(43,"1,",SDFLD)="@" | 
|---|
| 29 | D FILE^DIE("S","SDFDA") | 
|---|
| 30 | ; | 
|---|
| 31 | ; -- delete dds | 
|---|
| 32 | D DELDD(43) | 
|---|
| 33 | MASQ D MES^XPDUTL("   >>> Done.") | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | HL ; -- delete HOSPITIAL LOCATION (#44) fields and related data | 
|---|
| 37 | N SDARY | 
|---|
| 38 | ; | 
|---|
| 39 | D BMES^XPDUTL("   >>> Deleting HOSPITAL LOCATION (#44) fields...") | 
|---|
| 40 | ; | 
|---|
| 41 | ; -- get fields to delete | 
|---|
| 42 | D BUILDR(44,.SDARY) | 
|---|
| 43 | ; | 
|---|
| 44 | IF '$O(SDARY(0)) G HLQ | 
|---|
| 45 | ; | 
|---|
| 46 | ; -- delete data | 
|---|
| 47 | S SDIEN=0 | 
|---|
| 48 | F  S SDIEN=$O(^SC(SDIEN)) Q:'SDIEN  D | 
|---|
| 49 | . N SDFDA,SDFLD | 
|---|
| 50 | . S SDFLD=0 | 
|---|
| 51 | . F  S SDFLD=$O(SDARY(SDFLD)) Q:'SDFLD  D | 
|---|
| 52 | . . S SDFDA(44,SDIEN_",",SDFLD)="@" | 
|---|
| 53 | . D FILE^DIE("S","SDFDA") | 
|---|
| 54 | ; | 
|---|
| 55 | ; -- delete dds | 
|---|
| 56 | D DELDD(44) | 
|---|
| 57 | HLQ D MES^XPDUTL("   >>> Done.") | 
|---|
| 58 | Q | 
|---|
| 59 | ; | 
|---|
| 60 | LOG ; -- delete APPOINTMENT STATUS UPDATE LOG (#409.65) fields and related data | 
|---|
| 61 | N SDARY | 
|---|
| 62 | ; | 
|---|
| 63 | D BMES^XPDUTL("   >>> Deleting APPPOINT STATUS UPDATE LOG (409.65) fields...") | 
|---|
| 64 | ; | 
|---|
| 65 | ; -- get fields to delete | 
|---|
| 66 | D BUILDR(409.65,.SDARY) | 
|---|
| 67 | ; | 
|---|
| 68 | IF '$O(SDARY(0)) G LOGQ | 
|---|
| 69 | ; | 
|---|
| 70 | ; -- delete data | 
|---|
| 71 | S SDIEN=0 | 
|---|
| 72 | F  S SDIEN=$O(^SDD(409.65,SDIEN)) Q:'SDIEN  D | 
|---|
| 73 | . N SDFDA,SDFLD | 
|---|
| 74 | . S SDFLD=0 | 
|---|
| 75 | . F  S SDFLD=$O(SDARY(SDFLD)) Q:'SDFLD  D | 
|---|
| 76 | . . S SDFDA(409.65,SDIEN_",",SDFLD)="@" | 
|---|
| 77 | . D FILE^DIE("S","SDFDA") | 
|---|
| 78 | ; | 
|---|
| 79 | ; -- delete dds | 
|---|
| 80 | D DELDD(409.65) | 
|---|
| 81 | LOGQ D MES^XPDUTL("   >>> Done.") | 
|---|
| 82 | Q | 
|---|
| 83 | ; | 
|---|
| 84 | ACG ; -- update new computer generated appt type related fields in | 
|---|
| 85 | ;    OUTPATIENT ENCOUNTER (#409.68) with data for ^SDV data | 
|---|
| 86 | ; | 
|---|
| 87 | D BMES^XPDUTL("   >>> Setting 'ACG' cross references...") | 
|---|
| 88 | ; | 
|---|
| 89 | ; -- scan ^SDV("ACG") for records | 
|---|
| 90 | N SDATE,SDCS,SDCS0,SDOE,SDOE0,SDREASON,SDAPPT,SDCG,DR,DA,DIE | 
|---|
| 91 | S SDATE=0 | 
|---|
| 92 | F  S SDATE=$O(^SDV("ACG",SDATE)) Q:'SDATE  D | 
|---|
| 93 | . S SDCS=0 F  S SDCS=$O(^SDV("ACG",SDATE,SDCS)) Q:'SDCS  D | 
|---|
| 94 | . . S SDCS0=$G(^SDV(SDATE,"CS",SDCS,0)) | 
|---|
| 95 | . . S SDCG=+$G(^SDV(SDATE,"CS",SDCS,1)) | 
|---|
| 96 | . . S SDAPPT=$P(SDCS0,U,5) | 
|---|
| 97 | . . S SDREASON=$P(SDCS0,U,6) | 
|---|
| 98 | . . S SDOE=+$P(SDCS0,U,8) | 
|---|
| 99 | . . S SDOE0=$G(^SCE(SDOE,0)) | 
|---|
| 100 | . . IF SDAPPT=10,SDOE,$P(SDOE0,U,10)=10,$G(^SCE(SDOE,"CG"))="" D | 
|---|
| 101 | . . . S DR=".1////10" | 
|---|
| 102 | . . . IF SDCG S DR=DR_";201////1" | 
|---|
| 103 | . . . IF SDREASON S DR=DR_";202////"_SDREASON | 
|---|
| 104 | . . . S DIE="^SCE(",DA=SDOE D ^DIE | 
|---|
| 105 | ; | 
|---|
| 106 | D MES^XPDUTL("   >>> Done.") | 
|---|
| 107 | Q | 
|---|
| 108 | ; | 
|---|
| 109 | AG ; -- queue job to set 'AG' xref and related fields | 
|---|
| 110 | N SDUZ,ZTRTN,ZTIO,ZTDESC,ZTDTH,ZTSAVE,ZTSK | 
|---|
| 111 | S SDUZ=$G(DUZ) | 
|---|
| 112 | D BMES^XPDUTL("   >>> Queuing task to set 'AG' cross reference.") | 
|---|
| 113 | ; -- disable option | 
|---|
| 114 | D OUT^XPDMENU("SDACS CGSCLIST","AG Cross Reference Being Set") | 
|---|
| 115 | D MES^XPDUTL("       -> Option 'SDACS CGSCLIST' has been placed out of service.") | 
|---|
| 116 | ; | 
|---|
| 117 | ; -- queue task | 
|---|
| 118 | S ZTIO="" | 
|---|
| 119 | S ZTRTN="AGQUE^SD132PT" | 
|---|
| 120 | S ZTDESC="Setting 'AG' Cross Reference" | 
|---|
| 121 | S ZTDTH=$$NOW^XLFDT() | 
|---|
| 122 | F X="SDUZ" S ZTSAVE(X)="" | 
|---|
| 123 | D ^%ZTLOAD | 
|---|
| 124 | D:$D(ZTSK) MES^XPDUTL("       -> Task: #"_ZTSK) | 
|---|
| 125 | D MES^XPDUTL("   >>> Done.") | 
|---|
| 126 | Q | 
|---|
| 127 | ; | 
|---|
| 128 | AGQUE ; -- TaskMan entry point to queue 'AG' setting | 
|---|
| 129 | ; | 
|---|
| 130 | N SDATE,SDCS,SDCS0,SDOE,SDREASON,SDCG,DR,DA,DIE,SDSTOP,SDTOT,SDBEG,SDEND | 
|---|
| 131 | ; | 
|---|
| 132 | S SDTOT=0 | 
|---|
| 133 | S SDBEG=$$NOW^XLFDT() | 
|---|
| 134 | ; | 
|---|
| 135 | ; -- scan ^SDV("AG") for records | 
|---|
| 136 | S SDATE=0 | 
|---|
| 137 | F  S SDATE=$O(^SDV("AG",SDATE)) Q:'SDATE  D  S SDSTOP=$$S^%ZTLOAD Q:SDSTOP | 
|---|
| 138 | . S SDCS=0 F  S SDCS=$O(^SDV("AG",SDATE,SDCS)) Q:'SDCS  D | 
|---|
| 139 | . . S SDCS0=$G(^SDV(SDATE,"CS",SDCS,0)) | 
|---|
| 140 | . . S SDCG=+$G(^SDV(SDATE,"CS",SDCS,1)) | 
|---|
| 141 | . . S SDOE=+$P(SDCS0,U,8) | 
|---|
| 142 | . . S SDREASON=$P(SDCS0,U,6) | 
|---|
| 143 | . . IF SDOE,$G(^SCE(SDOE,0))]"",$G(^SCE(SDOE,"CG"))="",SDCG D | 
|---|
| 144 | . . . S DR="201////1" | 
|---|
| 145 | . . . IF SDREASON S DR=DR_";202////"_SDREASON | 
|---|
| 146 | . . . S DIE="^SCE(",DA=SDOE D ^DIE | 
|---|
| 147 | . . . S SDTOT=SDTOT+1 | 
|---|
| 148 | ; | 
|---|
| 149 | S SDEND=$$NOW^XLFDT() | 
|---|
| 150 | ; -- send bulletin and enable option | 
|---|
| 151 | D BULL | 
|---|
| 152 | Q | 
|---|
| 153 | ; | 
|---|
| 154 | BULL ; -- send message indicating 'AG' xref is set and option enabled | 
|---|
| 155 | N SDTEXT,SDCNT,XMSUB,XMN,XMTEXT,XMDUZ,XMY | 
|---|
| 156 | S SDCNT=0 | 
|---|
| 157 | ; | 
|---|
| 158 | D LINE("") | 
|---|
| 159 | D LINE("  >>>  Task Started: "_$$FMTE^XLFDT(SDBEG)) | 
|---|
| 160 | D LINE("           Finished: "_$$FMTE^XLFDT(SDEND)) | 
|---|
| 161 | D LINE("") | 
|---|
| 162 | ; | 
|---|
| 163 | ; -- build text | 
|---|
| 164 | IF SDSTOP D | 
|---|
| 165 | . D LINE("   >>> Task stopped by user. <<<") | 
|---|
| 166 | ELSE  D | 
|---|
| 167 | . ; -- enable option | 
|---|
| 168 | . D OUT^XPDMENU("SDACS CGSCLIST","") | 
|---|
| 169 | . ; | 
|---|
| 170 | . ; -- build text | 
|---|
| 171 | . D LINE("   >>> Task Completed.") | 
|---|
| 172 | . D LINE("") | 
|---|
| 173 | . D LINE("   >>> Option 'SDACS CGSCLIST' is back in service.") | 
|---|
| 174 | ; | 
|---|
| 175 | D LINE("") | 
|---|
| 176 | D LINE("   >>> "_SDTOT_" Records processed.") | 
|---|
| 177 | ; -- set xm vars and send message | 
|---|
| 178 | S XMSUB="Setting of 'AG' Cross Reference Task Information" | 
|---|
| 179 | S XMN=0 | 
|---|
| 180 | S XMTEXT="SDTEXT(" | 
|---|
| 181 | S XMDUZ=.5 | 
|---|
| 182 | S XMY(SDUZ)="" | 
|---|
| 183 | D ^XMD | 
|---|
| 184 | Q | 
|---|
| 185 | ; | 
|---|
| 186 | OVER ; -- post override flag information | 
|---|
| 187 | N SDPKG,SDCNT | 
|---|
| 188 | ; | 
|---|
| 189 | D BMES^XPDUTL("   >>> Package Override Flag Information") | 
|---|
| 190 | ; | 
|---|
| 191 | S SDPKG="A",SDCNT=0 | 
|---|
| 192 | F  S SDPKG=$O(^XTMP("SD*5.3*132 OVERRIDE FLAGS",SDPKG)) Q:SDPKG=""  D | 
|---|
| 193 | . D MES^XPDUTL("       -> Override flag set for '"_SDPKG_"'") | 
|---|
| 194 | . S SDCNT=SDCNT+1 | 
|---|
| 195 | ; | 
|---|
| 196 | IF 'SDCNT D MES^XPDUTL("       -> No package override flags set.") | 
|---|
| 197 | D MES^XPDUTL("   >>> Done.") | 
|---|
| 198 | Q | 
|---|
| 199 | ; | 
|---|
| 200 | LINE(TEXT) ; -- add line of text | 
|---|
| 201 | S SDCNT=SDCNT+1 | 
|---|
| 202 | S SDTEXT(SDCNT)=TEXT | 
|---|
| 203 | Q | 
|---|
| 204 | ; | 
|---|
| 205 | BUILDR(SDD,SDARY) ; -- build array of fields to delete | 
|---|
| 206 | N SDI,SDX,SDENDFLG | 
|---|
| 207 | S SDENDFLG="$$END$$" | 
|---|
| 208 | ; | 
|---|
| 209 | F SDI=1:1 S SDX=$P($T(FLDS+SDI),";;",2) Q:SDX=SDENDFLG  D | 
|---|
| 210 | . N SDFILE,SDFLD | 
|---|
| 211 | . S SDFILE=+SDX | 
|---|
| 212 | . S SDFLD=+$P(SDX,U,2) | 
|---|
| 213 | . S SDNAME=$P(SDX,U,3) | 
|---|
| 214 | . IF SDD=SDFILE,$$LABEL(SDFILE,SDFLD)=SDNAME D | 
|---|
| 215 | . . S SDARY(SDFLD)="" | 
|---|
| 216 | Q | 
|---|
| 217 | ; | 
|---|
| 218 | DELDD(SDD) ; -- tool to delete fields dd | 
|---|
| 219 | ; -- delete dd | 
|---|
| 220 | N SDI,SDX,SDENDFLG,SDCNT | 
|---|
| 221 | S SDENDFLG="$$END$$" | 
|---|
| 222 | S SDCNT=0 | 
|---|
| 223 | ; | 
|---|
| 224 | ; -- delete dds | 
|---|
| 225 | F SDI=1:1 S SDX=$P($T(FLDS+SDI),";;",2) Q:SDX=SDENDFLG  D | 
|---|
| 226 | . N SDFILE,SDFLD,SDNAME | 
|---|
| 227 | . S SDFILE=+SDX | 
|---|
| 228 | . S SDFLD=+$P(SDX,U,2) | 
|---|
| 229 | . S SDNAME=$P(SDX,U,3) | 
|---|
| 230 | . ; | 
|---|
| 231 | . ; -- make sure field is not reused before deleting | 
|---|
| 232 | . IF SDD=SDFILE,$$LABEL(SDFILE,SDFLD)=SDNAME D | 
|---|
| 233 | . . N DIK,DA | 
|---|
| 234 | . . S DIK="^DD("_SDD_",",DA=SDFLD,DA(1)=SDD D ^DIK | 
|---|
| 235 | . . D MSG(SDFLD,SDNAME) | 
|---|
| 236 | . . S SDCNT=SDCNT+1 | 
|---|
| 237 | ; | 
|---|
| 238 | IF 'SDCNT D MES^XPDUTL("       -> Fields already deleted.") | 
|---|
| 239 | Q | 
|---|
| 240 | ; | 
|---|
| 241 | LABEL(SDFILE,SDFLD) ; -- get label if not deleted | 
|---|
| 242 | N SDY | 
|---|
| 243 | D FIELD^DID(SDFILE,SDFLD,"N","LABEL","SDY") | 
|---|
| 244 | Q $G(SDY("LABEL")) | 
|---|
| 245 | ; | 
|---|
| 246 | MSG(SDFLD,SDNAME) ; -- tell user (use kids call??) | 
|---|
| 247 | D MES^XPDUTL("       -> Field '"_SDFLD_" - "_SDNAME_"' deleted.") | 
|---|
| 248 | Q | 
|---|
| 249 | ; | 
|---|
| 250 | FLDS ; -- fields to be deleted [ file# ^ field# ^ field label ] | 
|---|
| 251 | ;;43^201^SPEC SURVEY DISP LAST RUN | 
|---|
| 252 | ;;43^202^OPC FILE LAST RUN | 
|---|
| 253 | ;;43^203^OPC TRANSMISSION LAST RUN | 
|---|
| 254 | ;;43^204^GENERATING OPC FILE NOW? | 
|---|
| 255 | ;;43^206^AMB PROC INITIALIZATION DATE | 
|---|
| 256 | ;;43^206.1^OPC VLR DATE | 
|---|
| 257 | ;;43^206.2^OPC MT INCOME DATE | 
|---|
| 258 | ;;43^207^OPC STOP CODE CONVERSION DATE | 
|---|
| 259 | ;;43^208^OPC GENERATION START DATE | 
|---|
| 260 | ;;43^209^OPC GENERATION END DATE | 
|---|
| 261 | ;;43^214^GEN OPC W/APPT STATUS UPDATE | 
|---|
| 262 | ;;43^221^STOP CODE MAIL GROUP | 
|---|
| 263 | ;;43^218^OPC FY93 FORMAT DATE | 
|---|
| 264 | ;;43^219^ASK PROVIDER ON DISPOSITION | 
|---|
| 265 | ;;43^220^ASK DIAGNOSIS ON DISPOSITION | 
|---|
| 266 | ;;43^222^OPC FY94 FORMAT DATE | 
|---|
| 267 | ;;43^225^OPC FY95 FORMAT DATE | 
|---|
| 268 | ;;44^25^PROCEDURE CHECK-OFF SHEET | 
|---|
| 269 | ;;44^26^ASK PROVIDER AT CHECK OUT | 
|---|
| 270 | ;;44^27^ASK DIAGNOSIS AT CHECK OUT | 
|---|
| 271 | ;;44^28^ASK STOP CODES AT CHECK OUT | 
|---|
| 272 | ;;409.65^.06^OPC LAST GENERATED | 
|---|
| 273 | ;;409.65^.07^OPC LAST TRANSMITTED | 
|---|
| 274 | ;;409.65^.08^OPC LAST GENERATED BY | 
|---|
| 275 | ;;409.65^.09^OPC LAST TRANSMITTED BY | 
|---|
| 276 | ;;$$END$$ | 
|---|