- IBDFFT ;ALB/MAF - FORMS TRACKING ; JUL 6 1995@800
- ;;3.0;AUTOMATED INFO COLLECTION SYS;**16**;APR 24, 1997
- ;
- ;
- OUT S IBDF2=0
- S DIR("B")="CLINIC",DIR(0)="SBM^C:CLINIC;P:PATIENT;G:GROUP (CLINIC)",DIR("A")="Sort by [C]linic, [P]atient, [G]roup (Clinic)" D ^DIR
- K DIR I $D(DIRUT)&('$D(IBDF1))!(Y<0) G EXIT
- I $D(DIRUT)&$D(IBDF1) G QUIT
- S X=$S("Pp"[X:2,"Gg"[X:3,1:1)
- S IBDFSR=$E(X)
- I $D(^DG(43,1,"GL")) S IBDFMUL=$P(^DG(43,1,"GL"),"^",2)
- S IBDFL=$S(IBDFSR=1:"CLN",IBDFSR=2:"PAT",IBDFSR=3:"GRP",1:"QUIT")
- I $D(IBDFMUL),IBDFMUL D DIVISION^VAUTOMA G:Y=-1 QUIT
- I 'IBDFMUL S IBDFDV=$O(^DG(40.8,0)) S VAUTD=0,VAUTD(+$O(^DG(40.8,0)))=$P($G(^DG(40.8,+$O(^DG(40.8,0)),0)),"^")
- D @(IBDFL) G:Y=-1 QUIT ;I IBDFL="GRP" D GRP1
- D DAT G:Y=-1 QUIT
- OKQ N IBQUEUE S %=1 W !!,"Do you want to queue this to a printer?" D YN^DICN I '% D YN G OKQ
- I %=-1 G EXIT
- I %=1 S IBQUEUE=1
- I $D(IBQUEUE) G QUEUE
- D WAIT^DICD
- S IBDFDAT=$$HTE^XLFDT($H)
- I '$D(IBDF1) D EN^VALM("IBDF FT REPORT")
- I $D(IBDF1) D KILL,START^IBDFFT1 S VALMBCK="R",VALMBG=1
- Q
- ;
- ;
- SAVE ; -- save variables for queue
- S ZTSAVE("^TMP(""FTRK"",$J,")="",ZTSAVE("^TMP(""COUNT"",$J,")="",ZTSAVE("^TMP(""FRM"",$J,")="",ZTSAVE("^TMP(""CNT"",$J,")="",ZTSAVE("^TMP(""STATS"",$J,")="",ZTSAVE("VA*")="",ZTSAVE("VAUTG(")="",ZTSAVE("VAUTN(")="",ZTSAVE("VAUTC(")=""
- Q
- QUEUE W !!,$C(7),"** Report requires 132 columns and a page length of 80 lines. **",!
- N ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTSAVE,ZTION,X,Y
- K %IS,%ZIS,IOP S IOP="Q",%ZIS="QM0",%ZIS("A")="OUTPUT DEVICE: " D ^%ZIS G:POP EXIT
- I $D(IO("Q")) S ZTRTN="^IBDFFT3",ZTDESC="Forms Tracking Report",ZTSAVE("^TMP(""FTRK"",$J,")="",ZTSAVE("IB*")="" D SAVE D ^%ZTLOAD K IO("Q") W !,$S($D(ZTSK):"Request Queued Task="_ZTSK,1:"Request Canceled") D HOME^%ZIS G EXIT
- I '$D(ZTQUEUED) D ^%ZISC
- CLEAR ; -- Clean up variables if task is not queued
- D ^IBDFFT3
- G EXIT ;K ^TMP("IBDF",$J),^TMP("IB",$J)
- Q
- HDR ; -- header code
- S VALMHDR(1)="Encounter forms - printed; scanned (to PCE, w/ERrors); pending pages;"
- S VALMHDR(2)="data entry (to PCE,w/ERrors); error detected,not transmitted; not printed."
- Q
- ;
- CLN S VAUTNI=2,DIC="^SC(",DIC("S")="I $P(^(0),U,3)=""C""&$S(VAUTD:1,$D(VAUTD(+$P(^(0),U,15))):1,'+$P(^(0),U,15)&$D(VAUTD(+$O(^DG(40.8,0)))):1,1:0)",VAUTSTR="clinic",VAUTVB="VAUTC" D FIRST^VAUTOMA S:Y=-1 IBDF2=1 Q:IBDF2
- Q
- ;
- ;
- PAT S VAUTNI=2 D PATIENT^VAUTOMA S:Y=-1 IBDF2=1 Q:IBDF2
- Q
- ;
- ;
- GRP S VAUTNI=2,DIC="^IBD(357.99,",VAUTSTR="clinic group",VAUTVB="VAUTG" D FIRST^VAUTOMA S:Y=-1 IBDF2=1 Q:IBDF2
- Q
- GRP1 N IBGROUP
- I VAUTG=1 D
- .S IBGROUP=0 F S IBGROUP=$O(^IBD(357.99,IBGROUP)) Q:'IBGROUP I $D(^IBD(357.99,IBGROUP,0)) S VAUTG(IBGROUP)=$P(^IBD(357.99,IBGROUP,0),"^",1)
- .Q
- S IBGROUP=0 F S IBGROUP=$O(VAUTG(IBGROUP)) Q:'IBGROUP D
- .N IBCLI,IBDIV,IBCLNUM,IBDIVNUM
- .S IBCLI=0 F S IBCLI=$O(^IBD(357.99,IBGROUP,10,IBCLI)) Q:'IBCLI I $D(^IBD(357.99,IBGROUP,10,IBCLI,0)) S IBCLNUM=+^IBD(357.99,IBGROUP,10,IBCLI,0) I $D(^SC(+IBCLNUM,0)) D
- ..S VAUTG(IBGROUP,IBCLNUM)=$P(^SC(+IBCLNUM,0),"^",1)
- ..Q
- .S IBDIV=0 F S IBDIV=$O(^IBD(357.99,IBGROUP,11,IBDIV)) Q:'IBDIV I $D(^IBD(357.99,IBGROUP,11,IBDIV,0)) S IBDIVNUM=+^IBD(357.99,IBGROUP,11,IBDIV,0) I $D(^DG(40.8,IBDIVNUM,0)) D
- ..S IBCLNUM=0 F S IBCLNUM=$O(^SC(IBCLNUM)) Q:'IBCLNUM I $D(^SC(IBCLNUM,0)) I +$P(^SC(IBCLNUM,0),"^",15)=IBDIVNUM S VAUTG(IBGROUP,IBCLNUM)=$P(^SC(IBCLNUM,0),"^",1)
- ..Q
- Q
- ;
- ;
- CHECK(CLIN) ; -- Check to see if clinic has a form and its one that is not for
- ; future use only.
- N IBDFNODE,IBDFCL,X
- S QUIT=0
- I $O(^SD(409.95,"B",+CLIN,0)) D
- .S IBDFCL=$O(^SD(409.95,"B",+CLIN,0))
- .S IBDFNODE=^SD(409.95,IBDFCL,0)
- .S QUIT=0 F X=2:1:9 S:$P(IBDFNODE,"^",X)&("^1^2^3^4^5^6^8^9^"[X) QUIT=1 Q:QUIT
- Q
- ;
- ;
- EXIT ; -- Code executed at action exit
- K IBDFL,IBDFL1,IBDFBG,IBDFBG1,IBDFBEG,IBDFBEG1,IBDFEND,IBDFEND1,VAUTD,VAUTN,VAUTC,IBDFC1,IBDFN1,IBDFDV1,VAUTD1,VAUTC1,VAUTN1,IBDFN,DNKA,VAUTG,IBDFGRO,%DT,VAL,POP,IBDFG1,DIR,VAUTVB
- K %,DIC,DIRUT,IBDF1,VALMBCK,VALMBG,VALMHDR,VAUTG1,VAUTNI,VAUTSTR,ZTQUEUED,X,X1,X2,D0,DA,DIK,%ZIS,IOP,CLIN,APPT
- K IBDCNT,IBDCNT1,IBDFCL,IBDFDV,IBDFGR,VALMCNT,IBDFPAGE,IFN,VALMY
- EXIT1 ;
- K DFN,IBDFCLI,IBDFDA,IBDFDAT,IBDFIFN,IBDFMUL,IBDFSA,IBDFSR,IBDFT,IBDVAL,IBDFVAL,IBDVAL1,QUIT,IBDF2,IBDNKA,IBDX
- K ^TMP("CNT",$J),^TMP("FRM",$J),^TMP("FTRK",$J),^TMP("STATS",$J),^TMP("FRMIDX",$J),^TMP("STAIDX",$J),^TMP("COUNT",$J),IBDFDIV,IBDFCLIN,IBDFNODE,IBDFGROP
- D ^%ZISC
- Q
- ;
- ;
- DAT ; -- DATE RANGE
- BEG W ! S %DT="AEX",%DT("A")="BEGINNING DATE: " D ^%DT S IBDFBG=Y,IBDFBEG=Y-.0001 S:X="^"!(X="") Y=-1 Q:Y=-1
- END W ! S %DT("A")="ENDING DATE: " D ^%DT S:X="^"!(X="") Y=-1 Q:Y=-1 I Y<1 D HELP^%DTC G END
- S IBDFEND=Y_.9999
- I IBDFEND\1<IBDFBG W !!?5,"The ending date cannot be before the beginning date" G END
- Q
- ;
- ;
- HELP ; -- help code
- S X="?" D DISP^XQORM1 W !!
- Q
- CHGLST ; -- Code to change list display
- D FULL^VALM1
- S IBDFL1=IBDFL,IBDFBG1=IBDFBG,IBDFBEG1=IBDFBEG,IBDFEND1=IBDFEND
- S IBDFDV1=VAUTD S:$D(VAUTC) IBDFC1=VAUTC S:$D(VAUTN) IBDFN1=VAUTN
- I $D(VAUTG) S IBDFG1=VAUTG
- I VAUTD=0 F X=0:0 S X=$O(VAUTD(X)) Q:X']"" S VAUTD1(X)=VAUTD(X)
- I $D(VAUTC),VAUTC=0 F X=0:0 S X=$O(VAUTC(X)) Q:X']"" S VAUTC1(X)=VAUTC(X)
- I $D(VAUTN),VAUTN=0 F X=0:0 S X=$O(VAUTN(X)) Q:X']"" S VAUTN1(X)=VAUTN(X)
- I $D(VAUTG) D
- .N IBX
- .S IBX=0
- .F X=0:0 S X=$O(VAUTG(X)) Q:X']"" F Y=0:0 S Y=$O(VAUTG(X,Y)) Q:Y']"" S VAUTG1(X,Y)=VAUTG(X,Y)
- D EXIT1,OUT
- Q
- KILL ; -- Kill extra array variables
- N IBDFXX
- S IBDFXX=$S(IBDFL="CLN":"VAUTC",IBDFL="GRP":"VAUTG",1:"VAUTN")
- I IBDFXX="VAUTN" K VAUTC,VAUTG
- I IBDFXX="VAUTC" K VAUTN,VAUTG
- I IBDFXX="VAUTG" K VAUTN,VAUTC
- Q
- QUIT ; -- Kill variables and reset to last display if no change has taken place
- I $D(IBDF1) S IBDFL=IBDFL1,IBDFBG=IBDFBG1,IBDFBEG=IBDFBEG1,IBDFEND=IBDFEND1,VAUTD=IBDFDV1 S:IBDFL="CLN" VAUTC=IBDFC1 S:IBDFL="PAT" VAUTN=IBDFN1 S:IBDFL="GRP" VAUTG=IBDFG1 D
- .I VAUTD=0 F X=0:0 S X=$O(VAUTD1(X)) Q:X']"" S VAUTD(X)=VAUTD1(X)
- .I $D(VAUTC),VAUTC=0 F X=0:0 S X=$O(VAUTC1(X)) Q:X']"" S VAUTC(X)=VAUTC1(X)
- .I $D(VAUTN),VAUTN=0 F X=0:0 S X=$O(VAUTN1(X)) Q:X']"" S VAUTN(X)=VAUTN1(X)
- .I $D(VAUTG) D
- ..F X=0:0 S X=$O(VAUTG1(X)) Q:X']"" F Y=0:0 S Y=$O(VAUTG1(X,Y)) Q:Y']"" S VAUTG(X,Y)=VAUTG1(X,Y)
- I '$D(IBDF1) G EXIT
- D KILL,START^IBDFFT1 S VALMBCK="R",VALMBG=1
- Q
- ;
- SCHSTAT(DFN,APPT) ; -- return text of scheduling status
- ;
- N X
- S X=$$REQ^IBDFDE0(DFN,APPT,+$G(^DPT(DFN,"S",APPT,0)),$$FNDSDOE^IBDFDE(DFN,APPT))
- S X=$S(X=1:"CO Required",X=-1:"CO Complete",1:"CO Not Req.")
- Q X
- YN W !?10,"Choose:",!?25,"Y for YES",!?25,"N for NO",! Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBDFFT 6631 printed Feb 19, 2025@00:18:58 Page 2
- IBDFFT ;ALB/MAF - FORMS TRACKING ; JUL 6 1995@800
- +1 ;;3.0;AUTOMATED INFO COLLECTION SYS;**16**;APR 24, 1997
- +2 ;
- +3 ;
- OUT SET IBDF2=0
- +1 SET DIR("B")="CLINIC"
- SET DIR(0)="SBM^C:CLINIC;P:PATIENT;G:GROUP (CLINIC)"
- SET DIR("A")="Sort by [C]linic, [P]atient, [G]roup (Clinic)"
- DO ^DIR
- +2 KILL DIR
- IF $DATA(DIRUT)&('$DATA(IBDF1))!(Y<0)
- GOTO EXIT
- +3 IF $DATA(DIRUT)&$DATA(IBDF1)
- GOTO QUIT
- +4 SET X=$SELECT("Pp"[X:2,"Gg"[X:3,1:1)
- +5 SET IBDFSR=$EXTRACT(X)
- +6 IF $DATA(^DG(43,1,"GL"))
- SET IBDFMUL=$PIECE(^DG(43,1,"GL"),"^",2)
- +7 SET IBDFL=$SELECT(IBDFSR=1:"CLN",IBDFSR=2:"PAT",IBDFSR=3:"GRP",1:"QUIT")
- +8 IF $DATA(IBDFMUL)
- IF IBDFMUL
- DO DIVISION^VAUTOMA
- if Y=-1
- GOTO QUIT
- +9 IF 'IBDFMUL
- SET IBDFDV=$ORDER(^DG(40.8,0))
- SET VAUTD=0
- SET VAUTD(+$ORDER(^DG(40.8,0)))=$PIECE($GET(^DG(40.8,+$ORDER(^DG(40.8,0)),0)),"^")
- +10 ;I IBDFL="GRP" D GRP1
- DO @(IBDFL)
- if Y=-1
- GOTO QUIT
- +11 DO DAT
- if Y=-1
- GOTO QUIT
- OKQ NEW IBQUEUE
- SET %=1
- WRITE !!,"Do you want to queue this to a printer?"
- DO YN^DICN
- IF '%
- DO YN
- GOTO OKQ
- +1 IF %=-1
- GOTO EXIT
- +2 IF %=1
- SET IBQUEUE=1
- +3 IF $DATA(IBQUEUE)
- GOTO QUEUE
- +4 DO WAIT^DICD
- +5 SET IBDFDAT=$$HTE^XLFDT($HOROLOG)
- +6 IF '$DATA(IBDF1)
- DO EN^VALM("IBDF FT REPORT")
- +7 IF $DATA(IBDF1)
- DO KILL
- DO START^IBDFFT1
- SET VALMBCK="R"
- SET VALMBG=1
- +8 QUIT
- +9 ;
- +10 ;
- SAVE ; -- save variables for queue
- +1 SET ZTSAVE("^TMP(""FTRK"",$J,")=""
- SET ZTSAVE("^TMP(""COUNT"",$J,")=""
- SET ZTSAVE("^TMP(""FRM"",$J,")=""
- SET ZTSAVE("^TMP(""CNT"",$J,")=""
- SET ZTSAVE("^TMP(""STATS"",$J,")=""
- SET ZTSAVE("VA*")=""
- SET ZTSAVE("VAUTG(")=""
- SET ZTSAVE("VAUTN(")=""
- SET ZTSAVE("VAUTC(")=""
- +2 QUIT
- QUEUE WRITE !!,$CHAR(7),"** Report requires 132 columns and a page length of 80 lines. **",!
- +1 NEW ZTSK,ZTDTH,ZTRTN,ZTDESC,ZTSAVE,ZTION,X,Y
- +2 KILL %IS,%ZIS,IOP
- SET IOP="Q"
- SET %ZIS="QM0"
- SET %ZIS("A")="OUTPUT DEVICE: "
- DO ^%ZIS
- if POP
- GOTO EXIT
- +3 IF $DATA(IO("Q"))
- SET ZTRTN="^IBDFFT3"
- SET ZTDESC="Forms Tracking Report"
- SET ZTSAVE("^TMP(""FTRK"",$J,")=""
- SET ZTSAVE("IB*")=""
- DO SAVE
- DO ^%ZTLOAD
- KILL IO("Q")
- WRITE !,$SELECT($DATA(ZTSK):"Request Queued Task="_ZTSK,1:"Request Canceled")
- DO HOME^%ZIS
- GOTO EXIT
- +4 IF '$DATA(ZTQUEUED)
- DO ^%ZISC
- CLEAR ; -- Clean up variables if task is not queued
- +1 DO ^IBDFFT3
- +2 ;K ^TMP("IBDF",$J),^TMP("IB",$J)
- GOTO EXIT
- +3 QUIT
- HDR ; -- header code
- +1 SET VALMHDR(1)="Encounter forms - printed; scanned (to PCE, w/ERrors); pending pages;"
- +2 SET VALMHDR(2)="data entry (to PCE,w/ERrors); error detected,not transmitted; not printed."
- +3 QUIT
- +4 ;
- CLN SET VAUTNI=2
- SET DIC="^SC("
- SET DIC("S")="I $P(^(0),U,3)=""C""&$S(VAUTD:1,$D(VAUTD(+$P(^(0),U,15))):1,'+$P(^(0),U,15)&$D(VAUTD(+$O(^DG(40.8,0)))):1,1:0)"
- SET VAUTSTR="clinic"
- SET VAUTVB="VAUTC"
- DO FIRST^VAUTOMA
- if Y=-1
- SET IBDF2=1
- if IBDF2
- QUIT
- +1 QUIT
- +2 ;
- +3 ;
- PAT SET VAUTNI=2
- DO PATIENT^VAUTOMA
- if Y=-1
- SET IBDF2=1
- if IBDF2
- QUIT
- +1 QUIT
- +2 ;
- +3 ;
- GRP SET VAUTNI=2
- SET DIC="^IBD(357.99,"
- SET VAUTSTR="clinic group"
- SET VAUTVB="VAUTG"
- DO FIRST^VAUTOMA
- if Y=-1
- SET IBDF2=1
- if IBDF2
- QUIT
- +1 QUIT
- GRP1 NEW IBGROUP
- +1 IF VAUTG=1
- Begin DoDot:1
- +2 SET IBGROUP=0
- FOR
- SET IBGROUP=$ORDER(^IBD(357.99,IBGROUP))
- if 'IBGROUP
- QUIT
- IF $DATA(^IBD(357.99,IBGROUP,0))
- SET VAUTG(IBGROUP)=$PIECE(^IBD(357.99,IBGROUP,0),"^",1)
- +3 QUIT
- End DoDot:1
- +4 SET IBGROUP=0
- FOR
- SET IBGROUP=$ORDER(VAUTG(IBGROUP))
- if 'IBGROUP
- QUIT
- Begin DoDot:1
- +5 NEW IBCLI,IBDIV,IBCLNUM,IBDIVNUM
- +6 SET IBCLI=0
- FOR
- SET IBCLI=$ORDER(^IBD(357.99,IBGROUP,10,IBCLI))
- if 'IBCLI
- QUIT
- IF $DATA(^IBD(357.99,IBGROUP,10,IBCLI,0))
- SET IBCLNUM=+^IBD(357.99,IBGROUP,10,IBCLI,0)
- IF $DATA(^SC(+IBCLNUM,0))
- Begin DoDot:2
- +7 SET VAUTG(IBGROUP,IBCLNUM)=$PIECE(^SC(+IBCLNUM,0),"^",1)
- +8 QUIT
- End DoDot:2
- +9 SET IBDIV=0
- FOR
- SET IBDIV=$ORDER(^IBD(357.99,IBGROUP,11,IBDIV))
- if 'IBDIV
- QUIT
- IF $DATA(^IBD(357.99,IBGROUP,11,IBDIV,0))
- SET IBDIVNUM=+^IBD(357.99,IBGROUP,11,IBDIV,0)
- IF $DATA(^DG(40.8,IBDIVNUM,0))
- Begin DoDot:2
- +10 SET IBCLNUM=0
- FOR
- SET IBCLNUM=$ORDER(^SC(IBCLNUM))
- if 'IBCLNUM
- QUIT
- IF $DATA(^SC(IBCLNUM,0))
- IF +$PIECE(^SC(IBCLNUM,0),"^",15)=IBDIVNUM
- SET VAUTG(IBGROUP,IBCLNUM)=$PIECE(^SC(IBCLNUM,0),"^",1)
- +11 QUIT
- End DoDot:2
- End DoDot:1
- +12 QUIT
- +13 ;
- +14 ;
- CHECK(CLIN) ; -- Check to see if clinic has a form and its one that is not for
- +1 ; future use only.
- +2 NEW IBDFNODE,IBDFCL,X
- +3 SET QUIT=0
- +4 IF $ORDER(^SD(409.95,"B",+CLIN,0))
- Begin DoDot:1
- +5 SET IBDFCL=$ORDER(^SD(409.95,"B",+CLIN,0))
- +6 SET IBDFNODE=^SD(409.95,IBDFCL,0)
- +7 SET QUIT=0
- FOR X=2:1:9
- if $PIECE(IBDFNODE,"^",X)&("^1^2^3^4^5^6^8^9^"[X)
- SET QUIT=1
- if QUIT
- QUIT
- End DoDot:1
- +8 QUIT
- +9 ;
- +10 ;
- EXIT ; -- Code executed at action exit
- +1 KILL IBDFL,IBDFL1,IBDFBG,IBDFBG1,IBDFBEG,IBDFBEG1,IBDFEND,IBDFEND1,VAUTD,VAUTN,VAUTC,IBDFC1,IBDFN1,IBDFDV1,VAUTD1,VAUTC1,VAUTN1,IBDFN,DNKA,VAUTG,IBDFGRO,%DT,VAL,POP,IBDFG1,DIR,VAUTVB
- +2 KILL %,DIC,DIRUT,IBDF1,VALMBCK,VALMBG,VALMHDR,VAUTG1,VAUTNI,VAUTSTR,ZTQUEUED,X,X1,X2,D0,DA,DIK,%ZIS,IOP,CLIN,APPT
- +3 KILL IBDCNT,IBDCNT1,IBDFCL,IBDFDV,IBDFGR,VALMCNT,IBDFPAGE,IFN,VALMY
- EXIT1 ;
- +1 KILL DFN,IBDFCLI,IBDFDA,IBDFDAT,IBDFIFN,IBDFMUL,IBDFSA,IBDFSR,IBDFT,IBDVAL,IBDFVAL,IBDVAL1,QUIT,IBDF2,IBDNKA,IBDX
- +2 KILL ^TMP("CNT",$JOB),^TMP("FRM",$JOB),^TMP("FTRK",$JOB),^TMP("STATS",$JOB),^TMP("FRMIDX",$JOB),^TMP("STAIDX",$JOB),^TMP("COUNT",$JOB),IBDFDIV,IBDFCLIN,IBDFNODE,IBDFGROP
- +3 DO ^%ZISC
- +4 QUIT
- +5 ;
- +6 ;
- DAT ; -- DATE RANGE
- BEG WRITE !
- SET %DT="AEX"
- SET %DT("A")="BEGINNING DATE: "
- DO ^%DT
- SET IBDFBG=Y
- SET IBDFBEG=Y-.0001
- if X="^"!(X="")
- SET Y=-1
- if Y=-1
- QUIT
- END WRITE !
- SET %DT("A")="ENDING DATE: "
- DO ^%DT
- if X="^"!(X="")
- SET Y=-1
- if Y=-1
- QUIT
- IF Y<1
- DO HELP^%DTC
- GOTO END
- +1 SET IBDFEND=Y_.9999
- +2 IF IBDFEND\1<IBDFBG
- WRITE !!?5,"The ending date cannot be before the beginning date"
- GOTO END
- +3 QUIT
- +4 ;
- +5 ;
- HELP ; -- help code
- +1 SET X="?"
- DO DISP^XQORM1
- WRITE !!
- +2 QUIT
- CHGLST ; -- Code to change list display
- +1 DO FULL^VALM1
- +2 SET IBDFL1=IBDFL
- SET IBDFBG1=IBDFBG
- SET IBDFBEG1=IBDFBEG
- SET IBDFEND1=IBDFEND
- +3 SET IBDFDV1=VAUTD
- if $DATA(VAUTC)
- SET IBDFC1=VAUTC
- if $DATA(VAUTN)
- SET IBDFN1=VAUTN
- +4 IF $DATA(VAUTG)
- SET IBDFG1=VAUTG
- +5 IF VAUTD=0
- FOR X=0:0
- SET X=$ORDER(VAUTD(X))
- if X']""
- QUIT
- SET VAUTD1(X)=VAUTD(X)
- +6 IF $DATA(VAUTC)
- IF VAUTC=0
- FOR X=0:0
- SET X=$ORDER(VAUTC(X))
- if X']""
- QUIT
- SET VAUTC1(X)=VAUTC(X)
- +7 IF $DATA(VAUTN)
- IF VAUTN=0
- FOR X=0:0
- SET X=$ORDER(VAUTN(X))
- if X']""
- QUIT
- SET VAUTN1(X)=VAUTN(X)
- +8 IF $DATA(VAUTG)
- Begin DoDot:1
- +9 NEW IBX
- +10 SET IBX=0
- +11 FOR X=0:0
- SET X=$ORDER(VAUTG(X))
- if X']""
- QUIT
- FOR Y=0:0
- SET Y=$ORDER(VAUTG(X,Y))
- if Y']""
- QUIT
- SET VAUTG1(X,Y)=VAUTG(X,Y)
- End DoDot:1
- +12 DO EXIT1
- DO OUT
- +13 QUIT
- KILL ; -- Kill extra array variables
- +1 NEW IBDFXX
- +2 SET IBDFXX=$SELECT(IBDFL="CLN":"VAUTC",IBDFL="GRP":"VAUTG",1:"VAUTN")
- +3 IF IBDFXX="VAUTN"
- KILL VAUTC,VAUTG
- +4 IF IBDFXX="VAUTC"
- KILL VAUTN,VAUTG
- +5 IF IBDFXX="VAUTG"
- KILL VAUTN,VAUTC
- +6 QUIT
- QUIT ; -- Kill variables and reset to last display if no change has taken place
- +1 IF $DATA(IBDF1)
- SET IBDFL=IBDFL1
- SET IBDFBG=IBDFBG1
- SET IBDFBEG=IBDFBEG1
- SET IBDFEND=IBDFEND1
- SET VAUTD=IBDFDV1
- if IBDFL="CLN"
- SET VAUTC=IBDFC1
- if IBDFL="PAT"
- SET VAUTN=IBDFN1
- if IBDFL="GRP"
- SET VAUTG=IBDFG1
- Begin DoDot:1
- +2 IF VAUTD=0
- FOR X=0:0
- SET X=$ORDER(VAUTD1(X))
- if X']""
- QUIT
- SET VAUTD(X)=VAUTD1(X)
- +3 IF $DATA(VAUTC)
- IF VAUTC=0
- FOR X=0:0
- SET X=$ORDER(VAUTC1(X))
- if X']""
- QUIT
- SET VAUTC(X)=VAUTC1(X)
- +4 IF $DATA(VAUTN)
- IF VAUTN=0
- FOR X=0:0
- SET X=$ORDER(VAUTN1(X))
- if X']""
- QUIT
- SET VAUTN(X)=VAUTN1(X)
- +5 IF $DATA(VAUTG)
- Begin DoDot:2
- +6 FOR X=0:0
- SET X=$ORDER(VAUTG1(X))
- if X']""
- QUIT
- FOR Y=0:0
- SET Y=$ORDER(VAUTG1(X,Y))
- if Y']""
- QUIT
- SET VAUTG(X,Y)=VAUTG1(X,Y)
- End DoDot:2
- End DoDot:1
- +7 IF '$DATA(IBDF1)
- GOTO EXIT
- +8 DO KILL
- DO START^IBDFFT1
- SET VALMBCK="R"
- SET VALMBG=1
- +9 QUIT
- +10 ;
- SCHSTAT(DFN,APPT) ; -- return text of scheduling status
- +1 ;
- +2 NEW X
- +3 SET X=$$REQ^IBDFDE0(DFN,APPT,+$GET(^DPT(DFN,"S",APPT,0)),$$FNDSDOE^IBDFDE(DFN,APPT))
- +4 SET X=$SELECT(X=1:"CO Required",X=-1:"CO Complete",1:"CO Not Req.")
- +5 QUIT X
- YN WRITE !?10,"Choose:",!?25,"Y for YES",!?25,"N for NO",!
- QUIT