public static string montaApresentacaoResultado(Cliente.Cliente cCliente, SortedDictionary <string, Exame.Exame> sdCamposExame, List <LaudoValor>[] lLaudoValor)
        {
            bool          bolImprimeReferencia = false;
            StringBuilder sbHtmlResultados     = new StringBuilder();

            StringBuilder sbHtml           = new StringBuilder();
            double        dValorPercentual = 0;
            double        dValorReal       = 0;
            string        strValorReal;
            string        strValorPercentual;
            string        strResultado;
            string        strConteudo;
            string        strUltimaUnidade         = "";
            string        strCasasDecimaisAnterior = "0";
            int           iTipoCampoAnterior       = -1;
            ValorNormal   vnAtual    = null;
            ValorNormal   vnAnterior = null;

            // inicio do html

            sbHtml.Append("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01//EN'>");
            sbHtml.Append("<HEAD>");
            sbHtml.Append("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>");
            sbHtml.Append("<STYLE type='text/css' media='print'>  body, td, th { font-family: 'Courier New', Courier, monospace; font-size: 16px; } .linha_sup_inf { border-top-style: solid; border-bottom-style: solid; } .linha_inf { margin: 0px; padding: 0px; border-bottom-width: thin; border-bottom-color: #000; } .div_folha { } .div_interno { padding-top:5mm;} .td_valores_ref {font-size: 9px; } .resultado {font-style:italic;	font-weight:bold;} .fonte_pequena {font-size: 11px;}</STYLE>");
            sbHtml.Append("<STYLE type='text/css' media='screen'> body, td, th { font-family: 'Courier New', Courier, monospace; font-size: 16px; } .linha_sup_inf { border-top-style: solid; border-bottom-style: solid; } .linha_inf { margin: 0px; padding: 0px; border-bottom-width: thin; border-bottom-color: #000; } .div_folha { width: 240mm; margin:auto; background-color:#FFF } .div_interno { width: 210mm; height:400mm;margin:auto; padding-top:20mm;padding-bottom:20mm; background-color:#FFF } .td_valores_ref {font-size: 9px; } .resultado {font-style:italic;	font-weight:bold;} .fonte_pequena {font-size: 11px;}</STYLE>");
            sbHtml.Append("</HEAD>");
            sbHtml.Append("<body  align='center' bgcolor='#666666'>");
            sbHtml.Append("<div  class='div_folha'>");
            sbHtml.Append("<div  class='div_interno'>");
            sbHtml.Append("<table  width='100%' align='left' > <tr><td nowrap align='center'>");
            //sbHtml.Append("<div align='center'>");
            //sbHtml.Append("<div >");  // cabeçalho

            //sbHtml.Append("<div style='float:left;'><img src='" + Logotipo.data + "'  style='width: 180mm; height:15mm; background-color:#FFF' /> </div>");
            //sbHtml.Append("<img src='" + Settings1.Default.logotipo + "'  style='width: 210mm; height:16mm; background-color:#FFF' />");
            sbHtml.Append("<img src='data:image/jpeg;base64," + Apresentacao.ImageToBase64("logotipo.jpg") + "'  style='width: 210mm; height:16mm; background-color:#FFF' />");
            sbHtml.Append("</td></tr>");

            sbHtml.Append("<tr><td nowrap align='center'> <strong><pre class='linha_inf'>");
            sbHtml.Append(Settings1.Default.TituloLinha1);
            sbHtml.Append("</pre></strong></td></tr>");
            sbHtml.Append("<tr><td nowrap align='center'> <strong><pre class='linha_inf'>");
            sbHtml.Append(Settings1.Default.TituloLinha2);
            sbHtml.Append("</pre></strong></td></tr>");
            //sbHtml.Append("</div>");
            //sbHtml.Append("</div>");
            //sbHtml.Append("<div >");

            sbHtml.Append("<tr><td>");

            // dados do paciente
            sbHtml.Append("<table  width='100%' align='left' class='linha_sup_inf'>");
            sbHtml.Append("<tr><td nowrap><pre class='linha_inf'>" + ("Paciente: " + cCliente.nome + "                                                ").Substring(0, 48) + " No.: " + cCliente.codigo + "</pre></td></tr>");
            sbHtml.Append("<tr><td nowrap><pre class='linha_inf'>" + ("Idade: " + cCliente.strIdade + "                                                ").Substring(0, 48) + " Data: " + cCliente.dia + "/" + cCliente.mes + "/" + cCliente.ano + " " + cCliente.strHorarioAtendimento + "</pre></td></tr>");
            sbHtml.Append("<tr><td nowrap><pre class='linha_inf'>" + ("Médico(a): " + cCliente.strNomeMedico + "                                             ").Substring(0, 48) + "</pre></td></tr>");
            sbHtml.Append("<tr><td nowrap><pre class='linha_inf'>" + ("Matrícula: " + cCliente.matricula + "                                                ").Substring(0, 48) + " Convênio: " + Unidades.getConvenio(cCliente.convenio) + "</pre></td></tr>");
            sbHtml.Append("</table>");
            sbHtml.Append("</td></tr><tr><td>");
            // resultado do exame
            sbHtml.Append("<table  width='100%' align='left'>");
            sbHtml.Append("<tr><td> <pre class='linha_inf' style=\"font-family: 'Courier New', Courier, monospace; font-size: 11px;\">");
            //sbHtml.Append("Material: " + Unidades.getUnidadeCampo("03", sdCamposExame["000"].strMaterial) + "                                                      Refêrencias     ");
            //sbHtml.Append("</pre></td></tr>");
            //sbHtml.Append("<tr><td nowrap> <pre class='linha_inf'>");
            //sbHtml.Append("12345678901234567890123456789012345678901234567890123456789012345678901234567890");
            //sbHtml.Append("</pre></td></tr>");
            int[] iIndiceTipos = new int[99];

            bool bApresentaCampos = true;

            foreach (KeyValuePair <string, Exame.Exame> kvp in sdCamposExame)
            {
                int iTipoCampo = kvp.Value.iTipoCampo;

                if (iTipoCampo == 7)
                {
                    string teste = lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor;
                    if (teste.Equals("N"))
                    {
                        bApresentaCampos = false;
                    }
                    //08S01NS003+E14+Ix___FB7990010000300A0015
                    iIndiceTipos[iTipoCampo]++;
                }
                //if (iTipoCampo == 11)
                //{
                //    iTipoCampo = iTipoCampo;
                //    string teste = lLaudoValor[0][0].valor;
                //    if (teste.Substring(0, 3).Equals("06N"))
                //    {
                //        bApresentaCampos = true;
                //    }
                //    else
                //    {
                //        bApresentaCampos = false;
                //    }
                //    //08S01NS003+E14+Ix___FB7990010000300A0015

                //}
                if (iTipoCampo != 7 && bApresentaCampos)
                {
                    if ((lLaudoValor != null && lLaudoValor[iTipoCampo] != null) || (iTipoCampo == 11))
                    {
                        switch (iTipoCampo)
                        {
                        case 1:
                            vnAnterior = ValorNormal.getValNormal(cCliente, kvp.Value.dValoresNormais);
                            dValorReal = (double.Parse(lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor) / 100);
                            strCasasDecimaisAnterior = kvp.Value.strCasasDecimais;
                            if (strCasasDecimaisAnterior == "1")
                            {
                                strValorReal = "          " + String.Format("{0:#,##0.0}", dValorReal);
                            }
                            else
                            {
                                if (strCasasDecimaisAnterior == "2")
                                {
                                    strValorReal = "          " + String.Format("{0:#,##0.00}", dValorReal);
                                }
                                else
                                {
                                    strValorReal = "          " + String.Format("{0:#,##0}", dValorReal);
                                }
                            }

                            strUltimaUnidade = Unidades.getUnidadeCampo(kvp.Value.strTipoCampo, kvp.Value.strUnidade);

                            strConteudo  = (kvp.Value.strDescricao + "...............................").Substring(0, 31);
                            strConteudo += "<font class='resultado'>" + strValorReal.Substring(strValorReal.Length - 10, 10) + " ";
                            strConteudo += (strUltimaUnidade + "             ").Substring(0, 13) + " </font>";
                            //strConteudo += "<font class='fonte_pequena'>" + Apresentacao.apresentacaoValoresNormais1(vnAnterior) + " </font>";

                            string strValoresNormaisFormatados = Apresentacao.apresentacaoValoresNormais1(vnAnterior);
                            if (strValoresNormaisFormatados.Length == 0)
                            {
                                strConteudo += "<font class='fonte_pequena'>  </font>";
                            }
                            else
                            {
                                strConteudo         += "<font class='fonte_pequena'>" + strValoresNormaisFormatados + Apresentacao.marcarValorAlterado(vnAnterior.dLimInferior, vnAnterior.dLimSuperior, dValorReal) + " </font>";
                                bolImprimeReferencia = true;
                            }

                            sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                            sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));

                            iIndiceTipos[iTipoCampo]++;
                            break;

                        case 9:
                            int    codComponente = iTipoCampo;
                            string i             = lLaudoValor[codComponente][iIndiceTipos[iTipoCampo]].valor;
                            dValorPercentual = (double.Parse(i) / 100);

                            strValorPercentual = "      " + String.Format("{0:#,##0}", dValorPercentual);

                            double dValorRealCalculado = dValorPercentual * dValorReal / 100;

                            if (strCasasDecimaisAnterior == "1")
                            {
                                strValorReal = "       " + String.Format("{0:#,##0.0}", dValorRealCalculado);
                            }
                            else
                            {
                                if (strCasasDecimaisAnterior == "2")
                                {
                                    strValorReal = "       " + String.Format("{0:#,##0.00}", dValorRealCalculado);
                                }
                                else
                                {
                                    strValorReal = "       " + String.Format("{0:#,##0}", dValorRealCalculado);
                                }
                            }

                            //strValorReal = "          " + String.Format("{0:n}", dValorPercentual * dValorReal / 100);

                            strConteudo  = (kvp.Value.strDescricao + "...............................").Substring(0, 31);
                            strConteudo += "<font class='resultado'>" + strValorPercentual.Substring(strValorPercentual.Length - 6, 6) + " % ";

                            strConteudo += strValorReal.Substring(strValorReal.Length - 7, 7);
                            strConteudo += strUltimaUnidade.Substring(0, 8) + "</font>";

                            //ValorNormal vnAtual9 = ValorNormal.getValNormal(cCliente, kvp.Value.dValoresNormais);
                            //string strValoresNormaisFormatados9 = Apresentacao.apresentacaoValoresNormais9(vnAtual, vnAnterior);
                            ////if (strValoresNormaisFormatados9.Length == 0)
                            ////{
                            ////    strConteudo += "<font class='fonte_pequena'>  </font>";
                            ////}
                            ////else
                            ////{
                            ////strConteudo += "<font class='fonte_pequena'>" + Apresentacao.marcarValorAlterado(vnAtual9, dValorReal) + strValoresNormaisFormatados9 + " </font>";
                            ////bolImprimeReferencia = true;
                            //////}


                            ValorNormal vnAtual9 = ValorNormal.getValNormal(cCliente, kvp.Value.dValoresNormais);
                            //double dInf = ((vnAtual9.dLimInferior / 100) * vnAnterior.dLimInferior);
                            //double dSup = ((vnAtual9.dLimSuperior / 100) * vnAnterior.dLimSuperior);



                            strConteudo += "<font class='fonte_pequena'>"
                                           + Apresentacao.apresentacaoValoresNormais9(vnAtual9, vnAnterior)
                                           + Apresentacao.marcarValorAlterado(vnAtual9.dLimInferior, vnAtual9.dLimSuperior, dValorPercentual) + " </font>";

                            sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                            sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                            iIndiceTipos[iTipoCampo]++;
                            bolImprimeReferencia = true;
                            break;

                        case 2:
                            strResultado = lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor;
                            if (!strResultado.Trim().Equals("Nao processado"))
                            {
                                if (kvp.Value.strDescricao.Trim().Length == 0)
                                {
                                    strConteudo = "                               ";
                                }
                                else
                                {
                                    strConteudo = (kvp.Value.strDescricao + "...............................").Substring(0, 31);
                                }
                                strConteudo += "<font class='resultado'>" + lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor + " " + Unidades.getUnidadeCampo(kvp.Value.strTipoCampo, kvp.Value.strUnidade) + "</font>";
                                //strConteudo += ValorNormal.getValNormal(cCliente, kvp.Value.dValoresNormais);
                                sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                                sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                            }

                            iIndiceTipos[iTipoCampo]++;
                            break;

                        case 3:
                            strResultado = lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor;
                            if (!strResultado.Trim().Equals("Nao processado") && strResultado.Trim().Length != 0)
                            {
                                strConteudo = (kvp.Value.strDescricao + "...............................").Substring(0, 31);
                                if (kvp.Value.strLetra == "P")
                                {
                                    strConteudo += "<font class='fonte_pequena'>";
                                }
                                else
                                {
                                    strConteudo += "<font class='resultado'>";
                                }

                                strConteudo += lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor + "</font>";
                                sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                                sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                            }
                            iIndiceTipos[iTipoCampo]++;
                            break;

                        case 5:
                            strResultado = lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor;
                            if (!strResultado.Trim().Equals("Nao processado") && strResultado.Trim().Length != 0)
                            {
                                //iIndiceTipos[iTipoCampo]++;
                                //strResultado += lLaudoValor[iTipoCampo][iIndiceTipos[iTipoCampo]].valor;

                                if (kvp.Value.strLetra == "P")
                                {
                                    strConteudo = "<font class='fonte_pequena'>";
                                }
                                else
                                {
                                    strConteudo = "<font class='resultado'>";
                                }
                                strConteudo += kvp.Value.strDescricao;

                                strConteudo += strResultado + "</font>";
                                sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                                sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                            }
                            iIndiceTipos[iTipoCampo]++;
                            break;

                        case 11:
                            vnAtual = ValorNormal.getValNormal(cCliente, kvp.Value.dValoresNormais);
                            if (vnAtual != null)
                            {
                                if (kvp.Value.strLetra == "P")
                                {
                                    strConteudo = "<font class='fonte_pequena'>";
                                }
                                else
                                {
                                    strConteudo = "<font class='resultado'>";
                                }
                                strConteudo += kvp.Value.strDescricao;
                                strConteudo += "</font>";
                                sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                                sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                                iIndiceTipos[iTipoCampo]++;
                            }

                            break;

                        default:
                            sbHtmlResultados.Append("opc nr. " + kvp.Value.strDescricao);
                            break;
                        }
                        iTipoCampoAnterior = iTipoCampo;
                    }
                    else
                    {
                        if (iTipoCampo != 7 && kvp.Value.strDescricao.Trim().Length != 0)
                        {
                            if (kvp.Value.strLetra == "P")
                            {
                                strConteudo = "<font class='fonte_pequena'>";
                            }
                            else
                            {
                                strConteudo = "<font class='resultado'>";
                            }
                            strConteudo += kvp.Value.strDescricao + "</font>";
                            sbHtmlResultados.Append(Apresentacao.gerarLinha(strConteudo));
                            sbHtmlResultados.Append(Apresentacao.gerarLinhasVazias(kvp.Value.iPulo));
                            iIndiceTipos[iTipoCampo]++;
                        }
                    }
                    bApresentaCampos = true;
                }
            }
            if (bolImprimeReferencia)
            {
                sbHtml.Append("Material: " + Unidades.getUnidadeCampo("03", sdCamposExame["000"].strMaterial) + "                                                      Refêrencias     ");
            }
            else
            {
                sbHtml.Append("Material: " + Unidades.getUnidadeCampo("03", sdCamposExame["000"].strMaterial));
            }

            sbHtml.Append("</pre></td></tr>");
            sbHtml.Append(sbHtmlResultados);
            sbHtml.Append("<tr><td  class='linha_inf' colspan=5> &nbsp;</td></tr>");
            sbHtml.Append("</table>");
            sbHtml.Append("</td></tr></table>");
            sbHtml.Append("</div>");
            sbHtml.Append("</div>");
            //sbHtml.Append("</div>");
            sbHtml.Append("</BODY>");
            return(sbHtml.ToString());
        }