GMRCP5C ;SLC/DCM,RJS - Print Consult form 513 (Assemble Segments And Print) ;4/30/98 09:41
;;3.0;CONSULT/REQUEST TRACKING;**4**;Dec 27, 1997
;
Q
;
ASSMBL(PAGELEN,PAGEWID) ;
;
N GMRCHDR,GMRCPG,SUB,GMRCPAGE,GMRCDVL
;
S GMRCDVL="",$P(GMRCDVL,"-",PAGEWID+1)=""
S ^TMP("GMRC",$J,"SF513")=$G(PAGELEN)
S GMRCPG=1,GMRCHDR=""
D CLRZONE(0)
D MERGE("HDR",0,1)
D MERGE("FTR",0,5)
;
;REQ add reason for request segment
;
D FORMAT("REQ",PAGELEN,PAGEWID,2)
;
;PDIAG add provisional diagnosis segment
;
D FORMAT("PDIAG",PAGELEN,PAGEWID,$$SIZE("PDIAG",1)+1)
;
;RES add tiu results segment
;
D FORMAT("RES",PAGELEN,PAGEWID,6)
;
;ADD add addendum segment
;
D FORMAT("ADD",PAGELEN,PAGEWID,4)
;
;SREP add service report segment
;
D FORMAT("SREP",PAGELEN,PAGEWID,5)
;
;COM add comments segment
;
D FORMAT("COM",PAGELEN,PAGEWID,5)
;
I $D(GMRCPAGE(300000)) D OUTPUT(GMRCPG)
;
Q
;
FORMAT(SUB,PAGELEN,PAGEWID,OFFSET) ;
;
N LN,NDX
;
I $$CHKPAGE("",0,PAGELEN,OFFSET) D CLRZONE(2)
I $O(^TMP("GMRC",$J,"OUTPUT",SUB,0)),$D(GMRCPAGE(300000)),'(SUB="RES") D BLDPAGE(3,GMRCDVL,PAGEWID)
;
S NDX=0 F S NDX=$O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX)) Q:'NDX D
.I $$CHKPAGE(SUB,NDX,PAGELEN,OFFSET) D CLRZONE(2)
.D NEWSUB("F",SUB,NDX,PAGEWID)
.S LN=0 F S LN=$O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN)) Q:'LN D
..I $$CHKPAGE(SUB,NDX,PAGELEN,2)
..D BLDPAGE(3,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN,0)),PAGEWID,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN,1)),SUB,NDX)
.D BLDPAGE(3," ",PAGEWID,"",SUB,NDX)
.D ADDFTR(SUB,NDX,PAGEWID)
;
Q
;
NEWSUB(ZONE,SUB,NDX,PAGEWID) ;
;
N FLN,NZONE
;
S:(ZONE="H") NZONE=2
S:(ZONE="F") NZONE=4
Q:'$G(NZONE)
D CLRZONE(NZONE)
;
S FLN=0 F S FLN=$O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,ZONE,FLN)) Q:'FLN D
.D BLDPAGE(NZONE,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,ZONE,FLN,0)),PAGEWID,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,ZONE,FLN,1)),SUB,NDX)
Q
;
ADDFTR(SUB,NDX,PAGEWID) ;
;
N FLN
D CLRZONE(4)
S FLN=0 F S FLN=$O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,"F",FLN)) Q:'FLN D
.D BLDPAGE(3,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,"F",FLN,0)),PAGEWID,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,"F",FLN,1)),SUB,NDX)
Q
;
NEWPAGE(SUB,NDX) ;
;
N GMRCHDR
;
D OUTPUT(GMRCPG)
;
S GMRCPG=GMRCPG+1
D MERGE("HDR",1,1)
D MERGE("FTR",1,5)
;
I $L(SUB) D NEWSUB("H",SUB,NDX,PAGEWID)
Q
;
CHKPAGE(SUB,NDX,PAGELEN,OFFSET) ;
;
I ($$ROOM(PAGELEN)<OFFSET) D NEWPAGE(SUB,NDX) Q 1
Q 0
;
SIZE(SUB,NDX) ;
;
Q $O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX," "),-1)
;
ROOM(LEN) ;
;
N LN,SIZE
S LN=0 F SIZE=0:1 S LN=$O(GMRCPAGE(LN)) Q:'LN
Q (LEN-SIZE-1)
;
MERGE(SUB,NDX,ZONE) ;
;
N LN
S LN=0 F S LN=$O(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN)) Q:'LN D
.D BLDPAGE(ZONE,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN,0)),PAGEWID,$G(^TMP("GMRC",$J,"OUTPUT",SUB,NDX,LN,1)),SUB,NDX)
Q
;
BLDPAGE(ZONE,TEXT,PAGEWID,RUNTIME,SUB,NDX) ;
;
N GMRCX,GMRCL,GMRCR1,GMRCR2,PTR,WORD
;
I ($L(TEXT)<PAGEWID) D ADDLN(ZONE,TEXT,$G(RUNTIME)) Q
;
F PTR=1:1 Q:(PTR>$L(TEXT," ")) I ($L($P(TEXT," ",PTR))>PAGEWID) D
.S WORD=$P(TEXT," ",PTR)
.S WORD=$E(WORD,1,PAGEWID)_" "_$E(WORD,(PAGEWID+1),$L(WORD))
.S $P(TEXT," ",PTR)=WORD,PTR=1
;
F PTR=2:1:$L(TEXT," ") Q:'$L(TEXT) I ($L($P(TEXT," ",1,PTR))>PAGEWID) D
.I (ZONE=3),$$CHKPAGE(SUB,NDX,PAGELEN,2)
.S (GMRCR1,GMRCR2)=""
.I $L(RUNTIME) D
..S GMRCL=$L($P(TEXT," ",1,PTR-1))
..F GMRCX=1:2:$L(RUNTIME,",") D
...I ($P(RUNTIME,",",GMRCX+1)>GMRCL) D I 1
....S:$L(GMRCR2) GMRCR2=GMRCR2_","
....S GMRCR2=GMRCR2_$P(RUNTIME,",",GMRCX)_","_($P(RUNTIME,",",GMRCX+1)-GMRCL)
...E D
....S:$L(GMRCR1) GMRCR1=GMRCR1_","
....S GMRCR1=GMRCR1_$P(RUNTIME,",",GMRCX,GMRCX+1)
.D ADDLN(ZONE,$P(TEXT," ",1,PTR-1),GMRCR1)
.S TEXT=$P(TEXT," ",PTR,$L(TEXT," ")),PTR=1,RUNTIME=GMRCR2
I $L(TEXT) S:(ZONE=3) GMRCX=$$CHKPAGE($G(SUB),$G(NDX),PAGELEN,2) D ADDLN(ZONE,TEXT,$G(RUNTIME))
Q
;
ADDLN(ZONE,TEXT,RUNTIME) ;
;
N NEXTLN
I '$D(GMRCPAGE(ZONE*100000)) S GMRCPAGE(ZONE*100000,0)=TEXT Q
S NEXTLN=$O(GMRCPAGE(ZONE*100000+99999),-1)+1
S GMRCPAGE(NEXTLN,0)=TEXT
S:$L($G(RUNTIME)) GMRCPAGE(NEXTLN,1)=RUNTIME
Q
;
OUTPUT(GMRCPG) ;
;
N LN,LN1,NEXT,ZONE,VAR,PTR
S LN=0 F S LN=$O(GMRCPAGE(LN)) Q:'LN I $O(GMRCPAGE(LN,0)) D
.S LN1=0 F S LN1=$O(GMRCPAGE(LN,LN1)) Q:'LN1 D
..S VAR=$G(GMRCPAGE(LN,LN1)) Q:'$L(VAR)
..S PTR=$P(VAR,",",2),VAR=$P(VAR,",",1)
..I PTR,$L(VAR),($D(@VAR)#2) S $E(GMRCPAGE(LN,0),PTR+1,PTR+1+$L(@VAR))=@VAR
;
S NEXT=$O(^TMP("GMRC",$J,"SF513"," "),-1)+1
M ^TMP("GMRC",$J,"SF513",NEXT)=GMRCPAGE
F ZONE=1,2,3,5 D CLRZONE(ZONE)
Q
;
CLRZONE(ZONE) ;
;
; Zone 1 = Header
; Zone 2 = SubHeader (Continuation Information)
; Zone 3 = Body of the Consult
; Zone 4 = SubFooter (Signature Information)
; Zone 5 = Footer
;
I '$G(ZONE) K GMRCPAGE Q
N LN,STLN,ENDLN
S STLN=100000*ZONE,ENDLN=STLN+99999
S LN=STLN D F S LN=$O(GMRCPAGE(LN)) Q:'LN Q:(LN>ENDLN) D
.K GMRCPAGE(LN)
Q
;
PRINT(PAGELEN,PAGEWID) ; Print the Consult
;
N GMRCPAGE,LN,LN1,VAR,PAGE,PAUSE,PTR,ROOM,LNCNT
;
S PAGE=0 F S PAGE=$O(^TMP("GMRC",$J,"SF513",PAGE)) Q:'PAGE D Q:(PAUSE[U)
.W:(PAGE>1) @IOF
.K GMRCPAGE M GMRCPAGE=^TMP("GMRC",$J,"SF513",PAGE)
.S ROOM=$$ROOM(PAGELEN)
.I (ROOM<100) F LN=1:1:ROOM D BLDPAGE(3," ",PAGEWID)
.S GMRCPG=PAGE_" of "_$O(^TMP("GMRC",$J,"SF513"," "),-1)
.S LN=0 F LNCNT=0:1 S LN=$O(GMRCPAGE(LN)) Q:'LN D
..S LN1=0 F S LN1=$O(GMRCPAGE(LN,LN1)) Q:'LN1 D
...S VAR=$G(GMRCPAGE(LN,LN1)) Q:'$L(VAR)
...S PTR=$P(VAR,",",2),VAR=$P(VAR,",",1)
...I PTR,$L(VAR),($D(@VAR)#2) D
....S $E(GMRCPAGE(LN,0),PTR+1,PTR+1+$L(@VAR))=@VAR
..W !,$G(GMRCPAGE(LN,0))
.;
.S PAUSE=0
.S:$O(^TMP("GMRC",$J,"SF513",PAGE)) PAUSE=PAUSE+1
.S:$O(^TMP("GMRC",$J,"SF513",PAGE),-1) PAUSE=PAUSE+10
.S PAUSE=$$PAUSE(PAUSE,PAGE)
.S:(PAUSE["-") PAGE=PAGE-2
;
Q
;
PAUSE(PF,PG) ; Pause After Each Screen for CRT's
;
N X,C
Q:'$$CRT ""
;
W !," Press: "
;
I (PF=00) W "<Enter> To Quit (^) To Quit : "
I (PF=01) W "<Enter> For Next Page (^) To Quit : "
I (PF=10) W "<Enter> To Quit (-) For Previous Page (^) To Quit : "
I (PF=11) W "<Enter> For Next Page (-) For Previous Page (^) To Quit : "
;
R X:DTIME E W " (timeout)" Q U
W !
Q X
;
CRT() ; IS THE PRINT DEVICE A CRT ?
Q:TIUFLG 0 Q ($E(IOST,1,2)="C-")
;
GMRCP5C ;SLC/DCM,RJS - Print Consult form 513 (Assemble Segments And Print) ;4/30/98 09:41
+1 ;;3.0;CONSULT/REQUEST TRACKING;**4**;Dec 27, 1997
+2 ;
+3 QUIT
+4 ;
ASSMBL(PAGELEN,PAGEWID) ;
+1 ;
+2 NEW GMRCHDR,GMRCPG,SUB,GMRCPAGE,GMRCDVL
+3 ;
+4 SET GMRCDVL=""
SET $PIECE(GMRCDVL,"-",PAGEWID+1)=""
+5 SET ^TMP("GMRC",$JOB,"SF513")=$GET(PAGELEN)
+6 SET GMRCPG=1
SET GMRCHDR=""
+7 DO CLRZONE(0)
+8 DO MERGE("HDR",0,1)
+9 DO MERGE("FTR",0,5)
+10 ;
+11 ;REQ add reason for request segment
+12 ;
+13 DO FORMAT("REQ",PAGELEN,PAGEWID,2)
+14 ;
+15 ;PDIAG add provisional diagnosis segment
+16 ;
+17 DO FORMAT("PDIAG",PAGELEN,PAGEWID,$$SIZE("PDIAG",1)+1)
+18 ;
+19 ;RES add tiu results segment
+20 ;
+21 DO FORMAT("RES",PAGELEN,PAGEWID,6)
+22 ;
+23 ;ADD add addendum segment
+24 ;
+25 DO FORMAT("ADD",PAGELEN,PAGEWID,4)
+26 ;
+27 ;SREP add service report segment
+28 ;
+29 DO FORMAT("SREP",PAGELEN,PAGEWID,5)
+30 ;
+31 ;COM add comments segment
+32 ;
+33 DO FORMAT("COM",PAGELEN,PAGEWID,5)
+34 ;
+35 IF $DATA(GMRCPAGE(300000))
DO OUTPUT(GMRCPG)
+36 ;
+37 QUIT
+38 ;
FORMAT(SUB,PAGELEN,PAGEWID,OFFSET) ;
+1 ;
+2 NEW LN,NDX
+3 ;
+4 IF $$CHKPAGE("",0,PAGELEN,OFFSET)
DO CLRZONE(2)
+5 IF $ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,0))
IF $DATA(GMRCPAGE(300000))
IF '(SUB="RES")
DO BLDPAGE(3,GMRCDVL,PAGEWID)
+6 ;
+7 SET NDX=0
FOR
SET NDX=$ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX))
IF 'NDX
QUIT
Begin DoDot:1
+8 IF $$CHKPAGE(SUB,NDX,PAGELEN,OFFSET)
DO CLRZONE(2)
+9 DO NEWSUB("F",SUB,NDX,PAGEWID)
+10 SET LN=0
FOR
SET LN=$ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN))
IF 'LN
QUIT
Begin DoDot:2
+11 IF $$CHKPAGE(SUB,NDX,PAGELEN,2)
+12 DO BLDPAGE(3,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN,0)),PAGEWID,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN,1)),SUB,NDX)
End DoDot:2
+13 DO BLDPAGE(3," ",PAGEWID,"",SUB,NDX)
+14 DO ADDFTR(SUB,NDX,PAGEWID)
End DoDot:1
+15 ;
+16 QUIT
+17 ;
NEWSUB(ZONE,SUB,NDX,PAGEWID) ;
+1 ;
+2 NEW FLN,NZONE
+3 ;
+4 IF (ZONE="H")
SET NZONE=2
+5 IF (ZONE="F")
SET NZONE=4
+6 IF '$GET(NZONE)
QUIT
+7 DO CLRZONE(NZONE)
+8 ;
+9 SET FLN=0
FOR
SET FLN=$ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,ZONE,FLN))
IF 'FLN
QUIT
Begin DoDot:1
+10 DO BLDPAGE(NZONE,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,ZONE,FLN,0)),PAGEWID,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,ZONE,FLN,1)),SUB,NDX)
End DoDot:1
+11 QUIT
+12 ;
ADDFTR(SUB,NDX,PAGEWID) ;
+1 ;
+2 NEW FLN
+3 DO CLRZONE(4)
+4 SET FLN=0
FOR
SET FLN=$ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,"F",FLN))
IF 'FLN
QUIT
Begin DoDot:1
+5 DO BLDPAGE(3,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,"F",FLN,0)),PAGEWID,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,"F",FLN,1)),SUB,NDX)
End DoDot:1
+6 QUIT
+7 ;
NEWPAGE(SUB,NDX) ;
+1 ;
+2 NEW GMRCHDR
+3 ;
+4 DO OUTPUT(GMRCPG)
+5 ;
+6 SET GMRCPG=GMRCPG+1
+7 DO MERGE("HDR",1,1)
+8 DO MERGE("FTR",1,5)
+9 ;
+10 IF $LENGTH(SUB)
DO NEWSUB("H",SUB,NDX,PAGEWID)
+11 QUIT
+12 ;
CHKPAGE(SUB,NDX,PAGELEN,OFFSET) ;
+1 ;
+2 IF ($$ROOM(PAGELEN)<OFFSET)
DO NEWPAGE(SUB,NDX)
QUIT 1
+3 QUIT 0
+4 ;
SIZE(SUB,NDX) ;
+1 ;
+2 QUIT $ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX," "),-1)
+3 ;
ROOM(LEN) ;
+1 ;
+2 NEW LN,SIZE
+3 SET LN=0
FOR SIZE=0:1
SET LN=$ORDER(GMRCPAGE(LN))
IF 'LN
QUIT
+4 QUIT (LEN-SIZE-1)
+5 ;
MERGE(SUB,NDX,ZONE) ;
+1 ;
+2 NEW LN
+3 SET LN=0
FOR
SET LN=$ORDER(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN))
IF 'LN
QUIT
Begin DoDot:1
+4 DO BLDPAGE(ZONE,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN,0)),PAGEWID,$GET(^TMP("GMRC",$JOB,"OUTPUT",SUB,NDX,LN,1)),SUB,NDX)
End DoDot:1
+5 QUIT
+6 ;
BLDPAGE(ZONE,TEXT,PAGEWID,RUNTIME,SUB,NDX) ;
+1 ;
+2 NEW GMRCX,GMRCL,GMRCR1,GMRCR2,PTR,WORD
+3 ;
+4 IF ($LENGTH(TEXT)<PAGEWID)
DO ADDLN(ZONE,TEXT,$GET(RUNTIME))
QUIT
+5 ;
+6 FOR PTR=1:1
IF (PTR>$LENGTH(TEXT," "))
QUIT
IF ($LENGTH($PIECE(TEXT," ",PTR))>PAGEWID)
Begin DoDot:1
+7 SET WORD=$PIECE(TEXT," ",PTR)
+8 SET WORD=$EXTRACT(WORD,1,PAGEWID)_" "_$EXTRACT(WORD,(PAGEWID+1),$LENGTH(WORD))
+9 SET $PIECE(TEXT," ",PTR)=WORD
SET PTR=1
End DoDot:1
+10 ;
+11 FOR PTR=2:1:$LENGTH(TEXT," ")
IF '$LENGTH(TEXT)
QUIT
IF ($LENGTH($PIECE(TEXT," ",1,PTR))>PAGEWID)
Begin DoDot:1
+12 IF (ZONE=3)
IF $$CHKPAGE(SUB,NDX,PAGELEN,2)
+13 SET (GMRCR1,GMRCR2)=""
+14 IF $LENGTH(RUNTIME)
Begin DoDot:2
+15 SET GMRCL=$LENGTH($PIECE(TEXT," ",1,PTR-1))
+16 FOR GMRCX=1:2:$LENGTH(RUNTIME,",")
Begin DoDot:3
+17 IF ($PIECE(RUNTIME,",",GMRCX+1)>GMRCL)
Begin DoDot:4
+18 IF $LENGTH(GMRCR2)
SET GMRCR2=GMRCR2_","
+19 SET GMRCR2=GMRCR2_$PIECE(RUNTIME,",",GMRCX)_","_($PIECE(RUNTIME,",",GMRCX+1)-GMRCL)
End DoDot:4
IF 1
+20 IF '$TEST
Begin DoDot:4
+21 IF $LENGTH(GMRCR1)
SET GMRCR1=GMRCR1_","
+22 SET GMRCR1=GMRCR1_$PIECE(RUNTIME,",",GMRCX,GMRCX+1)
End DoDot:4
End DoDot:3
End DoDot:2
+23 DO ADDLN(ZONE,$PIECE(TEXT," ",1,PTR-1),GMRCR1)
+24 SET TEXT=$PIECE(TEXT," ",PTR,$LENGTH(TEXT," "))
SET PTR=1
SET RUNTIME=GMRCR2
End DoDot:1
+25 IF $LENGTH(TEXT)
IF (ZONE=3)
SET GMRCX=$$CHKPAGE($GET(SUB),$GET(NDX),PAGELEN,2)
DO ADDLN(ZONE,TEXT,$GET(RUNTIME))
+26 QUIT
+27 ;
ADDLN(ZONE,TEXT,RUNTIME) ;
+1 ;
+2 NEW NEXTLN
+3 IF '$DATA(GMRCPAGE(ZONE*100000))
SET GMRCPAGE(ZONE*100000,0)=TEXT
QUIT
+4 SET NEXTLN=$ORDER(GMRCPAGE(ZONE*100000+99999),-1)+1
+5 SET GMRCPAGE(NEXTLN,0)=TEXT
+6 IF $LENGTH($GET(RUNTIME))
SET GMRCPAGE(NEXTLN,1)=RUNTIME
+7 QUIT
+8 ;
OUTPUT(GMRCPG) ;
+1 ;
+2 NEW LN,LN1,NEXT,ZONE,VAR,PTR
+3 SET LN=0
FOR
SET LN=$ORDER(GMRCPAGE(LN))
IF 'LN
QUIT
IF $ORDER(GMRCPAGE(LN,0))
Begin DoDot:1
+4 SET LN1=0
FOR
SET LN1=$ORDER(GMRCPAGE(LN,LN1))
IF 'LN1
QUIT
Begin DoDot:2
+5 SET VAR=$GET(GMRCPAGE(LN,LN1))
IF '$LENGTH(VAR)
QUIT
+6 SET PTR=$PIECE(VAR,",",2)
SET VAR=$PIECE(VAR,",",1)
+7 IF PTR
IF $LENGTH(VAR)
IF ($DATA(@VAR)#2)
SET $EXTRACT(GMRCPAGE(LN,0),PTR+1,PTR+1+$LENGTH(@VAR))=@VAR
End DoDot:2
End DoDot:1
+8 ;
+9 SET NEXT=$ORDER(^TMP("GMRC",$JOB,"SF513"," "),-1)+1
+10 MERGE ^TMP("GMRC",$JOB,"SF513",NEXT)=GMRCPAGE
+11 FOR ZONE=1,2,3,5
DO CLRZONE(ZONE)
+12 QUIT
+13 ;
CLRZONE(ZONE) ;
+1 ;
+2 ; Zone 1 = Header
+3 ; Zone 2 = SubHeader (Continuation Information)
+4 ; Zone 3 = Body of the Consult
+5 ; Zone 4 = SubFooter (Signature Information)
+6 ; Zone 5 = Footer
+7 ;
+8 IF '$GET(ZONE)
KILL GMRCPAGE
QUIT
+9 NEW LN,STLN,ENDLN
+10 SET STLN=100000*ZONE
SET ENDLN=STLN+99999
+11 SET LN=STLN
Begin DoDot:1
+12 KILL GMRCPAGE(LN)
End DoDot:1
FOR
SET LN=$ORDER(GMRCPAGE(LN))
IF 'LN
QUIT
IF (LN>ENDLN)
QUIT
Begin DoDot:1
End DoDot:1
+13 QUIT
+14 ;
PRINT(PAGELEN,PAGEWID) ; Print the Consult
+1 ;
+2 NEW GMRCPAGE,LN,LN1,VAR,PAGE,PAUSE,PTR,ROOM,LNCNT
+3 ;
+4 SET PAGE=0
FOR
SET PAGE=$ORDER(^TMP("GMRC",$JOB,"SF513",PAGE))
IF 'PAGE
QUIT
Begin DoDot:1
+5 IF (PAGE>1)
WRITE @IOF
+6 KILL GMRCPAGE
MERGE GMRCPAGE=^TMP("GMRC",$JOB,"SF513",PAGE)
+7 SET ROOM=$$ROOM(PAGELEN)
+8 IF (ROOM<100)
FOR LN=1:1:ROOM
DO BLDPAGE(3," ",PAGEWID)
+9 SET GMRCPG=PAGE_" of "_$ORDER(^TMP("GMRC",$JOB,"SF513"," "),-1)
+10 SET LN=0
FOR LNCNT=0:1
SET LN=$ORDER(GMRCPAGE(LN))
IF 'LN
QUIT
Begin DoDot:2
+11 SET LN1=0
FOR
SET LN1=$ORDER(GMRCPAGE(LN,LN1))
IF 'LN1
QUIT
Begin DoDot:3
+12 SET VAR=$GET(GMRCPAGE(LN,LN1))
IF '$LENGTH(VAR)
QUIT
+13 SET PTR=$PIECE(VAR,",",2)
SET VAR=$PIECE(VAR,",",1)
+14 IF PTR
IF $LENGTH(VAR)
IF ($DATA(@VAR)#2)
Begin DoDot:4
+15 SET $EXTRACT(GMRCPAGE(LN,0),PTR+1,PTR+1+$LENGTH(@VAR))=@VAR
End DoDot:4
End DoDot:3
+16 WRITE !,$GET(GMRCPAGE(LN,0))
End DoDot:2
+17 ;
+18 SET PAUSE=0
+19 IF $ORDER(^TMP("GMRC",$JOB,"SF513",PAGE))
SET PAUSE=PAUSE+1
+20 IF $ORDER(^TMP("GMRC",$JOB,"SF513",PAGE),-1)
SET PAUSE=PAUSE+10
+21 SET PAUSE=$$PAUSE(PAUSE,PAGE)
+22 IF (PAUSE["-")
SET PAGE=PAGE-2
End DoDot:1
IF (PAUSE[U)
QUIT
+23 ;
+24 QUIT
+25 ;
PAUSE(PF,PG) ; Pause After Each Screen for CRT's
+1 ;
+2 NEW X,C
+3 IF '$$CRT
QUIT ""
+4 ;
+5 WRITE !," Press: "
+6 ;
+7 IF (PF=00)
WRITE "<Enter> To Quit (^) To Quit : "
+8 IF (PF=01)
WRITE "<Enter> For Next Page (^) To Quit : "
+9 IF (PF=10)
WRITE "<Enter> To Quit (-) For Previous Page (^) To Quit : "
+10 IF (PF=11)
WRITE "<Enter> For Next Page (-) For Previous Page (^) To Quit : "
+11 ;
+12 READ X:DTIME
IF '$TEST
WRITE " (timeout)"
QUIT U
+13 WRITE !
+14 QUIT X
+15 ;
CRT() ; IS THE PRINT DEVICE A CRT ?
+1 IF TIUFLG
QUIT 0
QUIT ($EXTRACT(IOST,1,2)="C-")
+2 ;