1 | TIUPUTC ; SLC/JER - Document filer - captioned header ;5/20/05
|
---|
2 | ;;1.0;TEXT INTEGRATION UTILITIES;**3,21,81,100,113,112,173,184**;Jun 20, 1997
|
---|
3 | ;
|
---|
4 | MAIN ; ---- Controls branching.
|
---|
5 | ; Attempts to file upload documents in the target file.
|
---|
6 | ; Requires DA = IEN of 8925.2 upload buffer entry.
|
---|
7 | N TIUDA,TIUBGN,TIUI,TIUHSIG,TIULIM,TIULCNT,TIULINE,TIUREC,TIUPOST
|
---|
8 | N TIUTYPE,TIUINST K ^TMP("TIUPUTC",$J)
|
---|
9 | I '$D(TIUPRM0)!'$D(TIUPRM1) D SETPARM^TIULE
|
---|
10 | S TIUHSIG=$P(TIUPRM0,U,10),TIUBGN=$P(TIUPRM0,U,12)
|
---|
11 | I TIUHSIG']"" D MAIN^TIUPEVNT(DA,1,1) Q
|
---|
12 | I TIUBGN']"" D MAIN^TIUPEVNT(DA,1,7) Q
|
---|
13 | ; ---- Strip controls when kermit:
|
---|
14 | I $P(TIUPRM0,U,17)="k" D PREPROC(DA)
|
---|
15 | S TIUI=0 F S TIUI=$O(^TIU(8925.2,+DA,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
16 | . S TIULINE=$G(^TIU(8925.2,+DA,"TEXT",TIUI,0))
|
---|
17 | . I TIULINE[TIUHSIG D Q
|
---|
18 | . . ; ---- Hdr signal line. GETREC^TIUPUTC1 resets TIUI to $TXT line:
|
---|
19 | . . N TIUHDR,TIUFRST,TIUJ S TIUFRST=TIUI
|
---|
20 | . . ; ---- If after first hdr signal, finish previous docmt
|
---|
21 | . . ; before going on w/ current docmt:
|
---|
22 | . . I +$G(TIULCNT),$D(TIUREC("TROOT")),$D(@(TIUREC("TROOT")_"0)")) D FINISH
|
---|
23 | . . K TIUREC D GETREC^TIUPUTC1(TIULINE,.TIUREC,.TIUHDR)
|
---|
24 | . . I +$G(TIUREC("#"))'>0!($G(TIUREC("ROOT"))']"") Q
|
---|
25 | . . D STUFREC(.TIUHDR,.TIUREC)
|
---|
26 | . . S TIUREC("TROOT")=TIUREC("ROOT")_TIUREC("#")_","_TIUREC("TEXT")_","
|
---|
27 | . . S:'$D(@(TIUREC("TROOT")_"0)")) @(TIUREC("TROOT")_"0)")="^^^^^"
|
---|
28 | . . S TIULCNT=+$P(@(TIUREC("TROOT")_"0)"),U,4)
|
---|
29 | . . F TIUJ=TIUFRST:1:TIUI D
|
---|
30 | . . . ; ---- Delete header lines from buffer once filed;
|
---|
31 | . . . ; (TIUI was reset in GETREC^TIUPUTC1 to $TXT line):
|
---|
32 | . . . K ^TIU(8925.2,+DA,"TEXT",TIUJ,0)
|
---|
33 | . . I TIUREC("FILE")=8925,+$G(TIUREC("#")),+$G(TIUREC("BOILON")) D BOILRPLT(.TIUREC)
|
---|
34 | . I TIULINE'[TIUHSIG,(TIULINE'[TIUBGN),(+$G(TIUREC("FILE"))=8925),+$G(TIUREC("BOILON")) D
|
---|
35 | . . I TIULINE]"",$D(^TIU(8925.1,"B",$P(TIULINE,":"))) D I 1
|
---|
36 | . . . S TIULCNT=$$LOCATE(TIULINE,TIUREC("#"))
|
---|
37 | . . E S TIULCNT=+$G(TIULCNT)+.01
|
---|
38 | . . S ^TIU(8925,+TIUREC("#"),"TEMP",TIULCNT,0)=TIULINE
|
---|
39 | . . ; ---- Delete text line from buffer once xferred:
|
---|
40 | . . K ^TIU(8925.2,+DA,"TEXT",TIUI,0)
|
---|
41 | . I TIULINE'[TIUHSIG,(TIULINE'[TIUBGN),$D(TIUREC("TROOT")),$D(@(TIUREC("TROOT")_"0)")),(+$G(TIUREC("BOILON"))'>0) D
|
---|
42 | . . S TIULCNT=+$G(TIULCNT)+1,@(TIUREC("TROOT")_TIULCNT_",0)")=TIULINE
|
---|
43 | . . ; ---- Delete text line once xferred:
|
---|
44 | . . K ^TIU(8925.2,+DA,"TEXT",TIUI,0)
|
---|
45 | . . ; ---- Remove leading buffer garbage
|
---|
46 | . I TIULINE'[TIUHSIG,(TIULINE'[TIUBGN),'$D(TIUREC("TROOT")),($G(TIUREC("#"))'=-1) K ^TIU(8925.2,+DA,"TEXT",TIUI,0)
|
---|
47 | . I TIULINE[TIUBGN K ^TIU(8925.2,+DA,"TEXT",TIUI,0)
|
---|
48 | ; ---- Finish last docmt in buffer file:
|
---|
49 | I +$G(TIULCNT),$D(TIUREC("TROOT")),$D(@(TIUREC("TROOT")_"0)")) D FINISH
|
---|
50 | I '+$O(^TIU(8925.2,+DA,"TEXT",0)) D BUFPURGE(DA)
|
---|
51 | ; ---- Write upload results:
|
---|
52 | I '$D(ZTQUEUED),$D(^TMP("TIUPUTC",$J)) D
|
---|
53 | . W !!,"TOTALS FOR CURRENT BATCH:",!
|
---|
54 | . W !?14,"TOTAL Document(s) RECEIVED: ",$J((+$G(^TMP("TIUPUTC",$J,"SUCC"))+$G(^("MISS"))+$G(^("FAIL"))),5),!
|
---|
55 | . W !?18," Document(s) NOT FILED: ",$J(+$G(^TMP("TIUPUTC",$J,"FAIL")),5)
|
---|
56 | . W !?3,"Document(s) FILED with MISSING FIELDS: ",$J(+$G(^TMP("TIUPUTC",$J,"MISS")),5),!
|
---|
57 | K ^TMP("TIUPUTC",$J)
|
---|
58 | Q
|
---|
59 | LOCATE(LINE,REC) ; ---- Locate line in boilerplate text
|
---|
60 | N TIUJ,HIT,BTXT S (TIUJ,HIT)=0
|
---|
61 | F Q:+HIT S TIUJ=$O(^TIU(8925,+REC,"TEMP",TIUJ)) Q:+TIUJ'>0!HIT D
|
---|
62 | . S BTXT=$G(^TIU(8925,+REC,"TEMP",TIUJ,0))
|
---|
63 | . I BTXT[$P(LINE,":")_":" S HIT=1
|
---|
64 | Q +$G(TIUJ)
|
---|
65 | ;
|
---|
66 | STUFREC(HEADER,RECORD) ; ---- Stuffs record with known fixed fields;
|
---|
67 | ; Checks for missing fields.
|
---|
68 | N FDA,FDARR,IENS,FLAGS,TIUI,TIUMSG,TIUPC
|
---|
69 | S IENS=""""_+RECORD("#")_","""
|
---|
70 | S FDARR="FDA("_+RECORD("FILE")_","_IENS_")",FLAGS="KE"
|
---|
71 | ; ---- Set up FDA Array:
|
---|
72 | S TIUI=0
|
---|
73 | F S TIUI=$O(HEADER(TIUI)) Q:+TIUI'>0 D
|
---|
74 | . ; if field is Author/Dictator and title is OPERATION REPORT, ignore uploaded data *173
|
---|
75 | . I (TIUI=1202!(TIUI=1209)),TIUREC("TYPE")=$$CHKFILE^TIUADCL(8925.1,"OPERATION REPORT","I $P(^(0),U,4)=""DOC""") S @FDARR@(1303)="U" Q
|
---|
76 | . S:TIUI'=.001 @FDARR@(TIUI)=$$TRNSFRM^TIULX(.RECORD,TIUI,HEADER(TIUI))
|
---|
77 | I $D(FDA) D FILE^DIE(FLAGS,"FDA","TIUMSG")
|
---|
78 | I $D(TIUMSG) D
|
---|
79 | . ; ---- If FILE^DIC fails, log 8925.4 error w/ hdr info. Create new
|
---|
80 | . ; 8925.2 buffer entry with hdr, text, & 8925.4 log #.
|
---|
81 | . ; Kill most of old buffer. Send missing field alerts:
|
---|
82 | . D MAIN^TIUPEVNT(DA,2,"",$P($G(^TIU(8925.1,+RECORD("TYPE"),0)),U),.FDA,.TIUMSG)
|
---|
83 | . S ^TMP("TIUPUTC",$J,"MISS")=+$G(^TMP("TIUPUTC",$J,"MISS"))+1
|
---|
84 | I '$D(TIUMSG) D
|
---|
85 | . S ^TMP("TIUPUTC",$J,"SUCC")=+$G(^TMP("TIUPUTC",$J,"SUCC"))+1
|
---|
86 | Q
|
---|
87 | BOILRPLT(TIUREC) ; ---- Execute/Interleave Boilerplates w/uploaded text
|
---|
88 | N TIU
|
---|
89 | D GETTIU^TIULD(.TIU,TIUREC("#"))
|
---|
90 | D LOADDFLT^TIUEDI4(TIUREC("#"),TIUREC("TYPE")) ;100
|
---|
91 | Q
|
---|
92 | SETROOT(LINECNT,RECORD) ; ---- Sets root of WP field
|
---|
93 | S @(RECORD("TROOT")_"0)")="^^"_LINECNT_"^"_LINECNT_"^"_DT_"^^"
|
---|
94 | Q
|
---|
95 | BUFPURGE(DA) ; ---- Call ^DIK to purge buffer record when all's well
|
---|
96 | N DIK S DIK="^TIU(8925.2," D ^DIK
|
---|
97 | Q
|
---|
98 | PREPROC(DA) ; ---- Strip controls & white space from headers
|
---|
99 | N TIUI,TIUHLIN,X S (TIUI,TIUHLIN)=0
|
---|
100 | F S TIUI=$O(^TIU(8925.2,+DA,"TEXT",TIUI)) Q:+TIUI'>0 D
|
---|
101 | . S X=$G(^TIU(8925.2,+DA,"TEXT",TIUI,0))
|
---|
102 | . S:X[TIUHSIG TIUHLIN=1 S:X[TIUBGN TIUHLIN=0
|
---|
103 | . S:TIUHLIN ^TIU(8925.2,+DA,"TEXT",TIUI,0)=$$STRIP^TIUUPLD(X)
|
---|
104 | Q
|
---|
105 | DADTYPE(DA) ; ---- Get type of original document for addenda
|
---|
106 | N TIUDAD,Y
|
---|
107 | S TIUDAD=$P($G(^TIU(8925,DA,0)),U,6)
|
---|
108 | S Y=+$G(^TIU(8925,+TIUDAD,0))
|
---|
109 | Q Y
|
---|
110 | ;
|
---|
111 | FINISH ; ---- Finish document: feedback, postfile code, merge boil,
|
---|
112 | ; log file event
|
---|
113 | N ISADDNDM S ISADDNDM=0
|
---|
114 | D SETROOT(TIULCNT,.TIUREC)
|
---|
115 | S ISADDNDM=+$$ISADDNDM^TIULC1(TIUREC("#"))
|
---|
116 | S TIUTYPE=$S(ISADDNDM:+$$DADTYPE(TIUREC("#")),1:TIUREC("TYPE"))
|
---|
117 | I '$D(ZTQUEUED) W !,">>> ",$S(ISADDNDM:"Addendum",1:"Document")," Filed Successfully.",! ;TIU*1*81
|
---|
118 | ; ---- TIU*1*81 Tell error handler that retrying filer was successful:
|
---|
119 | S TIUDONE=1
|
---|
120 | S TIUTYPE=$S(+$$ISADDNDM^TIULC1(TIUREC("#")):+$$DADTYPE(TIUREC("#")),1:TIUREC("TYPE"))
|
---|
121 | S TIUPOST=$$POSTFILE^TIULC1(TIUTYPE)
|
---|
122 | I TIUPOST]"" X TIUPOST K ^TMP("TIUPRFUP",$J)
|
---|
123 | I TIUREC("FILE")=8925,+$G(TIUREC("BOILON")) D
|
---|
124 | . N TIU D GETTIU^TIULD(.TIU,TIUREC("#"))
|
---|
125 | . D MERGTEXT^TIUEDI1(TIUREC("#"),.TIU)
|
---|
126 | . K ^TIU(8925,+TIUREC("#"),"TEMP")
|
---|
127 | D MAIN^TIUPEVNT(DA,0,"",$P($G(^TIU(8925.1,+TIUREC("TYPE"),0)),U))
|
---|
128 | Q
|
---|
129 | ;
|
---|