| 1 | LR7OSAP3 ;DALOI/WTY - Silent AP Rpt from TIU;3/27/02 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**259**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Reference  to EXTRACT^TIULQ supported by IA #2693 | 
|---|
| 5 | ; | 
|---|
| 6 | MAIN(LRPTR) ;Main subrouting | 
|---|
| 7 | K ^TMP("LRTIU",$J),^TMP("LRTIUTXT",$J) | 
|---|
| 8 | D EXTRACT | 
|---|
| 9 | D DISSECT | 
|---|
| 10 | Q:LRQUIT | 
|---|
| 11 | ;Calculate LR and TIU checksums,if they don't match, set flag | 
|---|
| 12 | ;  to scramble signature on the report. | 
|---|
| 13 | D CHKSUM | 
|---|
| 14 | I LRCKSUM'=0,LRCKSUM'=TIUCKSUM S LRENCRYP=1 | 
|---|
| 15 | ; | 
|---|
| 16 | D GLOSET | 
|---|
| 17 | K ^TMP("LRTIU",$J),^TMP("LRTIUTXT",$J) | 
|---|
| 18 | Q | 
|---|
| 19 | EXTRACT ;Extract the report from TIU | 
|---|
| 20 | N LRQUIT,LRFLG,LRTXT,LROR,LRCNT,LRCNTT,LRHFLG | 
|---|
| 21 | Q:'+$G(LRPTR) | 
|---|
| 22 | D EXTRACT^TIULQ(LRPTR,"^TMP(""LRTIU"",$J)",,,,1,,1) | 
|---|
| 23 | Q:'+$P($G(^TMP("LRTIU",$J,LRPTR,"TEXT",0)),"^",3) | 
|---|
| 24 | M ^TMP("LRTIUTXT",$J)=^TMP("LRTIU",$J,LRPTR,"TEXT") | 
|---|
| 25 | DISSECT ;Dissect the report into header,body, and footer | 
|---|
| 26 | S (LROR,LRCNT,LRCNTT,LRHFLG,LRQUIT)=0,LRFLG="H" | 
|---|
| 27 | F  S LROR=$O(^TMP("LRTIUTXT",$J,LROR)) Q:LROR'>0!(LRQUIT)  D | 
|---|
| 28 | .S LRTXT=$G(^TMP("LRTIUTXT",$J,LROR,0)) | 
|---|
| 29 | .I 'LRHFLG,LRTXT'="$APHDR" D  Q | 
|---|
| 30 | ..S LRQUIT=1 | 
|---|
| 31 | .I LRTXT="$APHDR" D  Q | 
|---|
| 32 | ..S LRHFLG=1 | 
|---|
| 33 | ..K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 34 | .I LRFLG="H" D  Q:LRFLG="T" | 
|---|
| 35 | ..I LRTXT="$TEXT" D  Q | 
|---|
| 36 | ...S ^TMP("LRTIUTXT",$J,"HDR")=LRCNT,LRCNT=0 | 
|---|
| 37 | ...K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 38 | ...S LRFLG="T",LRCNT=0 | 
|---|
| 39 | ..Q:LRFLG="T" | 
|---|
| 40 | ..S LRCNT=LRCNT+1,LRCNTT=LRCNTT+1 | 
|---|
| 41 | ..S ^TMP("LRTIUTXT",$J,"HDR",LRCNT)=LRTXT | 
|---|
| 42 | ..K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 43 | .I LRFLG="T" D  Q:LRFLG="F" | 
|---|
| 44 | ..I LRTXT="$FTR" D  Q:LRFLG="F" | 
|---|
| 45 | ...S ^TMP("LRTIUTXT",$J,"TEXT")=LRCNT,LRCNT=0 | 
|---|
| 46 | ...K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 47 | ...S LRFLG="F" | 
|---|
| 48 | ..Q:LRFLG="F" | 
|---|
| 49 | ..S LRCNT=LRCNT+1,LRCNTT=LRCNTT+1 | 
|---|
| 50 | ..S ^TMP("LRTIUTXT",$J,"TEXT",LRCNT)=LRTXT | 
|---|
| 51 | ..K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 52 | .I LRFLG="F" D | 
|---|
| 53 | ..S LRCNT=LRCNT+1,LRCNTT=LRCNTT+1 | 
|---|
| 54 | ..S ^TMP("LRTIUTXT",$J,"FTR",LRCNT)=LRTXT | 
|---|
| 55 | ..K ^TMP("LRTIUTXT",$J,LROR) | 
|---|
| 56 | S ^TMP("LRTIUTXT",$J,"FTR")=LRCNT | 
|---|
| 57 | S ^TMP("LRTIUTXT",$J,0)=LRCNTT | 
|---|
| 58 | Q | 
|---|
| 59 | GLOSET ; | 
|---|
| 60 | S LROR=0 | 
|---|
| 61 | Q:'$D(^TMP("LRTIUTXT",$J,"HDR")) | 
|---|
| 62 | S LROR=0 F  S LROR=$O(^TMP("LRTIUTXT",$J,"HDR",LROR)) Q:LROR'>0  D | 
|---|
| 63 | .S LRTXT=$G(^TMP("LRTIUTXT",$J,"HDR",LROR)) | 
|---|
| 64 | .D LN S ^TMP("LRC",$J,GCNT,0)=LRTXT | 
|---|
| 65 | Q:'$D(^TMP("LRTIUTXT",$J,"TEXT")) | 
|---|
| 66 | S LROR=0 | 
|---|
| 67 | F  S LROR=$O(^TMP("LRTIUTXT",$J,"TEXT",LROR)) Q:LROR'>0!(LRQUIT)  D | 
|---|
| 68 | .S LRTXT=$G(^TMP("LRTIUTXT",$J,"TEXT",LROR)) | 
|---|
| 69 | .;If signature line, and marked for encryption, scramble signature | 
|---|
| 70 | .I LRTXT["/es/",+$G(LRENCRYP) S LRTXT=$$ENCRYP^XUSRB1(LRTXT) | 
|---|
| 71 | .D LN S ^TMP("LRC",$J,GCNT,0)=LRTXT | 
|---|
| 72 | Q:'$D(^TMP("LRTIUTXT",$J,"FTR")) | 
|---|
| 73 | S LROR=0 | 
|---|
| 74 | F  S LROR=$O(^TMP("LRTIUTXT",$J,"FTR",LROR)) Q:LROR'>0  D | 
|---|
| 75 | .S LRTXT=$G(^TMP("LRTIUTXT",$J,"FTR",LROR)) | 
|---|
| 76 | .D LN S ^TMP("LRC",$J,GCNT,0)=LRTXT | 
|---|
| 77 | Q | 
|---|
| 78 | LN ;Increment the counter | 
|---|
| 79 | S GCNT=GCNT+1,CCNT=1 | 
|---|
| 80 | Q | 
|---|
| 81 | CHKSUM ;Compare LR and TIU checksums | 
|---|
| 82 | ;Get original checksum value from file 63 | 
|---|
| 83 | N LRTREC,LRROOT,LRFILE,LRIENS,LRFLD,LRREL | 
|---|
| 84 | S (LRENCRYP,LRTREC)=0 | 
|---|
| 85 | I LRSS="AU" D | 
|---|
| 86 | .S LRTREC=$O(^LR(LRDFN,101,"C",LRPTR,LRTREC)) | 
|---|
| 87 | .S LRIENS=LRDFN_"," | 
|---|
| 88 | .S LRFILE=63.101 | 
|---|
| 89 | I LRSS'="AU" D | 
|---|
| 90 | .S LRTREC=$O(^LR(LRDFN,LRSS,LRI,.05,"C",LRPTR,LRTREC)) | 
|---|
| 91 | .S LRIENS=LRI_","_LRDFN_"," | 
|---|
| 92 | .S LRFILE=$S(LRSS="SP":63.19,LRSS="CY":63.47,LRSS="EM":63.49,1:"") | 
|---|
| 93 | I LRFILE=""!(LRTREC=0) S LRCKSUM=0 Q | 
|---|
| 94 | ;Retrieve LR checksum | 
|---|
| 95 | S LRIENS=LRTREC_","_LRIENS | 
|---|
| 96 | S LRCKSUM=$$GET1^DIQ(LRFILE,LRIENS,2) | 
|---|
| 97 | I LRCKSUM="" S LRCKSUM=0 | 
|---|
| 98 | ;Calculate TIU checksum | 
|---|
| 99 | S TIUVAL="^TIU(8925,"_LRPTR_",""TEXT"")" | 
|---|
| 100 | S TIUCKSUM=$$CHKSUM^XUSESIG1(TIUVAL) | 
|---|
| 101 | Q | 
|---|