| 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$$
 | 
|---|