| 1 | TIUFLP1 ;SLC/AJB - TIU FORM LETTER PRINT; 06 MAR 07
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**222**;Jun 20, 1997
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 | PRINT ; main entry point
 | 
|---|
| 5 |  N CONT,NDOC,TIUDA,TIUI,TIUJ,TIUPR
 | 
|---|
| 6 |  S CONT=1,NDOC=0,(TIUI,TIUJ)=""
 | 
|---|
| 7 |  S TIUPR=$NA(^TMP("TIUPR",$J))
 | 
|---|
| 8 |  F  S TIUI=$O(@TIUPR@(TIUI)) Q:TIUI=""  D  Q:'+CONT
 | 
|---|
| 9 |  . F  S TIUJ=$O(@TIUPR@(TIUI,TIUJ)) Q:TIUJ=""  D  Q:'+CONT
 | 
|---|
| 10 |  . . S TIUDA="" F  S TIUDA=$O(@TIUPR@(TIUI,TIUJ,TIUDA)) Q:'+TIUDA  D  Q:'+CONT
 | 
|---|
| 11 |  . . . S NDOC=NDOC+1 I NDOC>1 W @IOF
 | 
|---|
| 12 |  . . . N DFN,NOL,PAGE,PAGES,TIU,TIUD9,TIUERR,TIUISADD,TIULQ,TIUPN,TIUPNL,TIUTYP,TIUY
 | 
|---|
| 13 |  . . . I '$D(^TIU(8925,+TIUDA,0)) D  Q
 | 
|---|
| 14 |  . . . . W !,"Document #",TIUDA," no longer exists in the TIU DOCUMENT file.",!
 | 
|---|
| 15 |  . . . . S CONT=$$STOP
 | 
|---|
| 16 |  . . . S DFN=$P(^TIU(8925,TIUDA,0),U,2),PAGE=1,PAGES=""
 | 
|---|
| 17 |  . . . S TIULQ=$NA(^TMP("TIULQ",$J)) K @TIULQ D EXTRACT^TIULQ(+TIUDA,TIULQ,.TIUERR,"","",1)
 | 
|---|
| 18 |  . . . I +$G(TIUERR) W !,$P(TIUERR,U,2),! S CONT=$$STOP Q
 | 
|---|
| 19 |  . . . S TIULQ=$NA(^TMP("TIULQ",$J,TIUDA))
 | 
|---|
| 20 |  . . . S TIUTYP=+$G(^TIU(8925,+TIUDA,0))
 | 
|---|
| 21 |  . . . D SETUP(TIUTYP,TIUDA)
 | 
|---|
| 22 |  . . . D PAGES
 | 
|---|
| 23 |  . . . D REPORT Q:'+CONT  I $E(IOST,1,2)="C-" D  S CONT=$$STOP
 | 
|---|
| 24 |  . . . . F  Q:$Y'<(IOSL-NOL("FTR")-$S(+TIUPN:1,1:0)-3)  W !
 | 
|---|
| 25 |  . . . D ADDENDA Q:'+CONT  I +$G(TIUISADD),$E(IOST,1,2)="C-" D  S CONT=$$STOP
 | 
|---|
| 26 |  . . . . F  Q:$Y'<(IOSL-NOL("FTR")-$S(+TIUPN:1,1:0)-3)  W !
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | CONTINUE() ; controls paging
 | 
|---|
| 29 |  I $E(IOST,1,2)="C-" G CONTY:$Y<(IOSL-NOL("FTR")-2) D  S CONT=$$STOP G CONTX
 | 
|---|
| 30 |  . D HFCPNT("FTR")
 | 
|---|
| 31 |  G:$Y<(IOSL-NOL("FTR")) CONTY
 | 
|---|
| 32 |  I IOSL<250 F  Q:$Y'<(IOSL-NOL("FTR"))  W !
 | 
|---|
| 33 |  D HFCPNT("FTR") S:$E(IOST,1,2)="C-" CONT=$$STOP
 | 
|---|
| 34 | CONTX I +CONT W @IOF
 | 
|---|
| 35 | CONTY Q CONT
 | 
|---|
| 36 | IDKID(TIUDA,KIDDA) ; print ID children note
 | 
|---|
| 37 |  N KNUM,NODE,NOL,PAGE,PAGES,TIU,TIULQ,TIUTYP
 | 
|---|
| 38 |  S PAGE=1,PAGES="",TIULQ=$NA(^TMP("TIULQ",$J,TIUDA)),TIUTYP=+$G(^TIU(8925,+KIDDA,0))
 | 
|---|
| 39 |  D SETUP(TIUTYP,KIDDA)
 | 
|---|
| 40 |  D IDPAGES
 | 
|---|
| 41 |  S KNUM=NOL(KIDDA),TIULQ=$NA(^TMP("TIULQ",$J,TIUDA,"ZZID",KNUM,KIDDA))
 | 
|---|
| 42 |  W @IOF
 | 
|---|
| 43 |  D REPORT
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | IDPAGES ; calculates # of pages for ID child note
 | 
|---|
| 46 |  N IDK,ISKID,TIUX
 | 
|---|
| 47 |  S NOL="",NOL=$O(@TIULQ@("TEXT",NOL),-1),NOL("PARENT")=NOL ; # of lines in parent document
 | 
|---|
| 48 |  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
 | 
|---|
| 49 |  D IDK
 | 
|---|
| 50 |  S NOL("IDK",KIDDA)=NOL("IDK",KIDDA)+NOL("HDR")+NOL("CLS") ; add # of lines in ID child body,heading,closing
 | 
|---|
| 51 |  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
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | HFCPNT(NODE) ; heading,footer,closing print (page numbers optional)
 | 
|---|
| 54 |  N TIUI S TIUI=0 F  S TIUI=$O(TIU(NODE,TIUI)) Q:TIUI=""!('+CONT)  D
 | 
|---|
| 55 |  . I NODE="HDR" W TIU(NODE,TIUI,0),! Q
 | 
|---|
| 56 |  . I NODE="CLS" D  Q
 | 
|---|
| 57 |  . . I $Y<(IOSL-$S($E(IOST,1,2)="C-":2,1:0)-$S(+TIUPN:2,1:0)) W TIU(NODE,TIUI,0),!
 | 
|---|
| 58 |  . . E  D  S:$E(IOST,1,2)="C-" CONT=$$STOP W @IOF
 | 
|---|
| 59 |  . . . 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
 | 
|---|
| 60 |  . I IOSL<250 F  Q:$Y'<(IOSL-NOL("FTR")-$S($E(IOST,1,2)="C-":2,1:0))  W !
 | 
|---|
| 61 |  . W TIU(NODE,TIUI,0),!
 | 
|---|
| 62 |  Q:'+CONT
 | 
|---|
| 63 |  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
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | PAGES ; calculates total # of pages
 | 
|---|
| 66 |  N ADD,TIUX
 | 
|---|
| 67 |  S NOL="",NOL=$O(@TIULQ@("TEXT",NOL),-1),NOL("PARENT")=NOL ; # of lines in parent document
 | 
|---|
| 68 |  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
 | 
|---|
| 69 | IDK F NOL="HDR","FTR","CLS" S ADD="",NOL(NOL)=$O(TIU(NOL,ADD),-1) ; # of lines in heading,footer & closing
 | 
|---|
| 70 |  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
 | 
|---|
| 71 |  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
 | 
|---|
| 72 |  F NOL="FTR","CLS" I +NOL(NOL) D  ; add blank line to beginning of footer & closing
 | 
|---|
| 73 |  . N TMP S TMP=0 F  S TMP=$O(TIU(NOL,TMP)) Q:'+TMP  S TMP(NOL,(TMP+1),0)=TIU(NOL,TMP,0)
 | 
|---|
| 74 |  . S TMP(NOL,1,0)=" " M TIU(NOL)=TMP(NOL)
 | 
|---|
| 75 |  . S NOL(NOL)=NOL(NOL)+1
 | 
|---|
| 76 |  I +NOL("FTR"),+TIUPN S NOL("FTR")=NOL("FTR")+1 ; if pages numbers, add one line to # of lines in the footer
 | 
|---|
| 77 |  I '+NOL("FTR"),+TIUPN S NOL("FTR")=1 ; if no footer and pages numbers, add one line to footer
 | 
|---|
| 78 |  I +$G(ISKID) Q
 | 
|---|
| 79 |  S NOL("PARENT")=NOL("PARENT")+NOL("HDR")+NOL("CLS") ; add # of lines in parent,heading & closing
 | 
|---|
| 80 |  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
 | 
|---|
| 81 |  S ADD="" F  S ADD=$O(NOL("ADD",ADD)) Q:'+ADD  D  ; calculate # of pages for addenda (one page minimum per)
 | 
|---|
| 82 |  . 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
 | 
|---|
| 83 |  . S PAGES=PAGES+ADPAGES
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 | REPORT ; print parent note
 | 
|---|
| 86 |  I PAGE=1 D HFCPNT("HDR")
 | 
|---|
| 87 |  N TMP S TMP=0 F  S TMP=$O(@TIULQ@("TEXT",TMP)) Q:'+TMP!('+CONT)  D
 | 
|---|
| 88 |  . N X
 | 
|---|
| 89 |  . S CONT=$$CONTINUE() Q:'+CONT
 | 
|---|
| 90 |  . S X=@TIULQ@("TEXT",TMP,0) S:X="" X=" " W X,!
 | 
|---|
| 91 |  I '+CONT S TIUCONT=0
 | 
|---|
| 92 |  Q:'+CONT
 | 
|---|
| 93 |  D HFCPNT("CLS")
 | 
|---|
| 94 | FFTR D HFCPNT("FTR")
 | 
|---|
| 95 |  Q
 | 
|---|
| 96 | ADDENDA ; print addenda
 | 
|---|
| 97 |  S TIULQ=$NA(^TMP("TIULQ",$J,TIUDA,"ZADD"))
 | 
|---|
| 98 |  S TMP=0 F  S TMP=$O(@TIULQ@(TMP)) Q:'+TMP!('+CONT)  D
 | 
|---|
| 99 |  . W @IOF ; start each addenda on new page
 | 
|---|
| 100 |  . W $$DATE^TIULS(@TIULQ@(TMP,1301,"I"),"MM/DD/CCYY HR:MIN")," ","ADDENDUM",?40,"STATUS:  ",@TIULQ@(TMP,.05,"E"),!
 | 
|---|
| 101 |  . W "AUTHOR: ",$E(@TIULQ@(TMP,1202,"E"),1,30),?40,"EXPECTED COSIGNER: ",$E(@TIULQ@(TMP,1208,"E"),1,20),!
 | 
|---|
| 102 |  . N TIUI S TIUI=0 F  S TIUI=$O(@TIULQ@(TMP,"TEXT",TIUI)) Q:'+TIUI!('+CONT)  D
 | 
|---|
| 103 |  . . N X
 | 
|---|
| 104 |  . . S CONT=$$CONTINUE Q:'+CONT
 | 
|---|
| 105 |  . . S X=@TIULQ@(TMP,"TEXT",TIUI,0) S:X="" X=" " W X,!
 | 
|---|
| 106 |  . Q:'+CONT
 | 
|---|
| 107 |  . D FFTR ; print final footer
 | 
|---|
| 108 |  . S TIUISADD=1
 | 
|---|
| 109 |  Q
 | 
|---|
| 110 | GUIVIEW(TIUDA,SEG,TIUL,TIUARR) ;
 | 
|---|
| 111 |  N DFN,NODE,ROOT,TIUD9,TIUA,TIUI,TIUJ,TIUTYP,TIUX,TIUY,X
 | 
|---|
| 112 |  S DFN=$P($G(^TIU(8925,TIUDA,0)),U,2),TIUTYP=+$G(^TIU(8925,TIUDA,0))
 | 
|---|
| 113 |  I $G(TIUL)'>0 S TIUL=0
 | 
|---|
| 114 |  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))
 | 
|---|
| 115 |  F  D  Q:+TIUI!('+TIUTYP)
 | 
|---|
| 116 |  . S TIUI=+$O(^TIU(8925.95,"B",TIUTYP,0)) I +TIUI Q
 | 
|---|
| 117 |  . S TIUTYP=$O(^TIU(8925.1,"AD",TIUTYP,0))
 | 
|---|
| 118 |  I '+TIUI Q
 | 
|---|
| 119 |  S TIUD9=$G(^TIU(8925.95,+TIUI,9))
 | 
|---|
| 120 |  F NODE=6,7,8 S ROOT=$NA(^TIU(8925.95,+TIUI,NODE)) D
 | 
|---|
| 121 |  . S TIUJ=$S(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
 | 
|---|
| 122 |  . K ^TMP("TIUBOIL",$J)
 | 
|---|
| 123 |  . D BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
 | 
|---|
| 124 |  . M TIUX(TIUJ)=^TMP("TIUBOIL",$J)
 | 
|---|
| 125 |  . K ^TMP("TIUBOIL",$J)
 | 
|---|
| 126 |  . 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))
 | 
|---|
| 127 |  S TIUI=0 F  S TIUI=$O(TIUX(SEG,TIUI)) Q:'+TIUI  S TIUL=TIUL+1,@TIUARR@(TIUL)=TIUX(SEG,TIUI,0)
 | 
|---|
| 128 |  F TIUI=1:1:+$P(TIUD9,U,6) S TIUL=TIUL+1,@TIUARR@(TIUL)=" "
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 | SETUP(TIUTYP,TIUDA) ;
 | 
|---|
| 131 |  N DFN,TIUDAD,TIUI,TIUJ,TIUY
 | 
|---|
| 132 |  S (TIUD9,TIUPN)="" I '+$G(TIUDA) Q
 | 
|---|
| 133 |  I '+$G(TIUTYP),+$G(TIUDA) S TIUTYP=+$G(^TIU(8925,TIUDA,0))
 | 
|---|
| 134 |  S DFN=$P(^TIU(8925,TIUDA,0),U,2)
 | 
|---|
| 135 |  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))
 | 
|---|
| 136 |  S TIUI=+$O(^TIU(8925.95,"B",TIUTYP,0)) I +TIUI D  Q
 | 
|---|
| 137 |  . N NODE,ROOT
 | 
|---|
| 138 |  . S TIUD9=$G(^TIU(8925.95,+TIUI,9)),TIUPN=$P(TIUD9,U,4),TIUPNL=$P(TIUD9,U,5)
 | 
|---|
| 139 |  . F NODE=6,7,8 S ROOT=$NA(^TIU(8925.95,+TIUI,NODE)) D
 | 
|---|
| 140 |  . . S TIUJ=$S(NODE=6:"HDR",NODE=7:"FTR",1:"CLS")
 | 
|---|
| 141 |  . . K ^TMP("TIUBOIL",$J)
 | 
|---|
| 142 |  . . D BLRPLT^TIUSRVD(.TIUY,"",DFN,"",ROOT)
 | 
|---|
| 143 |  . . M TIU(TIUJ)=^TMP("TIUBOIL",$J)
 | 
|---|
| 144 |  . . K ^TMP("TIUBOIL",$J)
 | 
|---|
| 145 |  . . 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))
 | 
|---|
| 146 |  S TIUDAD=$O(^TIU(8925.1,"AD",+TIUTYP,0)) I +TIUDAD D SETUP(TIUDAD,TIUDA)
 | 
|---|
| 147 |  Q
 | 
|---|
| 148 | SPACER(TEXT,LENGTH,REV) ;
 | 
|---|
| 149 |  N SPACER S SPACER=""
 | 
|---|
| 150 |  S $P(SPACER," ",(LENGTH-$L(TEXT)))=" "
 | 
|---|
| 151 |  S:'$D(REV) TEXT=TEXT_SPACER
 | 
|---|
| 152 |  S:$D(REV) TEXT=SPACER_TEXT
 | 
|---|
| 153 |  Q TEXT
 | 
|---|
| 154 | STOP() ;
 | 
|---|
| 155 |  N DIR,Y,TIUCONT S DIR(0)="E" W ! D ^DIR S TIUCONT=Y
 | 
|---|
| 156 |  Q TIUCONT
 | 
|---|