IBDFCMP ;ALB/MAF - AICS list of components on a form ; 29-JUL-96
;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
START K XQORS,VALMEVL D EN^VALM("IBDF FORM COMPONENTS")
Q
INIT ;
% N I,J,X,Y,DIR,DIRUT,DTOUT,DUOUT,IBDF,IBDPAG,IBDPDT,IBDOJB,IBQUIT,QLFR,RULE,IBDFALL
I '$D(DT) D DT^DICRW
D HOME^%ZIS
W !!,"Display Form Components",!!
;
; -- ask for form id
D END
S DIR("?")="Enter the Encounter Form Name you want to review."
S DIR(0)="PO^357:AEQM",DIR("A")="Select Encounter Form" D ^DIR K DIR,DA,DR,DIC
I $D(DIRUT) S VALMBCK="Q",VALMQUIT=1 Q
S IBDFIFN=+Y
INIT1 S IBDCNT1=0,IBDCNT=0,VALMCNT=0
D DQ
;
STRTQ G:$G(IBQUIT) END ;D PAUSE^IBDFDE
Q
;
DQ ; -- entry point to list contents of one form,
; Input IBDFIFN := pointer to Encounter Form (357)
;
S IBQUIT=0
I '$D(^TMP("FORM-OBJ",$J,IBDFIFN,0)) S IBDFALL=1 D FRMLSTI^IBDFRPC(.IBDOBJ,IBDFIFN,"",1,IBDFALL) M ^TMP("FORM-OBJ",$J,IBDFIFN)=IBDOBJ K IBDOBJ
I $D(^TMP("FORM-OBJ",$J,IBDFIFN,0)),^TMP("FORM-OBJ",$J,IBDFIFN,0)'>0 D NUL Q
D LISTOB
Q
;
LISTOB ; -- list items available for input on a form
N IBDFOLDB
S IBDFOLDB=0
S I=0 F S I=$O(^TMP("FORM-OBJ",$J,IBDFIFN,I)) Q:I=""!(IBQUIT) D
.S IBDOBJ=$G(^TMP("FORM-OBJ",$J,IBDFIFN,I))
.S IBDF("PI")=+$P(IBDOBJ,"^",2),IBDF("TYPE")=$P(IBDOBJ,"^",5)
.S IBDF("IEN")=+$P(IBDOBJ,"^",6),IBDF("VITAL")=$P(IBDOBJ,"^",7)
.S IBDF("BROW")=+$P(IBDOBJ,"^",10)+1,IBDF("BCOL")=+$P(IBDOBJ,"^",11)+1
.S IBDF("BLK")=+$P(IBDOBJ,"^",9),IBDF("BNAME")=$P($G(^IBE(357.1,IBDF("BLK"),0)),"^"),IBDF("BNODE")=$G(^IBE(357.1,IBDF("BLK"),0))
.S IBDF("HT")=$P(IBDF("BNODE"),"^",7)
.S IBDF("WDTH")=$P(IBDF("BNODE"),"^",6)
.S IBDF("TKO")=$P(IBDF("BNODE"),"^",14)
.I IBDFOLDB'=$P(IBDOBJ,"^",9) S IBDFFLAG=0
.I 'IBDFFLAG D
..S X=""
..S IBDFFLAG=1,IBDFOLDB=$P(IBDOBJ,"^",9)
..S IBDCNT1=IBDCNT1+1
..S X=$$SETSTR^VALM1(X,X,1,80) D TMP
..S X=""
..S IBDVAL=IBDCNT1_") "
..S X=$$SETSTR^VALM1(IBDVAL,X,1,4)
..S X=$$SETSTR^VALM1($P(IBDF("BNAME"),"^",1),X,5,40) D TMP,CNTRL^VALM10(VALMCNT,1,80,IOINHI,IOINORM,0)
..S IBBLOCK(IBDCNT1)=IBDFIFN_"^"_IBDCNT_"^"_IBDOBJ
..S X="",X=$$SETSTR^VALM1($$LOWER^VALM1(" STARTING ROW: "),X,1,16)
..S IBDVAL=$S(IBDF("BROW"):IBDF("BROW"),1:"")
..S X=$$SETSTR^VALM1($J(IBDVAL,3),X,17,3)
..S X=$$SETSTR^VALM1($$LOWER^VALM1("STARTING COLUMN: "),X,49,17)
..S IBDVAL=$S(IBDF("BCOL"):IBDF("BCOL"),1:"")
..S X=$$SETSTR^VALM1($J(IBDVAL,3),X,66,3) D TMP
..S X="",X=$$SETSTR^VALM1($$LOWER^VALM1(" BLOCK WIDTH: "),X,1,16)
..S IBDVAL=$S(IBDF("WDTH"):IBDF("WDTH"),1:"")
..S X=$$SETSTR^VALM1($J(IBDVAL,3),X,17,3)
..S X=$$SETSTR^VALM1($$LOWER^VALM1(" BLOCK HEIGHT: "),X,49,17)
..S IBDVAL=$S(IBDF("HT"):IBDF("HT"),1:"")
..S X=$$SETSTR^VALM1($J(IBDVAL,3),X,66,3) D TMP
Q
TMP ; -- Set up Array
S IBDCNT=IBDCNT+1,VALMCNT=VALMCNT+1
S ^TMP("FORMOBJ",$J,IBDCNT,0)=X,^TMP("FORMOBJ",$J,"IDX",VALMCNT,IBDCNT1)=""
S ^TMP("FORMIDX",$J,IBDCNT)=VALMCNT_"^"_IBDFIFN_"^"_IBDF("BLK")
Q
;
;
HELP ; -- help code
S X="?" D DISP^XQORM1 W !!
Q
;
;
EXIT ; -- exit code
K IBDCAT,IBDNME,IBDTYPE,VALMCNT,IBDCNT,IBDCNT1,IBDNAME,IBDNUM,IBDNME,IBDFIFN,IBDVAL,IBDNODE,IBFASTXT,IBDF,IBBLOCK,IBDFNODE,IBDFSNOD,IBDFOBJ,IBDOBJ1,IBQUIT,IBDFFLAG,IBDOBJ
K ^TMP("FORM-OBJ",$J),^TMP("FORMIDX",$J),^TMP("FORMOBJ",$J)
Q
;
NUL ; -- NULL MESSAGE
S ^TMP("FORMOBJ",$J,1,0)=" ",^TMP("FORMOBJ",$J,2,0)="There are no Components listed for this form.",^TMP("FORMIDX",$J,1)=1,^TMP("FORMIDX",$J,2)=2
Q
;
HDR ; -- print patient header
;Q:'$D(IBDFIFN)
S X=" Form Name: "_$E($P($G(^IBE(357,+IBDFIFN,0)),"^"),1,25)
S IBDVAL="FORM ID #: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",13):$P(^IBE(357,+IBDFIFN,0),"^",13),1:"")
S VALMHDR(1)=$$SETSTR^VALM1(IBDVAL,X,55,25)
S X=" Status: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",5):"Compiled",1:"Uncompiled")
S IBDVAL=" Toolkit: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",7):"Yes",1:"No")
S VALMHDR(2)=$$SETSTR^VALM1(IBDVAL,X,55,25)
S X=" Scannable: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",12):"Yes",1:"No")
S IBDVAL=" Use ICR: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",6):"Yes",1:"No")
S VALMHDR(3)=$$SETSTR^VALM1(IBDVAL,X,55,25)
S X=+$P($G(^IBE(357,+IBDFIFN,0)),"^",2)
S X="Simplex/Duplex: "_$S(X]""&(X=0):"Simplex",X]""&(X=1):"Duplex Long-Edge",X]""&(X=2):"Duplex Short-Edge",1:"")
S IBDVAL=" # Pages: "_$S(+$P($G(^IBE(357,+IBDFIFN,0)),"^",11):+$P($G(^IBE(357,+IBDFIFN,0)),"^",11),1:"0")
S VALMHDR(4)=$$SETSTR^VALM1(IBDVAL,X,55,25)
Q
;
END I $D(ZTQUEUED) S ZTREQ="@" Q
K I,J,X,Y,DA,DR,DIC,DIE,DIR,DTOUT,DUOUT,DIRUT,IBDSEL,CHOICE,TEXT,TEXTU,RESULT,IBDPI,IBDCO,IBDF,IBDPAG,ZTSK,IBDFIFN
K ^TMP("FORMIDX",$J),^TMP("FORM-OBJ",$J),^TMP("FORMOBJ",$J)
D ^%ZISC
Q
;
EXP ; -- Expand Action
D FULL^VALM1
N VALMI,VALMAT,VALMY
D EN^VALM2(XQORNOD(0),"O") S VALMI=0
F S VALMI=$O(VALMY(VALMI)) Q:'VALMI D
.S VALMAT=$G(IBBLOCK(VALMI))
.W !
.I DUZ(0)="@" W !,"Entry No. ",+$P(VALMAT,"^",11)
.S DA=+$P(VALMAT,U,11),DIC="^IBE(357.1,",DR="0" D EN^DIQ,PAUSE^VALM1
.K DA,DIC,DR
S VALMBCK="R"
Q
IBDFCMP ;ALB/MAF - AICS list of components on a form ; 29-JUL-96
+1 ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
START KILL XQORS,VALMEVL
DO EN^VALM("IBDF FORM COMPONENTS")
+1 QUIT
INIT ;
% NEW I,J,X,Y,DIR,DIRUT,DTOUT,DUOUT,IBDF,IBDPAG,IBDPDT,IBDOJB,IBQUIT,QLFR,RULE,IBDFALL
+1 IF '$DATA(DT)
DO DT^DICRW
+2 DO HOME^%ZIS
+3 WRITE !!,"Display Form Components",!!
+4 ;
+5 ; -- ask for form id
+6 DO END
+7 SET DIR("?")="Enter the Encounter Form Name you want to review."
+8 SET DIR(0)="PO^357:AEQM"
SET DIR("A")="Select Encounter Form"
DO ^DIR
KILL DIR,DA,DR,DIC
+9 IF $DATA(DIRUT)
SET VALMBCK="Q"
SET VALMQUIT=1
QUIT
+10 SET IBDFIFN=+Y
INIT1 SET IBDCNT1=0
SET IBDCNT=0
SET VALMCNT=0
+1 DO DQ
+2 ;
STRTQ ;D PAUSE^IBDFDE
IF $GET(IBQUIT)
GOTO END
+1 QUIT
+2 ;
DQ ; -- entry point to list contents of one form,
+1 ; Input IBDFIFN := pointer to Encounter Form (357)
+2 ;
+3 SET IBQUIT=0
+4 IF '$DATA(^TMP("FORM-OBJ",$JOB,IBDFIFN,0))
SET IBDFALL=1
DO FRMLSTI^IBDFRPC(.IBDOBJ,IBDFIFN,"",1,IBDFALL)
MERGE ^TMP("FORM-OBJ",$JOB,IBDFIFN)=IBDOBJ
KILL IBDOBJ
+5 IF $DATA(^TMP("FORM-OBJ",$JOB,IBDFIFN,0))
IF ^TMP("FORM-OBJ",$JOB,IBDFIFN,0)'>0
DO NUL
QUIT
+6 DO LISTOB
+7 QUIT
+8 ;
LISTOB ; -- list items available for input on a form
+1 NEW IBDFOLDB
+2 SET IBDFOLDB=0
+3 SET I=0
FOR
SET I=$ORDER(^TMP("FORM-OBJ",$JOB,IBDFIFN,I))
IF I=""!(IBQUIT)
QUIT
Begin DoDot:1
+4 SET IBDOBJ=$GET(^TMP("FORM-OBJ",$JOB,IBDFIFN,I))
+5 SET IBDF("PI")=+$PIECE(IBDOBJ,"^",2)
SET IBDF("TYPE")=$PIECE(IBDOBJ,"^",5)
+6 SET IBDF("IEN")=+$PIECE(IBDOBJ,"^",6)
SET IBDF("VITAL")=$PIECE(IBDOBJ,"^",7)
+7 SET IBDF("BROW")=+$PIECE(IBDOBJ,"^",10)+1
SET IBDF("BCOL")=+$PIECE(IBDOBJ,"^",11)+1
+8 SET IBDF("BLK")=+$PIECE(IBDOBJ,"^",9)
SET IBDF("BNAME")=$PIECE($GET(^IBE(357.1,IBDF("BLK"),0)),"^")
SET IBDF("BNODE")=$GET(^IBE(357.1,IBDF("BLK"),0))
+9 SET IBDF("HT")=$PIECE(IBDF("BNODE"),"^",7)
+10 SET IBDF("WDTH")=$PIECE(IBDF("BNODE"),"^",6)
+11 SET IBDF("TKO")=$PIECE(IBDF("BNODE"),"^",14)
+12 IF IBDFOLDB'=$PIECE(IBDOBJ,"^",9)
SET IBDFFLAG=0
+13 IF 'IBDFFLAG
Begin DoDot:2
+14 SET X=""
+15 SET IBDFFLAG=1
SET IBDFOLDB=$PIECE(IBDOBJ,"^",9)
+16 SET IBDCNT1=IBDCNT1+1
+17 SET X=$$SETSTR^VALM1(X,X,1,80)
DO TMP
+18 SET X=""
+19 SET IBDVAL=IBDCNT1_") "
+20 SET X=$$SETSTR^VALM1(IBDVAL,X,1,4)
+21 SET X=$$SETSTR^VALM1($PIECE(IBDF("BNAME"),"^",1),X,5,40)
DO TMP
DO CNTRL^VALM10(VALMCNT,1,80,IOINHI,IOINORM,0)
+22 SET IBBLOCK(IBDCNT1)=IBDFIFN_"^"_IBDCNT_"^"_IBDOBJ
+23 SET X=""
SET X=$$SETSTR^VALM1($$LOWER^VALM1(" STARTING ROW: "),X,1,16)
+24 SET IBDVAL=$SELECT(IBDF("BROW"):IBDF("BROW"),1:"")
+25 SET X=$$SETSTR^VALM1($JUSTIFY(IBDVAL,3),X,17,3)
+26 SET X=$$SETSTR^VALM1($$LOWER^VALM1("STARTING COLUMN: "),X,49,17)
+27 SET IBDVAL=$SELECT(IBDF("BCOL"):IBDF("BCOL"),1:"")
+28 SET X=$$SETSTR^VALM1($JUSTIFY(IBDVAL,3),X,66,3)
DO TMP
+29 SET X=""
SET X=$$SETSTR^VALM1($$LOWER^VALM1(" BLOCK WIDTH: "),X,1,16)
+30 SET IBDVAL=$SELECT(IBDF("WDTH"):IBDF("WDTH"),1:"")
+31 SET X=$$SETSTR^VALM1($JUSTIFY(IBDVAL,3),X,17,3)
+32 SET X=$$SETSTR^VALM1($$LOWER^VALM1(" BLOCK HEIGHT: "),X,49,17)
+33 SET IBDVAL=$SELECT(IBDF("HT"):IBDF("HT"),1:"")
+34 SET X=$$SETSTR^VALM1($JUSTIFY(IBDVAL,3),X,66,3)
DO TMP
End DoDot:2
End DoDot:1
+35 QUIT
TMP ; -- Set up Array
+1 SET IBDCNT=IBDCNT+1
SET VALMCNT=VALMCNT+1
+2 SET ^TMP("FORMOBJ",$JOB,IBDCNT,0)=X
SET ^TMP("FORMOBJ",$JOB,"IDX",VALMCNT,IBDCNT1)=""
+3 SET ^TMP("FORMIDX",$JOB,IBDCNT)=VALMCNT_"^"_IBDFIFN_"^"_IBDF("BLK")
+4 QUIT
+5 ;
+6 ;
HELP ; -- help code
+1 SET X="?"
DO DISP^XQORM1
WRITE !!
+2 QUIT
+3 ;
+4 ;
EXIT ; -- exit code
+1 KILL IBDCAT,IBDNME,IBDTYPE,VALMCNT,IBDCNT,IBDCNT1,IBDNAME,IBDNUM,IBDNME,IBDFIFN,IBDVAL,IBDNODE,IBFASTXT,IBDF,IBBLOCK,IBDFNODE,IBDFSNOD,IBDFOBJ,IBDOBJ1,IBQUIT,IBDFFLAG,IBDOBJ
+2 KILL ^TMP("FORM-OBJ",$JOB),^TMP("FORMIDX",$JOB),^TMP("FORMOBJ",$JOB)
+3 QUIT
+4 ;
NUL ; -- NULL MESSAGE
+1 SET ^TMP("FORMOBJ",$JOB,1,0)=" "
SET ^TMP("FORMOBJ",$JOB,2,0)="There are no Components listed for this form."
SET ^TMP("FORMIDX",$JOB,1)=1
SET ^TMP("FORMIDX",$JOB,2)=2
+2 QUIT
+3 ;
HDR ; -- print patient header
+1 ;Q:'$D(IBDFIFN)
+2 SET X=" Form Name: "_$EXTRACT($PIECE($GET(^IBE(357,+IBDFIFN,0)),"^"),1,25)
+3 SET IBDVAL="FORM ID #: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",13):$PIECE(^IBE(357,+IBDFIFN,0),"^",13),1:"")
+4 SET VALMHDR(1)=$$SETSTR^VALM1(IBDVAL,X,55,25)
+5 SET X=" Status: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",5):"Compiled",1:"Uncompiled")
+6 SET IBDVAL=" Toolkit: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",7):"Yes",1:"No")
+7 SET VALMHDR(2)=$$SETSTR^VALM1(IBDVAL,X,55,25)
+8 SET X=" Scannable: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",12):"Yes",1:"No")
+9 SET IBDVAL=" Use ICR: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",6):"Yes",1:"No")
+10 SET VALMHDR(3)=$$SETSTR^VALM1(IBDVAL,X,55,25)
+11 SET X=+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",2)
+12 SET X="Simplex/Duplex: "_$SELECT(X]""&(X=0):"Simplex",X]""&(X=1):"Duplex Long-Edge",X]""&(X=2):"Duplex Short-Edge",1:"")
+13 SET IBDVAL=" # Pages: "_$SELECT(+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",11):+$PIECE($GET(^IBE(357,+IBDFIFN,0)),"^",11),1:"0")
+14 SET VALMHDR(4)=$$SETSTR^VALM1(IBDVAL,X,55,25)
+15 QUIT
+16 ;
END IF $DATA(ZTQUEUED)
SET ZTREQ="@"
QUIT
+1 KILL I,J,X,Y,DA,DR,DIC,DIE,DIR,DTOUT,DUOUT,DIRUT,IBDSEL,CHOICE,TEXT,TEXTU,RESULT,IBDPI,IBDCO,IBDF,IBDPAG,ZTSK,IBDFIFN
+2 KILL ^TMP("FORMIDX",$JOB),^TMP("FORM-OBJ",$JOB),^TMP("FORMOBJ",$JOB)
+3 DO ^%ZISC
+4 QUIT
+5 ;
EXP ; -- Expand Action
+1 DO FULL^VALM1
+2 NEW VALMI,VALMAT,VALMY
+3 DO EN^VALM2(XQORNOD(0),"O")
SET VALMI=0
+4 FOR
SET VALMI=$ORDER(VALMY(VALMI))
IF 'VALMI
QUIT
Begin DoDot:1
+5 SET VALMAT=$GET(IBBLOCK(VALMI))
+6 WRITE !
+7 IF DUZ(0)="@"
WRITE !,"Entry No. ",+$PIECE(VALMAT,"^",11)
+8 SET DA=+$PIECE(VALMAT,U,11)
SET DIC="^IBE(357.1,"
SET DR="0"
DO EN^DIQ
DO PAUSE^VALM1
+9 KILL DA,DIC,DR
End DoDot:1
+10 SET VALMBCK="R"
+11 QUIT