SDC0 ;MAN/GRR,ALB/TMP/LDB - Continuation of SDC (cancel a clinic) ; 16 JUL 2003 1:27 pm
;;5.3;PIMS;**303,330,379,398,467,478,1002,1011,1015,1016**;JUN 30, 2012;Build 20
;
;IHS/ANMC/LJF 8/18/2000 changed $N to $O
; changed defaults to NO
;
;SD/467 - open matched EWL entries with canceled appointments
;
CHKEND G:$G(NOAP) END ;ihs/cmi/maw 07/17/2012 PATCH 1015 added $G
;S %=1,DTOUT=0 W !,"WANT TO AUTO-REBOOK APPOINTMENTS NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G CHKEND ;IHS/ANMC/LJF 8/18/2000
S %=2,DTOUT=0 W !,"WANT TO AUTO-REBOOK APPOINTMENTS NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G CHKEND ;IHS/ANMC/LJF 8/18/2000
S ANS=$S('(%-1):"Y",1:"N") I %<0 W " NO" Q:'DTOUT
ASKL ;S SDLT1="",%=1,(SDLET,SDFORM)="" W !,"WANT LETTERS PRINTED NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G ASKL ;IHS/ANMC/LJF 8/18/2000
S SDLT1="",%=2,(SDLET,SDFORM)="" W !,"WANT LETTERS PRINTED NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G ASKL ;IHS/ANMC/LJF 8/18/2000
W:%<0 " NO" S ALS=$S('(%-1):"Y",1:"N") G:ALS'["Y" AOR
EN ;Q:($P(^SC(SC,0),"^",3)'="C")!($D(SDVAUTC(+SC))) S SDIV=$P(^SC(SC,0),"^",15),SDIV=$S(SDIV:SDIV,1:$N(^DG(40.8,0))) I $D(SDLT),SDIV'=SDV1 Q ;IHS/ANMCLJF 8/18/2000
Q:($P(^SC(SC,0),"^",3)'="C")!($D(SDVAUTC(+SC))) S SDIV=$P(^SC(SC,0),"^",15),SDIV=$S(SDIV:SDIV,1:$O(^DG(40.8,0))) I $D(SDLT),SDIV'=SDV1 Q ;IHS/ANMC/LJF 8/18/2000
K SDRE,SDIN I $D(SDLT)&($D(^SC(SC,"I"))) S SDIN=+^("I"),SDRE=+$P(^("I"),"^",2) I $D(SDIN),SDIN,SDIN'>SDBD&('$D(SDRE)!('SDRE)!(SDRE>SDED)) Q
S:'SDLT1 SDLET=$S($D(^SC(SC,"LTR")):$P(^("LTR"),"^",3),1:"") S ALS=$S(SDLET:"Y",1:"N")
I ALS="N"!(ANS="Y") S SDFFFF=1
I ALS="N" W !,"NO LETTERS ARE ASSIGNED TO THE ",$P(^SC(SC,0),"^")," CLINIC" Q:$D(SDLT)
I SDFORM="",$D(^DG(40.8,SDIV,"LTR")),^("LTR") S SDFORM=^("LTR")
I $D(SDLT),(ALS'="N") D CHK Q
Q:$D(SDLT)
AOR G:ANS'["Y"&(ALS'["Y") END
I '$D(SDLT) S DGPGM="START^SDC0",DGVAR="SC^SI^CDATE^ALS^ANS^SDLET^SDTIME"_$S($D(SDIN):"^SDIN^SDRE",1:"")_"^SDFORM^SDV1^SDFFFF^AUTO#"
;I '$D(SDLT) D FZIS^DGUTQ G:POP END
I '$D(SDLT) D ZIS^DGUTQ G:POP END ;ihs/cmi/maw 11/6/2012 PATCH 1016
START U IO I ANS'["Y"&('$D(SDLT)) D:ALS["Y" APP D END Q
BEG1 N SDFIRST
I $D(SDLT) S SDAR=$S('VAUTC:"VAUTC",1:"^SC"),ANS="N",ALS="Y" D
.F SC=0:0 S SC=$O(@(SDAR_"("_SC_")")) Q:SC'>0 D
..K SDOK1 D EN I $D(SDOK1),SDLET D
...F SD=(SDBD-.1):0 S SD=$O(^SC(SC,"S",SD)) S CDATE=SD Q:SD>(SDED+.999999)!(SD'>0) D
....D DUP
S SDFIRST=$S($G(SDFFFF)=1:0,1:1)
I $D(SDLT),$D(^UTILITY("SDLT",$J)) D PR^SDC3,END Q
Q:$D(SDLT) D ^SDAUT1
I MAX=0 W !,"AUTO-REBOOKING NOT ALLOWED FOR THIS CLINIC" G APP:ALS["Y",END
F GDATE=CDATE:0 S GDATE=$O(^SC(SC,"S",GDATE)) Q:GDATE=""!(GDATE>(CDATE+1)) D
.F L=0:0 S L=$O(^SC(SC,"S",GDATE,1,L)) Q:L="" D Q:POP S A=^SC(SC,"S",GDATE,1,L,0) I $D(^DPT(+A,"S",GDATE,0)),$P(^(0),"^",2)="C",$P(^(0),"^",14)=SDTIME D ^SDAUT2,^SDCCP
..S POP=0
..I '$D(^SC(SC,"S",GDATE,1,L,0)) I $D(^("C")) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 S POP=1 Q ;SD*545 delete corrupt record
..I '+$G(^SC(SC,"S",GDATE,1,L,0)) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 S POP=1 Q ;SD*545 delete corrupt record
K POP
W @IOF ;IHS/ITSC/WAR 1/12/05 PATCH #1002 Needed a formfeed after autobook Rpt & prior to letters printing
D:ALS["Y" APP
END ;
D:$G(SC)>0&($G(CDATE)>0) RESOLVE
K %,%DT,%H,%I,%DT,%IS,%ZIS,A,ALS,ANS,BY,CDATE,CHAR,DA,DFN,DH,DHD,DIC,DIS,DO,DOW,FLDS,FR,GDATE,I,L,LET,MAX,NOAP,P,POP,SI,SL,SS,ST,SDSTRTDT,TO,X,Y,ADDR,B,CLIN,HX,L0,L1,L2,LL,PDAT,S,TIME,Z,D,ENDATE,J,SM,STIME,X1,X2,SDX1,SDX2,SDRE,SDRE1,SDIN,FSW
K ^TMP("SDC0",$J),SDAP,SDAPNUM
K SC,SD,Z0,Z5,DGPGM,DUPE,J2,MESS,NDATE,SDDIF,SDFORM,SDINP,SDFORM,SDLET,SDLT1,SDNODE,SDRT,SDSOH,SDST,SDV1,DGVAR,SD1,SD8,SD81,SDANS,SDCNT,SDERR,SDHTO,SDJ,SDTIME,SDZ,STARTDAY,SD82,SDOK,SDOK1,SDLE,SDZ,SDOK1,TST,W,^UTILITY("SD")
K SDFFFF,DIW,DIWF,DIWL,DIWR,DIWT,DN,DUPE,J2,MESS,NDATE,SDADD,SDC,SDCL,SDDAT,SDDIF,SDFORM,SDHX,SDINP,SDIV,SDLET,SDNODE,SDRT,SDSOH,SDST,SDT0,TST,SDV1,^TMP($J,"BADADD") D CLOSE^DGUTQ Q
CHK K SDOK1 I $D(^SC(SC,"SL")) S SL=^("SL"),%=$P(SL,"^",6),SI=$S(%="":4,%<3:4,%:%,1:4) S SDOK1=1 K SL,% E W $P(^SC(SC,0),"^")," does not have an appointment length indicated."
Q
RESOLVE ;evaluate canceled and rebooked appointments with relation to EWL
S GDATE=CDATE K ^TMP("SDWLREB",$J),^TMP($J,"SDWLPL")
F S GDATE=$O(^SC(SC,"S",GDATE)) Q:GDATE=""!(GDATE>(CDATE+1)) S L=0 F S L=$O(^SC(SC,"S",GDATE,1,L)) Q:L="" D
.I '$D(^SC(SC,"S",GDATE,1,L,0)) I $D(^("C")) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 Q ;SD*5.3*545 delete corrupt record
.I '+$G(^SC(SC,"S",GDATE,1,L,0)) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 Q ;SD*5.3*545 delete corrupt record with missing DFN
.S DFN=+^SC(SC,"S",GDATE,1,L,0)
.N RBFLG,SDTRB,SDCAN,SDREB S SDREB=0 D REBOOK^SDWLREB(DFN,GDATE,SC,.RBFLG,.SDTRB,.SDCAN) Q:SDCAN'=SDTIME
.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,GDATE,SC,SDREB) K ^TMP($J,"APPT"),^TMP($J,"SDWLPL")
I $D(^TMP("SDWLREB",$J)) D MESS^SDWLREB
Q
;
DUP ;SCREEN FOR DUPLICATE PATIENTS - SD*5.3*379
S SDAP="" F S SDAP=$O(^SC(SC,"S",SD,SDAP)) Q:SDAP="" D
.S SDAPNUM="" F S SDAPNUM=$O(^SC(SC,"S",SD,SDAP,SDAPNUM)) Q:SDAPNUM="" D
..I '$D(^SC(SC,"S",SD,SDAP,SDAPNUM,0)) I $D(^("C")) S J=SD,J2=SDAPNUM D DELETE^SDC1 Q ;SD*545 delete corrupt record
..I '+$G(^SC(SC,"S",SD,SDAP,SDAPNUM,0)) S J=SD,J2=SDAPNUM D DELETE^SDC1 Q ;SD*545 if DFN missing delete record
..I $D(^SC(SC,"S",SD,SDAP,SDAPNUM,0)) D
...S A=$P(^SC(SC,"S",SD,SDAP,SDAPNUM,0),"^",1)
...I '$D(^TMP("SDC0",$J,SD,A)) S ^TMP("SDC0",$J,SD,A)="" D ^SDC3
Q
APP I $G(SDFFFF)=1 S SDFIRST=0
F GDATE=CDATE:0 S GDATE=$O(^SC(+SC,"S",GDATE)) Q:GDATE=""!(GDATE>(CDATE+1)) F L=0:0 S L=$O(^SC(+SC,"S",GDATE,1,L)) Q:L="" D Q:POP S A=^SC(+SC,"S",GDATE,1,L,0) D CHECK
.S POP=0
.I '$D(^SC(+SC,"S",GDATE,1,L,0)) I $D(^("C")) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 S POP=1 Q ;SD*545 delete corrupt record
.I '+$G(^SC(+SC,"S",GDATE,1,L,0)) S J=GDATE,J2=L D DELETE^SDC1 K J,J2 S POP=1 Q ;SD*545 if DFN missing delete record
.Q
K POP
I $D(^TMP($J,"BADADD")) D BADADD^SDLT K ^TMP($J,"BADADD")
Q
CHK1 S (SDX,X)=GDATE D WRAPP^SDLT
I $P(S,"^",2)'["A" D REST^SDLT Q
S SDX=$P(S,"^",10) I '$D(^DPT(+A,"S",SDX,0)) D REST^SDLT Q
W !!,"The cancelled appointment(s) were rescheduled as follows:",!
S S=^DPT(+A,"S",SDX,0) D WRAPP^SDLT,REST^SDLT
Q
CHECK I $$BADADR^DGUTL3(+A) S ^TMP($J,"BADADD",$P(^DPT(+A,0),"^"),+A)="" Q
;
;SCREEN FOR DUPLICATES - SD*5.3*379
;
I $D(^TMP("SDC0",$J,GDATE,A)) Q
S ^TMP("SDC0",$J,GDATE,A)=""
I $S('$D(^DPT(+A,.35)):1,$P(^DPT(+A,.35),"^",1)']"":1,1:0),$D(^DPT(+A,"S",GDATE)),$P(^DPT(+A,"S",GDATE,0),"^",2)["C",$P(^(0),"^",14)=SDTIME!(SDTIME="*") S S=^DPT(+A,"S",GDATE,0) D ^SDLT,CHK1
SDC0 ;MAN/GRR,ALB/TMP/LDB - Continuation of SDC (cancel a clinic) ; 16 JUL 2003 1:27 pm
+1 ;;5.3;PIMS;**303,330,379,398,467,478,1002,1011,1015,1016**;JUN 30, 2012;Build 20
+2 ;
+3 ;IHS/ANMC/LJF 8/18/2000 changed $N to $O
+4 ; changed defaults to NO
+5 ;
+6 ;SD/467 - open matched EWL entries with canceled appointments
+7 ;
CHKEND ;ihs/cmi/maw 07/17/2012 PATCH 1015 added $G
IF $GET(NOAP)
GOTO END
+1 ;S %=1,DTOUT=0 W !,"WANT TO AUTO-REBOOK APPOINTMENTS NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G CHKEND ;IHS/ANMC/LJF 8/18/2000
+2 ;IHS/ANMC/LJF 8/18/2000
SET %=2
SET DTOUT=0
WRITE !,"WANT TO AUTO-REBOOK APPOINTMENTS NOW"
DO YN^DICN
IF '%
WRITE !,"REPLY YES (Y) OR NO (N)"
GOTO CHKEND
+3 SET ANS=$SELECT('(%-1):"Y",1:"N")
IF %<0
WRITE " NO"
IF 'DTOUT
QUIT
ASKL ;S SDLT1="",%=1,(SDLET,SDFORM)="" W !,"WANT LETTERS PRINTED NOW" D YN^DICN I '% W !,"REPLY YES (Y) OR NO (N)" G ASKL ;IHS/ANMC/LJF 8/18/2000
+1 ;IHS/ANMC/LJF 8/18/2000
SET SDLT1=""
SET %=2
SET (SDLET,SDFORM)=""
WRITE !,"WANT LETTERS PRINTED NOW"
DO YN^DICN
IF '%
WRITE !,"REPLY YES (Y) OR NO (N)"
GOTO ASKL
+2 IF %<0
WRITE " NO"
SET ALS=$SELECT('(%-1):"Y",1:"N")
IF ALS'["Y"
GOTO AOR
EN ;Q:($P(^SC(SC,0),"^",3)'="C")!($D(SDVAUTC(+SC))) S SDIV=$P(^SC(SC,0),"^",15),SDIV=$S(SDIV:SDIV,1:$N(^DG(40.8,0))) I $D(SDLT),SDIV'=SDV1 Q ;IHS/ANMCLJF 8/18/2000
+1 ;IHS/ANMC/LJF 8/18/2000
IF ($PIECE(^SC(SC,0),"^",3)'="C")!($DATA(SDVAUTC(+SC)))
QUIT
SET SDIV=$PIECE(^SC(SC,0),"^",15)
SET SDIV=$SELECT(SDIV:SDIV,1:$ORDER(^DG(40.8,0)))
IF $DATA(SDLT)
IF SDIV'=SDV1
QUIT
+2 KILL SDRE,SDIN
IF $DATA(SDLT)&($DATA(^SC(SC,"I")))
SET SDIN=+^("I")
SET SDRE=+$PIECE(^("I"),"^",2)
IF $DATA(SDIN)
IF SDIN
IF SDIN'>SDBD&('$DATA(SDRE)!('SDRE)!(SDRE>SDED))
QUIT
+3 IF 'SDLT1
SET SDLET=$SELECT($DATA(^SC(SC,"LTR")):$PIECE(^("LTR"),"^",3),1:"")
SET ALS=$SELECT(SDLET:"Y",1:"N")
+4 IF ALS="N"!(ANS="Y")
SET SDFFFF=1
+5 IF ALS="N"
WRITE !,"NO LETTERS ARE ASSIGNED TO THE ",$PIECE(^SC(SC,0),"^")," CLINIC"
IF $DATA(SDLT)
QUIT
+6 IF SDFORM=""
IF $DATA(^DG(40.8,SDIV,"LTR"))
IF ^("LTR")
SET SDFORM=^("LTR")
+7 IF $DATA(SDLT)
IF (ALS'="N")
DO CHK
QUIT
+8 IF $DATA(SDLT)
QUIT
AOR IF ANS'["Y"&(ALS'["Y")
GOTO END
+1 IF '$DATA(SDLT)
SET DGPGM="START^SDC0"
SET DGVAR="SC^SI^CDATE^ALS^ANS^SDLET^SDTIME"_$SELECT($DATA(SDIN):"^SDIN^SDRE",1:"")_"^SDFORM^SDV1^SDFFFF^AUTO#"
+2 ;I '$D(SDLT) D FZIS^DGUTQ G:POP END
+3 ;ihs/cmi/maw 11/6/2012 PATCH 1016
IF '$DATA(SDLT)
DO ZIS^DGUTQ
IF POP
GOTO END
START USE IO
IF ANS'["Y"&('$DATA(SDLT))
IF ALS["Y"
DO APP
DO END
QUIT
BEG1 NEW SDFIRST
+1 IF $DATA(SDLT)
SET SDAR=$SELECT('VAUTC:"VAUTC",1:"^SC")
SET ANS="N"
SET ALS="Y"
Begin DoDot:1
+2 FOR SC=0:0
SET SC=$ORDER(@(SDAR_"("_SC_")"))
IF SC'>0
QUIT
Begin DoDot:2
+3 KILL SDOK1
DO EN
IF $DATA(SDOK1)
IF SDLET
Begin DoDot:3
+4 FOR SD=(SDBD-.1):0
SET SD=$ORDER(^SC(SC,"S",SD))
SET CDATE=SD
IF SD>(SDED+.999999)!(SD'>0)
QUIT
Begin DoDot:4
+5 DO DUP
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+6 SET SDFIRST=$SELECT($GET(SDFFFF)=1:0,1:1)
+7 IF $DATA(SDLT)
IF $DATA(^UTILITY("SDLT",$JOB))
DO PR^SDC3
DO END
QUIT
+8 IF $DATA(SDLT)
QUIT
DO ^SDAUT1
+9 IF MAX=0
WRITE !,"AUTO-REBOOKING NOT ALLOWED FOR THIS CLINIC"
IF ALS["Y"
GOTO APP
GOTO END
+10 FOR GDATE=CDATE:0
SET GDATE=$ORDER(^SC(SC,"S",GDATE))
IF GDATE=""!(GDATE>(CDATE+1))
QUIT
Begin DoDot:1
+11 FOR L=0:0
SET L=$ORDER(^SC(SC,"S",GDATE,1,L))
IF L=""
QUIT
Begin DoDot:2
+12 SET POP=0
+13 ;SD*545 delete corrupt record
IF '$DATA(^SC(SC,"S",GDATE,1,L,0))
IF $DATA(^("C"))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
SET POP=1
QUIT
+14 ;SD*545 delete corrupt record
IF '+$GET(^SC(SC,"S",GDATE,1,L,0))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
SET POP=1
QUIT
End DoDot:2
IF POP
QUIT
SET A=^SC(SC,"S",GDATE,1,L,0)
IF $DATA(^DPT(+A,"S",GDATE,0))
IF $PIECE(^(0),"^",2)="C"
IF $PIECE(^(0),"^",14)=SDTIME
DO ^SDAUT2
DO ^SDCCP
End DoDot:1
+15 KILL POP
+16 ;IHS/ITSC/WAR 1/12/05 PATCH #1002 Needed a formfeed after autobook Rpt & prior to letters printing
WRITE @IOF
+17 IF ALS["Y"
DO APP
END ;
+1 IF $GET(SC)>0&($GET(CDATE)>0)
DO RESOLVE
+2 KILL %,%DT,%H,%I,%DT,%IS,%ZIS,A,ALS,ANS,BY,CDATE,CHAR,DA,DFN,DH,DHD,DIC,DIS,DO,DOW,FLDS,FR,GDATE,I,L,LET,MAX,NOAP,P,POP,SI,SL,SS,ST,SDSTRTDT,TO,X,Y,ADDR,B,CLIN,HX,L0,L1,L2,LL,PDAT,S,TIME,Z,D,ENDATE,J,SM,STIME,X1,X2,SDX1,SDX2,SDRE,SDRE1,SDIN,FSW
+3 KILL ^TMP("SDC0",$JOB),SDAP,SDAPNUM
+4 KILL SC,SD,Z0,Z5,DGPGM,DUPE,J2,MESS,NDATE,SDDIF,SDFORM,SDINP,SDFORM,SDLET,SDLT1,SDNODE,SDRT,SDSOH,SDST,SDV1,DGVAR,SD1,SD8,SD81,SDANS,SDCNT,SDERR,SDHTO,SDJ,SDTIME,SDZ,STARTDAY,SD82,SDOK,SDOK1,SDLE,SDZ,SDOK1,TST,W,^UTILITY("SD")
+5 KILL SDFFFF,DIW,DIWF,DIWL,DIWR,DIWT,DN,DUPE,J2,MESS,NDATE,SDADD,SDC,SDCL,SDDAT,SDDIF,SDFORM,SDHX,SDINP,SDIV,SDLET,SDNODE,SDRT,SDSOH,SDST,SDT0,TST,SDV1,^TMP($JOB,"BADADD")
DO CLOSE^DGUTQ
QUIT
CHK KILL SDOK1
IF $DATA(^SC(SC,"SL"))
SET SL=^("SL")
SET %=$PIECE(SL,"^",6)
SET SI=$SELECT(%="":4,%<3:4,%:%,1:4)
SET SDOK1=1
KILL SL,%
IF '$TEST
WRITE $PIECE(^SC(SC,0),"^")," does not have an appointment length indicated."
+1 QUIT
RESOLVE ;evaluate canceled and rebooked appointments with relation to EWL
+1 SET GDATE=CDATE
KILL ^TMP("SDWLREB",$JOB),^TMP($JOB,"SDWLPL")
+2 FOR
SET GDATE=$ORDER(^SC(SC,"S",GDATE))
IF GDATE=""!(GDATE>(CDATE+1))
QUIT
SET L=0
FOR
SET L=$ORDER(^SC(SC,"S",GDATE,1,L))
IF L=""
QUIT
Begin DoDot:1
+3 ;SD*5.3*545 delete corrupt record
IF '$DATA(^SC(SC,"S",GDATE,1,L,0))
IF $DATA(^("C"))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
QUIT
+4 ;SD*5.3*545 delete corrupt record with missing DFN
IF '+$GET(^SC(SC,"S",GDATE,1,L,0))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
QUIT
+5 SET DFN=+^SC(SC,"S",GDATE,1,L,0)
+6 NEW RBFLG,SDTRB,SDCAN,SDREB
SET SDREB=0
DO REBOOK^SDWLREB(DFN,GDATE,SC,.RBFLG,.SDTRB,.SDCAN)
IF SDCAN'=SDTIME
QUIT
+7 ;not canceled by clinic
IF $EXTRACT(RBFLG,1,2)'="CC"
QUIT
+8 IF RBFLG="CCR"
SET SDREB=1
DO DISREB^SDWLREB(DFN,SDTRB,SC)
+9 DO OPENEWL^SDWLREB(DFN,GDATE,SC,SDREB)
KILL ^TMP($JOB,"APPT"),^TMP($JOB,"SDWLPL")
End DoDot:1
+10 IF $DATA(^TMP("SDWLREB",$JOB))
DO MESS^SDWLREB
+11 QUIT
+12 ;
DUP ;SCREEN FOR DUPLICATE PATIENTS - SD*5.3*379
+1 SET SDAP=""
FOR
SET SDAP=$ORDER(^SC(SC,"S",SD,SDAP))
IF SDAP=""
QUIT
Begin DoDot:1
+2 SET SDAPNUM=""
FOR
SET SDAPNUM=$ORDER(^SC(SC,"S",SD,SDAP,SDAPNUM))
IF SDAPNUM=""
QUIT
Begin DoDot:2
+3 ;SD*545 delete corrupt record
IF '$DATA(^SC(SC,"S",SD,SDAP,SDAPNUM,0))
IF $DATA(^("C"))
SET J=SD
SET J2=SDAPNUM
DO DELETE^SDC1
QUIT
+4 ;SD*545 if DFN missing delete record
IF '+$GET(^SC(SC,"S",SD,SDAP,SDAPNUM,0))
SET J=SD
SET J2=SDAPNUM
DO DELETE^SDC1
QUIT
+5 IF $DATA(^SC(SC,"S",SD,SDAP,SDAPNUM,0))
Begin DoDot:3
+6 SET A=$PIECE(^SC(SC,"S",SD,SDAP,SDAPNUM,0),"^",1)
+7 IF '$DATA(^TMP("SDC0",$JOB,SD,A))
SET ^TMP("SDC0",$JOB,SD,A)=""
DO ^SDC3
End DoDot:3
End DoDot:2
End DoDot:1
+8 QUIT
APP IF $GET(SDFFFF)=1
SET SDFIRST=0
+1 FOR GDATE=CDATE:0
SET GDATE=$ORDER(^SC(+SC,"S",GDATE))
IF GDATE=""!(GDATE>(CDATE+1))
QUIT
FOR L=0:0
SET L=$ORDER(^SC(+SC,"S",GDATE,1,L))
IF L=""
QUIT
Begin DoDot:1
+2 SET POP=0
+3 ;SD*545 delete corrupt record
IF '$DATA(^SC(+SC,"S",GDATE,1,L,0))
IF $DATA(^("C"))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
SET POP=1
QUIT
+4 ;SD*545 if DFN missing delete record
IF '+$GET(^SC(+SC,"S",GDATE,1,L,0))
SET J=GDATE
SET J2=L
DO DELETE^SDC1
KILL J,J2
SET POP=1
QUIT
+5 QUIT
End DoDot:1
IF POP
QUIT
SET A=^SC(+SC,"S",GDATE,1,L,0)
DO CHECK
+6 KILL POP
+7 IF $DATA(^TMP($JOB,"BADADD"))
DO BADADD^SDLT
KILL ^TMP($JOB,"BADADD")
+8 QUIT
CHK1 SET (SDX,X)=GDATE
DO WRAPP^SDLT
+1 IF $PIECE(S,"^",2)'["A"
DO REST^SDLT
QUIT
+2 SET SDX=$PIECE(S,"^",10)
IF '$DATA(^DPT(+A,"S",SDX,0))
DO REST^SDLT
QUIT
+3 WRITE !!,"The cancelled appointment(s) were rescheduled as follows:",!
+4 SET S=^DPT(+A,"S",SDX,0)
DO WRAPP^SDLT
DO REST^SDLT
+5 QUIT
CHECK IF $$BADADR^DGUTL3(+A)
SET ^TMP($JOB,"BADADD",$PIECE(^DPT(+A,0),"^"),+A)=""
QUIT
+1 ;
+2 ;SCREEN FOR DUPLICATES - SD*5.3*379
+3 ;
+4 IF $DATA(^TMP("SDC0",$JOB,GDATE,A))
QUIT
+5 SET ^TMP("SDC0",$JOB,GDATE,A)=""
+6 IF $SELECT('$DATA(^DPT(+A,.35)):1,$PIECE(^DPT(+A,.35),"^",1)']"":1,1:0)
IF $DATA(^DPT(+A,"S",GDATE))
IF $PIECE(^DPT(+A,"S",GDATE,0),"^",2)["C"
IF $PIECE(^(0),"^",14)=SDTIME!(SDTIME="*")
SET S=^DPT(+A,"S",GDATE,0)
DO ^SDLT
DO CHK1