net sftp bug fix
[openemr.git] / library / edihistory / edih_278_html.php
blob92de17e84f5c1169c7d9ccfc282d5dfecd19b63d
1 <?php
2 /*
3 * test_278_parse.php
4 *
5 * Copyright 2016 Kevin McCormick <kevin@kt61p>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20 * MA 02110-1301, USA.
26 //require_once("$srcdir/edihistory/codes/edih_271_code_class.php");
29 * HTML display of x12 278 file
30 * SV3 and TOO segments (Dental) are ignored
32 * @uses edih_271_codes()
34 * @param object edih_x12_file
35 * $param string BHT03 value to identify transaction
36 * @return string
38 function edih_278_transaction_html($obj278, $bht03) {
40 $trans = $obj278->edih_x12_transaction($bht03);
41 if ( empty($trans) ) {
42 $str_html = $obj278->edih_message();
43 return $str_html;
45 $de = $obj278->edih_delimiters()['e'];
46 $ds = $obj278->edih_delimiters()['s'];
47 $dr = $obj278->edih_delimiters()['r'];
48 $fn = $obj278->edih_filename();
50 $cd27x = new edih_271_codes($ds, $dr);
52 $cls ='';
53 $capstr = 'Services Review (Cert/Auth)';
55 $hdr_html = "<table class='h278' columns=4><caption>$capstr</caption>";
56 $hdr_html .= "<thead><tr><th>Reference</th><th>Information</th><th colspan=2>$fn</th></tr></thead>".PHP_EOL;
57 $hdr_html .= "<tbody>".PHP_EOL;
58 $str_html = "";
59 $src_html = "";
60 $rcv_html = "";
61 $sbr_nm1_html = "";
62 $dep_nm1_html = "";
63 $evt_html = "";
64 $svc_html = "";
66 $trns_ct = count($trans);
67 for($i=0; $i<$trns_ct; $i++) {
68 foreach($trans[$i] as $seg) {
70 $idtype = '';
71 $name = '';
72 $var = '';
73 $rej_reason = '';
74 $follow = '';
75 $addr = '';
76 // debug
78 if ( strncmp('BHT'.$de, $seg, 4) === 0 ) {
79 $loopid = 'Heading';
80 $sar = explode($de, $seg);
81 $elem01 = ($sar[1] == '0007') ? "Src, Rcvr, Sbr, Dep, Evt, Svc" : "Not determined";
83 $elem02 = ( isset($sar[2]) && $sar[2] !== false) ? $cd27x->get_271_code('BHT02', $sar[2]) : "";
84 //
85 $elem03 = (isset($sar[3]) ) ? $sar[3] : '';
86 $elem04 = (isset($sar[4]) ) ? edih_format_date($sar[4]) : '';
88 $elem06 = (isset($sar[6]) && $sar[6]) ? $cd27x->get_271_code('BHT06', $sar[6]) : "";
90 $hdr_html .= "<tr><td colspan=2><em>Transaction ID:</em> $elem03 </td><td colspan=2><em>Sequence:</em> $elem01</td></tr>".PHP_EOL;
91 if ($elem06) {
92 $hdr_html .= "<tr><td colspan=2><em>Transaction Date:</em> $elem04 </td><td colspan=2>$elem02 <em>Type:</em> $elem06</td></tr>".PHP_EOL;
93 } else {
94 $hdr_html .= "<tr><td colspan=2><em>Transaction Date:</em> $elem04 </td><td colspan=2><em>Type:</em> $elem02</td></tr>".PHP_EOL;
97 continue;
99 //'src''rcv'sbr''dep''evt''svc''
100 if (strncmp($seg, 'HL'.$de, 3) === 0 ) {
101 $sar = explode($de, $seg);
102 $hl = $sar[1];
103 $hlpc = $sar[2]; // parent code
104 $hllc = $sar[3];
105 $hlcc = (isset($sar[4])) ? $sar[4] : ''; // child code
106 if ($sar[3] == '20') { // level code
107 $loopid = '2000A';
108 $cls = 'src'; // info source (payer)
109 $src_html .= "<tr class='$cls'><td colspan=4><b>Information Source</b></td></tr>".PHP_EOL;
110 } elseif ($sar[3] == '21') {
111 $loopid = '2000B';
112 $cls = 'rcv'; // info receiver (clinic)
113 $rcv_html .= "<tr class='$cls'><td colspan=4><b>Information Receiver</b></td></tr>".PHP_EOL;
114 } elseif ($sar[3] == '22') {
115 $loopid = '2000C'; // subscriber
116 $cls = 'sbr';
117 $sbr_nm1_html .= "<tr class='$cls'><td colspan=4><b>Subscriber</b></td></tr>".PHP_EOL;
118 } elseif ($sar[3] == '23') {
119 $loopid = '2000D'; // dependent
120 $cls = 'dep';
121 $dep_nm1_html .= "<tr class='$cls'><td colspan=4><b>Dependent</b></td></tr>".PHP_EOL;
122 } elseif ($sar[3] == 'EV') {
123 $loopid = '2000E'; // patient event
124 $cls = 'evt';
125 $evt_html .= "<tr class='$cls'><td colspan=4><b>Patient Event</b></td></tr>".PHP_EOL;
126 } elseif ($sar[3] == 'SS') {
127 $loopid = '2000F'; // service
128 $cls = 'svc';
129 $svc_html .= "<tr class='$cls'><td colspan=4><b>Service</b></td></tr>".PHP_EOL;
132 continue;
134 if ( strncmp('NM1'.$de, $seg, 4) === 0 ) {
135 $sar = explode($de, $seg);
137 $nm101 = ( isset($sar[1]) ) ? $sar[1] : '';
138 $descr = ($nm101) ? $cd27x->get_271_code('NM101', $nm101) : "";
140 $name = (isset($sar[3]) && $sar[3] ) ? $sar[3] : "";
141 $name .= (isset($sar[7]) && $sar[7]) ? " {$sar[7]}" : "";
142 $name .= (isset($sar[4]) && $sar[4]) ? ", {$sar[4]}" : "";
143 $name .= (isset($sar[5]) && $sar[5]) ? " {$sar[5]}" : "";
144 $nm109 = (isset($sar[9]) && $sar[9]) ? $sar[9] : "";
146 $idtype = (isset($sar[8]) && $sar[8] ) ? $cd27x->get_271_code('NM108', $sar[8]) : "";
148 if ($loopid == '2000A') {
149 $src_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$name</td></tr>" .PHP_EOL;
150 $loopid = '2010A';
151 } elseif ($loopid == '2000B') {
152 $rcv_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$name</td></tr>" .PHP_EOL;
153 $loopid = '2010B';
154 } elseif ($loopid == '2000C') {
155 $sbr_nm1_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$name</td></tr>" .PHP_EOL;
156 $loopid = '2010C';
157 } elseif ($loopid == '2000D') {
158 $dep_nm1_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$name</td></tr>" .PHP_EOL;
159 $loopid = '2010D';
160 } elseif ( $loopid == '2000E' || strpos($loopid, '010E') ) {
161 $loopid = (strpos('|71|72|73|77|AAJ|DD|DK|DN|FA|G3|P3|QB|QV|SJ', $nm101) ) ? '2010EA' : $loopid;
162 $loopid = (strpos('|45|FS|ND|PW|R3', $nm101) ) ? '2010EB' : $loopid;
163 $loopid = ($nm101 == 'L5') ? '2010EC' : $loopid;
164 $evt_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$descr $name</td></tr>" .PHP_EOL;
165 } elseif ( $loopid == '2000F' || strpos($loopid, '010F') ) {
166 $loopid = (strpos('|71|72|73|77|AAJ|DD|DK|DN|FA|G3|P3|QB|QV|SJ', $nm101) ) ? '2010FA' : $loopid;
167 $loopid = ($nm101 == 'L5') ? '2010FB' : $loopid;
168 $svc_html .= "<tr class='$cls'><td title='$idtype'>$nm109</td><td colspan=3 title='$descr'>$descr $name</td></tr>" .PHP_EOL;
171 continue;
174 if ( strncmp('N3'.$de, $seg, 3) === 0 ) {
175 $sar = explode($de, $seg);
176 $addr = (isset($sar[1])) ? $sar[1] : "";
177 $addr .= (isset($sar[2])) ? " {$sar[2]}" : "";
179 if ($loopid == '2010B') {
180 $rcv_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$addr</td></tr>" .PHP_EOL;
181 } elseif ($loopid == '2010C') {
182 $sbr_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$addr</td></tr>" .PHP_EOL;
183 } elseif ($loopid == '2010D') {
184 $dep_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$addr</td></tr>" .PHP_EOL;
185 } elseif ($loopid == '2010EA' || $loopid == '2010EC') {
186 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$addr</td></tr>" .PHP_EOL;
187 } elseif ($loopid == '2010FA') {
188 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$addr</td></tr>" .PHP_EOL;
190 continue;
193 if ( strncmp('N4'.$de, $seg, 3) === 0 ) {
194 $sar = explode($de, $seg);
195 if ($loopid == '2010B') {
196 $rcv_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" .PHP_EOL;
197 } elseif ($loopid == '2010C') {
198 $sbr_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" .PHP_EOL;
199 } elseif ($loopid == '2010D') {
200 $dep_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" .PHP_EOL;
201 } elseif ($loopid == '2010EA' || $loopid == '2010EC') {
202 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" .PHP_EOL;
203 } elseif ($loopid == '2010FA' || $loopid == '2010FB') {
204 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" .PHP_EOL;
206 continue;
208 // //
209 if ( strncmp('PER'.$de, $seg, 4) === 0 ) {
210 $sar = explode($de, $seg);
211 $elem01 = (isset($sar[1])) ? $sar[1] : '';
212 $elem02 = (isset($sar[2])) ? $sar[2] : '';
213 $elem03 = (isset($sar[3])) ? $cd27x->get_271_code('PER03', $sar[3]) : "";
214 $elem04 = (isset($sar[4])) ? $sar[4] : '';
215 $elem05 = (isset($sar[5])) ? $cd27x->get_271_code('PER03', $sar[5]) : "";
216 $elem06 = (isset($sar[6])) ? $sar[6] : '';
217 $elem07 = (isset($sar[7])) ? $cd27x->get_271_code('PER03', $sar[7]) : "";
218 $elem08 = (isset($sar[8])) ? $sar[8] : '';
219 $elem09 = (isset($sar[9])) ? $sar[9] : '';
221 $idtype = ($sar[3]) ? $cd27x->get_271_code('PER03', $sar[3]) : "";
222 if ($loopid == '2010A') {
223 $src_html .= "<tr class='$cls'><td colspan=2>$elem02</td><td colspan=2 title='$elem03 $elem05 $elem07'>$elem04 $elem06 $elem08</td></tr>" .PHP_EOL;
224 } elseif ($loopid == '2010B') {
225 $rcv_html .= "<tr class='$cls'><td colspan=2>$elem02</td><td colspan=2 title='$elem03 $elem05 $elem07'>$elem04 $elem06 $elem08</td></tr>" .PHP_EOL;
226 } elseif ($loopid == '2010EA') {
227 $evt_html .= "<tr class='$cls'><td colspan=2>$elem02</td><td colspan=2 title='$elem03 $elem05 $elem07'>$elem04 $elem06 $elem08</td></tr>" .PHP_EOL;
228 } elseif ($loopid == '2010FA') {
229 $svc_html .="<tr class='$cls'><td colspan=2>$elem02</td><td colspan=2 title='$elem03 $elem05 $elem07'>$elem04 $elem06 $elem08</td></tr>" .PHP_EOL;
232 continue;
235 if ( strncmp('AAA'.$de, $seg, 4) === 0 ) {
236 // rejection
237 $sar = explode($de, $seg);
238 $rej_reason = $cd27x->get_271_code('AAA03', $sar[3]);
239 $follow = $cd27x->get_271_code('AAA04', $sar[4]);
240 if ($loopid == '2000A') {
241 $src_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
242 } elseif ($loopid == '2010A') {
243 $src_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
244 } elseif ($loopid == '2000B') {
245 $rcv_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
246 } elseif ($loopid == '2010B') {
247 $sbr_eb_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
248 } elseif ($loopid == '2000C') {
249 $sbr_nm1_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
250 } elseif ($loopid == '2010C') {
251 $sbr_eb_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
252 } elseif ($loopid == '2000D') {
253 $dep_nm1_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
254 } elseif ($loopid == '2010D') {
255 $dep_eb_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
256 } elseif ($loopid == '2010EA' || $loopid == '2010EC') {
257 $evt_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
258 } elseif ($loopid == '2010FA') {
259 $svc_html .= "<tr class='$cls'><td><em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
260 }else {
261 $hdr_html .= "<tr class='$cls'><td>$loopid <em><b>Rejection:</b></em></td><td colspan=3 title='$follow'>$rej_reason</td></tr>" .PHP_EOL;
263 continue;
266 if ( strncmp('TRN'.$de, $seg, 4) === 0 ) {
267 // trace identifier
268 $sar = explode($de, $seg);
269 $elem01 = ( isset($sar[1]) ) ? $sar[1] : '';
270 $elem02 = ( isset($sar[2]) ) ? $sar[2] : '';
271 $elem03 = ( isset($sar[3]) ) ? $sar[3] : '';
272 $elem04 = ( isset($sar[4]) ) ? $sar[4] : '';
274 $trctp = ($elem01 == '2') ? 'Reference ' : 'Current ';
275 if ($loopid == '2000E') {
276 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3><em>$trctp tracking no:</em> $elem02 (by $elem03 $elem04)</td></tr>" .PHP_EOL;
277 } elseif ($loopid == '2000F') {
278 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3><em>$trctp tracking no:</em> $elem02 (by $elem03 $elem04)</td></tr>" .PHP_EOL;
280 continue;
284 if ( strncmp('UM'.$de, $seg, 3) === 0 ) {
285 $sar = explode($de, $seg);
287 $elem01 = (isset($sar[1])) ? $cd27x->get_271_code('UM01', $sar[1]) : '';
288 $elem02 = (isset($sar[2])) ? $cd27x->get_271_code('UM02', $sar[2]) : '';
289 $elem03 = (isset($sar[3])) ? $cd27x->get_271_code('EB03', $sar[3]) : '';
290 $elem04 = (isset($sar[4])) ? $sar[4] : '';
291 $elem04a = '';
292 if ( strpos($elem04, $ds) ) {
293 $elem04_ar = explode($ds, $elem04);
294 if ( isset($elem04_ar[1]) && $elem04_ar[1] == 'B' ) {
295 $elem04a .= (isset($elem04_ar[0])) ? $cd27x->get_271_code('POS', $elem04_ar[0]) : '';
296 } else {
297 $elem04a = $elem04;
300 /* UM05 -- not used
301 $elem05 = (isset($sar[5])) ? $sar[5] : '';
302 $elem05a = '';
303 if (strpos($elem05, $ds) {
304 $elem05_ar = explode($ds, $elem05);
305 $elem05a .= (isset($elem05_ar[0])) ? $cd27x->get_271_code('POS', $elem05_ar[0]) : '';
306 $elem05a .= (isset($elem05_ar[1])) ? $cd27x->get_271_code('POS', $elem05_ar[1]) : '';
307 $elem05a .= (isset($elem05_ar[2])) ? $cd27x->get_271_code('POS', $elem05_ar[2]) : '';
308 $elem05a .= (isset($elem05_ar[3])) ? 'State Code: '.$elem05_ar[3] : '';
309 $elem05a .= (isset($elem05_ar[3])) ? 'Country Code: '.$elem05_ar[4] : '';
310 } else {
311 $elem05a .= $elem05;
314 * */
315 $elem06 = (isset($sar[6])) ? $cd27x->get_271_code('UM06', $sar[6]) : '';
316 // UM07 UM08 not used
317 //$elem07 = (isset($sar[7])) ? $cd27x->get_271_code('UM07', $sar[7]) : '';
318 //$elem08 = (isset($sar[8])) ? $cd27x->get_271_code('UM08', $sar[8]) : '';
320 if ($loopid == '2000E' ) {
321 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem01 <em>Certification Type:</em> $elem02</td></tr>".PHP_EOL;
322 $evt_html .= ($elem03 || $elem04a || $elem06) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03 $elem04a ($elem06)</td></tr>".PHP_EOL : "";
323 } elseif ($loopid == '2000F' ) {
324 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem01 <em>Certification Type:</em> $elem02</td></tr>".PHP_EOL;
325 $svc_html .= ($elem03 || $elem04a || $elem06) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03 $elem04a ($elem06)</td></tr>".PHP_EOL : "";
327 continue;
330 if ( strncmp('HCR'.$de, $seg, 4) === 0 ) {
332 $sar = explode($de, $seg);
334 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('HCR01', $sar[1]) : '';
335 $elem02 = (isset($sar[2]) && $sar[2]) ? "<em>Reference: </em>".$sar[2] : '';
336 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('HCR03', $sar[3]) : '';
337 $elem04 = (isset($sar[4]) && $sar[4]) ? $cd27x->get_271_code('HCR04', $sar[4]) : ''; {
338 $elem04 = ($elem04) ? "<em>2nd Surgical Opinion:</em> $elem04" : "";
341 if ($loopid == '2000E' ) {
342 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL;
343 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03</td></tr>".PHP_EOL;
344 $evt_html .= ($elem04) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem04</td></tr>".PHP_EOL : "";
345 } elseif ($loopid == '2000F' ) {
346 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL;
347 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03</td></tr>".PHP_EOL;
348 $svc_html .= ($elem04) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem04</td></tr>".PHP_EOL : "";
351 continue;
354 if ( strncmp('REF'.$de, $seg, 4) === 0 ) {
356 $sar = explode($de, $seg);
358 $elem01 = (isset($sar[1])) ? $cd27x->get_271_code('REF', $sar[1]) : '';
359 $elem02 = (isset($sar[2])) ? $sar[2] : '';
360 $elem03 = (isset($sar[3])) ? $sar[2] : '';
362 if ($loopid == '2010B' ) {
363 $rcv_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
364 } elseif ($loopid == '2010C' ) {
365 $sbr_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
366 } elseif ($loopid == '2010D' ) {
367 $dep_nm1_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
368 } elseif ($loopid == '2000E' ) {
369 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
370 } elseif ($loopid == '2010E' ) {
371 $evt_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
372 } elseif ($loopid == '2000F' ) {
373 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
374 }elseif ($loopid == '2010FA' ) {
375 $svc_html .= "<tr class='$cls'><td>&gt;</td><td colspan=2><em>$elem01</em> $elem02</td><td>$elem03</td></tr>".PHP_EOL;
378 continue;
381 if ( strncmp('DMG'.$de, $seg, 4) === 0 ) {
382 $sar = explode($de, $seg);
383 $elem02 = (isset($sar[2]) && $sar[2]) ? edih_format_date($sar[2]) : "";
384 if (isset($sar[3]) && $sar[3]) {
385 if ($sar[3] == 'M') {
386 $elem03 = "Male";
387 } elseif ($sar[3] == 'F') {
388 $elem03 = "Female";
389 } else {
390 $elem03 = "Unknown";
393 if ($loopid == '2010C') {
394 $sbr_nm1_html .= "<tr class='$cls'><td>&gt;</td><td>$elem03</td><td colspan=2><em>Date of Birth</em> $elem02</td></tr>" .PHP_EOL;
395 } elseif ($loopid == '2010D') {
396 $dep_nm1_html .= "<tr class='$cls'><td>&gt;</td><td>$elem03</td><td colspan=2><em>Date of Birth</em> $elem02</td></tr>" .PHP_EOL;
398 continue;
401 if ( strncmp('INS'.$de, $seg, 4) === 0 ) {
402 $sar = explode($de, $seg);
403 $elem01 = (isset($sar[1]) && $sar[1] == 'Y') ? "Subscriber" : "Dependent";
404 $elem02 = (isset($sar[2]) && $sar[2]) ? $cd27x->get_271_code('INS02', $sar[2]) : "";
405 $elem03 = (isset($sar[3]) && $sar[3]) ? $sar[3] : "";
406 $elem04 = (isset($sar[4]) && $sar[4] == '25') ? "<b>Information changed</b>" : "";
407 $elem17 = (isset($sar[17]) && $sar[17]) ? $sar[17] : "";
409 if ($loopid == '2010C') {
410 $sbr_nm1_html .= "<tr class='$cls'><td>&gt;</td><td>$elem01 $elem17</td><td>$elem02</td><td>$elem03 $elem04</td></tr>" .PHP_EOL;
411 } elseif ($loopid == '2010D') {
412 $dep_nm1_html .= "<tr class='$cls'><td>&gt;</td><td>$elem01 $elem17</td><td>$elem02</td><td>$elem03 $elem04</td></tr>" .PHP_EOL;
414 continue;
417 if ( strncmp('DTP'.$de, $seg, 4) === 0 ) {
419 $sar = explode($de, $seg);
420 $var = '';
421 $elem01 = (isset($sar[1])) ? $sar[1] : '';
422 $elem02 = (isset($sar[2])) ? $sar[2] : '';
423 $elem03 = (isset($sar[3])) ? $sar[3] : '';
425 $idtype = ($elem01) ? $cd27x->get_271_code('DTP', $elem01) : "";
426 if ( $elem02 == 'D8' && $elem03) {
427 $var = edih_format_date($elem03);
428 } elseif ( $elem02 == 'RD8' && $elem03) {
429 $var = edih_format_date( substr($elem03, 0, 8) );
430 $var .= ' - '.edih_format_date( substr($elem03, -8) );
432 if ($loopid == '2000E') {
433 $evt_html .= "<tr class='$cls'><td>&gt;</td><td>$idtype</td><td colspan=2>$var</td></tr>" .PHP_EOL;
434 } elseif ($loopid == '2000F') {
435 $svc_html .= "<tr class='$cls'><td>&gt;</td><td>$idtype</td><td colspan=2>$var</td></tr>" .PHP_EOL;
437 continue;
440 if ( strncmp('HI'.$de, $seg, 3) === 0 ) {
441 // This is the Health Care Information Codes segment
442 // -- to give all information in the segment, we need to
443 // lookup all the code values ICD-9, ICD-10, LOINC, DRG, etc.
444 // -- At this time, give the code source and code, with dates if any
446 $sar = explode($de, $seg);
448 $hi_str = '';
449 $tr_str = '';
450 foreach($sar as $hi) {
451 if ( strpos($hi, $ds) ) {
452 $a = explode($ds, $hi);
453 $hi_str .= (isset($a[0]) && $a[0]) ? $cd27x->get_271_code('HI01', $a[0]) : "";
454 $hi_str .= (isset($a[1]) && $a[1]) ? '[ '.$a[1].' ]' : '[]';
455 if (isset($a[2]) && isset($a[3]) ) {
456 $hi_str .= ($a[2] == 'D8') ? ' '.edih_format_date($a[3]) : '';
457 $hi_str .= ($a[2] == 'RD8') ? edih_format_date( substr($a[3], 0, 8) ) : "";
458 $hi_str .= ($a[2] == 'RD8') ? edih_format_date( substr($a[3], -8) ) : "";
460 } else {
461 $hi_str .= $hi.' ';
463 $tr_str .= "<tr class='$cls'><td><em>Codes</em></td><td colspan=3>$hi_str</td></tr>".PHP_EOL;
466 if ($loopid == '2000E') {
467 $evt_html .= $tr_str;
468 } elseif ($loopid == '2000F') {
469 $svc_html .= $tr_str;
472 continue;
475 if ( strncmp('HSD'.$de, $seg, 4) === 0 ) {
476 // Health Care Services Delivery
477 $sar = explode($de, $seg);
479 $id = "Services Delivery";
480 $tr_str = '';
481 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('HSD01', $sar[1]) : ''; // quantity qualifier
482 $elem02 = (isset($sar[2]) && $sar[2]) ? $sar[2] : ''; // numeric quantity
483 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('HSD01', $sar[3]) : ''; // measurement unit
484 $elem04 = (isset($sar[4]) && $sar[4]) ? $sar[4] : ''; // sample selection modulus
485 $elem05 = (isset($sar[5]) && $sar[5]) ? $cd27x->get_271_code('EB06', $sar[5]) : ''; // time period qualifier
486 $elem06 = (isset($sar[6]) && $sar[6]) ? $sar[6] : ''; // number of periods
487 $elem07 = (isset($sar[7]) && $sar[7]) ? $cd27x->get_271_code('HSD07', $sar[7]) : ''; // delivery
488 $elem08 = (isset($sar[8]) && $sar[8]) ? $cd27x->get_271_code('HSD08', $sar[8]) : ''; // delivery
490 if ( ($elem01 || $elem02) && !$elem08 ) {
491 $tr_str .= ($elem03 && $elem04 && $elem06) ? "<tr class='$cls'><td><em>$id</em></td><td colspan=3>$elem02 $elem01 per every $elem04 $elem03 for $elem06 $elem05 $elem07</td></tr>".PHP_EOL : "";
492 $tr_str .= ($elem03 && $elem04 && !$elem06) ? "<tr class='$cls'><td><em>$id</em></td><td colspan=3>$elem02 $elem01 per every $elem04 $elem03 $elem07</td></tr>".PHP_EOL : "";
493 $tr_str .= ($elem03 && !$elem04 && $elem06) ? "<tr class='$cls'><td><em>$id</em></td><td colspan=3>$elem02 $elem01 for $elem06 $elem05 $elem07</td></tr>".PHP_EOL : "";
494 $tr_str .= ($elem03 && !$elem04 && !$elem06) ? "<tr class='$cls'><td><em>$id</em></td><td colspan=3>$elem02 $elem01 $elem07</td></tr>".PHP_EOL : "";
495 } else {
496 $tr_str .= "<tr class='$cls'><td><em>$id</em></td><td colspan=3>$elem02 $elem01 $elem07 $elem08</td></tr>" .PHP_EOL;
499 if ($loopid == '2000E') {
500 $evt_html .= $tr_str;
501 } elseif ($loopid == '2000F') {
502 $svc_html .= $tr_str;
504 continue;
507 if ( strncmp('CRC'.$de, $seg, 4) === 0 ) {
508 // Certification
509 $sar = explode($de, $seg);
511 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('CRC01', $sar[1]) : ''; // certification type code
512 $elem02 = (isset($sar[2]) && $sar[2]) ? $cd27x->get_271_code('HCR04', $sar[2]) : ''; // condition indicater
513 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('CRC03', $sar[3]) : ''; // condition descripter
514 $elem04 = (isset($sar[4]) && $sar[4]) ? $cd27x->get_271_code('CRC03', $sar[4]) : ''; // condition descripter
515 $elem05 = (isset($sar[5]) && $sar[5]) ? $cd27x->get_271_code('CRC03', $sar[5]) : ''; // condition descripter
516 $elem06 = (isset($sar[6]) && $sar[6]) ? $cd27x->get_271_code('CRC03', $sar[6]) : ''; // condition descripter
517 $elem07 = (isset($sar[7]) && $sar[7]) ? $cd27x->get_271_code('CRC03', $sar[7]) : ''; // condition descripter
519 $evt_html .= ($elem01) ? "<tr class='$cls'><td><em>$elem01</em></td><td colspan=3><em>Conditions Apply:</em> $elem02</td></tr>".PHP_EOL : "";
520 $evt_html .= ($elem03) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03</td></tr>".PHP_EOL : "";
521 $evt_html .= ($elem04) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem04</td></tr>".PHP_EOL : "";
522 $evt_html .= ($elem05) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem05</td></tr>".PHP_EOL : "";
523 $evt_html .= ($elem06) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem06</td></tr>".PHP_EOL : "";
524 $evt_html .= ($elem07) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem07</td></tr>".PHP_EOL : "";
526 continue;
529 if ( strncmp('CL1'.$de, $seg, 4) === 0 ) {
531 $sar = explode($de, $seg);
533 $tr_str = '';
534 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('CL101', $sar[1]) : ''; // admission type code
535 $elem02 = (isset($sar[2]) && $sar[2]) ? $cd27x->get_271_code('CL102', $sar[2]) : ''; // admission source code
536 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('CL103', $sar[3]) : ''; // patient status code
538 $tr_str .= "<tr class='$cls'><td><em>Hospital</em> </td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL;
539 $tr_str .= ($elem03) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03</td></tr>".PHP_EOL : "";
541 if ($loopid == '2000E') {
542 $evt_html .= $tr_str;
543 } elseif ($loopid == '2000F') {
544 $svc_html .= $tr_str;
546 continue;
549 if ( strncmp('CR1'.$de, $seg, 4) === 0 ) {
550 // ambulance
551 $sar = explode($de, $seg);
553 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('CR103', $sar[3]) : ''; // ambulance transit code
554 if ( isset($sar[5]) ) {
555 if ($sar[5] == 'DH') {
556 $elem05 = "miles";
557 } elseif ($sar[5] == 'DK') {
558 $elem05 = "kilometers";
559 } else {
560 $elem05 = "";
562 } else {
563 $elem05 = "";
565 $elem06 = (isset($sar[6])) ? $sar[6] : "";
567 $evt_html .= "<tr class='$cls'><td><em>Ambulance:</em></td><td colspan=3>$elem03 $elem06 $elem05</td></tr>".PHP_EOL;
569 continue;
572 if ( strncmp('CR2'.$de, $seg, 4) === 0 ) {
573 // spinal manipulation
574 $sar = explode($de, $seg);
576 $elem01 = (isset($sar[1]) && $sar[1]) ? $sar[1] : "";
577 $elem02 = (isset($sar[2]) && $sar[2]) ? $sar[2] : "";
578 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('CR203', $sar[3]) : ""; // spinal code
579 $elem04 = (isset($sar[4]) && $sar[4]) ? $cd27x->get_271_code('CR203', $sar[4]) : ""; // spinal code
580 $elem04 = ($elem04) ? "-- ".$elem04 : "";
581 // elem05 -- elem12 not used
583 $evt_html .= "<tr class='$cls'><td><em>Spinal:</em></td><td colspan=3> $elem01 $elem02 $elem03 $elem04</td></tr>".PHP_EOL;
585 continue;
588 if ( strncmp('CR5'.$de, $seg, 4) === 0 ) {
589 // oxygen
590 $sar = explode($de, $seg);
592 $tr_str = '';
593 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('CR503', $sar[3]) : ""; // oxygen code
594 $elem04 = (isset($sar[4]) && $sar[4]) ? $cd27x->get_271_code('CR503', $sar[4]) : ""; // oxygen code
595 $elem06 = (isset($sar[6]) && $sar[6]) ? "Flow (lpm): ".$sar[6] : "";
596 $elem07 = (isset($sar[7]) && $sar[7]) ? "Times/day: ".$sar[7] : "";
597 $elem08 = (isset($sar[8]) && $sar[8]) ? "Hours: ".$sar[8] : "";
598 $elem09 = (isset($sar[9]) && $sar[9]) ? $sar[9] : "";
599 $elem16 = (isset($sar[16]) && $sar[16]) ? "Flow (lpm): ".$sar[16] : "";
600 $elem17 = (isset($sar[17]) && $sar[17]) ? $cd27x->get_271_code('CR517', $sar[17]) : "";
601 $elem18 = (isset($sar[18]) && $sar[18]) ? $cd27x->get_271_code('CR503', $sar[18]) : "";
603 $title = "Descriptors and Rates/times per edi guide. <b>Do not rely on these!</b>".PHP_EOL;
604 $t2 = "Descriptors per edi companion guide. <b>Do not rely on these!</b>".PHP_EOL;
606 $tr_str .= "<tr class='$cls'><td><em>Oxygen</em></td><td colspan=3><b>You must independently verify this information!</b></td></tr>".PHP_EOL;
607 $tr_str .= "<tr class='$cls'><td>&gt;</td><td colspan=3>$title</td></tr>".PHP_EOL;
608 $tr_str .= ($elem03 || $elem04 ) ? "<tr class='$cls'><td>&gt;</td><td colspan=3 title='$t2'><em>Equipment Type: </em>$elem03 $elem04</td></tr>".PHP_EOL : "";
609 $tr_str .= ($elem06 || $elem07 || $elem08) ? "<tr class='$cls'><td>&gt;</td><td colspan=3 title='$title'>$elem06 $elem07 $elem08</td></tr>".PHP_EOL : "";
610 $tr_str .= ($elem09) ? "<tr class='$cls'><td>&gt;</td><td colspan=3><em>Therapist: </em>$elem09</td></tr>".PHP_EOL : "";
611 $tr_str .= ($elem16) ? "<tr class='$cls'><td>&gt;</td><td colspan=3 title='$title'>$elem16</td></tr>".PHP_EOL : "";
612 $tr_str .= ($elem17) ? "<tr class='$cls'><td>&gt;</td><td colspan=3 title='$t2'><em>Delivery: </em>$elem17</td></tr>".PHP_EOL : "";
613 $tr_str .= ($elem18) ? "<tr class='$cls'><td>&gt;</td><td colspan=3 title='$t2'><em>Equipment Type: </em>$elem18</td></tr>".PHP_EOL : "";
615 $evt_html .= $tr_str;
617 continue;
620 if ( strncmp('CR6'.$de, $seg, 4) === 0 ) {
621 // oxygen
622 $sar = explode($de, $seg);
624 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('UM07', $sar[1]) : ""; // patient condition code
625 $elem02 = (isset($sar[2]) && $sar[2]) ? edih_format_date($sar[2]) : ""; // HH start date
626 $elem03 = (isset($sar[3]) && $sar[3]) ? $sar[3] : "";
627 $elem04 = (isset($sar[4]) && $sar[4]) ? $sar[4] : "";
628 if ( $elem03 == 'D8' && $elem04) {
629 $elem04 = edih_format_date($elem04);
630 } elseif ( $elem03 == 'RD8' && $elem04) {
631 $var = edih_format_date( substr($dtp03, 0, 8) );
632 $elem04 = $var.' - '.edih_format_date( substr($elem04, -8) );
634 $elem07 = (isset($sar[7]) && $sar[7]) ? $cd27x->get_271_code('HCR04', $sar[8]) : "";
635 $elem08 = (isset($sar[8]) && $sar[8]) ? $cd27x->get_271_code('CR608', $sar[8]) : ""; // certification type code
637 $evt_html .= "<tr class='$cls'><td><em>Home Health</em></td><td><em>HH Began</em> $elem02</td><td colspan=2>$elem01</td></tr>".PHP_EOL;
638 $evt_html .= ($elem03 || $elem04) ? "<tr class='$cls'><td>&gt;</td><td colspan=2><em>Period</em> $elem04</td><td>(MCR) $elem07</td></tr>".PHP_EOL : "";
639 $evt_html .= ($elem08) ? "<tr class='$cls'><td>&gt;</td><td colspan=2><em>Period</em> $elem08</td><td>(MCR) $elem05</td></tr>".PHP_EOL : "";
641 continue;
644 if ( strncmp('PWK'.$de, $seg, 4) === 0 ) {
645 // paperwork
646 $sar = explode($de, $seg);
648 $tr_str = '';
650 $elem01 = (isset($sar[1]) && $sar[1]) ? $cd27x->get_271_code('PWK01', $sar[1]) : ""; // paperwork code
651 $elem02 = (isset($sar[2]) && $sar[2]) ? $cd27x->get_271_code('PWK02', $sar[2]) : ""; // delivery code
652 $elem05 = (isset($sar[5]) && $sar[5] == 'AC') ? "Attachment Control Number" : "";
653 $elem06 = (isset($sar[6]) && $sar[6]) ? $sar[6] : "";
654 $elem07 = (isset($sar[7]) && $sar[7]) ? $sar[7] : "";
656 $tr_str .= "<tr class='$cls'><td><em>Paperwork</em></td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL;
657 $tr_str .= ($elem05) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem05 $elem06</td></tr>".PHP_EOL : "";
658 $tr_str .= ($elem07) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem07</td></tr>".PHP_EOL : "";
660 if ($loopid == '2000E') {
661 $evt_html .= $tr_str;
662 } elseif ($loopid == '2000F') {
663 $svc_html .= $tr_str;
665 continue;
668 if ( strncmp('MSG'.$de, $seg, 4) === 0 ) {
669 // paperwork
670 $sar = explode($de, $seg);
672 $elem01 = (isset($sar[1]) && $sar[1]) ? $sar[1] : "";
674 if ($loopid == '2000E') {
675 $evt_html .= ($elem01) ? "<tr class='$cls'><td><em>Message</em></td><td colspan=3>$elem01</td></tr>".PHP_EOL : "";
676 } elseif ($loopid == '2000F') {
677 $svc_html .= ($elem01) ? "<tr class='$cls'><td><em>Message</em></td><td colspan=3>$elem01</td></tr>".PHP_EOL : "";
679 continue;
682 if ( strncmp('SV1'.$de, $seg, 4) === 0 ) {
683 // professional services
684 $sar = explode($de, $seg);
687 $elem01 = '';
688 if ( isset($sar[1]) && strpos($sar[1], $ds ) ) {
689 $ar01 = explode($ds, $sar[1]);
690 $ct = count($ar01);
691 $elem01 = (isset($ar01[0]) && $ar01[0]) ? $cd27x->get_271_code('SV101', $ar01[0]) : "";
693 if ($ct == 8) {
694 $ct = 7;
695 $elem01 .= " ".$ar01[1]." -- ".$ar01[8];
696 } else {
697 $elem01 .= " ".$ar01[1];
700 if ($elem01 && $ct > 2) {
701 for ($i=2; $i<$ct; $i++) { $elem01 .= ' '.$ar01[$i]; }
703 } elseif (isset($sar[1]) && $sar[1]) {
704 $elem01 = $sar[1];
706 $elem02 = (isset($sar[2]) && $sar[2]) ? edih_format_money($sar[2]) : "";
707 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('SV103', $sar[3]) : "";
708 $elem04 = (isset($sar[4]) && $sar[4]) ? $sar[4] : "";
709 $elem11 = (isset($sar[11]) && $sar[11]) ? $cd27x->get_271_code('HCR04', $sar[11]) : "";
710 $elem20 = (isset($sar[20]) && $sar[20]) ? $cd27x->get_271_code('SV120', $sar[20]) : "";
712 $elem11 = ($elem11) ? "<em>EPSDT</em> ".$elem11 : "";
714 $svc_html .= ($elem01) ? "<tr class='$cls'><td><em>Professional Svc</em></td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL : "";
715 $svc_html .= ($elem03 ||$elem04 || $elem11) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03 $elem04 $elem11</td></tr>".PHP_EOL : "";
716 $svc_html .= ($elem20) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem20</td></tr>".PHP_EOL : "";
718 continue;
721 if ( strncmp('SV2'.$de, $seg, 4) === 0 ) {
722 // paperwork
723 $sar = explode($de, $seg);
726 $elem01 = '';
727 if ( isset($sar[1]) && strpos($sar[1], $ds ) ) {
728 $ar01 = explode($ds, $sar[1]);
729 $ct = count($ar01);
730 $elem01 = (isset($ar01[0]) && $ar01[0]) ? $cd27x->get_271_code('SV101', $ar01[0]) : "";
732 if ($ct == 8) {
733 $ct = 7;
734 $elem01 .= " ".$ar01[1]." -- ".$ar01[8];
735 } else {
736 $elem01 .= " ".$ar01[1];
739 if ($elem01 && count($ar01) > 2) {
740 for ($i=2; $i<$ct; $i++) { $elem01 .= ' '.$ar01[$i]; }
742 } elseif (isset($sar[1]) && $sar[1]) {
743 $elem01 = $sar[1];
745 $elem02 = (isset($sar[2]) && $sar[2]) ? edih_format_money($sar[2]) : "";
746 $elem03 = (isset($sar[3]) && $sar[3]) ? $cd27x->get_271_code('SV103', $ar01[3]) : "";
747 $elem04 = (isset($sar[4]) && $sar[4]) ? $sar[4] : "";
748 $elem05 = (isset($sar[5]) && $sar[5]) ? $sar[5] : "";
749 $elem06 = (isset($sar[6]) && $sar[6]) ? edih_format_money($sar[6]) : "";
750 $elem10 = (isset($sar[20]) && $sar[20]) ? $cd27x->get_271_code('SV120', $ar01[20]) : "";
752 $svc_html .= ($elem01) ? "<tr class='$cls'><td><em>Inst Service</em></td><td colspan=3>$elem01 $elem02</td></tr>".PHP_EOL : "";
753 $svc_html .= ($elem03 ||$elem04) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem03 $elem04 $elem05 $elem06</td></tr>".PHP_EOL : "";
754 $svc_html .= ($elem10) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$elem10</td></tr>".PHP_EOL : "";
756 continue;
760 $str_html .= $hdr_html;
761 $str_html .= ($src_html) ? $src_html : "";
762 $str_html .= ($rcv_html) ? $rcv_html : "";
763 $str_html .= ($sbr_nm1_html) ? $sbr_nm1_html : "";
764 $str_html .= ($dep_nm1_html) ? $dep_nm1_html : "";
765 $str_html .= ($evt_html) ? $evt_html : "";
766 $str_html .= ($svc_html) ? $svc_html : "";
767 $str_html .= "<tr><td colspan=4>&nbsp;</td></tr>".PHP_EOL;
768 $str_html .= "</tbody>".PHP_EOL."</table>".PHP_EOL;
771 return $str_html;
775 * create a display for an individual authorization response
777 * @uses csv_check_x12_obj()
778 * @uses edih_278_transaction_html
780 * @param string $filename the filename
781 * @param string $bht03 identifier from 837 CLM or27 BHT segment
783 * @return string either an error message or an html table
785 function edih_278_html($filename, $bht03='' ) {
786 // create a display for an individual 277 response
787 $html_str = '';
789 if (!$filename) {
790 csv_edihist_log ("edih_278_html: called with no file arguments");
791 $html_str .= "Error, no file given<br />".PHP_EOL;
792 return $html_str;
793 } else {
794 $obj278 = csv_check_x12_obj($filename, 'f278');
795 if ($obj278 && 'edih_x12_file' == get_class($obj278) ) {
796 if ($bht03) {
797 // particular transaction
798 $html_str .= edih_278_transaction_html($obj278, $bht03);
799 } else {
800 // file contents
801 $env_ar = $obj278->edih_envelopes();
802 if (!isset($env_ar['ST'])) {
803 $html_str .= "<p>edih_278_html: file parse error, envelope error</p>".PHP_EOL;
804 $html_str .= $obj278->edih_message();
805 return $html_str;
806 } else {
807 $html_str .= "<div id='accordion'>".PHP_EOL;
809 foreach($env_ar['ST'] as $st) {
810 foreach($env_ar['GS'] as $gs){
811 if ($gs['icn'] != $st['icn']) { continue; }
812 if ($gs['gsn'] == $st['gsn']) {
813 $gs_date = edih_format_date($gs['date']);
814 $gs_sender = $gs['sender'];
815 break;
819 // get each transaction
820 foreach($st['bht03'] as $bht) {
821 $html_str .= "<h3>$bht Services Review</h3>".PHP_EOL;
822 $html_str .= "<div id='ac_$bht'>".PHP_EOL;
824 $html_str .= edih_278_transaction_html($obj278, $bht);
826 $html_str .= "</div>".PHP_EOL;
828 $html_str .= "</div>".PHP_EOL;
831 } else {
832 csv_edihist_log("edih_278_html: error in retreiving file object");
833 $html_str .= "<p>x12 278 file parse error</p>".PHP_EOL;
837 return $html_str;