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
|
---|