- TIUFLP1 ;SLC/AJB - TIU FORM LETTER PRINT; 06 MAR 07
- ;;1.0;TEXT INTEGRATION UTILITIES;**222**;Jun 20, 1997
- Q
- PRINT ; main entry point
- N CONT,NDOC,TIUDA,TIUI,TIUJ,TIUPR
- S CONT=1,NDOC=0,(TIUI,TIUJ)=""
- S TIUPR=$NA(^TMP("TIUPR",$J))
- F S TIUI=$O(@TIUPR@(TIUI)) Q:TIUI="" D Q:'+CONT
- . F S TIUJ=$O(@TIUPR@(TIUI,TIUJ)) Q:TIUJ="" D Q:'+CONT
- . . S TIUDA="" F S TIUDA=$O(@TIUPR@(TIUI,TIUJ,TIUDA)) Q:'+TIUDA D Q:'+CONT
- . . . S NDOC=NDOC+1 I NDOC>1 W @IOF
- . . . N DFN,NOL,PAGE,PAGES,TIU,TIUD9,TIUERR,TIUISADD,TIULQ,TIUPN,TIUPNL,TIUTYP,TIUY
- . . . I '$D(^TIU(8925,+TIUDA,0)) D Q
- . . . . W !,"Document #",TIUDA," no longer exists in the TIU DOCUMENT file.",!
- . . . . S CONT=$$STOP
- . . . S DFN=$P(^TIU(8925,TIUDA,0),U,2),PAGE=1,PAGES=""
- . . . S TIULQ=$NA(^TMP("TIULQ",$J)) K @TIULQ D EXTRACT^TIULQ(+TIUDA,TIULQ,.TIUERR,"","",1)
- . . . I +$G(TIUERR) W !,$P(TIUERR,U,2),! S CONT=$$STOP Q
- . . . S TIULQ=$NA(^TMP("TIULQ",$J,TIUDA))
- . . . S TIUTYP=+$G(^TIU(8925,+TIUDA,0))
- . . . D SETUP(TIUTYP,TIUDA)
- . . . D PAGES
- . . . D REPORT Q:'+CONT I $E(IOST,1,2)="C-" D S CONT=$$STOP
- . . . . F Q:$Y'<(IOSL-NOL("FTR")-$S(+TIUPN:1,1:0)-3) W !
- . . . D ADDENDA Q:'+CONT I +$G(TIUISADD),$E(IOST,1,2)="C-" D S CONT=$$STOP
- . . . . F Q:$Y'<(IOSL-NOL("FTR")-$S(+TIUPN:1,1:0)-3) W !
- Q
- CONTINUE() ; controls paging
- I $E(IOST,1,2)="C-" G CONTY:$Y<(IOSL-NOL("FTR")-2) D S CONT=$$STOP G CONTX
- . D HFCPNT("FTR")
- G:$Y<(IOSL-NOL("FTR")) CONTY
- I IOSL<250 F Q:$Y'<(IOSL-NOL("FTR")) W !
- D HFCPNT("FTR") S:$E(IOST,1,2)="C-" CONT=$$STOP
- CONTX I +CONT W @IOF
- CONTY Q CONT
- IDKID(TIUDA,KIDDA) ; print ID children note
- N KNUM,NODE,NOL,PAGE,PAGES,TIU,TIULQ,TIUTYP
- S PAGE=1,PAGES="",TIULQ=$NA(^TMP("TIULQ",$J,TIUDA)),TIUTYP=+$G(^TIU(8925,+KIDDA,0))
- D SETUP(TIUTYP,KIDDA)
- D IDPAGES
- S KNUM=NOL(KIDDA),TIULQ=$NA(^TMP("TIULQ",$J,TIUDA,"ZZID",KNUM,KIDDA))
- W @IOF
- D REPORT
- Q
- IDPAGES ; calculates # of pages for ID child note
- N IDK,ISKID,TIUX
- S NOL="",NOL=$O(@TIULQ@("TEXT",NOL),-1),NOL("PARENT")=NOL ; # of lines in parent document
- S IDK=0 F S IDK=$O(@TIULQ@("ZZID",IDK)) Q:'+IDK S NOL="",NOL=$O(@TIULQ@("ZZID",IDK,KIDDA,"TEXT",NOL),-1) I +NOL S NOL(KIDDA)=IDK,NOL("IDK",KIDDA)=(NOL-NOL("PARENT")) ; # of lines ID child
- D IDK
- S NOL("IDK",KIDDA)=NOL("IDK",KIDDA)+NOL("HDR")+NOL("CLS") ; add # of lines in ID child body,heading,closing
- S PAGES=NOL("IDK",KIDDA)\(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) I +NOL("IDK",KIDDA)#(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) S PAGES=PAGES+1 ; calculate # of pages for ID child
- Q
- HFCPNT(NODE) ; heading,footer,closing print (page numbers optional)
- N TIUI S TIUI=0 F S TIUI=$O(TIU(NODE,TIUI)) Q:TIUI=""!('+CONT) D
- . I NODE="HDR" W TIU(NODE,TIUI,0),! Q
- . I NODE="CLS" D Q
- . . I $Y<(IOSL-$S($E(IOST,1,2)="C-":2,1:0)-$S(+TIUPN:2,1:0)) W TIU(NODE,TIUI,0),!
- . . E D S:$E(IOST,1,2)="C-" CONT=$$STOP W @IOF
- . . . I +TIUPN S TIUY="Page "_PAGE_" of "_PAGES S TIUY=$S(TIUPNL="CJ":$$CENTER^TIULS(TIUY),TIUPNL="RJ":$$SPACER(TIUY,IOM,1),1:TIUY) W !,TIUY S PAGE=PAGE+1,TIUI=TIUI-1
- . I IOSL<250 F Q:$Y'<(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) W !
- . W TIU(NODE,TIUI,0),!
- Q:'+CONT
- I NODE="FTR",+TIUPN S TIUY="Page "_PAGE_" of "_PAGES S TIUY=$S(TIUPNL="CJ":$$CENTER^TIULS(TIUY),TIUPNL="RJ":$$SPACER(TIUY,IOM,1),1:TIUY) W TIUY S PAGE=PAGE+1
- Q
- PAGES ; calculates total # of pages
- N ADD,TIUX
- S NOL="",NOL=$O(@TIULQ@("TEXT",NOL),-1),NOL("PARENT")=NOL ; # of lines in parent document
- S ADD="" F S ADD=$O(@TIULQ@("ZADD",ADD)) Q:'+ADD S NOL="",NOL=$O(@TIULQ@("ZADD",ADD,"TEXT",NOL),-1) S NOL("ADD",ADD)=(NOL-NOL("PARENT")) ; # of lines in each addendum
- IDK F NOL="HDR","FTR","CLS" S ADD="",NOL(NOL)=$O(TIU(NOL,ADD),-1) ; # of lines in heading,footer & closing
- I +NOL("HDR") S TIU("HDR",(NOL("HDR")+1),0)=" ",NOL("HDR")=NOL("HDR")+1 F TIUX=1:1:+$P(TIUD9,U,6) S NOL("HDR")=NOL("HDR")+1,TIU("HDR",NOL("HDR"),0)=" " ; adds one blank line in header & # of lines desired by user
- I '+NOL("HDR") F TIUX=1:1:+$P(TIUD9,U,6) S TIU("HDR",TIUX,0)=" ",NOL("HDR")=TIUX ; if no header, add # of lines desired by user
- F NOL="FTR","CLS" I +NOL(NOL) D ; add blank line to beginning of footer & closing
- . N TMP S TMP=0 F S TMP=$O(TIU(NOL,TMP)) Q:'+TMP S TMP(NOL,(TMP+1),0)=TIU(NOL,TMP,0)
- . S TMP(NOL,1,0)=" " M TIU(NOL)=TMP(NOL)
- . S NOL(NOL)=NOL(NOL)+1
- I +NOL("FTR"),+TIUPN S NOL("FTR")=NOL("FTR")+1 ; if pages numbers, add one line to # of lines in the footer
- I '+NOL("FTR"),+TIUPN S NOL("FTR")=1 ; if no footer and pages numbers, add one line to footer
- I +$G(ISKID) Q
- S NOL("PARENT")=NOL("PARENT")+NOL("HDR")+NOL("CLS") ; add # of lines in parent,heading & closing
- S PAGES=NOL("PARENT")\(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) I +NOL("PARENT")#(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) S PAGES=PAGES+1 ; calculate # of pages for parent
- S ADD="" F S ADD=$O(NOL("ADD",ADD)) Q:'+ADD D ; calculate # of pages for addenda (one page minimum per)
- . N ADPAGES S ADPAGES=NOL("ADD",ADD)\(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) I +NOL("ADD",ADD)#(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0)) S ADPAGES=ADPAGES+1
- . S PAGES=PAGES+ADPAGES
- Q
- REPORT ; print parent note
- I PAGE=1 D HFCPNT("HDR")
- N TMP S TMP=0 F S TMP=$O(@TIULQ@("TEXT",TMP)) Q:'+TMP!('+CONT) D
- . N X
- . S CONT=$$CONTINUE() Q:'+CONT
- . S X=@TIULQ@("TEXT",TMP,0) S:X="" X=" " W X,!
- I '+CONT S TIUCONT=0
- Q:'+CONT
- D HFCPNT("CLS")
- FFTR D HFCPNT("FTR")
- Q
- ADDENDA ; print addenda
- S TIULQ=$NA(^TMP("TIULQ",$J,TIUDA,"ZADD"))
- S TMP=0 F S TMP=$O(@TIULQ@(TMP)) Q:'+TMP!('+CONT) D
- . W @IOF ; start each addenda on new page
- . W $$DATE^TIULS(@TIULQ@(TMP,1301,"I"),"MM/DD/CCYY HR:MIN")," ","ADDENDUM",?40,"STATUS: ",@TIULQ@(TMP,.05,"E"),!
- . W "AUTHOR: ",$E(@TIULQ@(TMP,1202,"E"),1,30),?40,"EXPECTED COSIGNER: ",$E(@TIULQ@(TMP,1208,"E"),1,20),!
- . N TIUI S TIUI=0 F S TIUI=$O(@TIULQ@(TMP,"TEXT",TIUI)) Q:'+TIUI!('+CONT) D
- . . N X
- . . S CONT=$$CONTINUE Q:'+CONT
- . . S X=@TIULQ@(TMP,"TEXT",TIUI,0) S:X="" X=" " W X,!
- . Q:'+CONT
- . D FFTR ; print final footer
- . S TIUISADD=1
- Q
- GUIVIEW(TIUDA,SEG,TIUL,TIUARR) ;
- N DFN,NODE,ROOT,TIUD9,TIUA,TIUI,TIUJ,TIUTYP,TIUX,TIUY,X
- S DFN=$P($G(^TIU(8925,TIUDA,0)),U,2),TIUTYP=+$G(^TIU(8925,TIUDA,0))
- I $G(TIUL)'>0 S TIUL=0
- I $P($G(^TIU(8925.1,+$G(TIUTYP),0)),U)["ADDENDUM",+$G(TIUDA) S TIUTYP=+$G(^TIU(8925,+$P($G(^TIU(8925,+TIUDA,0)),U,6),0))
- F D Q:+TIUI!('+TIUTYP)
- . S TIUI=+$O(^TIU(8925.95,"B",TIUTYP,0)) I +TIUI Q
- . S TIUTYP=$O(^TIU(8925.1,"AD",TIUTYP,0))
- I '+TIUI Q
- S TIUD9=$G(^TIU(8925.95,+TIUI,9))
- F NODE=6,7,8 S ROOT=$NA(^TIU(8925.95,+TIUI,NODE)) D
- . S TIUJ=$S(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
- . K ^TMP("TIUBOIL",$J)
- . D BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
- . M TIUX(TIUJ)=^TMP("TIUBOIL",$J)
- . K ^TMP("TIUBOIL",$J)
- . S TIUY=$P(TIUD9,U,(NODE-5)) I +$L(TIUY) S TIUA=0 F S TIUA=$O(TIUX(TIUJ,TIUA)) Q:'+TIUA S TIUX(TIUJ,TIUA,0)=$S(TIUY="CJ":$$CENTER^TIULS(TIUX(TIUJ,TIUA,0)),TIUY="RJ":$$SPACER(TIUX(TIUJ,TIUA,0),IOM,1),1:TIUX(TIUJ,TIUA,0))
- S TIUI=0 F S TIUI=$O(TIUX(SEG,TIUI)) Q:'+TIUI S TIUL=TIUL+1,@TIUARR@(TIUL)=TIUX(SEG,TIUI,0)
- F TIUI=1:1:+$P(TIUD9,U,6) S TIUL=TIUL+1,@TIUARR@(TIUL)=" "
- Q
- SETUP(TIUTYP,TIUDA) ;
- N DFN,TIUDAD,TIUI,TIUJ,TIUY
- S (TIUD9,TIUPN)="" I '+$G(TIUDA) Q
- I '+$G(TIUTYP),+$G(TIUDA) S TIUTYP=+$G(^TIU(8925,TIUDA,0))
- S DFN=$P(^TIU(8925,TIUDA,0),U,2)
- I $P($G(^TIU(8925.1,+$G(TIUTYP),0)),U)["ADDENDUM",+$G(TIUDA) S TIUTYP=+$G(^TIU(8925,+$P($G(^TIU(8925,+TIUDA,0)),U,6),0))
- S TIUI=+$O(^TIU(8925.95,"B",TIUTYP,0)) I +TIUI D Q
- . N NODE,ROOT
- . S TIUD9=$G(^TIU(8925.95,+TIUI,9)),TIUPN=$P(TIUD9,U,4),TIUPNL=$P(TIUD9,U,5)
- . F NODE=6,7,8 S ROOT=$NA(^TIU(8925.95,+TIUI,NODE)) D
- . . S TIUJ=$S(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
- . . K ^TMP("TIUBOIL",$J)
- . . D BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
- . . M TIU(TIUJ)=^TMP("TIUBOIL",$J)
- . . K ^TMP("TIUBOIL",$J)
- . . S TIUY=$P(TIUD9,U,(NODE-5)) I +$L(TIUY) N TIUX S TIUX=0 F S TIUX=$O(TIU(TIUJ,TIUX)) Q:'+TIUX S TIU(TIUJ,TIUX,0)=$S(TIUY="CJ":$$CENTER^TIULS(TIU(TIUJ,TIUX,0)),TIUY="RJ":$$SPACER(TIU(TIUJ,TIUX,0),IOM,1),1:TIU(TIUJ,TIUX,0))
- S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0)) I +TIUDAD D SETUP(TIUDAD,TIUDA)
- Q
- SPACER(TEXT,LENGTH,REV) ;
- N SPACER S SPACER=""
- S $P(SPACER," ",(LENGTH-$L(TEXT)))=" "
- S:'$D(REV) TEXT=TEXT_SPACER
- S:$D(REV) TEXT=SPACER_TEXT
- Q TEXT
- STOP() ;
- N DIR,Y,TIUCONT S DIR(0)="E" W ! D ^DIR S TIUCONT=Y
- Q TIUCONT
- TIUFLP1 ;SLC/AJB - TIU FORM LETTER PRINT; 06 MAR 07
- +1 ;;1.0;TEXT INTEGRATION UTILITIES;**222**;Jun 20, 1997
- +2 QUIT
- PRINT ; main entry point
- +1 NEW CONT,NDOC,TIUDA,TIUI,TIUJ,TIUPR
- +2 SET CONT=1
- SET NDOC=0
- SET (TIUI,TIUJ)=""
- +3 SET TIUPR=$NAME(^TMP("TIUPR",$JOB))
- +4 FOR
- SET TIUI=$ORDER(@TIUPR@(TIUI))
- IF TIUI=""
- QUIT
- Begin DoDot:1
- +5 FOR
- SET TIUJ=$ORDER(@TIUPR@(TIUI,TIUJ))
- IF TIUJ=""
- QUIT
- Begin DoDot:2
- +6 SET TIUDA=""
- FOR
- SET TIUDA=$ORDER(@TIUPR@(TIUI,TIUJ,TIUDA))
- IF '+TIUDA
- QUIT
- Begin DoDot:3
- +7 SET NDOC=NDOC+1
- IF NDOC>1
- WRITE @IOF
- +8 NEW DFN,NOL,PAGE,PAGES,TIU,TIUD9,TIUERR,TIUISADD,TIULQ,TIUPN,TIUPNL,TIUTYP,TIUY
- +9 IF '$DATA(^TIU(8925,+TIUDA,0))
- Begin DoDot:4
- +10 WRITE !,"Document #",TIUDA," no longer exists in the TIU DOCUMENT file.",!
- +11 SET CONT=$$STOP
- End DoDot:4
- QUIT
- +12 SET DFN=$PIECE(^TIU(8925,TIUDA,0),U,2)
- SET PAGE=1
- SET PAGES=""
- +13 SET TIULQ=$NAME(^TMP("TIULQ",$JOB))
- KILL @TIULQ
- DO EXTRACT^TIULQ(+TIUDA,TIULQ,.TIUERR,"","",1)
- +14 IF +$GET(TIUERR)
- WRITE !,$PIECE(TIUERR,U,2),!
- SET CONT=$$STOP
- QUIT
- +15 SET TIULQ=$NAME(^TMP("TIULQ",$JOB,TIUDA))
- +16 SET TIUTYP=+$GET(^TIU(8925,+TIUDA,0))
- +17 DO SETUP(TIUTYP,TIUDA)
- +18 DO PAGES
- +19 DO REPORT
- IF '+CONT
- QUIT
- IF $EXTRACT(IOST,1,2)="C-"
- Begin DoDot:4
- +20 FOR
- IF $Y'<(IOSL-NOL("FTR")-$SELECT(+TIUPN
- QUIT
- WRITE !
- End DoDot:4
- SET CONT=$$STOP
- +21 DO ADDENDA
- IF '+CONT
- QUIT
- IF +$GET(TIUISADD)
- IF $EXTRACT(IOST,1,2)="C-"
- Begin DoDot:4
- +22 FOR
- IF $Y'<(IOSL-NOL("FTR")-$SELECT(+TIUPN
- QUIT
- WRITE !
- End DoDot:4
- SET CONT=$$STOP
- End DoDot:3
- IF '+CONT
- QUIT
- End DoDot:2
- IF '+CONT
- QUIT
- End DoDot:1
- IF '+CONT
- QUIT
- +23 QUIT
- CONTINUE() ; controls paging
- +1 IF $EXTRACT(IOST,1,2)="C-"
- IF $Y<(IOSL-NOL("FTR")-2)
- GOTO CONTY
- Begin DoDot:1
- +2 DO HFCPNT("FTR")
- End DoDot:1
- SET CONT=$$STOP
- GOTO CONTX
- +3 IF $Y<(IOSL-NOL("FTR"))
- GOTO CONTY
- +4 IF IOSL<250
- FOR
- IF $Y'<(IOSL-NOL("FTR"))
- QUIT
- WRITE !
- +5 DO HFCPNT("FTR")
- IF $EXTRACT(IOST,1,2)="C-"
- SET CONT=$$STOP
- CONTX IF +CONT
- WRITE @IOF
- CONTY QUIT CONT
- IDKID(TIUDA,KIDDA) ; print ID children note
- +1 NEW KNUM,NODE,NOL,PAGE,PAGES,TIU,TIULQ,TIUTYP
- +2 SET PAGE=1
- SET PAGES=""
- SET TIULQ=$NAME(^TMP("TIULQ",$JOB,TIUDA))
- SET TIUTYP=+$GET(^TIU(8925,+KIDDA,0))
- +3 DO SETUP(TIUTYP,KIDDA)
- +4 DO IDPAGES
- +5 SET KNUM=NOL(KIDDA)
- SET TIULQ=$NAME(^TMP("TIULQ",$JOB,TIUDA,"ZZID",KNUM,KIDDA))
- +6 WRITE @IOF
- +7 DO REPORT
- +8 QUIT
- IDPAGES ; calculates # of pages for ID child note
- +1 NEW IDK,ISKID,TIUX
- +2 ; # of lines in parent document
- SET NOL=""
- SET NOL=$ORDER(@TIULQ@("TEXT",NOL),-1)
- SET NOL("PARENT")=NOL
- +3 ; # of lines ID child
- SET IDK=0
- FOR
- SET IDK=$ORDER(@TIULQ@("ZZID",IDK))
- IF '+IDK
- QUIT
- SET NOL=""
- SET NOL=$ORDER(@TIULQ@("ZZID",IDK,KIDDA,"TEXT",NOL),-1)
- IF +NOL
- SET NOL(KIDDA)=IDK
- SET NOL("IDK",KIDDA)=(NOL-NOL("PARENT"))
- +4 DO IDK
- +5 ; add # of lines in ID child body,heading,closing
- SET NOL("IDK",KIDDA)=NOL("IDK",KIDDA)+NOL("HDR")+NOL("CLS")
- +6 ; calculate # of pages for ID child
- SET PAGES=NOL("IDK",KIDDA)\(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- IF +NOL("IDK",KIDDA)#(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- SET PAGES=PAGES+1
- +7 QUIT
- HFCPNT(NODE) ; heading,footer,closing print (page numbers optional)
- +1 NEW TIUI
- SET TIUI=0
- FOR
- SET TIUI=$ORDER(TIU(NODE,TIUI))
- IF TIUI=""!('+CONT)
- QUIT
- Begin DoDot:1
- +2 IF NODE="HDR"
- WRITE TIU(NODE,TIUI,0),!
- QUIT
- +3 IF NODE="CLS"
- Begin DoDot:2
- +4 IF $Y<(IOSL-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0)-$SELECT(+TIUPN:2,1:0))
- WRITE TIU(NODE,TIUI,0),!
- +5 IF '$TEST
- Begin DoDot:3
- +6 IF +TIUPN
- SET TIUY="Page "_PAGE_" of "_PAGES
- SET TIUY=$SELECT(TIUPNL="CJ":$$CENTER^TIULS(TIUY),TIUPNL="RJ":$$SPACER(TIUY,IOM,1),1:TIUY)
- WRITE !,TIUY
- SET PAGE=PAGE+1
- SET TIUI=TIUI-1
- End DoDot:3
- IF $EXTRACT(IOST,1,2)="C-"
- SET CONT=$$STOP
- WRITE @IOF
- End DoDot:2
- QUIT
- +7 IF IOSL<250
- FOR
- IF $Y'<(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-"
- QUIT
- WRITE !
- +8 WRITE TIU(NODE,TIUI,0),!
- End DoDot:1
- +9 IF '+CONT
- QUIT
- +10 IF NODE="FTR"
- IF +TIUPN
- SET TIUY="Page "_PAGE_" of "_PAGES
- SET TIUY=$SELECT(TIUPNL="CJ":$$CENTER^TIULS(TIUY),TIUPNL="RJ":$$SPACER(TIUY,IOM,1),1:TIUY)
- WRITE TIUY
- SET PAGE=PAGE+1
- +11 QUIT
- PAGES ; calculates total # of pages
- +1 NEW ADD,TIUX
- +2 ; # of lines in parent document
- SET NOL=""
- SET NOL=$ORDER(@TIULQ@("TEXT",NOL),-1)
- SET NOL("PARENT")=NOL
- +3 ; # of lines in each addendum
- SET ADD=""
- FOR
- SET ADD=$ORDER(@TIULQ@("ZADD",ADD))
- IF '+ADD
- QUIT
- SET NOL=""
- SET NOL=$ORDER(@TIULQ@("ZADD",ADD,"TEXT",NOL),-1)
- SET NOL("ADD",ADD)=(NOL-NOL("PARENT"))
- IDK ; # of lines in heading,footer & closing
- FOR NOL="HDR","FTR","CLS"
- SET ADD=""
- SET NOL(NOL)=$ORDER(TIU(NOL,ADD),-1)
- +1 ; adds one blank line in header & # of lines desired by user
- IF +NOL("HDR")
- SET TIU("HDR",(NOL("HDR")+1),0)=" "
- SET NOL("HDR")=NOL("HDR")+1
- FOR TIUX=1:1:+$PIECE(TIUD9,U,6)
- SET NOL("HDR")=NOL("HDR")+1
- SET TIU("HDR",NOL("HDR"),0)=" "
- +2 ; if no header, add # of lines desired by user
- IF '+NOL("HDR")
- FOR TIUX=1:1:+$PIECE(TIUD9,U,6)
- SET TIU("HDR",TIUX,0)=" "
- SET NOL("HDR")=TIUX
- +3 ; add blank line to beginning of footer & closing
- FOR NOL="FTR","CLS"
- IF +NOL(NOL)
- Begin DoDot:1
- +4 NEW TMP
- SET TMP=0
- FOR
- SET TMP=$ORDER(TIU(NOL,TMP))
- IF '+TMP
- QUIT
- SET TMP(NOL,(TMP+1),0)=TIU(NOL,TMP,0)
- +5 SET TMP(NOL,1,0)=" "
- MERGE TIU(NOL)=TMP(NOL)
- +6 SET NOL(NOL)=NOL(NOL)+1
- End DoDot:1
- +7 ; if pages numbers, add one line to # of lines in the footer
- IF +NOL("FTR")
- IF +TIUPN
- SET NOL("FTR")=NOL("FTR")+1
- +8 ; if no footer and pages numbers, add one line to footer
- IF '+NOL("FTR")
- IF +TIUPN
- SET NOL("FTR")=1
- +9 IF +$GET(ISKID)
- QUIT
- +10 ; add # of lines in parent,heading & closing
- SET NOL("PARENT")=NOL("PARENT")+NOL("HDR")+NOL("CLS")
- +11 ; calculate # of pages for parent
- SET PAGES=NOL("PARENT")\(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- IF +NOL("PARENT")#(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- SET PAGES=PAGES+1
- +12 ; calculate # of pages for addenda (one page minimum per)
- SET ADD=""
- FOR
- SET ADD=$ORDER(NOL("ADD",ADD))
- IF '+ADD
- QUIT
- Begin DoDot:1
- +13 NEW ADPAGES
- SET ADPAGES=NOL("ADD",ADD)\(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- IF +NOL("ADD",ADD)#(IOSL-NOL("FTR")-$SELECT($EXTRACT(IOST,1,2)="C-":2,1:0))
- SET ADPAGES=ADPAGES+1
- +14 SET PAGES=PAGES+ADPAGES
- End DoDot:1
- +15 QUIT
- REPORT ; print parent note
- +1 IF PAGE=1
- DO HFCPNT("HDR")
- +2 NEW TMP
- SET TMP=0
- FOR
- SET TMP=$ORDER(@TIULQ@("TEXT",TMP))
- IF '+TMP!('+CONT)
- QUIT
- Begin DoDot:1
- +3 NEW X
- +4 SET CONT=$$CONTINUE()
- IF '+CONT
- QUIT
- +5 SET X=@TIULQ@("TEXT",TMP,0)
- IF X=""
- SET X=" "
- WRITE X,!
- End DoDot:1
- +6 IF '+CONT
- SET TIUCONT=0
- +7 IF '+CONT
- QUIT
- +8 DO HFCPNT("CLS")
- FFTR DO HFCPNT("FTR")
- +1 QUIT
- ADDENDA ; print addenda
- +1 SET TIULQ=$NAME(^TMP("TIULQ",$JOB,TIUDA,"ZADD"))
- +2 SET TMP=0
- FOR
- SET TMP=$ORDER(@TIULQ@(TMP))
- IF '+TMP!('+CONT)
- QUIT
- Begin DoDot:1
- +3 ; start each addenda on new page
- WRITE @IOF
- +4 WRITE $$DATE^TIULS(@TIULQ@(TMP,1301,"I"),"MM/DD/CCYY HR:MIN")," ","ADDENDUM",?40,"STATUS: ",@TIULQ@(TMP,.05,"E"),!
- +5 WRITE "AUTHOR: ",$EXTRACT(@TIULQ@(TMP,1202,"E"),1,30),?40,"EXPECTED COSIGNER: ",$EXTRACT(@TIULQ@(TMP,1208,"E"),1,20),!
- +6 NEW TIUI
- SET TIUI=0
- FOR
- SET TIUI=$ORDER(@TIULQ@(TMP,"TEXT",TIUI))
- IF '+TIUI!('+CONT)
- QUIT
- Begin DoDot:2
- +7 NEW X
- +8 SET CONT=$$CONTINUE
- IF '+CONT
- QUIT
- +9 SET X=@TIULQ@(TMP,"TEXT",TIUI,0)
- IF X=""
- SET X=" "
- WRITE X,!
- End DoDot:2
- +10 IF '+CONT
- QUIT
- +11 ; print final footer
- DO FFTR
- +12 SET TIUISADD=1
- End DoDot:1
- +13 QUIT
- GUIVIEW(TIUDA,SEG,TIUL,TIUARR) ;
- +1 NEW DFN,NODE,ROOT,TIUD9,TIUA,TIUI,TIUJ,TIUTYP,TIUX,TIUY,X
- +2 SET DFN=$PIECE($GET(^TIU(8925,TIUDA,0)),U,2)
- SET TIUTYP=+$GET(^TIU(8925,TIUDA,0))
- +3 IF $GET(TIUL)'>0
- SET TIUL=0
- +4 IF $PIECE($GET(^TIU(8925.1,+$GET(TIUTYP),0)),U)["ADDENDUM"
- IF +$GET(TIUDA)
- SET TIUTYP=+$GET(^TIU(8925,+$PIECE($GET(^TIU(8925,+TIUDA,0)),U,6),0))
- +5 FOR
- Begin DoDot:1
- +6 SET TIUI=+$ORDER(^TIU(8925.95,"B",TIUTYP,0))
- IF +TIUI
- QUIT
- +7 SET TIUTYP=$ORDER(^TIU(8925.1,"AD",TIUTYP,0))
- End DoDot:1
- IF +TIUI!('+TIUTYP)
- QUIT
- +8 IF '+TIUI
- QUIT
- +9 SET TIUD9=$GET(^TIU(8925.95,+TIUI,9))
- +10 FOR NODE=6,7,8
- SET ROOT=$NAME(^TIU(8925.95,+TIUI,NODE))
- Begin DoDot:1
- +11 SET TIUJ=$SELECT(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
- +12 KILL ^TMP("TIUBOIL",$JOB)
- +13 DO BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
- +14 MERGE TIUX(TIUJ)=^TMP("TIUBOIL",$JOB)
- +15 KILL ^TMP("TIUBOIL",$JOB)
- +16 SET TIUY=$PIECE(TIUD9,U,(NODE-5))
- IF +$LENGTH(TIUY)
- SET TIUA=0
- FOR
- SET TIUA=$ORDER(TIUX(TIUJ,TIUA))
- IF '+TIUA
- QUIT
- SET TIUX(TIUJ,TIUA,0)=$SELECT(TIUY="CJ":$$CENTER^TIULS(TIUX(TIUJ,TIUA,0)),TIUY="RJ":$$SPACER(TIUX(TIUJ,TIUA,0),IOM,1),1:TIUX(TIUJ,TIUA,0))
- End DoDot:1
- +17 SET TIUI=0
- FOR
- SET TIUI=$ORDER(TIUX(SEG,TIUI))
- IF '+TIUI
- QUIT
- SET TIUL=TIUL+1
- SET @TIUARR@(TIUL)=TIUX(SEG,TIUI,0)
- +18 FOR TIUI=1:1:+$PIECE(TIUD9,U,6)
- SET TIUL=TIUL+1
- SET @TIUARR@(TIUL)=" "
- +19 QUIT
- SETUP(TIUTYP,TIUDA) ;
- +1 NEW DFN,TIUDAD,TIUI,TIUJ,TIUY
- +2 SET (TIUD9,TIUPN)=""
- IF '+$GET(TIUDA)
- QUIT
- +3 IF '+$GET(TIUTYP)
- IF +$GET(TIUDA)
- SET TIUTYP=+$GET(^TIU(8925,TIUDA,0))
- +4 SET DFN=$PIECE(^TIU(8925,TIUDA,0),U,2)
- +5 IF $PIECE($GET(^TIU(8925.1,+$GET(TIUTYP),0)),U)["ADDENDUM"
- IF +$GET(TIUDA)
- SET TIUTYP=+$GET(^TIU(8925,+$PIECE($GET(^TIU(8925,+TIUDA,0)),U,6),0))
- +6 SET TIUI=+$ORDER(^TIU(8925.95,"B",TIUTYP,0))
- IF +TIUI
- Begin DoDot:1
- +7 NEW NODE,ROOT
- +8 SET TIUD9=$GET(^TIU(8925.95,+TIUI,9))
- SET TIUPN=$PIECE(TIUD9,U,4)
- SET TIUPNL=$PIECE(TIUD9,U,5)
- +9 FOR NODE=6,7,8
- SET ROOT=$NAME(^TIU(8925.95,+TIUI,NODE))
- Begin DoDot:2
- +10 SET TIUJ=$SELECT(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
- +11 KILL ^TMP("TIUBOIL",$JOB)
- +12 DO BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
- +13 MERGE TIU(TIUJ)=^TMP("TIUBOIL",$JOB)
- +14 KILL ^TMP("TIUBOIL",$JOB)
- +15 SET TIUY=$PIECE(TIUD9,U,(NODE-5))
- IF +$LENGTH(TIUY)
- NEW TIUX
- SET TIUX=0
- FOR
- SET TIUX=$ORDER(TIU(TIUJ,TIUX))
- IF '+TIUX
- QUIT
- SET TIU(TIUJ,TIUX,0)=$SELECT(TIUY="CJ":$$CENTER^TIULS(TIU(TIUJ,TIUX,0)),TIUY="RJ":$$SPACER(TIU(TIUJ,TIUX,0),IOM,1),1:TIU(TIUJ,TIUX,0))
- End DoDot:2
- End DoDot:1
- QUIT
- +16 SET TIUDAD=$ORDER(^TIU(8925.1,"AD",+TIUTYP,0))
- IF +TIUDAD
- DO SETUP(TIUDAD,TIUDA)
- +17 QUIT
- SPACER(TEXT,LENGTH,REV) ;
- +1 NEW SPACER
- SET SPACER=""
- +2 SET $PIECE(SPACER," ",(LENGTH-$LENGTH(TEXT)))=" "
- +3 IF '$DATA(REV)
- SET TEXT=TEXT_SPACER
- +4 IF $DATA(REV)
- SET TEXT=SPACER_TEXT
- +5 QUIT TEXT
- STOP() ;
- +1 NEW DIR,Y,TIUCONT
- SET DIR(0)="E"
- WRITE !
- DO ^DIR
- SET TIUCONT=Y
- +2 QUIT TIUCONT