1 | VEPERPTA ;DAOU/KFK - HL7 ERROR REPORT PRINT ; 6/2/05 6:30pm
|
---|
2 | ;;1.0;;;;Build 1
|
---|
3 | ; This is the print routine for the Patient Lookup Error Report.
|
---|
4 | ; It is called from VEPERIER. The data is printed from the scratch
|
---|
5 | ; global (^TMP($J...)).
|
---|
6 | ;
|
---|
7 | ; Must call at EN6
|
---|
8 | Q
|
---|
9 | ;
|
---|
10 | EN6(HL7ERTN) ;Entry point
|
---|
11 | ;Initialize variables
|
---|
12 | N CRT,DIR,DTOUT,DUOUT,HL7PGC,LIN,MAXCNT,X,Y
|
---|
13 | ;
|
---|
14 | ;Determine IO parameters
|
---|
15 | I IOST["C-" S MAXCNT=IOSL-3,CRT=1,HL7PGC=0
|
---|
16 | E S MAXCNT=IOSL-6,CRT=0
|
---|
17 | ;
|
---|
18 | D PRINT(HL7ERTN,MAXCNT,CRT)
|
---|
19 | I $G(ZSTOP) G EXIT6
|
---|
20 | I CRT,HL7PGC>0,'$D(ZTQUEUED) D
|
---|
21 | . I MAXCNT<51 F LIN=1:1:(MAXCNT-$Y) W !
|
---|
22 | . S DIR(0)="E" D ^DIR K DIR
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | PRINT(RTN,MAX,CRT) ; Print data
|
---|
26 | ;
|
---|
27 | N EORMSG,NONEMSG,SORT1,SORT2,SORT3
|
---|
28 | S EORMSG="*** END OF REPORT ***"
|
---|
29 | S NONEMSG="* * * N O D A T A F O U N D * * *"
|
---|
30 | ;
|
---|
31 | I '$D(^TMP($J,RTN)) D HEADER W !,?(80-$L(NONEMSG)\2),NONEMSG,!!
|
---|
32 | I $Y+1>MAX!('HL7PGC) D HEADER
|
---|
33 | S SORT1="" F S SORT1=$O(^TMP($J,RTN,SORT1)) Q:SORT1="" D
|
---|
34 | . S SORT2="" F S SORT2=$O(^TMP($J,RTN,SORT1,SORT2)) Q:SORT2="" D
|
---|
35 | . . S SORT3="" F S SORT3=$O(^TMP($J,RTN,SORT1,SORT2,SORT3)) Q:SORT3="" D
|
---|
36 | . . . I $Y+1>MAX!('HL7PGC) D HEADER
|
---|
37 | . . . D LINE
|
---|
38 | I $G(ZTSTOP) G PRINTX
|
---|
39 | W !!,?(80-$L(EORMSG)\2),EORMSG
|
---|
40 | PRINTX ;
|
---|
41 | Q
|
---|
42 | ;
|
---|
43 | HEADER ; Print hdr info
|
---|
44 | N DIR,DTOUT,DUOUT,HDR,LIN,OFFSET,X,Y
|
---|
45 | I CRT,HL7PGC>0,'$D(ZTQUEUED) D
|
---|
46 | . I MAX<51 F LIN=1:1:(MAX-$Y) W !
|
---|
47 | . S DIR(0)="E" D ^DIR K DIR
|
---|
48 | . I $D(DTOUT)!($D(DUOUT)) Q
|
---|
49 | I $D(ZTQUEUED),$$S^%ZTLOAD() S ZTSTOP=1 G HEADERX
|
---|
50 | S HL7PGC=HL7PGC+1
|
---|
51 | W @IOF,!,?1,"HL7 Error Report"
|
---|
52 | S HDR=$$FMTE^XLFDT($$NOW^XLFDT,1)_" Page: "_HL7PGC,OFFSET=79-$L(HDR)
|
---|
53 | W ?OFFSET,HDR
|
---|
54 | S SRT=HL7ESPC("SORT"),BDT=HL7ESPC("BEGDT"),EDT=HL7ESPC("ENDDT")
|
---|
55 | W !,?1,"Sorted by: "_$S(SRT=1:"Patient ID",SRT=2:"Patient",1:"Error Type")
|
---|
56 | W ?OFFSET
|
---|
57 | S HDR=$$FMTE^XLFDT(BDT,"5Z")_" - "_$$FMTE^XLFDT(EDT,"5Z")
|
---|
58 | S OFFSET=80-$L(HDR)\2
|
---|
59 | W !,?OFFSET,HDR
|
---|
60 | W !
|
---|
61 | HEADERX ;
|
---|
62 | Q
|
---|
63 | ;
|
---|
64 | LINE ; Print data
|
---|
65 | N ERDT,HL7DT,HL7SRT
|
---|
66 | ;
|
---|
67 | S HL7SRT=HL7ESPC("SORT")
|
---|
68 | I HL7SRT=1!(HL7SRT=3) D
|
---|
69 | . W !!,"Patient ID: "_SORT1,?40,"Patient Name: "_SORT2
|
---|
70 | I HL7SRT=2 D
|
---|
71 | . W !!,"Patient Name: "_SORT1,?40,"Patient ID: "_SORT2
|
---|
72 | S ERDT=$$FMTE^XLFDT($P(^TMP($J,RTN,SORT1,SORT2,SORT3),U),"5Z")
|
---|
73 | S HL7DT=$$FMTE^XLFDT($P(^TMP($J,RTN,SORT1,SORT2,SORT3),U,3),"5Z")
|
---|
74 | W !,"Error Date/Time: "_ERDT,?40,"HL7 Message Date/Time: "_HL7DT
|
---|
75 | W !,$P($P(^TMP($J,RTN,SORT1,SORT2,SORT3),U,2)," ",1,11)
|
---|
76 | W !,$P($P(^TMP($J,RTN,SORT1,SORT2,SORT3),U,2)," ",12,99)
|
---|
77 | Q
|
---|
78 | EXIT6 ;
|
---|
79 | Q
|
---|