BSDLTP ;ALB/LDB - PRINT SCHEDULING LETTERS ; [ 01/02/2004 9:07 AM ]
;;5.3;Scheduling;**79,106,170,80,1013**;Aug 13, 1993
;IHS/ANMC/LJF 8/18/2000 set DIC(W) to warn if clinic inactivated
; added variables to kill list
;ihs/cmi/maw 05/02/2011 added W to allowable letters to print
;
MAIN(L0) ;-- pass i letter type
I L0="W" G R2
R D EXIT S SD9=0,SDLT=1,DIC=407.6,DIC(0)="AEQMZ",DIC("A")="SELECT THE TYPE OF LETTER TO PRINT: ",DIC("S")="I ""^A^C^N^P^W^""[(""^""_$P($G(^(0)),U)_""^"")" D ^DIC G:Y'>0 EXIT S L0=Y(0,0) K DIC,DA ;ihs/cmi/maw 5/2/2011 PATCH 1013 added W
R1 R !,"PRINT LETTER ASSIGNED TO THE CLINIC(S)" S %=1 D YN^DICN G:'% HELP1 G:%<0 EXIT I %=1 S SDLET=0 G DIV
S L0="W"
R2 K DIC,X,Y S DIC=407.5,DIC("S")="I $P(^(0),""^"",2)="_""""_L0_"""",DIC(0)="AEQMZ" D ^DIC G:Y'>0 EXIT S SDLET=+Y
DIV S SDLT1=SDLET,SDV1=$O(^DG(40.8,0)) K DIC,X,Y I $D(^DG(43,1,"GL")),$P(^("GL"),"^",2) S DIC=40.8,DIC(0)="AEQM" D @($S(L0="P":"PALST",L0="C":"CNLET",L0="N":"NSLET1",L0="W":"WLLET",1:"PCNLET")_"^SDDIV") G:+Y<0 R S SDV1=+Y ;ihs/cmi/maw P1013
S VAUTD=0,VAUTD(SDV1)=$P(^DG(40.8,SDV1,0),"^"),SDFORM=0,SDTIME="*" I $D(^DG(40.8,SDV1,"LTR")),^("LTR") S SDFORM=1
L0 I L0="C" D IND G:$D(DTOUT)!(%=-1) R
I L0="W" Q ;ihs/cmi/maw 05/02/2011 PATCH 1013 select numbers to print and then quit
S VAUTNI=2 I "APW"[L0!(L0="C"&(SD9)) D PC G:S1=-1 R I "Pp"[S1 D PAT G R:Y<0,DATE ;ihs/cmi/maw 05/02/2011 added W
S SDCONC="B" I L0="P" D NCOUNT^SDAL0 I SDCONC=U G R
D NCLINIC^SDAL0 G:Y<0 R I VAUTC D EX G:%Y="^"!($D(DTOUT)) R I $D(X),X="^" G R
;IHS/ITSC/WAR 11/6/03 Commented out 1 line, beginnig with I L0="P"
DATE ;N %DT D DATE^SDUTL G:POP&('$D(SDBD)) EXIT G:POP&(X="^") EXIT S:'$D(SDED) SDED=SDBD S L2=$S(L0="C"&('SD9):"BEG1^SDC0",L0="N":"BC^SDN1",L0="P":"^SDL1",1:"^SDCNL")
;I L0="P" S SDBD=DT,SDED=$$FMADD^XLFDT(DT,365) S L2="^SDL1" G QUE ;IHS/ANMC/LJF 11/02/2001 don't ask dates for pre-appt letters
I L0="P" S SDT00="AEF" ;IHS/ITSC/LJF 1/2/04 assume future dates for pre-appt letters
N %DT D DATE^SDUTL G:POP&('$D(SDBD)) EXIT G:POP&(X="^") EXIT S:'$D(SDED) SDED=SDBD S L2=$S(L0="C"&('SD9):"BEG1^SDC0",L0="N":"BC^SDN1",L0="P":"^SDL1",L0="W":"^SDL1",1:"^SDCNL") ;ihs/cmi/maw 05/02/2011 added W
QUE S DGPGM=L2,DGVAR="SDCONC^SDLT^SDFORM^SDV1^SDLT1^SDLET^VAUTD#^SDBD^SDED"_$S($D(VAUTNALL):"^VAUTNALL",1:"")_$S($D(VAUTC):"^VAUTC#",1:"")_$S($D(VAUTN):"^VAUTN#",1:"")
S DGVAR=DGVAR_$S(L2="^SDCNL":"^SD9",1:"^SDTIME")_$S($D(S1):"^S1",1:"")_$S($D(SDVAUTC):"^SDVAUTC#",1:"")
D ZIS^DGUTQ G:POP EXIT
U IO D @L2
EXIT K %,%Y,A2,BEGDATE,C,DIC,DGPGM,DGVAR,DIV,DIW,DIWF,DIWL,DIWR,DIWT,ENDDATE,ENDATE,L,LL,L0,L2,POP,S1,SD9,SDC,SDDAT,SDCL,SC,SDADD,SDARRAY,SDTADB,SDTADE,SDBD,SDCONC,SDCNT,SDD,SDED,SDHX,SDIV,SDFORM,SDLET,SDLT1,SDLT,SDMDT,SDT0,SDTIME,SDV,SDV1,SDX
D KVA^VADPT,KILL^AUPNPAT K SDT00 ;IHS/ANMC/LJF 8/18/2000
K SDX1,VAUTC,VAUTN,VAUTNI,VAUTD,SDVAUTC,X,XX,Y,W,Z0,Z5,^UTILITY("SDLT"),^UTILITY($J,"W") D CLOSE^DGUTQ Q
HELP W !,"LETTER TYPE MUST EXIST IN LETTERS TYPE FILE!" S DIC=407.6 K DIC("S") D ^DIC G R
HELP1 W !,"If you want to print another letter for the selected clinic(s), you must answer",!,"""N"""_" and select another letter of the appropriate type. If you do this, that ",!,"letter will print for (ALL) the selected clinic(s)." G R1
PC R !,"Enter 'P' for individual PATIENT letters or 'C' for letters by CLINIC: P// ",S1:DTIME S:S1["^"!('$T) S1=-1 Q:S1=-1 S:S1="" S1="P" I "PCpc"'[S1 W "??" D HELP2 G PC
Q
HELP2 W !,"Entering 'P' will allow you to select PATIENT(S) and entering a 'C' will allow",!,"you to select CLINIC(S)." Q
PAT S VAUTNI=2,VAUTNALL=1 D PATIENT^VAUTOMA Q
EX S SDCNT=0 W !,"Do you want to exclude any Clinic(s)" S %=2 D YN^DICN I '% W !,"RESPOND YES OR NO" G EX
K SDVAUTC Q:%-1
EXASK ;
S DIC("W")=$$INACTMSG^BSDU ;IHS/ANMC/LJF 8/18/2000
S DIC=44,DIC(0)="AEQM",DIC("S")="I $P(^(0),""^"",3)=""C"",'$G(^(""OOS""))",DIC("A")="Select Clinic to be excluded: " D ^DIC K DIC("A"),DIC("S") Q:"^"[X G:Y<0 EXASK I $D(SDVAUTC(+Y)) W !,*7,"THIS CLINIC HAS ALREADY BEEN SELECTED!" G EXASK
S SDCNT=SDCNT+1,SDVAUTC(+Y)="" W " ...OK" W:SDCNT'<10 !,*7,"ONLY TEN CLINICS ARE ALLOWED TO BE SELECTED!" G:SDCNT<10 EXASK
Q
MAX W !,*7,"NO MORE THAN TEN CLINICS ALLOWED TO BE EXCLUDED" Q
IND S %=1,SD9=0 W !,"DID CLINIC CANCEL AVAILABILITY" D YN^DICN I '% D HLP3 G IND
S:%-1 SD9=1 Q
HLP3 W !!,"If the clinic was cancelled for any length of time respond 'Y'.",!,"If individual appointments were cancelled without cancelling the clinic respond 'N'",! Q
W !,"CLINIC CANCELLATION LETTERS will be selectable with 'C' response.",! Q
SEL ;-- select the entries on the list manager screen to print
Q
;
BSDLTP ;ALB/LDB - PRINT SCHEDULING LETTERS ; [ 01/02/2004 9:07 AM ]
+1 ;;5.3;Scheduling;**79,106,170,80,1013**;Aug 13, 1993
+2 ;IHS/ANMC/LJF 8/18/2000 set DIC(W) to warn if clinic inactivated
+3 ; added variables to kill list
+4 ;ihs/cmi/maw 05/02/2011 added W to allowable letters to print
+5 ;
MAIN(L0) ;-- pass i letter type
+1 IF L0="W"
GOTO R2
R ;ihs/cmi/maw 5/2/2011 PATCH 1013 added W
DO EXIT
SET SD9=0
SET SDLT=1
SET DIC=407.6
SET DIC(0)="AEQMZ"
SET DIC("A")="SELECT THE TYPE OF LETTER TO PRINT: "
SET DIC("S")="I ""^A^C^N^P^W^""[(""^""_$P($G(^(0)),U)_""^"")"
DO ^DIC
IF Y'>0
GOTO EXIT
SET L0=Y(0,0)
KILL DIC,DA
R1 READ !,"PRINT LETTER ASSIGNED TO THE CLINIC(S)"
SET %=1
DO YN^DICN
IF '%
GOTO HELP1
IF %<0
GOTO EXIT
IF %=1
SET SDLET=0
GOTO DIV
+1 SET L0="W"
R2 KILL DIC,X,Y
SET DIC=407.5
SET DIC("S")="I $P(^(0),""^"",2)="_""""_L0_""""
SET DIC(0)="AEQMZ"
DO ^DIC
IF Y'>0
GOTO EXIT
SET SDLET=+Y
DIV ;ihs/cmi/maw P1013
SET SDLT1=SDLET
SET SDV1=$ORDER(^DG(40.8,0))
KILL DIC,X,Y
IF $DATA(^DG(43,1,"GL"))
IF $PIECE(^("GL"),"^",2)
SET DIC=40.8
SET DIC(0)="AEQM"
DO @($SELECT(L0="P":"PALST",L0="C":"CNLET",L0="N":"NSLET1",L0="W":"WLLET",1:"PCNLET")_"^SDDIV")
IF +Y<0
GOTO R
SET SDV1=+Y
+1 SET VAUTD=0
SET VAUTD(SDV1)=$PIECE(^DG(40.8,SDV1,0),"^")
SET SDFORM=0
SET SDTIME="*"
IF $DATA(^DG(40.8,SDV1,"LTR"))
IF ^("LTR")
SET SDFORM=1
L0 IF L0="C"
DO IND
IF $DATA(DTOUT)!(%=-1)
GOTO R
+1 ;ihs/cmi/maw 05/02/2011 PATCH 1013 select numbers to print and then quit
IF L0="W"
QUIT
+2 ;ihs/cmi/maw 05/02/2011 added W
SET VAUTNI=2
IF "APW"[L0!(L0="C"&(SD9))
DO PC
IF S1=-1
GOTO R
IF "Pp"[S1
DO PAT
IF Y<0
GOTO R
GOTO DATE
+3 SET SDCONC="B"
IF L0="P"
DO NCOUNT^SDAL0
IF SDCONC=U
GOTO R
+4 DO NCLINIC^SDAL0
IF Y<0
GOTO R
IF VAUTC
DO EX
IF %Y="^"!($DATA(DTOUT))
GOTO R
IF $DATA(X)
IF X="^"
GOTO R
+5 ;IHS/ITSC/WAR 11/6/03 Commented out 1 line, beginnig with I L0="P"
DATE ;N %DT D DATE^SDUTL G:POP&('$D(SDBD)) EXIT G:POP&(X="^") EXIT S:'$D(SDED) SDED=SDBD S L2=$S(L0="C"&('SD9):"BEG1^SDC0",L0="N":"BC^SDN1",L0="P":"^SDL1",1:"^SDCNL")
+1 ;I L0="P" S SDBD=DT,SDED=$$FMADD^XLFDT(DT,365) S L2="^SDL1" G QUE ;IHS/ANMC/LJF 11/02/2001 don't ask dates for pre-appt letters
+2 ;IHS/ITSC/LJF 1/2/04 assume future dates for pre-appt letters
IF L0="P"
SET SDT00="AEF"
+3 ;ihs/cmi/maw 05/02/2011 added W
NEW %DT
DO DATE^SDUTL
IF POP&('$DATA(SDBD))
GOTO EXIT
IF POP&(X="^")
GOTO EXIT
IF '$DATA(SDED)
SET SDED=SDBD
SET L2=$SELECT(L0="C"&('SD9):"BEG1^SDC0",L0="N":"BC^SDN1",L0="P":"^SDL1",L0="W":"^SDL1",1:"^SDCNL")
QUE SET DGPGM=L2
SET DGVAR="SDCONC^SDLT^SDFORM^SDV1^SDLT1^SDLET^VAUTD#^SDBD^SDED"_$SELECT($DATA(VAUTNALL):"^VAUTNALL",1:"")_$SELECT($DATA(VAUTC):"^VAUTC#",1:"")_$SELECT($DATA(VAUTN):"^VAUTN#",1:"")
+1 SET DGVAR=DGVAR_$SELECT(L2="^SDCNL":"^SD9",1:"^SDTIME")_$SELECT($DATA(S1):"^S1",1:"")_$SELECT($DATA(SDVAUTC):"^SDVAUTC#",1:"")
+2 DO ZIS^DGUTQ
IF POP
GOTO EXIT
+3 USE IO
DO @L2
EXIT KILL %,%Y,A2,BEGDATE,C,DIC,DGPGM,DGVAR,DIV,DIW,DIWF,DIWL,DIWR,DIWT,ENDDATE,ENDATE,L,LL,L0,L2,POP,S1,SD9,SDC,SDDAT,SDCL,SC,SDADD,SDARRAY,SDTADB,SDTADE,SDBD,SDCONC,SDCNT,SDD,SDED,SDHX,SDIV,SDFORM,SDLET,SDLT1,SDLT,SDMDT,SDT0,SDTIME,SDV,SDV1,SDX
+1 ;IHS/ANMC/LJF 8/18/2000
DO KVA^VADPT
DO KILL^AUPNPAT
KILL SDT00
+2 KILL SDX1,VAUTC,VAUTN,VAUTNI,VAUTD,SDVAUTC,X,XX,Y,W,Z0,Z5,^UTILITY("SDLT"),^UTILITY($JOB,"W")
DO CLOSE^DGUTQ
QUIT
HELP WRITE !,"LETTER TYPE MUST EXIST IN LETTERS TYPE FILE!"
SET DIC=407.6
KILL DIC("S")
DO ^DIC
GOTO R
HELP1 WRITE !,"If you want to print another letter for the selected clinic(s), you must answer",!,"""N"""_" and select another letter of the appropriate type. If you do this, that ",!,"letter will print for (ALL) the selected clinic(s)."
GOTO R1
PC READ !,"Enter 'P' for individual PATIENT letters or 'C' for letters by CLINIC: P// ",S1:DTIME
IF S1["^"!('$TEST)
SET S1=-1
IF S1=-1
QUIT
IF S1=""
SET S1="P"
IF "PCpc"'[S1
WRITE "??"
DO HELP2
GOTO PC
+1 QUIT
HELP2 WRITE !,"Entering 'P' will allow you to select PATIENT(S) and entering a 'C' will allow",!,"you to select CLINIC(S)."
QUIT
PAT SET VAUTNI=2
SET VAUTNALL=1
DO PATIENT^VAUTOMA
QUIT
EX SET SDCNT=0
WRITE !,"Do you want to exclude any Clinic(s)"
SET %=2
DO YN^DICN
IF '%
WRITE !,"RESPOND YES OR NO"
GOTO EX
+1 KILL SDVAUTC
IF %-1
QUIT
EXASK ;
+1 ;IHS/ANMC/LJF 8/18/2000
SET DIC("W")=$$INACTMSG^BSDU
+2 SET DIC=44
SET DIC(0)="AEQM"
SET DIC("S")="I $P(^(0),""^"",3)=""C"",'$G(^(""OOS""))"
SET DIC("A")="Select Clinic to be excluded: "
DO ^DIC
KILL DIC("A"),DIC("S")
IF "^"[X
QUIT
IF Y<0
GOTO EXASK
IF $DATA(SDVAUTC(+Y))
WRITE !,*7,"THIS CLINIC HAS ALREADY BEEN SELECTED!"
GOTO EXASK
+3 SET SDCNT=SDCNT+1
SET SDVAUTC(+Y)=""
WRITE " ...OK"
IF SDCNT'<10
WRITE !,*7,"ONLY TEN CLINICS ARE ALLOWED TO BE SELECTED!"
IF SDCNT<10
GOTO EXASK
+4 QUIT
MAX WRITE !,*7,"NO MORE THAN TEN CLINICS ALLOWED TO BE EXCLUDED"
QUIT
IND SET %=1
SET SD9=0
WRITE !,"DID CLINIC CANCEL AVAILABILITY"
DO YN^DICN
IF '%
DO HLP3
GOTO IND
+1 IF %-1
SET SD9=1
QUIT
HLP3 WRITE !!,"If the clinic was cancelled for any length of time respond 'Y'.",!,"If individual appointments were cancelled without cancelling the clinic respond 'N'",!
QUIT
+1 WRITE !,"CLINIC CANCELLATION LETTERS will be selectable with 'C' response.",!
QUIT
SEL ;-- select the entries on the list manager screen to print
+1 QUIT
+2 ;