| 1 | DVBCCNNS ;ALB/GTS-AMIE C&P APPT EVENT DRIVER ; 10/20/94  9:30 PM | 
|---|
| 2 | ;;2.7;AMIE;;Apr 10, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | ;** NOTICE: This routine is part of an implementation of a Nationally | 
|---|
| 5 | ;**         Controlled Procedure.  Local modifications to this routine | 
|---|
| 6 | ;**         are prohibited per VHA Directive 10-93-142 | 
|---|
| 7 | ; | 
|---|
| 8 | ;** Version Changes | 
|---|
| 9 | ;   2.7 - New routine (Enhc 13) | 
|---|
| 10 | ; | 
|---|
| 11 | ;** Variable Descriptions | 
|---|
| 12 | ;**    DVBAAUTO - prevents AMIE Make Event on an Auto-rebook | 
|---|
| 13 | ;**                NOTE: DVBAAUTO killed by ^DVBCSDEV | 
|---|
| 14 | ;**    DVBASTAT - Status of appointment being canceled/no showed | 
|---|
| 15 | ;**    DVBACURA - Appointment date/time being canceled/no showed | 
|---|
| 16 | ;**    DVBAAPDA - IEN of record in file 396.95 | 
|---|
| 17 | ;**    DVBAFND  - Defined if appt canceled/no showed found in 396.95 | 
|---|
| 18 | ;**    DVBAAPDT - New appt date on auto-rebook | 
|---|
| 19 | ;**    DVBAVTRQ - Defined if appt canceled by vet | 
|---|
| 20 | ;**    DVBACROT - External value of DVBACURA | 
|---|
| 21 | ;**    LNKCNT   - # of link records with current date = canceled date | 
|---|
| 22 | ;**    DVBAUPDT - Last dte cncl'd - cncled 396.95 recs, Cur Dte=cncl dt | 
|---|
| 23 | ; | 
|---|
| 24 | EN ;**Find the respective AMIE appointment record | 
|---|
| 25 | S DVBASTAT=$$SDEVTSPC^DVBCUTL5(2) | 
|---|
| 26 | S DVBACURA=$P(SDATA,U,3) ;**Get the date being canceled | 
|---|
| 27 | S (DVBAAPDA,DVBALKDA)="" | 
|---|
| 28 | S DVBAUPDT=0 | 
|---|
| 29 | K DVBAFND | 
|---|
| 30 | S LNKCNT=0 | 
|---|
| 31 | F  S DVBAAPDA=$O(^DVB(396.95,"CD",DVBACURA,DVBAAPDA)) Q:(DVBAAPDA="")  DO | 
|---|
| 32 | .S DVBARQDA=$P(^DVB(396.95,DVBAAPDA,0),U,6) | 
|---|
| 33 | .I ($P(^DVB(396.3,DVBARQDA,0),U,1)=DFN) DO | 
|---|
| 34 | ..S LNKCNT=LNKCNT+1 | 
|---|
| 35 | ..S:(+$P(^DVB(396.95,DVBAAPDA,0),U,7)=1) DVBAFND="",DVBALKDA=DVBAAPDA | 
|---|
| 36 | ..I '$D(DVBAFND),($P(^DVB(396.95,DVBAAPDA,0),U,8)>DVBAUPDT) DO | 
|---|
| 37 | ...S DVBAUPDT=$P(^DVB(396.95,DVBAAPDA,0),U,8) ;**Keep latest cancel dte | 
|---|
| 38 | ...S DVBALKDA=DVBAAPDA ;**Keep DA of rec last cancelled | 
|---|
| 39 | I (DVBASTAT="PCA")!((DVBASTAT="NA")!(DVBASTAT="CA")) S DVBAAUTO="" | 
|---|
| 40 | ; | 
|---|
| 41 | ;** Appt not linked, enhnc dilog on, not processing in background | 
|---|
| 42 | I (LNKCNT=0)&((+$$ENHNC^DVBCUTA4=1)&('$D(ZTQUEUED))) DO | 
|---|
| 43 | .N DVBACROT S Y=DVBACURA X ^DD("DD") S DVBACROT=Y K Y | 
|---|
| 44 | .S DIR("A",1)=" " | 
|---|
| 45 | .S DIR("A",2)="Appointment "_DVBACROT_" was not linked to a 2507 request or was" | 
|---|
| 46 | .S DIR("A",3)=" manually rebooked and linked to another appointment." | 
|---|
| 47 | .S DIR("A",4)=" (If the appointment was manually rebooked, you do not want to auto-rebook.)" | 
|---|
| 48 | .S DIR("A",5)=" " | 
|---|
| 49 | .S DIR("A",6)="If the appointment was not properly linked, it will need to be linked with the" | 
|---|
| 50 | .S DIR("A",7)=" AMIE/C&P appointment link management option." | 
|---|
| 51 | .S DIR("A",8)=" " | 
|---|
| 52 | .S DIR(0)="FAO^1:1",DIR("A")="Hit Return to continue." D ^DIR K DIR,X,Y | 
|---|
| 53 | I $D(DVBAAUTO),($D(DVBAFND)!('$D(DVBAFND)&(+LNKCNT>0))) DO  ;**Auto-rbk | 
|---|
| 54 | .S:(+$$SDEVTXST^DVBCUTL5=1) DVBAAPDT=$$SDEVTSPC^DVBCUTL5(10) | 
|---|
| 55 | .K DVBAVTRQ ;**Set if appointment canceled by vet | 
|---|
| 56 | .S:(DVBASTAT["P"!(DVBASTAT["N"&(DVBASTAT'="NT"))) DVBAVTRQ="" | 
|---|
| 57 | .D RSCHAPT^DVBCMKLK(DVBALKDA,DVBAAPDT) | 
|---|
| 58 | .D:((+$$ENHNC^DVBCUTA4=1)&('$D(ZTQUEUED))) CNCMSG | 
|---|
| 59 | I '$D(DVBAAUTO),($D(DVBAFND)) DO  ;**Appt linked, not Auto | 
|---|
| 60 | .D CANCEL | 
|---|
| 61 | .D:((+$$ENHNC^DVBCUTA4=1)&('$D(ZTQUEUED))) CNCMSG | 
|---|
| 62 | I +LNKCNT>1 DO | 
|---|
| 63 | .S DIR("A",1)=" " | 
|---|
| 64 | .S DIR("A",2)="This C&P appointment has multiple links with the same Current Appt Date." | 
|---|
| 65 | .S DIR("A",3)="Use the AMIE/C&P Appointment Link Management option to review and delete" | 
|---|
| 66 | .S DIR("A",4)=" any duplicate links." | 
|---|
| 67 | .S DIR("A",5)=" " | 
|---|
| 68 | .S DIR(0)="FAO^1:1",DIR("A")="Hit any key to continue." D ^DIR K DIR,X,Y | 
|---|
| 69 | D KVARS | 
|---|
| 70 | Q | 
|---|
| 71 | ; | 
|---|
| 72 | CNCMSG ;** Write message indicating link updated | 
|---|
| 73 | N DVBAINIT,DVBACROT,DVBARBDT | 
|---|
| 74 | K Y S Y=$P(^DVB(396.95,+DVBALKDA,0),U,1) | 
|---|
| 75 | X ^DD("DD") S DVBAINIT=Y | 
|---|
| 76 | K Y S Y=DVBACURA | 
|---|
| 77 | X ^DD("DD") S DVBACROT=Y K Y | 
|---|
| 78 | I $D(DVBAAUTO) DO | 
|---|
| 79 | .S Y=DVBAAPDT | 
|---|
| 80 | .X ^DD("DD") S DVBARBDT=Y K Y | 
|---|
| 81 | S DIR("A",1)=" " | 
|---|
| 82 | S DIR("A",2)="AMIE C&P Appt Link update" | 
|---|
| 83 | S DIR("A",3)="Initial Appt Date: "_DVBAINIT | 
|---|
| 84 | S DIR("A",4)="Current Appt Date: "_DVBACROT | 
|---|
| 85 | S:'$D(DVBAAUTO) DIR("A",5)="has been cancelled!" | 
|---|
| 86 | S:$D(DVBAAUTO) DIR("A",5)="has been cancelled and rebooked for "_DVBARBDT_"!" | 
|---|
| 87 | S DIR("A",6)=" " | 
|---|
| 88 | S DIR(0)="FAO^1:1",DIR("A")="Hit any key to continue." D ^DIR K DIR,X,Y | 
|---|
| 89 | Q | 
|---|
| 90 | ; | 
|---|
| 91 | CANCEL ;** Cancel C&P Appt | 
|---|
| 92 | N DVBCUPDT | 
|---|
| 93 | D NOW^%DTC | 
|---|
| 94 | S DVBCUPDT=% | 
|---|
| 95 | K %,X | 
|---|
| 96 | S DA=+DVBALKDA,DIE="^DVB(396.95,",DR="" | 
|---|
| 97 | I DVBASTAT["PC"!(DVBASTAT["N"&(DVBASTAT'="NT")) DO | 
|---|
| 98 | .S DR=".04////^S X=1;" ;** Set .04 if vet cancel | 
|---|
| 99 | S DR=DR_".07////^S X=0;.08////^S X=DVBCUPDT" | 
|---|
| 100 | D ^DIE K DA,DIE,DR | 
|---|
| 101 | Q | 
|---|
| 102 | ; | 
|---|
| 103 | KVARS ; | 
|---|
| 104 | K DVBAAPDA,DVBAFND,DVBCCURA,DVBASTAT,DVBAAPDT,DVBARQDA | 
|---|
| 105 | K DVBAVTRQ,DVBALKDA,LNKCNT,DVBAUPDT | 
|---|
| 106 | Q | 
|---|