1 | IVMLERR1 ;ALB/RMO - IVM Transmission Error Processing - Build List area; 15-SEP-1997
|
---|
2 | ;;2.0;INCOME VERIFICATION MATCH;**9**; 21-OCT-94
|
---|
3 | ;
|
---|
4 | EN(IVMARY,IVMBEG,IVMEND,IVMEPSTA,IVMSRTBY,IVMCNT) ;Entry point to build list area for IVM transmission errors
|
---|
5 | ;The following variables are 'system wide variables' in the
|
---|
6 | ;IVM Transmission Error Processing List Manager application:
|
---|
7 | ; Input -- IVMARY Global array subscript
|
---|
8 | ; IVMBEG Begin date
|
---|
9 | ; IVMEND End date
|
---|
10 | ; IVMEPSTA Error processing statuses
|
---|
11 | ; 1 - New
|
---|
12 | ; 2 - Checked
|
---|
13 | ; 1^2 - Both
|
---|
14 | ; IVMSRTBY Sort by criteria
|
---|
15 | ; P - patient name
|
---|
16 | ; D - date/time ack received
|
---|
17 | ; Output -- IVMCNT Number of lines in the list
|
---|
18 | D WAIT^DICD
|
---|
19 | ;
|
---|
20 | ;Get IVM transmission log errors
|
---|
21 | D GET(IVMARY,IVMBEG,IVMEND,IVMEPSTA,IVMSRTBY)
|
---|
22 | ;
|
---|
23 | ;Build list area for for IVM transmission log errors
|
---|
24 | D BLD(IVMSRTBY,.IVMCNT)
|
---|
25 | ;
|
---|
26 | ;Print message if no IVM transmission log errors meet selection criteria
|
---|
27 | I 'IVMCNT D
|
---|
28 | . D SET(IVMARY,1,"",1,60,0,,,.IVMCNT)
|
---|
29 | . D SET(IVMARY,2,"No 'Transmission Errors' meet the selection criteria.",4,60,0,,,.IVMCNT)
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | GET(IVMARY,IVMBEG,IVMEND,IVMEPSTA,IVMSRTBY) ;Get IVM transmission log errors
|
---|
33 | ; Input -- IVMARY Global array subscript
|
---|
34 | ; IVMBEG Begin date
|
---|
35 | ; IVMEND End date
|
---|
36 | ; IVMEPSTA Error processing statuses
|
---|
37 | ; IVMSRTBY Sort by criteria
|
---|
38 | ; Output -- IVM Transmission log error list sorted by patient name
|
---|
39 | ; ^TMP("IVMERRSRT",$J,<sort by>,<patient name>,<trans log IEN>)
|
---|
40 | ; or date/time ack received
|
---|
41 | ; ^TMP("IVMERRSRT",$J,<sort by>,<date/time ack received>,<trans log IEN>)
|
---|
42 | N IVMDFN,IVMDTR,IVMTLIEN,PCE,STA
|
---|
43 | ;
|
---|
44 | ;Loop through IVM transmission log for selected date range
|
---|
45 | F IVMDTR=IVMBEG:0 S IVMDTR=$O(^IVM(301.6,"AEPS",IVMDTR)) Q:'IVMDTR!($P(IVMDTR,".")>IVMEND) D
|
---|
46 | . ;Loop through selected error processing statuses
|
---|
47 | . F PCE=1:1 S STA=$P(IVMEPSTA,U,PCE) Q:STA="" D
|
---|
48 | . . ;Loop through patients
|
---|
49 | . . S IVMDFN=0
|
---|
50 | . . F S IVMDFN=$O(^IVM(301.6,"AEPS",IVMDTR,STA,IVMDFN)) Q:'IVMDFN D
|
---|
51 | . . . ;Loop though internal entry numbers
|
---|
52 | . . . S IVMTLIEN=0
|
---|
53 | . . . F S IVMTLIEN=$O(^IVM(301.6,"AEPS",IVMDTR,STA,IVMDFN,IVMTLIEN)) Q:'IVMTLIEN D SORT(IVMSRTBY,IVMDTR,IVMDFN,IVMTLIEN)
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | SORT(IVMSRTBY,IVMDTR,IVMDFN,IVMTLIEN) ;Set array based on sort criteria for IVM transmission log error list display
|
---|
57 | ; Input -- IVMSRTBY Sort by criteria
|
---|
58 | ; IVMDTR IVM transmission log date/time ack received
|
---|
59 | ; IVMDFN IVM patient IEN
|
---|
60 | ; IVMTLIEN IVM transmission log IEN
|
---|
61 | ; Output -- None
|
---|
62 | N IVMTLOG
|
---|
63 | I IVMSRTBY="P" D ;patient name
|
---|
64 | . I $$GET^IVMTLOG(IVMTLIEN,.IVMTLOG) D
|
---|
65 | . . S ^TMP("IVMERRSRT",$J,IVMSRTBY,$S($P($G(^DPT(+IVMTLOG("DFN"),0)),U)'="":$P(^(0),U),1:"UNKNOWN"),IVMTLIEN)=""
|
---|
66 | ELSE D ;default date/time ack received
|
---|
67 | . S ^TMP("IVMERRSRT",$J,IVMSRTBY,IVMDTR,IVMTLIEN)=""
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | BLD(IVMSRTBY,IVMCNT) ;Build list area for for IVM transmission log errors
|
---|
71 | ; Input -- IVMSRTBY Sort by criteria
|
---|
72 | ; P - patient name
|
---|
73 | ; D - date/time ack received
|
---|
74 | ; Output -- IVMCNT Number of lines in the list
|
---|
75 | N DFN,IVMCOL,IVMSUB,IVMTEXT,IVMTLIEN,IVMTLOG,IVMWID,X,VA
|
---|
76 | ;
|
---|
77 | ;Initialize variables
|
---|
78 | S (IVMLINE,IVMNUM)=0
|
---|
79 | S X=VALMDDF("NUMBER"),IVMCOL("NUM")=$P(X,U,2),IVMWID("NUM")=$P(X,U,3)
|
---|
80 | S X=VALMDDF("RETRANSMIT"),IVMCOL("RET")=$P(X,U,2),IVMWID("RET")=$P(X,U,3)
|
---|
81 | S X=VALMDDF("PATIENT"),IVMCOL("PAT")=$P(X,U,2),IVMWID("PAT")=$P(X,U,3)
|
---|
82 | S X=VALMDDF("PTID"),IVMCOL("PTID")=$P(X,U,2),IVMWID("PTID")=$P(X,U,3)
|
---|
83 | S X=VALMDDF("DATE/TIME"),IVMCOL("DTR")=$P(X,U,2),IVMWID("DTR")=$P(X,U,3)
|
---|
84 | S X=VALMDDF("STATUS"),IVMCOL("STA")=$P(X,U,2),IVMWID("STA")=$P(X,U,3)
|
---|
85 | ;
|
---|
86 | ;Loop through by patient name or date/time ack received
|
---|
87 | S IVMSUB=$S(IVMSRTBY="P":"",1:0)
|
---|
88 | F S IVMSUB=$O(^TMP("IVMERRSRT",$J,IVMSRTBY,IVMSUB)) Q:IVMSUB="" D
|
---|
89 | . ;Loop through IVM transmission log IEN(s)
|
---|
90 | . S IVMTLIEN=0
|
---|
91 | . F S IVMTLIEN=$O(^TMP("IVMERRSRT",$J,IVMSRTBY,IVMSUB,IVMTLIEN)) Q:'IVMTLIEN D
|
---|
92 | . . W:'(IVMLINE#50) "."
|
---|
93 | . . ;Get information for IVM transmission log entry
|
---|
94 | . . I $$GET^IVMTLOG(IVMTLIEN,.IVMTLOG) D
|
---|
95 | . . . ;Increment selection number
|
---|
96 | . . . S IVMNUM=IVMNUM+1
|
---|
97 | . . . ;Increment line counter
|
---|
98 | . . . S IVMLINE=IVMLINE+1
|
---|
99 | . . . ;Set selection number in display array
|
---|
100 | . . . D SET(IVMARY,IVMLINE,IVMNUM,IVMCOL("NUM"),IVMWID("NUM"),IVMNUM,IVMTLIEN,IVMTLOG("PAT"),.IVMCNT)
|
---|
101 | . . . ;Set retransmit flag in display array
|
---|
102 | . . . S IVMTEXT=$S('$G(IVMTLOG("PAT")):" ",'$$STATUS^IVMPLOG(IVMTLOG("PAT")):"*",1:" ")
|
---|
103 | . . . D SET(IVMARY,IVMLINE,IVMTEXT,IVMCOL("RET"),IVMWID("RET"),IVMNUM,,,.IVMCNT)
|
---|
104 | . . . ;Set patient name in display array
|
---|
105 | . . . S IVMTEXT=$$LOWER^VALM1($S($G(IVMTLOG("PAT")):$$EXT^IVMTLOG("PAT",IVMTLOG("PAT")),1:"UNKNOWN"))
|
---|
106 | . . . D SET(IVMARY,IVMLINE,IVMTEXT,IVMCOL("PAT"),IVMWID("PAT"),IVMNUM,,,.IVMCNT)
|
---|
107 | . . . ;Set patient id in display array
|
---|
108 | . . . S DFN=+IVMTLOG("DFN") D PID^VADPT
|
---|
109 | . . . D SET(IVMARY,IVMLINE,VA("BID"),IVMCOL("PTID"),IVMWID("PTID"),IVMNUM,,,.IVMCNT)
|
---|
110 | . . . ;Set date/time ack received in display array
|
---|
111 | . . . S IVMTEXT=$$LOWER^VALM1($S($G(IVMTLOG("DT/TM ACK")):$$EXT^IVMTLOG("DT/TM ACK",IVMTLOG("DT/TM ACK")),1:"UNKNOWN"))
|
---|
112 | . . . D SET(IVMARY,IVMLINE,IVMTEXT,IVMCOL("DTR"),IVMWID("DTR"),IVMNUM,,,.IVMCNT)
|
---|
113 | . . . ;Set error processing status in display array
|
---|
114 | . . . S IVMTEXT=$$LOWER^VALM1($S($G(IVMTLOG("ERROR STATUS")):$$EXT^IVMTLOG("ERROR STATUS",IVMTLOG("ERROR STATUS")),1:"UNKNOWN"))
|
---|
115 | . . . D SET(IVMARY,IVMLINE,IVMTEXT,IVMCOL("STA"),IVMWID("STA"),IVMNUM,,,.IVMCNT)
|
---|
116 | . . . ;Increment line counter
|
---|
117 | . . . S IVMLINE=IVMLINE+1
|
---|
118 | . . . ;Set error message in display array
|
---|
119 | . . . S IVMTEXT="Error: "_$S($G(IVMTLOG("ERROR"))'="":$$EXT^IVMTLOG("ERROR",IVMTLOG("ERROR")),1:"UNKNOWN")
|
---|
120 | . . . K X S $P(X," ",160)=""
|
---|
121 | . . . S IVMTEXT=$E(IVMTEXT_X,1,160)
|
---|
122 | . . . D SET(IVMARY,IVMLINE,IVMTEXT,3,$L(IVMTEXT),IVMNUM,,,.IVMCNT)
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | SET(IVMARY,IVMLINE,IVMTEXT,IVMCOL,IVMWID,IVMNUM,IVMTLIEN,IVMDFN,IVMCNT) ;Set display array
|
---|
126 | ; Input -- IVMARY Global array subscript
|
---|
127 | ; IVMLINE Line number
|
---|
128 | ; IVMTEXT Text
|
---|
129 | ; IVMCOL Column to start at
|
---|
130 | ; IVMWID Column or text width
|
---|
131 | ; IVMNUM Selection number
|
---|
132 | ; IVMTLIEN IVM transmission log IEN
|
---|
133 | ; IVMDFN IVM patient IEN
|
---|
134 | ; Output -- IVMCNT Number of lines in the list
|
---|
135 | N X
|
---|
136 | S:IVMLINE>IVMCNT IVMCNT=IVMLINE
|
---|
137 | S X=$S($D(^TMP(IVMARY,$J,IVMLINE,0)):^(0),1:"")
|
---|
138 | S ^TMP(IVMARY,$J,IVMLINE,0)=$$SETSTR^VALM1(IVMTEXT,X,IVMCOL,IVMWID)
|
---|
139 | S ^TMP(IVMARY,$J,"IDX",IVMLINE,IVMNUM)=""
|
---|
140 | ;
|
---|
141 | ;Set special index used in retransmitting patient
|
---|
142 | I $G(IVMTLIEN),$G(IVMDFN) D
|
---|
143 | . S ^TMP(IVMARY_"IDX",$J,IVMNUM)=IVMLINE_U_IVMTLIEN
|
---|
144 | . S ^TMP(IVMARY_"IDX",$J,"PT",IVMDFN,IVMLINE)=IVMTLIEN
|
---|
145 | Q
|
---|