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