[613] | 1 | DGPREBJ ;Boise/WRL/ALB/SCK/EG-PreRegistration Night Task Job ; 1/20/05 1:08pm
|
---|
| 2 | ;;5.3;Registration;**109,581,568,585**;Aug 13, 1993
|
---|
| 3 | Q
|
---|
| 4 | ;
|
---|
| 5 | EN ; Main entry point for the Pre-Registration Background Job.
|
---|
| 6 | ; Variables
|
---|
| 7 | ; DGPTOD - Current date
|
---|
| 8 | ; DGPNL - Message line count for mail message
|
---|
| 9 | ; DGPFNC - Job function
|
---|
| 10 | ; DGPNDAY - Number of days to keep entries in the call list
|
---|
| 11 | ; DGPTXT - Message array
|
---|
| 12 | ; DGPDT - Last date to keep entries in call list for, uses DGPNDAY
|
---|
| 13 | ; DGPN1-2 - Temporary Var's for $ORDER
|
---|
| 14 | ; DGPCLD - Count of call log entries purged
|
---|
| 15 | ;
|
---|
| 16 | N DGPTXT,DGPTOD,DGPFNC,DGPNL,DGPCLD,DGPDT,DGPN1,DGPN2,DGPNDAY
|
---|
| 17 | ;
|
---|
| 18 | S DGPTOD=$$DT^XLFDT()
|
---|
| 19 | ;
|
---|
| 20 | S DGPNL=1
|
---|
| 21 | ;
|
---|
| 22 | S DGPFNC=$P($G(^DG(43,1,"DGPRE")),U,3)
|
---|
| 23 | I DGPFNC']""!(DGPFNC="N") D MES("MES1") G EXIT
|
---|
| 24 | ;
|
---|
| 25 | ; Get Appointment Information
|
---|
| 26 | D SDAMAPI^DGPREBJ1(0)
|
---|
| 27 | ;
|
---|
| 28 | ; Check for Appointment Database Availability
|
---|
| 29 | ;if there is no lower level data from the 101 subscript, then it is
|
---|
| 30 | ;an error, otherwise it could be a valid patient or clinic
|
---|
| 31 | ;eg 01/20/2005
|
---|
| 32 | I $D(^TMP($J,"SDAMA301")) I $D(^TMP($J,"SDAMA301",101))=1 D SETTEXT^DGPREBJ("SDAMAPI - Appointment Database is Unavailable."),SETTEXT^DGPREBJ("Unable to update Call List."),SEND K ^TMP($J,"SDAMA301") Q
|
---|
| 33 | ;
|
---|
| 34 | ; DG/581 - delete certain entries in DGS(41.42
|
---|
| 35 | N DGTDAY,DGIEN,DGOLD,DGZERO,DGDFN,DGAPDT,DGKFLAG,DGCLN,DGSTAT
|
---|
| 36 | D NOW^%DTC S DGTDAY=%
|
---|
| 37 | S (DGIEN,DGOLD)=0
|
---|
| 38 | F S DGIEN=$O(^DGS(41.42,DGIEN)) Q:'DGIEN D
|
---|
| 39 | .S DGZERO=$G(^DGS(41.42,DGIEN,0)) Q:DGZERO=""
|
---|
| 40 | .S DGDFN=$P(DGZERO,U),DGAPDT=$P(DGZERO,U,8),DGCLN=$P(DGZERO,U,7)
|
---|
| 41 | .Q:('DGDFN)!('DGAPDT)
|
---|
| 42 | .S DGKFLAG=0
|
---|
| 43 | .; delete if appt date less than NOW
|
---|
| 44 | .I DGAPDT<DGTDAY S DGKFLAG=1
|
---|
| 45 | .; check status of appt - delete if no-show, cancelled...
|
---|
| 46 | .S DGSTAT=$P($P($G(^TMP($J,"SDAMA301",DGCLN,DGDFN,DGAPDT)),U,3),";")
|
---|
| 47 | .I DGSTAT'="",DGSTAT'="R" S DGKFLAG=1
|
---|
| 48 | .I DGKFLAG S DIK="^DGS(41.42,",DA=DGIEN D ^DIK K DIK S DGOLD=DGOLD+1
|
---|
| 49 | D SETTEXT("Number of old or cancelled records deleted from the Call List: "_DGOLD)
|
---|
| 50 | D SETTEXT("")
|
---|
| 51 | ;
|
---|
| 52 | I DGPFNC="D" D KILLALL
|
---|
| 53 | I DGPFNC="P" D PURGECP
|
---|
| 54 | I DGPFNC="DA" D KILLALL,ADDNEW^DGPREBJ1(0,DGPDT)
|
---|
| 55 | I DGPFNC="PA" D ADDNEW^DGPREBJ1(0,DGPDT),PURGECP
|
---|
| 56 | I DGPFNC="AO" D ADDNEW^DGPREBJ1(0,DGPDT)
|
---|
| 57 | ;
|
---|
| 58 | ; Purge call log entries beyond Days to Keep limit
|
---|
| 59 | S DGPNDAY=$P($G(^DG(43,1,"DGPRE")),U,4)
|
---|
| 60 | G:DGPNDAY']"" EXIT
|
---|
| 61 | ;
|
---|
| 62 | D SETTEXT("Running: Purge Call Log.")
|
---|
| 63 | ;
|
---|
| 64 | S DGPDT=$$FMADD^XLFDT(DGPTOD,-DGPNDAY)
|
---|
| 65 | S DGPCLD=0
|
---|
| 66 | S DGPN1=0 F S DGPN1=$O(^DGS(41.43,"B",DGPN1)) Q:'DGPN1!(DGPN1>DGPDT) D
|
---|
| 67 | . S DGPN2=0 F S DGPN2=$O(^DGS(41.43,"B",DGPN1,DGPN2)) Q:'DGPN2 D
|
---|
| 68 | .. S DGPCLD=DGPCLD+1
|
---|
| 69 | .. S DIK="^DGS(41.43,"
|
---|
| 70 | .. S DA=DGPN2
|
---|
| 71 | .. D ^DIK K DIC
|
---|
| 72 | ;
|
---|
| 73 | D SETTEXT("Number of Entries Deleted From Call History: "_DGPCLD)
|
---|
| 74 | D SETTEXT(" ")
|
---|
| 75 | ;
|
---|
| 76 | EXIT ;
|
---|
| 77 | D SEND
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | SEND ; Send notification of actions taken to mailgroup
|
---|
| 81 | S XMY("G.DGPRE PRE-REG STAFF")=""
|
---|
| 82 | S XMDUZ=$S($G(DUZ)>0:DUZ,1:.5)
|
---|
| 83 | S XMTEXT="DGPTXT("
|
---|
| 84 | S XMSUB="PRE-REGISTRATION NIGHTLY JOB REPORT"
|
---|
| 85 | D XMZ^XMA2
|
---|
| 86 | D:XMZ>0 ^XMD
|
---|
| 87 | K XMY,XMDUZ,XMTEXT,XMSUB
|
---|
| 88 | Q
|
---|
| 89 | ;
|
---|
| 90 | SETTEXT(DGLINE) ; Add text line to message array
|
---|
| 91 | S DGPTXT(DGPNL)=DGLINE
|
---|
| 92 | S DGPNL=DGPNL+1
|
---|
| 93 | Q
|
---|
| 94 | ;
|
---|
| 95 | PURGECP ; Purge called patients from the Pre-registration call list
|
---|
| 96 | ; Variables
|
---|
| 97 | ; DGPDEL - Counter of records deleted
|
---|
| 98 | ;
|
---|
| 99 | N DGPDEL
|
---|
| 100 | S DGPDEL=0
|
---|
| 101 | ;
|
---|
| 102 | D PRGLST^DGPREP4(0,.DGPDEL)
|
---|
| 103 | ;
|
---|
| 104 | D SETTEXT(DGPDEL_" Called Patients Purged.")
|
---|
| 105 | D SETTEXT(" ")
|
---|
| 106 | Q
|
---|
| 107 | ;
|
---|
| 108 | KILLALL ; Clear all entries from the pre-registration call list.
|
---|
| 109 | ; Variables
|
---|
| 110 | ; DGPTOT - Counter if entries deleted
|
---|
| 111 | ;
|
---|
| 112 | N DGPTOT
|
---|
| 113 | S DGPTOT=0
|
---|
| 114 | ;
|
---|
| 115 | D CLRLST^DGPREP4(0,.DGPTOT)
|
---|
| 116 | ;
|
---|
| 117 | D SETTEXT(DGPTOT_" Entries Deleted from the Call List.")
|
---|
| 118 | D SETTEXT(" ")
|
---|
| 119 | Q
|
---|
| 120 | ;
|
---|
| 121 | MES(TAG) ; Build message for missing parameters
|
---|
| 122 | N DGMES,I
|
---|
| 123 | ;
|
---|
| 124 | F I=1:1 S DGMES=$P($T(@TAG+I),";;",2,99) Q:DGMES="$$END" D SETTEXT(DGMES)
|
---|
| 125 | D SETTEXT(" ")
|
---|
| 126 | Q
|
---|
| 127 | ;
|
---|
| 128 | MES1 ;
|
---|
| 129 | ;;There is either no entry or a 'No Action' entry in the 'CALL LIST NIGHT JOB
|
---|
| 130 | ;;FUNCTION' field in the site parameter file. No action will be taken on the
|
---|
| 131 | ;;Call List.
|
---|
| 132 | ;;$$END
|
---|