コード例 #1
0
/**
 * Produce an html display of information in
 * the x12 edi 271 eligibility report for a particular patient
 * 
 * @uses edih_271_codes()
 * @uses edih_format_money()
 * @uses edih_format_date() 
 * @uses edih_format_percent() 
 * 
 * @param object   edih_x12_file type 271
 * @param string   bht03 or clm01 reference for transaction
 * @return string
 */
function edih_271_transaction_html($obj271, $bht03)
{
    //
    $trans = $obj271->edih_x12_transaction($bht03);
    if (empty($trans) || !count($trans)) {
        $str_html = "<p>Did not find transaction {$bht03} in " . $obj271->edih_filename() . "</p>";
        return $str_html;
    }
    $de = $obj271->edih_delimiters()['e'];
    $ds = $obj271->edih_delimiters()['s'];
    $dr = $obj271->edih_delimiters()['r'];
    $fn = $obj271->edih_filename();
    //
    $cd271 = new edih_271_codes($ds, $dr);
    //
    $str_html = "";
    //
    $hdr_html = "<table id={$bht03} class='h271' columns=4><caption>Eligibility Benefit Response</caption>" . PHP_EOL;
    $hdr_html .= "<thead>" . PHP_EOL;
    $hdr_html .= "<tr><th>Reference</th><th colspan=2>Information</th><th colspan=2>{$fn}</th></tr>" . PHP_EOL;
    $hdr_html .= "</thead>" . PHP_EOL . "<tbody>" . PHP_EOL;
    $src_html = "";
    $rcv_html = "";
    $sbr_nm1_html = "";
    $dep_nm1_html = "";
    $sbr_ref_html = "";
    $dep_ref_html = "";
    $sbr_eb_html = "";
    $dep_eb_html = "";
    //
    $ebct = 0;
    //
    $trns_ct = count($trans);
    for ($i = 0; $i < $trns_ct; $i++) {
        foreach ($trans[$i] as $seg) {
            //
            $idtype = '';
            $name = '';
            $var = '';
            $rej_reason = '';
            $follow = '';
            $addr = '';
            //
            if (strncmp('BHT' . $de, $seg, 4) === 0) {
                $loopid = 'Heading';
                $sar = explode($de, $seg);
                $bht01 = isset($sar[1]) && $sar[1] == '022' ? "Src, Rcv, Sbr, Dep" : "Order unspecified";
                $bht02 = isset($sar[2]) && $sar[2] == '11' ? "Response" : "Confirmation";
                $bht03 = isset($sar[3]) && $sar[3] ? $sar[3] : "";
                $bht04 = isset($sar[4]) && $sar[4] ? edih_format_date($sar[4]) : "";
                //
                $hdr_html .= "<tr><td><em>Reference:</em> {$bht03}</td><td><em>Date:</em> {$bht04}</td><td><em>Type:</em> {$bht02}</td><td>{$bht01}</td></tr>" . PHP_EOL;
                continue;
            }
            //
            if (strncmp('HL' . $de, $seg, 3) === 0) {
                $sar = explode($de, $seg);
                if ($sar[3] == '20') {
                    // level code
                    $loopid = '2000A';
                    // info source (payer)
                    $src_html .= "<tr><td colspan=4><b>Information Source</b></td></tr>" . PHP_EOL;
                } elseif ($sar[3] == '21') {
                    $loopid = '2000B';
                    // info receiver (clinic)
                    $rcv_html .= "<tr><td colspan=4><b>Information Receiver</b></td></tr>" . PHP_EOL;
                } elseif ($sar[3] == '22') {
                    $loopid = '2000C';
                    // subscriber
                    $has_eb = false;
                    $sbr_nm1_html .= "<tr><td colspan=4><b>Subscriber</b></td></tr>" . PHP_EOL;
                } elseif ($sar[3] == '23') {
                    $loopid = '2000D';
                    // dependent
                    $has_eb = false;
                    $dep_nm1_html .= "<tr><td colspan=4><b>Dependent</b></td></tr>" . PHP_EOL;
                }
                //
                $ebct = 0;
                continue;
            }
            //
            if (strncmp('AAA' . $de, $seg, 4) === 0) {
                // rejection
                $sar = explode($de, $seg);
                $rej_reason = $cd271->get_271_code('AAA03', $sar[3]);
                $follow = $cd271->get_271_code('AAA04', $sar[4]);
                if ($loopid == '2000A') {
                    $src_html .= "<tr><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2000B') {
                    $rcv_html .= "<tr><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2000C') {
                    $sbr_nm1_html .= "<tr><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2000D') {
                    $dep_nm1_html .= "<tr><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td><em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                } else {
                    $hdr_html .= "<tr><td>{$loopid} <em><b>Rejection:</b></em></td><td colspan=3 title='{$follow}'>{$rej_reason}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            if (strncmp('NM1' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                //
                $descr = isset($sar[1]) && $sar[1] ? $cd271->get_271_code('NM101', $sar[1]) : "";
                //
                $name = isset($sar[3]) && $sar[3] ? $sar[3] : "";
                $name .= isset($sar[7]) && $sar[7] ? " {$sar[7]}" : "";
                $name .= isset($sar[4]) && $sar[4] ? ", {$sar[4]}" : "";
                $name .= isset($sar[5]) && $sar[5] ? " {$sar[5]}" : "";
                $name .= isset($sar[7]) && $sar[7] ? " {$sar[7]}" : "";
                //
                $idtype = isset($sar[8]) && $sar[8] ? $cd271->get_271_code('NM108', $sar[8]) : "";
                $nm109 = isset($sar[9]) && $sar[9] ? $sar[9] : "";
                //
                if ($loopid == '2000A') {
                    $src_html .= "<tr><td title='{$idtype}'>{$nm109}</td><td colspan=3 title='{$descr}'>{$name}</td></tr>" . PHP_EOL;
                    $loopid = '2100A';
                } elseif ($loopid == '2000B') {
                    $rcv_html .= "<tr><td title='{$idtype}'>{$nm109}</td><td colspan=3 title='{$descr}'>{$name}</td></tr>" . PHP_EOL;
                    $loopid = '2100B';
                } elseif ($loopid == '2000C') {
                    $sbr_nm1_html .= "<tr><td title='{$idtype}'>{$nm109}</td><td colspan=3 title='{$descr}'>{$name}</td></tr>" . PHP_EOL;
                    $loopid = '2100C';
                } elseif ($loopid == '2000D') {
                    $dep_nm1_html .= "<tr><td title='{$idtype}'>{$nm109}</td><td colspan=3 title='{$descr}'>{$name}</td></tr>" . PHP_EOL;
                    $loopid = '2100D';
                } elseif ($loopid == '2120C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$nm109}</td><td colspan=2 title='{$descr}'>{$descr} {$name}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$nm109}</td><td colspan=2 title='{$descr}'>{$descr} {$name}</td></tr>" . PHP_EOL;
                }
                //
                continue;
            }
            //
            if (strncmp('PER' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $per02 = isset($sar[2]) && $sar[2] ? $sar[2] : '';
                $idtype = isset($sar[3]) && $sar[3] ? $cd271->get_271_code('PER03', $sar[3]) : "";
                $per04 = isset($sar[4]) && $sar[2] ? $sar[4] : '';
                if ($loopid == '2100A') {
                    $src_html .= "<tr><td colspan=3>{$per02}</td><td title='{$idtype}'>{$per04}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$per04}</td><td colspan=2>{$per02}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$per04}</td><td colspan=2>{$per02}</td></tr>" . PHP_EOL;
                }
                //
                continue;
            }
            //
            if (strncmp('N3' . $de, $seg, 3) === 0) {
                $sar = explode($de, $seg);
                $addr = isset($sar[1]) ? $sar[1] : "";
                $addr .= isset($sar[2]) ? " {$sar[2]}" : "";
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td>&gt;</td><td colspan=3>{$addr}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td>&gt;</td><td colspan=3>{$addr}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$addr}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$addr}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            //
            if (strncmp('N4' . $de, $seg, 3) === 0) {
                $sar = explode($de, $seg);
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$sar[1]} {$sar[2]} {$sar[3]}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            //
            if (strncmp('PRV' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $idtype = $sar[1] ? $cd271->get_271_code('PRV', $sar[1]) : "";
                if ($loopid == '2100B') {
                    $src_html .= "<tr><td colspan=3>{$sar[2]}</td><td title='{$idtype}'>{$sar[3]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td title='{$idtype}'>{$sar[3]}</td><td colspan=3>{$sar[2]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td title='{$idtype}'>{$sar[3]}</td><td colspan=3>{$sar[2]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$sar[3]}</td><td colspan=2>{$sar[2]}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2120D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td title='{$idtype}'>{$sar[3]}</td><td colspan=2>{$sar[2]}</td></tr>" . PHP_EOL;
                }
                //
                continue;
            }
            //
            if (strncmp('DMG' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $dmg02 = isset($sar[2]) && $sar[2] ? edih_format_date($sar[2]) : "";
                if (isset($sar[3]) && $sar[3]) {
                    if ($sar[3] == 'M') {
                        $dmg03 = "Male";
                    } elseif ($sar[3] == 'F') {
                        $dmg03 = "Female";
                    } else {
                        $dmg03 = "Unknown";
                    }
                }
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td>&gt;</td><td>{$dmg03}</td><td colspan=2><em>Date of Birth</em> {$dmg02}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td>&gt;</td><td>{$dmg03}</td><td colspan=2><em>Date of Birth</em> {$dmg02}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            if (strncmp('INS' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $ins01 = isset($sar[1]) && $sar[1] == 'Y' ? "Subscriber" : "Dependent";
                $ins02 = isset($sar[2]) && $sar[2] ? $cd271->get_271_code('INS02', $sar[2]) : "";
                $ins03 = isset($sar[3]) && $sar[3] ? $sar[3] : "";
                $ins04 = isset($sar[4]) && $sar[4] == '25' ? "<b>Information changed</b>" : "";
                $ins17 = isset($sar[17]) && $sar[17] ? $sar[17] : "";
                //
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td>&gt;</td><td>{$ins01} {$ins17}</td><td>{$ins02}</td><td>{$ins03} {$ins04}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td>&gt;</td><td>{$ins01} {$ins17}</td><td>{$ins02}</td><td>{$ins03} {$ins04}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            if (strncmp('DTP' . $de, $seg, 4) === 0) {
                //
                $sar = explode($de, $seg);
                $var = '';
                $dtp01 = isset($sar[1]) ? $sar[1] : '';
                $dtp02 = isset($sar[2]) ? $sar[2] : '';
                $dtp03 = isset($sar[3]) ? $sar[3] : '';
                //
                $idtype = $dtp01 ? $cd271->get_271_code('DTP', $dtp01) : "";
                if ($dtp02 == 'D8' && $dtp03) {
                    $var = edih_format_date($dtp03);
                } elseif ($dtp02 == 'RD8' && $dtp03) {
                    $var = edih_format_date(substr($dtp03, 0, 8));
                    $var .= ' - ' . edih_format_date(substr($dtp03, -8));
                }
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td>&gt;</td><td>{$idtype}</td><td colspan=2>{$var}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td>&gt;</td><td>{$idtype}</td><td colspan=2>{$var}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td>{$idtype}</td><td colspan=2>{$var}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td>{$idtype}</td><td colspan=2>{$var}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            //
            if (strncmp('MPI' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $idtype = isset($sar[1]) && $sar[1] ? $cd271->get_271_code('MPI', $sar[1]) : "";
                $idtype .= isset($sar[2]) && $sar[2] ? $cd271->get_271_code('MPI', $sar[2]) : "";
                $idtype .= isset($sar[3]) && $sar[3] ? $cd271->get_271_code('MPI', 'SB' . $sar[3]) : "";
                if (isset($sar[7]) && isset($sar[8])) {
                    if ($sar[7] == 'D8') {
                        $var = edih_format_date($sar[8]);
                    } elseif ($sar[7] == 'RD8') {
                        $var = edih_format_date(substr($sar[8], 0, 8));
                        $var .= ' - ' . edih_format_date(substr($sar[8], -8));
                    }
                }
                if ($loopid == '2100C') {
                    $sbr_nm1_html .= "<tr><td colspan=3>{$idtype}</td><td>{$var}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_nm1_html .= "<tr><td colspan=3>{$idtype}</td><td>{$var}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            //
            if (strncmp('EB' . $de, $seg, 3) === 0) {
                //
                $ebct++;
                $cls = $ebct % 2 ? 'ebe' : 'ebo';
                $sar = explode($de, $seg);
                //
                $eb01 = $cd271->get_271_code('EB01', $sar[1]);
                // eligibility or benefit
                $eb02 = isset($sar[2]) && $sar[2] ? $cd271->get_271_code('EB02', $sar[2]) : '';
                // coverage level
                $eb03 = isset($sar[3]) && $sar[3] ? $cd271->get_271_code('EB03', $sar[3]) : '';
                // service type
                $eb04 = isset($sar[4]) && $sar[4] ? $cd271->get_271_code('EB04', $sar[4]) : '';
                // insurance type
                $eb05 = isset($sar[5]) && $sar[5] ? $sar[5] : '';
                // descriptive (plan name)
                $eb06 = isset($sar[6]) && $sar[6] ? $cd271->get_271_code('EB06', $sar[6]) : '';
                // time qualifier
                $eb07 = isset($sar[7]) && strlen($sar[7]) ? edih_format_money($sar[7]) : '';
                // monetary amount
                $eb08 = isset($sar[8]) && $sar[8] ? edih_format_percent($sar[8]) : '';
                // percentage amount
                $eb09 = isset($sar[9]) && $sar[9] ? $cd271->get_271_code('EB09', $sar[9]) : '';
                // Quantity qualifier
                $eb10 = isset($sar[10]) && $sar[10] ? $sar[10] : '';
                // quantity
                $eb11 = isset($sar[11]) && $sar[11] ? $cd271->get_271_code('EB11', $sar[11]) : '';
                // authorization required?
                $eb12 = isset($sar[12]) && $sar[12] ? $cd271->get_271_code('EB12', $sar[12]) : '';
                // in network?
                $eb13 = "";
                if (isset($sar[13]) && strpos($sar[13], $ds)) {
                    // composite procedure ID
                    $eb13ar = explode($ds, $sar[13]);
                    reset($eb13ar);
                    while (list($k, $v) = each($eb13ar)) {
                        if ($k == 0) {
                            $eb13 = $cd271->get_271_code('EB13', $v);
                        } else {
                            $eb13 .= " " . $v;
                        }
                    }
                } else {
                    $eb13 = $sar[13] ? "<em>Procedure</em> {$eb13}" : "";
                }
                $eb14 = "";
                if (isset($sar[14])) {
                    if (strpos($sar[14], $ds)) {
                        // composite diagnosis pointer
                        $eb14 = str_replace($ds, " | ", $sar[14]);
                    } else {
                        $eb14 = $sar[14];
                    }
                    $eb14 = $eb14 ? "<em>Pointers</em> {$eb14}" : "";
                }
                // if LS - LE segments loop should be 2110C or 2110D
                if ($loopid == '2100C' || $loopid == '2110C') {
                    $loopid = '2110C';
                    if (strpos('|A|B', $sar[1]) !== false) {
                        $sbr_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb07} {$eb08}</td><td colspan=2>{$eb02} {$eb03} {$eb04} {$eb06}</td></tr>" . PHP_EOL;
                    } elseif (strpos('|C|G|J|Y', $sar[1]) !== false) {
                        $sbr_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td>{$eb06} {$eb07}</td><td>{$eb03} {$eb04}</td></tr>" . PHP_EOL;
                    } elseif (strpos('|E|F|', $sar[1]) !== false) {
                        $sbr_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td colspan=2>{$eb03} {$eb04} {$eb06}</td></tr>" . PHP_EOL;
                    } else {
                        $sbr_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td colspan=3>{$eb07} {$eb08} {$eb03} {$eb04} {$eb06}</td></tr>" . PHP_EOL;
                    }
                    $sbr_eb_html .= $eb09 || $eb10 || $eb11 || $eb12 ? "<tr class={$cls}><td colspan=2>&gt;</td><td colspan=2>{$eb09} {$eb10} {$eb11} {$eb12}</td></tr>" . PHP_EOL : "";
                    $sbr_eb_html .= $eb13 || $eb14 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$eb13} {$eb14} </td></tr>" . PHP_EOL : "";
                    $sbr_eb_html .= $eb05 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$eb05}</td></tr>" . PHP_EOL : "";
                } elseif ($loopid == '2100D' || $loopid == '2110D') {
                    $loopid = '2110D';
                    if (strpos('|A|B', $eb01) && !$eb02) {
                        $dep_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$ebo7} {$eb08}</td><td colspan=2>{$eb03} {$eb04} {$eb06}</td></tr>" . PHP_EOL;
                    } elseif (strpos('|C|G|J|Y', $eb01)) {
                        $dep_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td>{$eb07} {$eb08}</td><td>{$eb11} {$eb12}</td></tr>" . PHP_EOL;
                    } elseif (strpos('|E|F|', $eb01)) {
                        $dep_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td colspan=2>{$eb03} {$eb04} {$eb06} </td></tr>" . PHP_EOL;
                    } else {
                        $dep_eb_html .= "<tr class={$cls}><td>{$eb01}</td><td>{$eb02}</td><td colspan=3>{$eb07} {$eb08} {$eb03} {$eb04} {$eb06} </td></tr>" . PHP_EOL;
                    }
                    $dep_eb_html .= $eb09 || $eb10 || $eb11 || $eb12 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$eb09} {$eb10} {$eb11} {$eb12}</td></tr>" . PHP_EOL : "";
                    $dep_eb_html .= $eb13 || $eb14 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$eb13} {$eb14} </td></tr>" . PHP_EOL : "";
                    $dep_eb_html .= $eb05 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$eb05}</td></tr>" . PHP_EOL : "";
                }
                continue;
            }
            //
            if (strncmp('HSD' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                //
                $hsd01 = isset($sar[1]) && $sar[1] ? $cd271->get_271_code('HSD01', $sar[1]) : '';
                // quantity qualifier
                $hsd02 = isset($sar[2]) && $sar[2] ? $sar[2] : '';
                // numeric quantity
                $hsd03 = isset($sar[3]) && $sar[3] ? $cd271->get_271_code('HSD01', $sar[3]) : '';
                // measurement unit
                $hsd04 = isset($sar[4]) && $sar[4] ? $sar[4] : '';
                // sample selection modulus
                $hsd05 = isset($sar[5]) && $sar[5] ? $cd271->get_271_code('EB06', $sar[5]) : '';
                // time period qualifier
                $hsd06 = isset($sar[6]) && $sar[6] ? $sar[6] : '';
                // number of periods
                $hsd07 = isset($sar[7]) && $sar[7] ? $cd271->get_271_code('HSD07', $sar[7]) : '';
                // delivery
                $hsd08 = isset($sar[8]) && $sar[8] ? $cd271->get_271_code('HSD08', $sar[8]) : '';
                // delivery
                //
                if ($loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td>{$hsd01} : {$hsd02}</td><td>{$hsd03} : {$hsd04}</td><td>{$hsd05} : {$hsd06}</td></tr>" . PHP_EOL;
                    $sbr_eb_html .= $hsd07 || $hsd08 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$hsd07} {$hsd08}</td></tr>" . PHP_EOL : '';
                } elseif ($loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td>{$hsd01} : {$hsd02}</td><td>{$hsd03} : {$hsd04}</td><td>{$hsd05} : {$hsd06}</td></tr>" . PHP_EOL;
                    $dep_eb_html .= $hsd07 || $hsd08 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$hsd07} {$hsd08}</td></tr>" . PHP_EOL : '';
                }
                continue;
            }
            if (strncmp('REF' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                //
                $ref01 = isset($sar[1]) && $sar[1] ? $cd271->get_271_code('REF', $sar[1]) : '';
                // identification qualifier
                $ref02 = isset($sar[2]) && $sar[2] ? $sar[2] : '';
                // identification value
                $ref03 = isset($sar[3]) && $sar[3] ? $sar[3] : '';
                // description
                //
                if ($loopid == '2100C') {
                    $sbr_ref_html .= "<tr><td>&gt;</td><td colspan=2>{$ref03}</td><td>{$ref01} {$ref02} </td></tr>" . PHP_EOL;
                } elseif ($loopid == '2100D') {
                    $dep_ref_html .= "<tr><td>&gt;</td><td colspan=2>{$ref03}</td><td>{$ref01} {$ref02}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=2>{$ref03}</td><td>{$ref01} {$ref02}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=2>{$ref03}</td><td>{$ref01} {$ref02}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            if (strncmp('MSG' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $msg01 = isset($sar[1]) && $sar[1] ? $sar[1] : '';
                if ($msg01 && $loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$msg01}</td></tr>" . PHP_EOL;
                } elseif ($msg01 && $loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$msg01}</td></tr>" . PHP_EOL;
                }
                continue;
            }
            if (strncmp('III' . $de, $seg, 4) === 0 && ($loopid == '2110C' || $loopid == '2110D')) {
                $sar = explode($de, $seg);
                if (isset($sar[1]) && ($sar[1] == 'GR' || $sar[1] == 'NI')) {
                    $iii02 = isset($sar[2]) && $sar[2] ? $cd271->get_271_code('IIIGR', $sar[2]) : '';
                } else {
                    $iii02 = isset($sar[2]) && $sar[2] ? $cd271->get_271_code('POS', $sar[2]) : '';
                }
                $iii03 = isset($sar[3]) && $sar[3] ? $sar[3] : '';
                //
                if ($loopid == '2110C') {
                    $sbr_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$iii02}</td></tr>" . PHP_EOL;
                    $sbr_eb_html .= $iii03 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$iii03}</td></tr>" . PHP_EOL : '';
                } elseif ($loopid == '2110D') {
                    $dep_eb_html .= "<tr class={$cls}><td>&gt;</td><td colspan=3>{$iii02}</td></tr>" . PHP_EOL;
                    $dep_eb_html .= $iii03 ? "<tr class={$cls}><td>&gt;</td><td colspan=3>{$iii03}</td></tr>" . PHP_EOL : '';
                }
                continue;
            }
            //
            if (strncmp('LS' . $de, $seg, 3) === 0) {
                if ($loopid == '2110C') {
                    $loopid = '2120C';
                }
                if ($loopid == '2110D') {
                    $loopid = '2120D';
                }
                continue;
            }
            if (strncmp('LE' . $de, $seg, 3) === 0) {
                if ($loopid == '2120C') {
                    $loopid = '2100C';
                }
                if ($loopid == '2120D') {
                    $loopid = '2100D';
                }
                continue;
            }
            //
        }
        //
        $str_html .= $hdr_html;
        $str_html .= $src_html ? $src_html : "";
        $str_html .= $rcv_html ? $rcv_html : "";
        $str_html .= $sbr_nm1_html ? $sbr_nm1_html : "";
        $str_html .= $sbr_ref_html;
        $str_html .= $sbr_eb_html;
        $str_html .= $dep_nm1_html ? $dep_nm1_html : "";
        $str_html .= $dep_ref_html;
        $str_html .= $dep_eb_html;
        $str_html .= "<tr><td colspan=4>&nbsp;</td></tr>" . PHP_EOL;
        $str_html .= "</tbody>" . PHP_EOL . "</table>" . PHP_EOL;
    }
    //
    return $str_html;
}
コード例 #2
0
/**
 * Create html string for an x12 835 claim payment
 *
 * @param array
 * @param object
 * @param object
 * @param array
 * @param string
 *
 * @return string
 */
function edih_835_transaction_html($trans_array, $codes27x, $codes835, $delimiters, $fname = '')
{
    //
    $str_html = "";
    if (is_array($trans_array) && count($trans_array)) {
        if (csv_singlerecord_test($trans_array)) {
            $clp_ar = array();
            $clp_ar[] = $trans_array;
        } else {
            $clp_ar = $trans_array;
        }
    } else {
        csv_edihist_log("edih_835_transaction_html: Did not get transaction segments");
        $str_html .= "<p>Did not get transaction segments</p>" . PHP_EOL;
        return $str_html;
    }
    $de = isset($delimiters['e']) ? $delimiters['e'] : "";
    $ds = isset($delimiters['s']) ? $delimiters['s'] : "";
    $dr = isset($delimiters['r']) ? $delimiters['r'] : "";
    //
    if (!$de || !$ds) {
        csv_edihist_log("edih_835_transaction_html: Did not get delimiters");
        $str_html .= "<p>Did not get delimiters</p>" . PHP_EOL;
        return $str_html;
    }
    //
    $fn = $fname ? trim($fname) : "";
    //
    // get the code objects right
    $cd835 = $cd27x = '';
    if ('edih_835_codes' == get_class($codes835)) {
        $cd835 = $codes835;
    } elseif ('edih_835_codes' == get_class($codes27x)) {
        $cd835 = $codes27x;
    }
    if ('edih_271_codes' == get_class($codes27x)) {
        $cd27x = $codes27x;
    } elseif ('edih_271_codes' == get_class($codes835)) {
        $cd27x = $codes835;
    }
    if (!$cd835 || !$cd27x) {
        csv_edihist_log('edih_835_payment_html: invalid code class argument');
        $str_html .= "<p>invalid code class argument</p>" . PHP_EOL;
        return $str_html;
    }
    //
    $str_html = "";
    //
    $tblid = "";
    $capstr = "";
    $mia_str = "";
    //
    $hdr_html = "<tr><th>Reference</th><th colspan=3>Information &nbsp;{$fn}</th></tr>" . PHP_EOL;
    $hdr_html .= "</thead>" . PHP_EOL . "<tbody>" . PHP_EOL;
    $clp_html = "";
    $svc_html = "";
    $sbr_html = "";
    $moa_html = "";
    //
    foreach ($clp_ar as $trans) {
        $lq_ar = array();
        $cas_ar = array();
        $moa_ar = array();
        $rarc_str = "";
        $clp_html = "";
        $svc_html = "";
        $sbr_html = "";
        $moa_html = "";
        foreach ($trans as $seg) {
            //
            if (strncmp('REF' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                //
                if (isset($sar[1]) && $sar[1]) {
                    if ($sar[1] == 'LU') {
                        $ref01 = 'Location';
                        $ref02 = isset($sar[2]) ? $cd27x->get_271_code('POS', $sar[2]) : '';
                    } else {
                        // entity ID code
                        $ref01 = isset($sar[1]) ? $cd27x->get_271_code('REF', $sar[1]) : '';
                        // entity ID
                        $ref02 = isset($sar[2]) ? $sar[2] : '';
                    }
                    //
                    if ($loopid == '2100') {
                        $clp_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>{$ref01}</em> {$ref02}</td></tr>" . PHP_EOL;
                    } elseif ($loopid == '2110') {
                        $svc_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>{$ref01}</em> {$ref02}</td></tr>" . PHP_EOL;
                    }
                }
                //
                continue;
            }
            //
            if (strncmp('DTM' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                // DTM in 835 use DTP codes from 271 codes
                $dtm01 = isset($sar[1]) ? $cd27x->get_271_code('DTP', $sar[1]) : '';
                // date qualifier
                $dtm02 = isset($sar[2]) ? edih_format_date($sar[2]) : '';
                // production date
                $dtm05 = isset($sar[5]) ? $sar[5] : '';
                $dtm06 = isset($sar[6]) ? edih_format_date($sar[2]) : '';
                //
                //if ( $elem02 == 'D8' && $elem03) {
                //$dtmar = edih_format_date($elem03);
                //} elseif ( $elem02 == 'RD8' && $elem03) {
                //$dtmar = edih_format_date( substr($elem03, 0, 8) );
                //$dtmar .= ' - '.edih_format_date( substr($elem03, -8) );
                //}
                //}
                if ($loopid == '2100') {
                    $clp_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>{$dtm01}</em> {$dtm02}</td></tr>" . PHP_EOL;
                } elseif ($loopid == '2110') {
                    $svc_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>{$dtm01}</em> {$dtm02}</td></tr>" . PHP_EOL;
                }
                //
                continue;
            }
            //
            if (strncmp('PER' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                //
                $per01_ar = array('CX' => 'Claims Dept', 'BL' => 'Technical Dept', 'IC' => 'Website');
                $per01 = $per02 = $per03 = $per04 = $per05 = $per06 = $per07 = $per08 = '';
                foreach ($sar as $k => $v) {
                    switch ((int) $k) {
                        case 0:
                            break;
                        case 1:
                            $per01 = isset($per01_ar[$v]) ? $per01_ar[$v] : $v;
                            break;
                        case 2:
                            $per02 = $v;
                            break;
                        case 3:
                            $per03 = $v;
                            break;
                        case 4:
                            $per04 = $per03 == 'TE' ? edih_format_telephone($v) : $v;
                            break;
                        case 5:
                            $per05 = $v;
                            break;
                        case 6:
                            $per06 = $per03 == 'TE' ? edih_format_telephone($v) : $v;
                            break;
                        case 7:
                            $per07 = $v;
                            break;
                        case 8:
                            $per08 = $per03 == 'TE' ? edih_format_telephone($v) : $v;
                    }
                }
                //
                if ($loopid == '2100') {
                    $clp_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$per01} {$per02} {$per03} {$per04} </td></tr>" . PHP_EOL;
                    $clp_html .= $per05 || $per07 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$per05} {$per06} {$per07} {$per08}</td></tr>" . PHP_EOL : "";
                }
                //
                continue;
            }
            //
            if (strncmp('CLP' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $loopid = '2100';
                $cls = 'clp';
                //
                $clp01 = $clp02 = $clp03 = $clp04 = $clp05 = $clp06 = $clp07 = $clp08 = $clp09 = $clp11 = $clp12 = $clp13 = $capstr = '';
                //
                $clp01 = isset($sar[1]) && $sar[1] ? $sar[1] : '';
                // Pt ID CLM01
                $clp02 = isset($sar[2]) && $sar[2] ? $cd835->get_835_code('CLAIM_STATUS', $sar[2]) : '';
                // status code
                $clp03 = isset($sar[3]) && $sar[3] ? edih_format_money($sar[3]) : '0';
                // fee amont
                $clp04 = isset($sar[4]) && $sar[4] ? edih_format_money($sar[4]) : '0';
                // paid amount
                $clp05 = isset($sar[5]) && $sar[5] ? edih_format_money($sar[5]) : '0';
                // pt responsibility amont
                $clp06 = isset($sar[6]) && $sar[6] ? $cd835->get_835_code('CLP06', $sar[6]) : '';
                // filing indicator code
                $clp07 = isset($sar[7]) && $sar[7] ? $sar[7] : '';
                // Payer reference ID
                $clp08 = isset($sar[8]) && $sar[8] ? "<em>Location</em> " . $cd27x->get_271_code('POS', $sar[8]) : '';
                // Faciliy code place of service
                // frequency type code 1 original  7 replacement  8 void
                $clp09ar = array('1' => 'original', '7' => 'replacement', '8' => 'void');
                if (isset($sar[9]) && array_key_exists($sar[9], $clp09ar)) {
                    // claim frequency code
                    $clp09 = "<em>Freq</em> " . $clp09ar[$sar[9]];
                } else {
                    $clp09 = isset($sar[9]) && $sar[9] ? "<em>Freq</em> " . $sar[9] : "";
                }
                // DRG code not expected
                $clp11 = isset($sar[11]) && $sar[11] ? "<em>DRG Code</em> " . $sar[11] : '';
                // DRG weight
                $clp12 = isset($sar[12]) && $sar[12] ? "<em>DRG Weight</em> " . $sar[12] : '';
                // DRG percentage
                $clp13 = isset($sar[13]) && $sar[13] ? "<em>Dischg Frctn</em> " . edih_format_percent($sar[13]) : '';
                //
                // table caption PtID PtName
                $capstr .= $clp01;
                $tblid = $clp01;
                //
                $clp_html .= "<tr class='{$cls}'><td><em>Pt ID</em> {$clp01}</td><td colspan=3><em>Status</em> {$clp02} <em>{$clp06}</em></td></tr>" . PHP_EOL;
                $clp_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>Fee</em> {$clp03} <em>Pmt</em> {$clp04} <em>PtRsp</em> {$clp05} <em>PR Ref</em> {$clp07} </td></tr>" . PHP_EOL;
                $clp_html .= $clp08 || $clp09 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$clp08} {$clp09}</td></tr>" . PHP_EOL : "";
                $clp_html .= $clp11 || $clp12 || $clp13 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$clp11} {$clp12} {$clp13}</td></tr>" . PHP_EOL : "";
                //
                continue;
                //
            }
            if (strncmp('CAS' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                // claim adjustments
                $cls = $loopid == '2100' ? 'clp' : 'svc';
                // claim adjustment group;  expect CAS segment for each adjustment group
                if (isset($sar[1]) && $sar[1]) {
                    $cas_ar[$loopid][$sar[1]] = array_chunk(array_slice($sar, 2), 3);
                    // debug
                    //echo '== array_chunk'.PHP_EOL;
                    //var_dump( $cas_ar ).PHP_EOL;
                }
                //
                continue;
                //
            }
            //
            if (strncmp('NM1' . $de, $seg, 4) === 0) {
                $sar = explode($de, $seg);
                $nm1_str = "";
                //
                if (isset($sar[1]) && $sar[1]) {
                    if (strpos('|IL|QC|72', $sar[1])) {
                        $cls = 'sbr';
                    } else {
                        $cls = 'clp';
                    }
                    $descr = $cd27x->get_271_code('NM101', $sar[1]);
                } else {
                    $cls = 'clp';
                    $descr = '';
                }
                //
                $name = isset($sar[3]) && $sar[3] ? $sar[3] : "";
                $name .= isset($sar[7]) && $sar[7] ? " {$sar[7]}" : "";
                $name .= isset($sar[4]) && $sar[4] ? ", {$sar[4]}" : "";
                $name .= isset($sar[5]) && $sar[5] ? " {$sar[5]}" : "";
                $name .= isset($sar[6]) && $sar[6] ? " {$sar[6]}" : "";
                //
                $nm108 = isset($sar[8]) && $sar[8] ? $cd27x->get_271_code('NM108', $sar[8]) : "";
                $nm109 = isset($sar[9]) && $sar[9] ? $sar[9] : "";
                // complete table caption
                if (isset($sar[1]) && $sar[1] == "QC") {
                    $capstr .= " {$name}";
                }
                //
                if ($nm108) {
                    $nm1_str .= "<tr class='{$cls}'><td><em>{$descr}</em></td><td colspan=3>{$name} <em>{$nm108}</em>  {$nm109}</td></tr>" . PHP_EOL;
                } else {
                    $nm1_str .= "<tr class='{$cls}'><td><em>{$descr}</em></td><td colspan=3>{$name} </td></tr>" . PHP_EOL;
                }
                if ($loopid == '2100') {
                    $clp_html .= $nm1_str;
                } elseif ($loopid == '2110') {
                    $svc_html .= $nm1_str;
                }
                //
                $descr = $name = $nm108 = $nm109 = '';
                continue;
            }
            //
            if (strncmp('MIA' . $de, $seg, 4) === 0) {
                // Inpatient Adjudication information
                $sar = explode($de, $seg);
                // <tr class='mia'><td>&gt;</td><td> </td></tr>".PHP_EOL;
                $tr1 = "<tr class='mia'><td>&gt;</td><td colspan=3>";
                $tr2 = "</td></tr>" . PHP_EOL;
                //
                $mia_str .= isset($sar[1]) && $sar[1] ? $tr1 . "Covered Days or Visits: " . $sar[1] . $tr2 : "";
                // days or visits
                $mia_str .= isset($sar[2]) && $sar[2] ? $tr1 . "PPS Operating Outlier Amt: " . edih_format_money($sar[2]) . $tr2 : "";
                $mia_str .= isset($sar[3]) && $sar[3] ? $tr1 . "Lifetime Psychiatric Days: " . $sar[3] . $tr2 : "";
                $mia_str .= isset($sar[4]) && $sar[4] ? $tr1 . "Claim DRG Amt: " . edih_format_money($sar[4]) . $tr2 : "";
                $mia_str .= isset($sar[5]) && $sar[5] ? "<tr class='mia'><td>" . $sar[5] . "</td><td colspan=3>" . $cd835->get_835_code('RARC', $sar[5]) . $tr2 : "";
                $mia_str .= isset($sar[6]) && $sar[6] ? $tr1 . "Claim DSH Amt: " . edih_format_money($sar[6]) . $tr2 : "";
                $mia_str .= isset($sar[7]) && $sar[7] ? $tr1 . "Claim MSP Pass Thru Amt: " . edih_format_money($sar[7]) . $tr2 : "";
                $mia_str .= isset($sar[8]) && $sar[8] ? $tr1 . "Claim PPS Capital Amt: " . edih_format_money($sar[8]) . $tr2 : "";
                $mia_str .= isset($sar[9]) && $sar[9] ? $tr1 . "PPS Capital FSP DRG Amt: " . edih_format_money($sar[9]) . $tr2 : "";
                $mia_str .= isset($sar[10]) && $sar[10] ? $tr1 . "PPS Capital HSP DRG Amt: " . edih_format_money($sar[10]) . $tr2 : "";
                $mia_str .= isset($sar[11]) && $sar[11] ? $tr1 . "PPS Capital DSH DRG Amt: " . edih_format_money($sar[11]) . $tr2 : "";
                $mia_str .= isset($sar[12]) && $sar[12] ? $tr1 . "Old Capital Amt: " . edih_format_money($sar[12]) . $tr2 : "";
                $mia_str .= isset($sar[13]) && $sar[13] ? $tr1 . "PPS Capital Ind Med Edu Amt: " . edih_format_money($sar[13]) . $tr2 : "";
                $mia_str .= isset($sar[14]) && $sar[14] ? $tr1 . "PPS Oper HSP Spec DRG Amt: " . edih_format_money($sar[14]) . $tr2 : "";
                $mia_str .= isset($sar[15]) && $sar[15] ? $tr1 . "Cost Report Day Count: " . $sar[15] . $tr2 : "";
                $mia_str .= isset($sar[16]) && $sar[16] ? $tr1 . "PPS Oper FSP Spec DRG Amt: " . edih_format_money($sar[16]) . $tr2 : "";
                $mia_str .= isset($sar[17]) && $sar[17] ? $tr1 . "Claim PPS Outlier Amt: " . edih_format_money($sar[17]) . $tr2 : "";
                $mia_str .= isset($sar[18]) && $sar[18] ? $tr1 . "Claim Indirect Teaching: " . edih_format_money($sar[18]) . $tr2 : "";
                $mia_str .= isset($sar[19]) && $sar[19] ? $tr1 . "Non Pay Prof Component Amt: " . edih_format_money($sar[19]) . $tr2 : "";
                $mia_str .= isset($sar[20]) && $sar[20] ? "<tr class='mia'><td>" . $sar[20] . "</td><td colspan=3>" . $cd835->get_835_code('RARC', $sar[20]) . $tr2 : "";
                $mia_str .= isset($sar[21]) && $sar[21] ? "<tr class='mia'><td>" . $sar[21] . "</td><td colspan=3>" . $cd835->get_835_code('RARC', $sar[21]) . $tr2 : "";
                $mia_str .= isset($sar[22]) && $sar[22] ? "<tr class='mia'><td>" . $sar[22] . "</td><td colspan=3>" . $cd835->get_835_code('RARC', $sar[22]) . $tr2 : "";
                //
                continue;
            }
            //
            if (strncmp('MOA' . $de, $seg, 4) === 0) {
                // Inpatient Adjudication information
                $sar = explode($de, $seg);
                //
                $moa_str = 'Claim Level Remarks: ';
                foreach ($sar as $k => $v) {
                    switch ((int) $k) {
                        case 0:
                            break;
                        case 1:
                            $moa_str .= $v ? 'Reimbursement Rate: ' . edih_format_percent($v) : '';
                            break;
                        case 2:
                            $moa_str .= $v ? 'Allowed Amt: ' . edih_format_money($v) : '';
                            break;
                        case 8:
                            $moa_str .= $v ? 'ESRD Amt: ' . edih_format_money($v) : '';
                            break;
                        case 9:
                            $moa_str .= $v ? 'Non-Pay Prof Cmpnt: ' . edih_format_money($v) : '';
                            break;
                        default:
                            // case 3, 4, 5, 6, 7 are remark codes
                            $moa_str .= $v ? ' ' . $v : '';
                            $moa_ar[] = $v ? $v : '';
                    }
                }
                //
                $clp_html .= $moa_str ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$moa_str}</td></tr>" . PHP_EOL : "";
                //
                continue;
            }
            //
            if (strncmp('AMT' . $de, $seg, 4) === 0) {
                // Payment information
                $sar = explode($de, $seg);
                //
                $amt01 = isset($sar[1]) && $sar[1] ? $cd835->get_835_code('AMT', $sar[1]) : "";
                $amt02 = isset($sar[2]) && $sar[2] ? edih_format_money($sar[2]) : "";
                //
                if ($loopid == '2100') {
                    $clp_html .= $amt01 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$amt01} {$amt02}</td></tr>" . PHP_EOL : "";
                } elseif ($loopid == '2110') {
                    $svc_html .= $amt01 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$amt01} {$amt02}</td></tr>" . PHP_EOL : "";
                }
                //
                continue;
            }
            //
            if (strncmp('QTY' . $de, $seg, 4) === 0) {
                // Payment information
                $sar = explode($de, $seg);
                //
                $qty01 = isset($sar[1]) && $sar[1] ? $cd835->get_835_code('AMT', $sar[1]) : "";
                $qty02 = isset($sar[2]) && $sar[2] ? edih_format_money($sar[2]) : "";
                //
                if ($loopid == '2100') {
                    $clp_html .= $qty01 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$qty01} {$qty02}</td></tr>" . PHP_EOL : "";
                } elseif ($loopid == '2110') {
                    $svc_html .= $qty01 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$qty01} {$qty02}</td></tr>" . PHP_EOL : "";
                }
                //
                continue;
            }
            //
            if (strncmp('SVC' . $de, $seg, 4) === 0) {
                //
                $sar = explode($de, $seg);
                $loopid = '2110';
                $cls = 'svc';
                $rarc_str = '';
                // used in LQ segment stanza
                // composite procedure code source:code:modifier:modifier
                $svc01 = '';
                if (isset($sar[1]) && $sar[1]) {
                    // construct a code source code modifier string
                    if (strpos($sar[1], $ds)) {
                        $scda = explode($ds, $sar[1]);
                        reset($scda);
                        while (list($key, $val) = each($scda)) {
                            if ($key == 0 && $val) {
                                $svc01 = $cd27x->get_271_code('EB13', $val);
                            } else {
                                $svc01 .= ":" . $val;
                            }
                        }
                    } else {
                        $svc01 = $sar[1];
                    }
                }
                //
                $svc02 = isset($sar[2]) && $sar[2] ? edih_format_money($sar[2]) : "";
                // billed amount
                $svc03 = isset($sar[3]) && $sar[3] ? edih_format_money($sar[3]) : "";
                // paid amount
                $svc04 = isset($sar[4]) && $sar[4] ? "<em>NUBC</em> " . $sar[4] : "";
                // NUBC revenue code
                $svc05 = isset($sar[5]) && $sar[5] ? "<em>Units</em> " . $sar[5] : "";
                // quantity
                //
                $svc06 = '';
                if (isset($sar[6]) && $sar[6]) {
                    // construct a code source code modifier string
                    if (strpos($sar[6], $ds)) {
                        $scda = explode($ds, $sar[6]);
                        reset($scda);
                        while (list($key, $val) = each($scda)) {
                            if ($key == 0 && $val) {
                                $svc06 = $cd27x->get_271_code('EB13', $val) . " ";
                            } else {
                                $svc06 .= ":" . $val;
                            }
                        }
                    } else {
                        $svc06 = $sar[6];
                    }
                }
                $svc07 = isset($sar[7]) && $sar[7] ? $sar[7] : "";
                // original unis of service
                //
                $svc_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>Service</em> {$svc01} <em>Fee</em> {$svc02} <em>Pmt</em> {$svc03} {$svc05} {$svc04}</td></tr>" . PHP_EOL;
                $svc_html .= $svc06 ? "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>Submitted Svc</em> {$svc06} <em>Units</em> {$svc07}</td></tr>" . PHP_EOL : "";
                //
                continue;
            }
            //
            if (strncmp('LQ' . $de, $seg, 3) === 0) {
                $sar = explode($de, $seg);
                // Health Care Remark Codes
                $lq01 = isset($sar[1]) && $sar[1] ? $sar[1] : "";
                if (isset($sar[2])) {
                    $lq02 = $lq01 == 'HE' ? $sar[2] : "";
                    //$lq02 = $cd835->get_835_code('RARC', $sar[2]);
                    $rarc_str .= $rarc_str ? ' ' . $sar[2] : '<em>Service Remarks</em> ' . $sar[2];
                    $lq_ar[] = $sar[2];
                } else {
                    $lq02 = "";
                }
                //$lq02 = (isset($sar[2]) && $sar[2] && $lq01 == 'HE') ? $cd835->get_835_code('RARC', $sar[2]) : "";
                //
                // $svc_html .= ($rarc_str) ? "<tr class='$cls'><td>&gt;</td><td colspan=3>$rarc_str</td></tr>".PHP_EOL : "";
                //
                continue;
            }
            //
        }
        // end foreach trans as seg
        // assemble the html table at end of the inside foreach loop
        //
        $str_html .= "<table name='{$tblid}' class='h835c' columns=4><caption>{$capstr}</caption>" . PHP_EOL . "<thead>" . PHP_EOL;
        $str_html .= $hdr_html;
        $str_html .= $sbr_html;
        $str_html .= $clp_html;
        $str_html .= $mia_str ? $mia_str : '';
        $str_html .= $svc_html;
        $str_html .= $rarc_str ? "<tr class='svc'><td>&gt;</td><td colspan=3>{$rarc_str}</td></tr>" . PHP_EOL : "";
        if (count($cas_ar)) {
            foreach ($cas_ar as $key => $cas) {
                if (!is_array($cas) && !count($cas)) {
                    continue;
                }
                if ($key == '2100' && count($cas)) {
                    $cls = 'remc';
                    $str_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>Claim Level Adjustments</em></td></tr>" . PHP_EOL;
                } else {
                    $cls = 'rems';
                    $str_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3><em>Service Level Adjustments</em></td></tr>" . PHP_EOL;
                }
                $cg = '';
                foreach ($cas as $ky => $trp) {
                    //echo '==== cas_ar unwind cas as ky trp '.$ky.PHP_EOL;
                    //var_dump ($trp).PHP_EOL;
                    //
                    if (!is_array($trp) && !count($trp)) {
                        continue;
                    }
                    $cg = $cd835->get_835_code('CAS_GROUP', $ky);
                    foreach ($trp as $tr) {
                        // debug
                        //echo '==== cas_ar unwind trp as tr '.PHP_EOL;
                        //var_dump ($tr).PHP_EOL;
                        //
                        $cd = $cr = $ca = $cq = '';
                        foreach ($tr as $k => $c) {
                            //echo '==== cas_ar unwind tr as k c '.$k.PHP_EOL;
                            //var_dump ($c).PHP_EOL;
                            //
                            switch ((int) $k) {
                                case 0:
                                    $cd = $c;
                                    $cr = $cd835->get_835_code('CARC', $c);
                                    break;
                                case 1:
                                    $ca = $c ? edih_format_money($c) : "";
                                    break;
                                case 2:
                                    $cq = $c ? $c : "";
                            }
                        }
                    }
                    //
                    $str_html .= "<tr class='{$cls}'><td>&gt;</td><td colspan=3>{$ky} {$cg} {$cd} {$ca} {$cq}</td></tr>" . PHP_EOL;
                    $str_html .= "<tr class='{$cls}'><td style='text-align: center;'>{$ky} {$cd}</td><td colspan=3>{$cr}</td></tr>" . PHP_EOL;
                }
            }
        }
        if (count($moa_ar)) {
            $cls = 'remc';
            $str_html .= "<tr class='{$cls}'><td colspan=4><em>Remarks</em></td></tr>" . PHP_EOL;
            foreach ($moa_ar as $moa) {
                $moar = $cd835->get_835_code('RARC', $moa);
                $str_html .= "<tr class='{$cls}'><td style='text-align: center;'>{$moa}</td><td colspan=3>{$moar}</td></tr>" . PHP_EOL;
            }
        }
        if (count($lq_ar)) {
            $cls = 'mia';
            $str_html .= $rarc_str ? "<tr class='{$cls}'><td colspan=4>{$rarc_str}</td></tr>" . PHP_EOL : "";
            foreach ($lq_ar as $lq) {
                $lqr = $cd835->get_835_code('RARC', $lq);
                $str_html .= "<tr class='{$cls}'><td style='text-align: center;'>{$lq}</td><td colspan=3>{$lqr}</td></tr>" . PHP_EOL;
            }
        }
        // bottom border
        $str_html .= "<tr class='remc'><td colspan=4>&nbsp;</td></tr>" . PHP_EOL;
        // end tags for table
        $str_html .= "</tbody>" . PHP_EOL . "</table>" . PHP_EOL;
    }
    //
    return $str_html;
}