[613] | 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 | ;
|
---|