1 | SCMCHLR3 ;ALB/KCL - PCMM HL7 Reject Processing - Build List Area con't; 10-JAN-2000
|
---|
2 | ;;5.3;Scheduling;**210,272**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | BLDLIST(SCSORTBY,SCEPS,SCCNT) ; Description: Build list area for for PCMM Transmission errors.
|
---|
5 | ;
|
---|
6 | ; Input:
|
---|
7 | ; SCSORTBY - Sort by criteria
|
---|
8 | ; N -> Patient Name
|
---|
9 | ; D -> Date/Time Ack Received
|
---|
10 | ; P -> Provider
|
---|
11 | ; SCEPS - Error processing status
|
---|
12 | ;
|
---|
13 | ; Output:
|
---|
14 | ; SCCNT - Number of lines in the list
|
---|
15 | ;
|
---|
16 | N DFN,SCSUB,SCTEXT,SCTLIEN,SCERIEN,SCTLOG,SCHL
|
---|
17 | N SCPROV,SCTYPE,SCLINE,SCNUM,SCCOL,SCWID
|
---|
18 | ;
|
---|
19 | ;Init line counter and selection number
|
---|
20 | S (SCLINE,SCNUM)=0
|
---|
21 | ;
|
---|
22 | ;Quit if unable to determine col/width for caption flds in List Template
|
---|
23 | Q:'$$CAPFLD(.SCCOL,.SCWID)
|
---|
24 | ;
|
---|
25 | ;Loop thru sort array by pat name, OR date ack rec'd, OR provider
|
---|
26 | S SCSUB=$S(SCSORTBY="N":"",SCSORTBY="P":"",1:0)
|
---|
27 | F S SCSUB=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB)) Q:SCSUB="" D
|
---|
28 | .;loop through PCMM HL7 Transmission Log ien(s)
|
---|
29 | .S SCTLIEN=0
|
---|
30 | .F S SCTLIEN=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB,SCTLIEN)) Q:'SCTLIEN D
|
---|
31 | ..;loop through Error Code subfile ien(s)
|
---|
32 | ..S SCERIEN=0
|
---|
33 | ..F S SCERIEN=$O(^TMP("SCERRSRT",$J,SCSORTBY,SCSUB,SCTLIEN,SCERIEN)) Q:'SCERIEN D
|
---|
34 | ...;
|
---|
35 | ...;write dot to screen as list is being built (every 50 lines)
|
---|
36 | ...W:'(SCLINE#50) "."
|
---|
37 | ...;
|
---|
38 | ...;get data for PCMM HL7 Trans Log entry
|
---|
39 | ...I $$GETLOG^SCMCHLA(SCTLIEN,SCERIEN,.SCTLOG) D
|
---|
40 | ....;
|
---|
41 | ....;increment selection number
|
---|
42 | ....S SCNUM=SCNUM+1
|
---|
43 | ....;
|
---|
44 | ....;increment line counter
|
---|
45 | ....S SCLINE=SCLINE+1
|
---|
46 | ....;
|
---|
47 | ....;set selection number in display array
|
---|
48 | ....D SET(SCARY,SCLINE,SCNUM,SCCOL("NUM"),SCWID("NUM"),SCNUM,SCTLIEN,SCTLOG("DFN"),SCERIEN,.SCCNT)
|
---|
49 | ....;
|
---|
50 | ....;set retransmit flag in display array
|
---|
51 | ....S SCTEXT=$S($G(SCTLOG("STATUS"))="M":"*",1:" ")
|
---|
52 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("RET"),SCWID("RET"),SCNUM,,,,.SCCNT)
|
---|
53 | ....;set patient name in display array
|
---|
54 | ....S SCTEXT=$$LOWER^VALM1($S($G(SCTLOG("WORK")):"WORKLOAD",$G(SCTLOG("DFN")):$P($G(^DPT(SCTLOG("DFN"),0)),"^",1),1:"UNKNOWN"))
|
---|
55 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("PAT"),SCWID("PAT"),SCNUM,,,,.SCCNT)
|
---|
56 | ....;
|
---|
57 | ....;set patient id in display array
|
---|
58 | ....S DFN=+SCTLOG("DFN") D PID^VADPT
|
---|
59 | ....D SET(SCARY,SCLINE,VA("BID"),SCCOL("PATID"),SCWID("PATID"),SCNUM,,,,.SCCNT)
|
---|
60 | ....;
|
---|
61 | ....;set date ack received in display array
|
---|
62 | ....S SCTEXT=$$LOWER^VALM1($S($G(SCTLOG("ACK DT/TM")):$E($$FDATE^VALM1(SCTLOG("ACK DT/TM")),1,8),1:"UNKNOWN"))
|
---|
63 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("DTR"),SCWID("DTR"),SCNUM,,,,.SCCNT)
|
---|
64 | ....;
|
---|
65 | ....;set provider in display array
|
---|
66 | ....S SCPROV=""
|
---|
67 | ....K SCHL
|
---|
68 | ....;I workload get provider
|
---|
69 | ....I $G(SCTLOG("WORK")) S SCPROV=$$PROV^SCMCHLP(SCTLOG("WORK"))
|
---|
70 | ....;get provider if ZPC segment error
|
---|
71 | ....I $G(SCTLOG("ERR","SEG"))="ZPC" D
|
---|
72 | .....I $$GETHL7ID^SCMCHLA2($G(SCTLOG("ERR","ZPCID")),.SCHL)
|
---|
73 | .....S SCPTR=$P($G(SCHL("HL7ID")),"-",2)
|
---|
74 | .....S SCPROV=$P($G(^SCTM(404.52,+$G(SCPTR),0)),"^",3)
|
---|
75 | ....S SCTEXT=$$LOWER^VALM1($S($G(SCPROV)'="":$$EXTERNAL^DILFD(404.52,.03,,SCPROV),1:"N/A"))
|
---|
76 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("PROV"),SCWID("PROV"),SCNUM,,,,.SCCNT)
|
---|
77 | ....;
|
---|
78 | ....;set provider type in display array
|
---|
79 | ....S SCTYPE=$P($G(SCHL("HL7ID")),"-",4)
|
---|
80 | ....I $G(SCTLOG("WORK")) S SCTYPE="PC"
|
---|
81 | ....S SCTEXT=$S(SCTYPE'="":SCTYPE,1:"N/A")
|
---|
82 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("TYPE"),SCWID("TYPE"),SCNUM,,,,.SCCNT)
|
---|
83 | ....;
|
---|
84 | ....;set error processing status in display array
|
---|
85 | ....S SCTEXT=$$LOWER^VALM1($S($G(SCTLOG("ERR","EPS")):$$EXTERNAL^DILFD(404.47142,.06,,SCTLOG("ERR","EPS")),1:"UNKNOWN"))
|
---|
86 | ....D SET(SCARY,SCLINE,SCTEXT,SCCOL("STA"),SCWID("STA"),SCNUM,,,,.SCCNT)
|
---|
87 | ....;
|
---|
88 | ....;increment line counter
|
---|
89 | ....S SCLINE=SCLINE+1
|
---|
90 | ....;
|
---|
91 | ....;set error code/desc in display array
|
---|
92 | ....I $$GETEC^SCMCHLA2($G(SCTLOG("ERR","CODE")),.SCERR)
|
---|
93 | ....S SCTEXT="Error: "_$S($G(SCERR("CODE"))'="":SCERR("CODE")_" - "_$G(SCERR("SHORT")),1:$$LOWER^VALM1("UNKNOWN"))
|
---|
94 | ....K X S $P(X," ",160)=""
|
---|
95 | ....S SCTEXT=$E(SCTEXT_X,1,150)
|
---|
96 | ....D SET(SCARY,SCLINE,SCTEXT,10,$L(SCTEXT),SCNUM,,,,.SCCNT)
|
---|
97 | ;
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | ;
|
---|
101 | SET(SCARY,SCLINE,SCTEXT,SCCOL,SCWID,SCNUM,SCTLIEN,SCDFN,SCERIEN,SCCNT) ;
|
---|
102 | ; Description: Set display array.
|
---|
103 | ;
|
---|
104 | ; Input:
|
---|
105 | ; SCARY - Global array subscript
|
---|
106 | ; SCLINE - Line number
|
---|
107 | ; SCTEXT - Text
|
---|
108 | ; SCCOL - Column to start at
|
---|
109 | ; SCWID - Column or text width
|
---|
110 | ; SCNUM - Selection number
|
---|
111 | ; SCTLIEN - PCMM HL7 Transmission Log IEN
|
---|
112 | ; SCERIEN - IEN of record in Error Code (#404.47142) multiple
|
---|
113 | ; SCDFN Patient IEN
|
---|
114 | ;
|
---|
115 | ; Output:
|
---|
116 | ; SCCNT - Number of lines in the list
|
---|
117 | ;
|
---|
118 | N X
|
---|
119 | S:SCLINE>SCCNT SCCNT=SCLINE
|
---|
120 | S X=$S($D(^TMP(SCARY,$J,SCLINE,0)):^(0),1:"")
|
---|
121 | S ^TMP(SCARY,$J,SCLINE,0)=$$SETSTR^VALM1(SCTEXT,X,SCCOL,SCWID)
|
---|
122 | S ^TMP(SCARY,$J,"IDX",SCLINE,SCNUM)=""
|
---|
123 | ;
|
---|
124 | ;Set special index used in retransmitting patient
|
---|
125 | I $G(SCTLIEN),$G(SCERIEN) D
|
---|
126 | .I '$G(SCTLOG("WORK")) Q:'SCDFN
|
---|
127 | .S ^TMP(SCARY_"IDX",$J,SCNUM)=SCLINE_"^"_SCTLIEN_"^"_SCERIEN
|
---|
128 | .S ^TMP(SCARY_"IDX",$J,"PT",$S(SCDFN:SCDFN,1:"W"),SCLINE)=SCTLIEN_"^"_SCERIEN
|
---|
129 | Q
|
---|
130 | ;
|
---|
131 | ;
|
---|
132 | CAPFLD(SCCOL,SCWID) ; Description: Used to determine column/width of caption fields in the List Template.
|
---|
133 | ;
|
---|
134 | ; Input:
|
---|
135 | ; VALMDDF - Array available at run-time of list template. This array
|
---|
136 | ; is subscripted by caption field name of List Template.
|
---|
137 | ;
|
---|
138 | ; Output:
|
---|
139 | ; Function value: Returns 1 on success, 0 on failure
|
---|
140 | ; SCCOL - array subscripted by abbreviation of caption field name containing the column number where the data/caption starts, pass by reference
|
---|
141 | ; SCWID - array subscripted by abbreviation of caption field name containing the number of charaters the data/caption will use, pass by reference
|
---|
142 | ;
|
---|
143 | ;Quit if VALMDDF array is not defined
|
---|
144 | Q:'$D(VALMDDF) 0
|
---|
145 | ;
|
---|
146 | N X
|
---|
147 | S X=VALMDDF("NUMBER"),SCCOL("NUM")=$P(X,"^",2),SCWID("NUM")=$P(X,"^",3)
|
---|
148 | S X=VALMDDF("RETRANS"),SCCOL("RET")=$P(X,"^",2),SCWID("RET")=$P(X,"^",3)
|
---|
149 | S X=VALMDDF("PATIENT"),SCCOL("PAT")=$P(X,"^",2),SCWID("PAT")=$P(X,"^",3)
|
---|
150 | S X=VALMDDF("PATID"),SCCOL("PATID")=$P(X,"^",2),SCWID("PATID")=$P(X,"^",3)
|
---|
151 | S X=VALMDDF("DATE"),SCCOL("DTR")=$P(X,"^",2),SCWID("DTR")=$P(X,"^",3)
|
---|
152 | S X=VALMDDF("PROV"),SCCOL("PROV")=$P(X,"^",2),SCWID("PROV")=$P(X,"^",3)
|
---|
153 | S X=VALMDDF("TYPE"),SCCOL("TYPE")=$P(X,"^",2),SCWID("TYPE")=$P(X,"^",3)
|
---|
154 | S X=VALMDDF("STATUS"),SCCOL("STA")=$P(X,"^",2),SCWID("STA")=$P(X,"^",3)
|
---|
155 | Q 1
|
---|