SDCNP1 ;ALB/LDB - CANCEL APPOINTMENT (cont.) ; 5/25/12 11:42am
 ;;5.3;Scheduling;**398,467,478,554,597,682,719**;Aug 13, 1993;Build 3
 ;
 ;SD/467 - EWL Open Matched Entry with rebook
NOPE W !,*7,$S(CNT:CNT_" Appointment"_$S(CNT>1:"s",1:"")_" cancelled",1:"NOTHING CANCELLED")
 N SDCLNK S SDCLNK=$G(SC) ; Hold value of SC for EWL Notification call
 S SDCNT=CNT,SDA=1,SDCNT1=0 I CNT,$S('$D(^DPT(DFN,.35)):1,'$P(^(.35),U):1,1:0) S (SDA,X8)=0 D ASK G:X8="^" END
 ;no rebooking to take place; open EWL entries only if applicable
 I $D(DFN)>0 D EWL(DFN) ;SD/467
 I SDA,SDCNT W !,*7,"NO AUTO-REBOOKING --Patient has died."
 I 'SDA,SDCNT S A=DFN D LOOP1^SDCNP1A,LET,CANQ^SDAMC(DFN,$G(SDCLNK)) K SDCLNK
 ;Calls subroutine CANQ to display wait list message if applicable. - PATCH SD*5.3*597
END K:'$D(DIROUT) DFN D END^SDCNP Q:$D(DIROUT)  G RD^SDCNP
 ;Remove AUTO-REBOOK quit at ASK line, SD*5.3*682
ASK Q
 S (SDCTR,SDCTRL)=0,%=2 W !!,"DO YOU WISH TO REBOOK ANY APPOINTMENT(S) THAT YOU HAVE CANCELLED" D YN^DICN S ALS=% D:'% REASK G:'% ASK I %-1 S CNT=0 S:%<0 X8="^" D  Q
 .W !,"OK"
 W !!,"PLEASE NOTE THAT YOU MUST ENTER A DEVICE TO AUTO-REBOOK",!
ZIS S %ZIS("A")="DEVICE TO OUTPUT REBOOKED APPT(S). :",%ZIS="QN" D ^%ZIS I POP S X8="^" Q
 S L=0 F  S L=$O(^UTILITY($J,"SDCNP",L)) Q:'L  I $P(^(L),U,4)="*** JUST CANCELLED ***" S ^UTILITY($J,"SDCNP1",DFN,$P(^(L),"^",2),$P(^(L),"^"))=^(L)
 D SDLST
LST S B=0 F  S B=$O(^UTILITY($J,"SDCNP2",DFN,B)) Q:'B  W !!,$J($S(B\1=B:"("_$J(B,2)_") ",1:""),5) S AT=$S($P(^(B),"^",2)'?.N:1,1:0),Y=$P($P(^(B),"^"),".") D DT^SDM0 S X=$P(^(B),"^") X ^DD("FUNC",2,1) W " ",$J(X,8) S Z1(B)="" D MORE Q:SDCTRL
 D WH
 I B>0 G:SDCTRL&(A8']"") NOPE1 G:SDCTRL DEL
 Q
SDLST S L1=0 S Z5=0 F  S Z5=$O(^UTILITY($J,"SDCNP1",DFN,Z5)) Q:'Z5  F Z6=0:0 S Z7=Z6,Z6=$O(^UTILITY($J,"SDCNP1",DFN,Z5,Z6)) I Z6="" S L1=L1+1,^UTILITY($J,"SDCNP2",DFN,L1)=Z7_"^"_Z5_"^"_$P(^(Z7),"^",3,6) Q
 Q
MORE S SDCTR=SDCTR+2 I AT W ?41,$P(^UTILITY($J,"SDCNP2",B),"^",2) G OVR
 S S5=^UTILITY($J,"SDCNP2",DFN,B) W " (",$P(S5,"^",6)," MINUTES)  ",$S($D(^SC($P(S5,"^",2),0)):$P(^(0),"^",1),1:"DELETED CLINIC"),$P(S5,"^",3) S M1=$P(^SC($P(S5,"^",2),"SDP"),"^",4) W !,?41,"Max days for rebooking= ",M1
OVR I SDCTR>20,$O(^UTILITY($J,"SDCNP2",B))>0 S (SDCTRL,SDCTR)=0 W *7 D WH W:'SDCTRL @IOF
 Q
WH W !!,"SELECT APPOINTMENT(S) TO BE REBOOKED" W:B>0 " OR HIT RETURN TO CONTINUE DISPLAY" R ": ",A8:DTIME I '$T!(A8="^") S SDCTRL=1,A8="",X8="^" Q
 I A8["?" X SDMSG G WH
DEL S SDERR=0 F J=1:1 S SDDH=$P(A8,",",J) Q:SDDH']""  D MTCH
 I SDERR G LST
DEL1 S SDERR=0 F J=1:1 S SDDH=$P(A8,",",J) Q:SDDH']""  S SDDI=$P(SDDH,"-"),SDDM=$P(SDDH,"-",2) D CKK^SDCNP1A Q:SDERR  D CKK2^SDCNP1A Q:SDERR  F Z9=SDDI:1:$S(SDDM:SDDM,1:SDDI) D:SDDI REBK I 'SDDI S SDERR=1 Q
 G:SDERR LST Q:A8["^"!(A8="")  S SDERR=0 D ^SDCNP1A Q:X8="^"
 D:MAX QUE
 D NOPE1
 Q 
LET ;
 S %=2 W !!,"DO YOU WISH TO PRINT LETTERS FOR THE CANCELLED APPOINTMENT(S)" D YN^DICN S ANS="Y" D:'% REASK G:'% LET Q:(%-1)
 I $$BADADR^DGUTL3(+DFN) D  Q  ;display, don't print BAI list
 . W *7,!,"** THIS PATIENT HAS BEEN FLAGGED WITH A BAD ADDRESS INDICATOR, NO LETTER"
 . W !,"WILL BE PRINTED."
 . S DIR(0)="E" D ^DIR K DIR(0)
QUE2 ;S DGPGM="SDLET^SDCNP1A",DGVAR="SDCL#^DUZ^DFN^DT^A^SDWH" D ZIS^DGUTQ D:POP CLOSE^DGUTQ Q:POP  D SDLET^SDCNP1A Q
 S %ZIS="MQ" K IO("Q") D ^%ZIS Q:POP  ;SD/478
 I $D(IO("Q")) D  D:IO'=IO(0) NOTELTR D ^%ZISC W @IOF Q  ;SD/478
 .S ZTRTN="SDLET^SDCNP1A" F ZTS="SDCL(","DUZ","DFN","DT","A","SDWH","AUTO(" S ZTSAVE(ZTS)=""  ;SD/478
 .K ZTS D ^%ZTLOAD  ;SD/478
 D:IO'=IO(0) NOTELTR D SDLET^SDCNP1A,^%ZISC W @IOF  ;SD/478
 Q  ;SD/478
NOTELTR I ANS["Y",$G(ALS)=1 S:$D(CNDIE) @(CNDIE_CNDA_",1,CNINDX,0)")="CANCEL APPOINTMENT AUTO REBOOK letter printed." K CNDIE,CNDA,CNINDX ;SD/478 CANCEL APPT AUTO REBOOK LETTER PRINTED.
 I ANS["Y" S:$D(CNDIE) @(CNDIE_CNDA_",1,CNINDX,0)")="CANCEL APPOINTMENT letter printed." K CNDIE,CNDA,CNINDX ;SD/478 CANCEL APPT LETTER IS PRINTED.
 Q
QUE I IO'=IO(0) S DGPGM="^SDCNP2",DGVAR="SDCL#^NDATE^A^GDATE^DT^DUZ",IOP=IO,X="NOW" D Q1^DGUTQ Q
 U IO I IO=IO(0),$E(IOST,1,2)="C-" S SDIO=1 D ^SDCNP2 Q
NOPE1 W @IOF,!,*7,$S(SDCNT1:SDCNT1_" Appointment"_$S(SDCNT1>1:"s",1:"")_" rebooked",1:"NOTHING REBOOKED") Q
REBK K ^UTILITY($J,"SDCNP") S ^UTILITY($J,"SDCNP2","REBK",DFN,Z9)=^UTILITY($J,"SDCNP2",DFN,Z9)
 Q
 F A9=SDDI,SDDM Q:'SDDM&(SDDI-A9)  I '$D(Z1(A9)) S SDERR=1 W !,*7,"There is no appointment number ",A9
 Q
REASK W !,"ANSWER (Y)ES OR (N)O" Q
CLRK S $P(^DPT(DFN,"S",S,0),"^",19)=$P(SDNODE,"^",7),$P(^DPT(DFN,"S",S,0),"^",18)=$P(SDNODE,"^",6) Q
MTCH Q:SDDH?1N.N!(SDDH?1.N1"-".N)  S SDERR=1 X SDMSG
 Q
EWL(DFN) ;
 I '$D(^UTILITY($J,"SDCNP1")) I '$D(^UTILITY($J,"SDCNP")) Q
 ;call to EWL to open and optionally close EWL entry with rebooked appointment
 N SDFRB,SDT,SC,SDREB K ^TMP("SDWLREB",$J),^TMP($J,"SDWPL"),^TMP($J,"APPT")
 I $D(^UTILITY($J,"SDCNP1")) S SDFRB="^UTILITY($J,""SDCNP1"")"  D REB I $D(^TMP("SDWLREB",$J)) D MESS^SDWLREB Q
 E  S SDFRB="^UTILITY($J,""SDCNP"")" D CAN I $D(^TMP("SDWLREB",$J)) D MESS^SDWLREB
 Q
REB I $D(^UTILITY($J,"SDCNP1")) F  S SDFRB=$Q(@SDFRB) Q:SDFRB'["SDCNP1"  S SDT=$P(@SDFRB,U),SC=$P(@SDFRB,U,2),SDREB=0 D
 .;N NN F NN=1:1 Q:'$D(^UTILITY($J,"SDCNP","REBK",DFN,NN))  I $P($G(^UTILITY($J,"SDCNP2","REBK",DFN,NN)),U)=SDT S SDREB=1 Q
 .N RBFLG,SDTRB D REBOOK^SDWLREB(DFN,SDT,SC,.RBFLG,.SDTRB)
 .I $E(RBFLG,1,2)'="CC" Q  ;not canceled by clinic
 .I RBFLG="CCR" S SDREB=1 D DISREB^SDWLREB(DFN,SDTRB,SC)
 .D OPENEWL^SDWLREB(DFN,SDT,SC,SDREB) K ^TMP($J,"APPT"),^TMP($J,"SDWLPL")
 Q
CAN I $D(^UTILITY($J,"SDCNP")) F  S SDFRB=$Q(@SDFRB) Q:SDFRB'["SDCNP"  I @SDFRB["CANCELLED" S SDT=$P(@SDFRB,U),SC=$P(@SDFRB,U,2),SDREB=0 D
 .N RBFLG,SDTRB D REBOOK^SDWLREB(DFN,SDT,SC,.RBFLG,.SDTRB)
 .I $E(RBFLG,1,2)'="CC" Q  ;not canceled by clinic
 .I RBFLG="CCR" S SDREB=1 D DISREB^SDWLREB(DFN,SDTRB,SC)
 .D OPENEWL^SDWLREB(DFN,SDT,SC,SDREB) K ^TMP($J,"APPT"),^TMP($J,"SDWLPL")
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSDCNP1   5951     printed  Sep 23, 2025@20:25:37                                                                                                                                                                                                      Page 2
SDCNP1    ;ALB/LDB - CANCEL APPOINTMENT (cont.) ; 5/25/12 11:42am
 +1       ;;5.3;Scheduling;**398,467,478,554,597,682,719**;Aug 13, 1993;Build 3
 +2       ;
 +3       ;SD/467 - EWL Open Matched Entry with rebook
NOPE       WRITE !,*7,$SELECT(CNT:CNT_" Appointment"_$SELECT(CNT>1:"s",1:"")_" cancelled",1:"NOTHING CANCELLED")
 +1       ; Hold value of SC for EWL Notification call
           NEW SDCLNK
           SET SDCLNK=$GET(SC)
 +2        SET SDCNT=CNT
           SET SDA=1
           SET SDCNT1=0
           IF CNT
               IF $SELECT('$DATA(^DPT(DFN,.35)):1,'$PIECE(^(.35),U):1,1:0)
                   SET (SDA,X8)=0
                   DO ASK
                   if X8="^"
                       GOTO END
 +3       ;no rebooking to take place; open EWL entries only if applicable
 +4       ;SD/467
           IF $DATA(DFN)>0
               DO EWL(DFN)
 +5        IF SDA
               IF SDCNT
                   WRITE !,*7,"NO AUTO-REBOOKING --Patient has died."
 +6        IF 'SDA
               IF SDCNT
                   SET A=DFN
                   DO LOOP1^SDCNP1A
                   DO LET
                   DO CANQ^SDAMC(DFN,$GET(SDCLNK))
                   KILL SDCLNK
 +7       ;Calls subroutine CANQ to display wait list message if applicable. - PATCH SD*5.3*597
END        if '$DATA(DIROUT)
               KILL DFN
           DO END^SDCNP
           if $DATA(DIROUT)
               QUIT 
           GOTO RD^SDCNP
 +1       ;Remove AUTO-REBOOK quit at ASK line, SD*5.3*682
ASK        QUIT 
 +1        SET (SDCTR,SDCTRL)=0
           SET %=2
           WRITE !!,"DO YOU WISH TO REBOOK ANY APPOINTMENT(S) THAT YOU HAVE CANCELLED"
           DO YN^DICN
           SET ALS=%
           if '%
               DO REASK
           if '%
               GOTO ASK
           IF %-1
               SET CNT=0
               if %<0
                   SET X8="^"
               Begin DoDot:1
 +2                WRITE !,"OK"
               End DoDot:1
               QUIT 
 +3        WRITE !!,"PLEASE NOTE THAT YOU MUST ENTER A DEVICE TO AUTO-REBOOK",!
ZIS        SET %ZIS("A")="DEVICE TO OUTPUT REBOOKED APPT(S). :"
           SET %ZIS="QN"
           DO ^%ZIS
           IF POP
               SET X8="^"
               QUIT 
 +1        SET L=0
           FOR 
               SET L=$ORDER(^UTILITY($JOB,"SDCNP",L))
               if 'L
                   QUIT 
               IF $PIECE(^(L),U,4)="*** JUST CANCELLED ***"
                   SET ^UTILITY($JOB,"SDCNP1",DFN,$PIECE(^(L),"^",2),$PIECE(^(L),"^"))=^(L)
 +2        DO SDLST
LST        SET B=0
           FOR 
               SET B=$ORDER(^UTILITY($JOB,"SDCNP2",DFN,B))
               if 'B
                   QUIT 
               WRITE !!,$JUSTIFY($SELECT(B\1=B:"("_$JUSTIFY(B,2)_") ",1:""),5)
               SET AT=$SELECT($PIECE(^(B),"^",2)'?.N:1,1:0)
               SET Y=$PIECE($PIECE(^(B),"^"),".")
               DO DT^SDM0
               SET X=$PIECE(^(B),"^")
               XECUTE ^DD("FUNC",2,1)
               WRITE " ",$JUSTIFY(X,8)
               SET Z1(B)=""
               DO MORE
               if SDCTRL
                   QUIT 
 +1        DO WH
 +2        IF B>0
               if SDCTRL&(A8']"")
                   GOTO NOPE1
               if SDCTRL
                   GOTO DEL
 +3        QUIT 
SDLST      SET L1=0
           SET Z5=0
           FOR 
               SET Z5=$ORDER(^UTILITY($JOB,"SDCNP1",DFN,Z5))
               if 'Z5
                   QUIT 
               FOR Z6=0:0
                   SET Z7=Z6
                   SET Z6=$ORDER(^UTILITY($JOB,"SDCNP1",DFN,Z5,Z6))
                   IF Z6=""
                       SET L1=L1+1
                       SET ^UTILITY($JOB,"SDCNP2",DFN,L1)=Z7_"^"_Z5_"^"_$PIECE(^(Z7),"^",3,6)
                       QUIT 
 +1        QUIT 
MORE       SET SDCTR=SDCTR+2
           IF AT
               WRITE ?41,$PIECE(^UTILITY($JOB,"SDCNP2",B),"^",2)
               GOTO OVR
 +1        SET S5=^UTILITY($JOB,"SDCNP2",DFN,B)
           WRITE " (",$PIECE(S5,"^",6)," MINUTES)  ",$SELECT($DATA(^SC($PIECE(S5,"^",2),0)):$PIECE(^(0),"^",1),1:"DELETED CLINIC"),$PIECE(S5,"^",3)
           SET M1=$PIECE(^SC($PIECE(S5,"^",2),"SDP"),"^",4)
           WRITE !,?41,"Max days for rebooking= ",M1
OVR        IF SDCTR>20
               IF $ORDER(^UTILITY($JOB,"SDCNP2",B))>0
                   SET (SDCTRL,SDCTR)=0
                   WRITE *7
                   DO WH
                   if 'SDCTRL
                       WRITE @IOF
 +1        QUIT 
WH         WRITE !!,"SELECT APPOINTMENT(S) TO BE REBOOKED"
           if B>0
               WRITE " OR HIT RETURN TO CONTINUE DISPLAY"
           READ ": ",A8:DTIME
           IF '$TEST!(A8="^")
               SET SDCTRL=1
               SET A8=""
               SET X8="^"
               QUIT 
 +1        IF A8["?"
               XECUTE SDMSG
               GOTO WH
DEL        SET SDERR=0
           FOR J=1:1
               SET SDDH=$PIECE(A8,",",J)
               if SDDH']""
                   QUIT 
               DO MTCH
 +1        IF SDERR
               GOTO LST
DEL1       SET SDERR=0
           FOR J=1:1
               SET SDDH=$PIECE(A8,",",J)
               if SDDH']""
                   QUIT 
               SET SDDI=$PIECE(SDDH,"-")
               SET SDDM=$PIECE(SDDH,"-",2)
               DO CKK^SDCNP1A
               if SDERR
                   QUIT 
               DO CKK2^SDCNP1A
               if SDERR
                   QUIT 
               FOR Z9=SDDI:1:$SELECT(SDDM:SDDM,1:SDDI)
                   if SDDI
                       DO REBK
                   IF 'SDDI
                       SET SDERR=1
                       QUIT 
 +1        if SDERR
               GOTO LST
           if A8["^"!(A8="")
               QUIT 
           SET SDERR=0
           DO ^SDCNP1A
           if X8="^"
               QUIT 
 +2        if MAX
               DO QUE
 +3        DO NOPE1
 +4        QUIT 
LET       ;
 +1        SET %=2
           WRITE !!,"DO YOU WISH TO PRINT LETTERS FOR THE CANCELLED APPOINTMENT(S)"
           DO YN^DICN
           SET ANS="Y"
           if '%
               DO REASK
           if '%
               GOTO LET
           if (%-1)
               QUIT 
 +2       ;display, don't print BAI list
           IF $$BADADR^DGUTL3(+DFN)
               Begin DoDot:1
 +3                WRITE *7,!,"** THIS PATIENT HAS BEEN FLAGGED WITH A BAD ADDRESS INDICATOR, NO LETTER"
 +4                WRITE !,"WILL BE PRINTED."
 +5                SET DIR(0)="E"
                   DO ^DIR
                   KILL DIR(0)
               End DoDot:1
               QUIT 
QUE2      ;S DGPGM="SDLET^SDCNP1A",DGVAR="SDCL#^DUZ^DFN^DT^A^SDWH" D ZIS^DGUTQ D:POP CLOSE^DGUTQ Q:POP  D SDLET^SDCNP1A Q
 +1       ;SD/478
           SET %ZIS="MQ"
           KILL IO("Q")
           DO ^%ZIS
           if POP
               QUIT 
 +2       ;SD/478
           IF $DATA(IO("Q"))
               Begin DoDot:1
 +3       ;SD/478
                   SET ZTRTN="SDLET^SDCNP1A"
                   FOR ZTS="SDCL(","DUZ","DFN","DT","A","SDWH","AUTO("
                       SET ZTSAVE(ZTS)=""
 +4       ;SD/478
                   KILL ZTS
                   DO ^%ZTLOAD
               End DoDot:1
               if IO'=IO(0)
                   DO NOTELTR
               DO ^%ZISC
               WRITE @IOF
               QUIT 
 +5       ;SD/478
           if IO'=IO(0)
               DO NOTELTR
           DO SDLET^SDCNP1A
           DO ^%ZISC
           WRITE @IOF
 +6       ;SD/478
           QUIT 
NOTELTR   ;SD/478 CANCEL APPT AUTO REBOOK LETTER PRINTED.
           IF ANS["Y"
               IF $GET(ALS)=1
                   if $DATA(CNDIE)
                       SET @(CNDIE_CNDA_",1,CNINDX,0)")="CANCEL APPOINTMENT AUTO REBOOK letter printed."
                   KILL CNDIE,CNDA,CNINDX
 +1       ;SD/478 CANCEL APPT LETTER IS PRINTED.
           IF ANS["Y"
               if $DATA(CNDIE)
                   SET @(CNDIE_CNDA_",1,CNINDX,0)")="CANCEL APPOINTMENT letter printed."
               KILL CNDIE,CNDA,CNINDX
 +2        QUIT 
QUE        IF IO'=IO(0)
               SET DGPGM="^SDCNP2"
               SET DGVAR="SDCL#^NDATE^A^GDATE^DT^DUZ"
               SET IOP=IO
               SET X="NOW"
               DO Q1^DGUTQ
               QUIT 
 +1        USE IO
           IF IO=IO(0)
               IF $EXTRACT(IOST,1,2)="C-"
                   SET SDIO=1
                   DO ^SDCNP2
                   QUIT 
NOPE1      WRITE @IOF,!,*7,$SELECT(SDCNT1:SDCNT1_" Appointment"_$SELECT(SDCNT1>1:"s",1:"")_" rebooked",1:"NOTHING REBOOKED")
           QUIT 
REBK       KILL ^UTILITY($JOB,"SDCNP")
           SET ^UTILITY($JOB,"SDCNP2","REBK",DFN,Z9)=^UTILITY($JOB,"SDCNP2",DFN,Z9)
 +1        QUIT 
 +2        FOR A9=SDDI,SDDM
               if 'SDDM&(SDDI-A9)
                   QUIT 
               IF '$DATA(Z1(A9))
                   SET SDERR=1
                   WRITE !,*7,"There is no appointment number ",A9
 +3        QUIT 
REASK      WRITE !,"ANSWER (Y)ES OR (N)O"
           QUIT 
CLRK       SET $PIECE(^DPT(DFN,"S",S,0),"^",19)=$PIECE(SDNODE,"^",7)
           SET $PIECE(^DPT(DFN,"S",S,0),"^",18)=$PIECE(SDNODE,"^",6)
           QUIT 
MTCH       if SDDH?1N.N!(SDDH?1.N1"-".N)
               QUIT 
           SET SDERR=1
           XECUTE SDMSG
 +1        QUIT 
EWL(DFN)  ;
 +1        IF '$DATA(^UTILITY($JOB,"SDCNP1"))
               IF '$DATA(^UTILITY($JOB,"SDCNP"))
                   QUIT 
 +2       ;call to EWL to open and optionally close EWL entry with rebooked appointment
 +3        NEW SDFRB,SDT,SC,SDREB
           KILL ^TMP("SDWLREB",$JOB),^TMP($JOB,"SDWPL"),^TMP($JOB,"APPT")
 +4        IF $DATA(^UTILITY($JOB,"SDCNP1"))
               SET SDFRB="^UTILITY($J,""SDCNP1"")"
               DO REB
               IF $DATA(^TMP("SDWLREB",$JOB))
                   DO MESS^SDWLREB
                   QUIT 
 +5       IF '$TEST
               SET SDFRB="^UTILITY($J,""SDCNP"")"
               DO CAN
               IF $DATA(^TMP("SDWLREB",$JOB))
                   DO MESS^SDWLREB
 +6        QUIT 
REB        IF $DATA(^UTILITY($JOB,"SDCNP1"))
               FOR 
                   SET SDFRB=$QUERY(@SDFRB)
                   if SDFRB'["SDCNP1"
                       QUIT 
                   SET SDT=$PIECE(@SDFRB,U)
                   SET SC=$PIECE(@SDFRB,U,2)
                   SET SDREB=0
                   Begin DoDot:1
 +1       ;N NN F NN=1:1 Q:'$D(^UTILITY($J,"SDCNP","REBK",DFN,NN))  I $P($G(^UTILITY($J,"SDCNP2","REBK",DFN,NN)),U)=SDT S SDREB=1 Q
 +2                    NEW RBFLG,SDTRB
                       DO REBOOK^SDWLREB(DFN,SDT,SC,.RBFLG,.SDTRB)
 +3       ;not canceled by clinic
                       IF $EXTRACT(RBFLG,1,2)'="CC"
                           QUIT 
 +4                    IF RBFLG="CCR"
                           SET SDREB=1
                           DO DISREB^SDWLREB(DFN,SDTRB,SC)
 +5                    DO OPENEWL^SDWLREB(DFN,SDT,SC,SDREB)
                       KILL ^TMP($JOB,"APPT"),^TMP($JOB,"SDWLPL")
                   End DoDot:1
 +6        QUIT 
CAN        IF $DATA(^UTILITY($JOB,"SDCNP"))
               FOR 
                   SET SDFRB=$QUERY(@SDFRB)
                   if SDFRB'["SDCNP"
                       QUIT 
                   IF @SDFRB["CANCELLED"
                       SET SDT=$PIECE(@SDFRB,U)
                       SET SC=$PIECE(@SDFRB,U,2)
                       SET SDREB=0
                       Begin DoDot:1
 +1                        NEW RBFLG,SDTRB
                           DO REBOOK^SDWLREB(DFN,SDT,SC,.RBFLG,.SDTRB)
 +2       ;not canceled by clinic
                           IF $EXTRACT(RBFLG,1,2)'="CC"
                               QUIT 
 +3                        IF RBFLG="CCR"
                               SET SDREB=1
                               DO DISREB^SDWLREB(DFN,SDTRB,SC)
 +4                        DO OPENEWL^SDWLREB(DFN,SDT,SC,SDREB)
                           KILL ^TMP($JOB,"APPT"),^TMP($JOB,"SDWLPL")
                       End DoDot:1
 +5        QUIT