| 1 | SDAMC ;ALB/MJK - Cancel Appt Action ; 8/31/05 3:02pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**20,28,32,46,263,414,444,478**;Aug 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; -- protocol SDAM APPT CANCEL entry pt
 | 
|---|
| 5 |  ; input:  VALMY := array entries
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  N SDI,SDAT,VALMY,SDAMCIDT,CNT,L,SDWH,SDCP,SDREM,SDSCR,SDMSG,SCLHOLD
 | 
|---|
| 8 |  K ^UTILITY($J)
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  I '$D(DFN),$G(SDFN),($G(SDAMTYP)="P") S DFN=SDFN
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  S VALMBCK=""
 | 
|---|
| 14 |  D SEL^VALM2,CHK G ENQ:'$O(VALMY(0))
 | 
|---|
| 15 |  D FULL^VALM1 S VALMBCK="R"
 | 
|---|
| 16 |  S SDWH=$$WHO,SDCP=$S(SDWH="C":0,1:1) G ENQ:SDWH=-1
 | 
|---|
| 17 |  S SDSCR=$$RSN(SDWH) G ENQ:SDSCR=-1
 | 
|---|
| 18 |  S (TMPD,SDREM)=$$REM G ENQ:SDREM=-1 ;SD/478
 | 
|---|
| 19 |  S (SDI,CNT,L)=0
 | 
|---|
| 20 |  F  S SDI=$O(VALMY(SDI)) Q:'SDI  I $D(^TMP("SDAMIDX",$J,SDI)) K SDAT S SDAT=^(SDI) W !,^TMP("SDAM",$J,+SDAT,0) D CAN($P(SDAT,U,2),$P(SDAT,U,3),.CNT,.L,SDWH,SDCP,SDSCR,SDREM)
 | 
|---|
| 21 |  I SDAMTYP="P" D BLD^SDAM1
 | 
|---|
| 22 |  I SDAMTYP="C" D BLD^SDAM3
 | 
|---|
| 23 | ENQ Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | CAN(DFN,SDT,CNT,L,SDWH,SDCP,SDSCR,SDREM) ;
 | 
|---|
| 26 |  N A1,NDT S NDT=SDT
 | 
|---|
| 27 |  I $P($G(^DPT(DFN,"S",NDT,0)),U,2)["C" W !!,"Appointment already cancelled" H 2 G CANQ
 | 
|---|
| 28 |  I $D(^DPT(DFN,"S",NDT,0)) S SD0=^(0) I $P(SD0,"^",2)'["C" S SC=+SD0,L=L\1+1,APL="" D FLEN^SDCNP1A S ^UTILITY($J,"SDCNP",L)=NDT_"^"_SC_"^"_COV_"^"_APL_"^^"_APL_"^^^^^^"_SDSP D CHKSO^SDCNP0 ;SD/478
 | 
|---|
| 29 |  ;SD*5.3*414 next line added to set hold variable SCLHOLD for clinic ptr
 | 
|---|
| 30 |  S APP=1,A1=L\1 S SCLHOLD=$P(^UTILITY($J,"SDCNP",A1),U,2) D BEGD^SDCNP0
 | 
|---|
| 31 |  D MES,NOPE W ! S (CNT,L)=0 K ^UTILITY($J,"SDCNP")
 | 
|---|
| 32 | CANQ ;
 | 
|---|
| 33 |  ;Wait List Message
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  I $G(SCLHOLD)'="" S:'$D(SDCLN) SDCLN=SCLHOLD  ; SD*5.3*414
 | 
|---|
| 36 |  I $G(SDCLN)'="",$D(^SDWL(409.3,"SC",SDCLN)) D
 | 
|---|
| 37 |  .W !,?1,"There are Patients on the Wait List waiting for an Appointment in the",!?1,$P(^SC(SDCLN,0),U,1)," Clinic.",!
 | 
|---|
| 38 |  S DIR(0)="E" D ^DIR W !
 | 
|---|
| 39 |  K:SDAMTYP="P" SDCLN
 | 
|---|
| 40 |  K SCLHOLD,SC,COV,APP
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | MES ; -- set error message
 | 
|---|
| 43 |  S SDMSG="W !,""Enter appt. numbers separated by commas and/or a range separated"",!,""by dashes (ie 2,4,6-9)"" H 2"
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | WHO() ;
 | 
|---|
| 47 |  W ! S DIR(0)="SOA^PC:PATIENT;C:CLINIC",DIR("A")="Appointments cancelled by (P)atient or (C)linic: ",DIR("B")="Patient"
 | 
|---|
| 48 |  D ^DIR K DIR
 | 
|---|
| 49 |  Q $S(Y=""!(Y="^"):-1,1:Y)
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | RSN(SDWH) ;
 | 
|---|
| 52 | RSN1 W ! S DIC="^SD(409.2,",DIC(0)="AEMQ",DIC("S")="I '$P(^(0),U,4),"""_$E(SDWH)_"B""[$P(^(0),U,2)" D ^DIC K DIC
 | 
|---|
| 53 |  I X["^" G RSNQ
 | 
|---|
| 54 |  I Y<0 W *7 G RSN1
 | 
|---|
| 55 | RSNQ Q +Y
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | REM() ;
 | 
|---|
| 58 |  W ! S DIR(0)="2.98,17" D ^DIR K DIR
 | 
|---|
| 59 |  I $E(X)="^" S Y=-1
 | 
|---|
| 60 |  Q Y
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | NOPE ;
 | 
|---|
| 63 |  N SDEND,SDPAUSE
 | 
|---|
| 64 |  S:'CNT SDPAUSE=1
 | 
|---|
| 65 |  D NOPE^SDCNP1
 | 
|---|
| 66 |  D:$G(SDPAUSE) PAUSE^VALM1
 | 
|---|
| 67 |  Q
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | CHK ; -- check if status of appt permits cancelling
 | 
|---|
| 70 |  N SDI S SDI=0
 | 
|---|
| 71 |  F  S SDI=$O(VALMY(SDI)) Q:'SDI  I $D(^TMP("SDAMIDX",$J,SDI)) K SDAT S SDAT=^(SDI) I '$D(^SD(409.63,"ACAN",1,+$$STATUS^SDAM1($P(SDAT,U,2),$P(SDAT,U,3),+$G(^DPT(+$P(SDAT,U,2),"S",+$P(SDAT,U,3),0)),$G(^(0))))) D
 | 
|---|
| 72 |  .W !,^TMP("SDAM",$J,+SDAT,0),!!,*7,"You cannot cancel this appointment."
 | 
|---|
| 73 |  .K VALMY(SDI) D PAUSE^VALM1
 | 
|---|
| 74 |  Q
 | 
|---|