- 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-")
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRCP5C 6462 printed Jan 18, 2025@02:47:46 Page 2
- 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 ;