public void Write(TProtocol oprot)
 {
     oprot.IncrementRecursionDepth();
     try
     {
         TStruct struc = new TStruct("FichaAtendimentoIndividualChildThrift");
         oprot.WriteStructBegin(struc);
         TField field = new TField();
         if (NumeroProntuario != null && __isset.numeroProntuario)
         {
             field.Name = "numeroProntuario";
             field.Type = TType.String;
             field.ID   = 1;
             oprot.WriteFieldBegin(field);
             oprot.WriteString(NumeroProntuario);
             oprot.WriteFieldEnd();
         }
         if (Cns != null && __isset.cns)
         {
             field.Name = "cns";
             field.Type = TType.String;
             field.ID   = 2;
             oprot.WriteFieldBegin(field);
             oprot.WriteString(Cns);
             oprot.WriteFieldEnd();
         }
         if (__isset.dataNascimento)
         {
             field.Name = "dataNascimento";
             field.Type = TType.I64;
             field.ID   = 3;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(DataNascimento);
             oprot.WriteFieldEnd();
         }
         if (__isset.localDeAtendimento)
         {
             field.Name = "localDeAtendimento";
             field.Type = TType.I64;
             field.ID   = 4;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(LocalDeAtendimento);
             oprot.WriteFieldEnd();
         }
         if (__isset.sexo)
         {
             field.Name = "sexo";
             field.Type = TType.I64;
             field.ID   = 5;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(Sexo);
             oprot.WriteFieldEnd();
         }
         if (__isset.turno)
         {
             field.Name = "turno";
             field.Type = TType.I64;
             field.ID   = 6;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(Turno);
             oprot.WriteFieldEnd();
         }
         if (__isset.tipoAtendimento)
         {
             field.Name = "tipoAtendimento";
             field.Type = TType.I64;
             field.ID   = 7;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(TipoAtendimento);
             oprot.WriteFieldEnd();
         }
         if (__isset.pesoAcompanhamentoNutricional)
         {
             field.Name = "pesoAcompanhamentoNutricional";
             field.Type = TType.Double;
             field.ID   = 8;
             oprot.WriteFieldBegin(field);
             oprot.WriteDouble(PesoAcompanhamentoNutricional);
             oprot.WriteFieldEnd();
         }
         if (__isset.alturaAcompanhamentoNutricional)
         {
             field.Name = "alturaAcompanhamentoNutricional";
             field.Type = TType.Double;
             field.ID   = 9;
             oprot.WriteFieldBegin(field);
             oprot.WriteDouble(AlturaAcompanhamentoNutricional);
             oprot.WriteFieldEnd();
         }
         if (__isset.aleitamentoMaterno)
         {
             field.Name = "aleitamentoMaterno";
             field.Type = TType.I64;
             field.ID   = 10;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(AleitamentoMaterno);
             oprot.WriteFieldEnd();
         }
         if (__isset.dumDaGestante)
         {
             field.Name = "dumDaGestante";
             field.Type = TType.I64;
             field.ID   = 11;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(DumDaGestante);
             oprot.WriteFieldEnd();
         }
         if (__isset.idadeGestacional)
         {
             field.Name = "idadeGestacional";
             field.Type = TType.I32;
             field.ID   = 12;
             oprot.WriteFieldBegin(field);
             oprot.WriteI32(IdadeGestacional);
             oprot.WriteFieldEnd();
         }
         if (__isset.atencaoDomiciliarModalidade)
         {
             field.Name = "atencaoDomiciliarModalidade";
             field.Type = TType.I64;
             field.ID   = 13;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(AtencaoDomiciliarModalidade);
             oprot.WriteFieldEnd();
         }
         if (ProblemaCondicaoAvaliada != null && __isset.problemaCondicaoAvaliada)
         {
             field.Name = "problemaCondicaoAvaliada";
             field.Type = TType.Struct;
             field.ID   = 14;
             oprot.WriteFieldBegin(field);
             ProblemaCondicaoAvaliada.Write(oprot);
             oprot.WriteFieldEnd();
         }
         if (Exame != null && __isset.exame)
         {
             field.Name = "exame";
             field.Type = TType.List;
             field.ID   = 17;
             oprot.WriteFieldBegin(field);
             {
                 oprot.WriteListBegin(new TList(TType.Struct, Exame.Count));
                 foreach (ExameThrift _iter23 in Exame)
                 {
                     _iter23.Write(oprot);
                 }
                 oprot.WriteListEnd();
             }
             oprot.WriteFieldEnd();
         }
         if (__isset.vacinaEmDia)
         {
             field.Name = "vacinaEmDia";
             field.Type = TType.Bool;
             field.ID   = 18;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(VacinaEmDia);
             oprot.WriteFieldEnd();
         }
         if (__isset.pic)
         {
             field.Name = "pic";
             field.Type = TType.I64;
             field.ID   = 19;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(Pic);
             oprot.WriteFieldEnd();
         }
         if (__isset.ficouEmObservacao)
         {
             field.Name = "ficouEmObservacao";
             field.Type = TType.Bool;
             field.ID   = 20;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(FicouEmObservacao);
             oprot.WriteFieldEnd();
         }
         if (Nasfs != null && __isset.nasfs)
         {
             field.Name = "nasfs";
             field.Type = TType.List;
             field.ID   = 21;
             oprot.WriteFieldBegin(field);
             {
                 oprot.WriteListBegin(new TList(TType.I64, Nasfs.Count));
                 foreach (long _iter24 in Nasfs)
                 {
                     oprot.WriteI64(_iter24);
                 }
                 oprot.WriteListEnd();
             }
             oprot.WriteFieldEnd();
         }
         if (Condutas != null && __isset.condutas)
         {
             field.Name = "condutas";
             field.Type = TType.List;
             field.ID   = 22;
             oprot.WriteFieldBegin(field);
             {
                 oprot.WriteListBegin(new TList(TType.I64, Condutas.Count));
                 foreach (long _iter25 in Condutas)
                 {
                     oprot.WriteI64(_iter25);
                 }
                 oprot.WriteListEnd();
             }
             oprot.WriteFieldEnd();
         }
         if (__isset.stGravidezPlanejada)
         {
             field.Name = "stGravidezPlanejada";
             field.Type = TType.Bool;
             field.ID   = 23;
             oprot.WriteFieldBegin(field);
             oprot.WriteBool(StGravidezPlanejada);
             oprot.WriteFieldEnd();
         }
         if (__isset.nuGestasPrevias)
         {
             field.Name = "nuGestasPrevias";
             field.Type = TType.I32;
             field.ID   = 24;
             oprot.WriteFieldBegin(field);
             oprot.WriteI32(NuGestasPrevias);
             oprot.WriteFieldEnd();
         }
         if (__isset.nuPartos)
         {
             field.Name = "nuPartos";
             field.Type = TType.I32;
             field.ID   = 25;
             oprot.WriteFieldBegin(field);
             oprot.WriteI32(NuPartos);
             oprot.WriteFieldEnd();
         }
         if (__isset.racionalidadeSaude)
         {
             field.Name = "racionalidadeSaude";
             field.Type = TType.I64;
             field.ID   = 26;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(RacionalidadeSaude);
             oprot.WriteFieldEnd();
         }
         if (__isset.perimetroCefalico)
         {
             field.Name = "perimetroCefalico";
             field.Type = TType.Double;
             field.ID   = 27;
             oprot.WriteFieldBegin(field);
             oprot.WriteDouble(PerimetroCefalico);
             oprot.WriteFieldEnd();
         }
         if (__isset.dataHoraInicialAtendimento)
         {
             field.Name = "dataHoraInicialAtendimento";
             field.Type = TType.I64;
             field.ID   = 28;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(DataHoraInicialAtendimento);
             oprot.WriteFieldEnd();
         }
         if (__isset.dataHoraFinalAtendimento)
         {
             field.Name = "dataHoraFinalAtendimento";
             field.Type = TType.I64;
             field.ID   = 29;
             oprot.WriteFieldBegin(field);
             oprot.WriteI64(DataHoraFinalAtendimento);
             oprot.WriteFieldEnd();
         }
         if (CpfCidadao != null && __isset.cpfCidadao)
         {
             field.Name = "cpfCidadao";
             field.Type = TType.String;
             field.ID   = 30;
             oprot.WriteFieldBegin(field);
             oprot.WriteString(CpfCidadao);
             oprot.WriteFieldEnd();
         }
         if (Medicamentos != null && __isset.medicamentos)
         {
             field.Name = "medicamentos";
             field.Type = TType.List;
             field.ID   = 31;
             oprot.WriteFieldBegin(field);
             {
                 oprot.WriteListBegin(new TList(TType.Struct, Medicamentos.Count));
                 foreach (br.gov.saude.esusab.ras.common.MedicamentoThrift _iter26 in Medicamentos)
                 {
                     _iter26.Write(oprot);
                 }
                 oprot.WriteListEnd();
             }
             oprot.WriteFieldEnd();
         }
         if (Encaminhamentos != null && __isset.encaminhamentos)
         {
             field.Name = "encaminhamentos";
             field.Type = TType.List;
             field.ID   = 32;
             oprot.WriteFieldBegin(field);
             {
                 oprot.WriteListBegin(new TList(TType.Struct, Encaminhamentos.Count));
                 foreach (br.gov.saude.esusab.ras.common.EncaminhamentoExternoThrift _iter27 in Encaminhamentos)
                 {
                     _iter27.Write(oprot);
                 }
                 oprot.WriteListEnd();
             }
             oprot.WriteFieldEnd();
         }
         oprot.WriteFieldStop();
         oprot.WriteStructEnd();
     }
     finally
     {
         oprot.DecrementRecursionDepth();
     }
 }
        public void Write(TProtocol oprot)
        {
            TStruct struc = new TStruct("FichaAtendimentoIndividualChildThrift");

            oprot.WriteStructBegin(struc);
            TField field = new TField();

            if (NumeroProntuario != null && __isset.numeroProntuario)
            {
                field.Name = "numeroProntuario";
                field.Type = TType.String;
                field.ID   = 1;
                oprot.WriteFieldBegin(field);
                oprot.WriteString(NumeroProntuario);
                oprot.WriteFieldEnd();
            }
            if (Cns != null && __isset.cns)
            {
                field.Name = "cns";
                field.Type = TType.String;
                field.ID   = 2;
                oprot.WriteFieldBegin(field);
                oprot.WriteString(Cns);
                oprot.WriteFieldEnd();
            }
            if (__isset.dataNascimento)
            {
                field.Name = "dataNascimento";
                field.Type = TType.I64;
                field.ID   = 3;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(DataNascimento);
                oprot.WriteFieldEnd();
            }
            if (__isset.localDeAtendimento)
            {
                field.Name = "localDeAtendimento";
                field.Type = TType.I64;
                field.ID   = 4;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(LocalDeAtendimento);
                oprot.WriteFieldEnd();
            }
            if (__isset.sexo)
            {
                field.Name = "sexo";
                field.Type = TType.I64;
                field.ID   = 5;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(Sexo);
                oprot.WriteFieldEnd();
            }
            if (__isset.turno)
            {
                field.Name = "turno";
                field.Type = TType.I64;
                field.ID   = 6;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(Turno);
                oprot.WriteFieldEnd();
            }
            if (__isset.tipoAtendimento)
            {
                field.Name = "tipoAtendimento";
                field.Type = TType.I64;
                field.ID   = 7;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(TipoAtendimento);
                oprot.WriteFieldEnd();
            }
            if (__isset.pesoAcompanhamentoNutricional)
            {
                field.Name = "pesoAcompanhamentoNutricional";
                field.Type = TType.Double;
                field.ID   = 8;
                oprot.WriteFieldBegin(field);
                oprot.WriteDouble(PesoAcompanhamentoNutricional);
                oprot.WriteFieldEnd();
            }
            if (__isset.alturaAcompanhamentoNutricional)
            {
                field.Name = "alturaAcompanhamentoNutricional";
                field.Type = TType.Double;
                field.ID   = 9;
                oprot.WriteFieldBegin(field);
                oprot.WriteDouble(AlturaAcompanhamentoNutricional);
                oprot.WriteFieldEnd();
            }
            if (__isset.aleitamentoMaterno)
            {
                field.Name = "aleitamentoMaterno";
                field.Type = TType.I64;
                field.ID   = 10;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(AleitamentoMaterno);
                oprot.WriteFieldEnd();
            }
            if (__isset.dumDaGestante)
            {
                field.Name = "dumDaGestante";
                field.Type = TType.I64;
                field.ID   = 11;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(DumDaGestante);
                oprot.WriteFieldEnd();
            }
            if (__isset.idadeGestacional)
            {
                field.Name = "idadeGestacional";
                field.Type = TType.I32;
                field.ID   = 12;
                oprot.WriteFieldBegin(field);
                oprot.WriteI32(IdadeGestacional);
                oprot.WriteFieldEnd();
            }
            if (__isset.atencaoDomiciliarModalidade)
            {
                field.Name = "atencaoDomiciliarModalidade";
                field.Type = TType.I64;
                field.ID   = 13;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(AtencaoDomiciliarModalidade);
                oprot.WriteFieldEnd();
            }
            if (ProblemaCondicaoAvaliada != null && __isset.problemaCondicaoAvaliada)
            {
                field.Name = "problemaCondicaoAvaliada";
                field.Type = TType.Struct;
                field.ID   = 14;
                oprot.WriteFieldBegin(field);
                ProblemaCondicaoAvaliada.Write(oprot);
                oprot.WriteFieldEnd();
            }
            if (ExamesSolicitados != null && __isset.examesSolicitados)
            {
                field.Name = "examesSolicitados";
                field.Type = TType.List;
                field.ID   = 15;
                oprot.WriteFieldBegin(field);
                {
                    oprot.WriteListBegin(new TList(TType.String, ExamesSolicitados.Count));
                    foreach (string _iter23 in ExamesSolicitados)
                    {
                        oprot.WriteString(_iter23);
                    }
                    oprot.WriteListEnd();
                }
                oprot.WriteFieldEnd();
            }
            if (ExamesAvaliados != null && __isset.examesAvaliados)
            {
                field.Name = "examesAvaliados";
                field.Type = TType.List;
                field.ID   = 16;
                oprot.WriteFieldBegin(field);
                {
                    oprot.WriteListBegin(new TList(TType.String, ExamesAvaliados.Count));
                    foreach (string _iter24 in ExamesAvaliados)
                    {
                        oprot.WriteString(_iter24);
                    }
                    oprot.WriteListEnd();
                }
                oprot.WriteFieldEnd();
            }
            if (OutrosSia != null && __isset.outrosSia)
            {
                field.Name = "outrosSia";
                field.Type = TType.List;
                field.ID   = 17;
                oprot.WriteFieldBegin(field);
                {
                    oprot.WriteListBegin(new TList(TType.Struct, OutrosSia.Count));
                    foreach (OutrosSiaThrift _iter25 in OutrosSia)
                    {
                        _iter25.Write(oprot);
                    }
                    oprot.WriteListEnd();
                }
                oprot.WriteFieldEnd();
            }
            if (__isset.vacinaEmDia)
            {
                field.Name = "vacinaEmDia";
                field.Type = TType.Bool;
                field.ID   = 18;
                oprot.WriteFieldBegin(field);
                oprot.WriteBool(VacinaEmDia);
                oprot.WriteFieldEnd();
            }
            if (__isset.pic)
            {
                field.Name = "pic";
                field.Type = TType.I64;
                field.ID   = 19;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(Pic);
                oprot.WriteFieldEnd();
            }
            if (__isset.ficouEmObservacao)
            {
                field.Name = "ficouEmObservacao";
                field.Type = TType.Bool;
                field.ID   = 20;
                oprot.WriteFieldBegin(field);
                oprot.WriteBool(FicouEmObservacao);
                oprot.WriteFieldEnd();
            }
            if (Nasfs != null && __isset.nasfs)
            {
                field.Name = "nasfs";
                field.Type = TType.List;
                field.ID   = 21;
                oprot.WriteFieldBegin(field);
                {
                    oprot.WriteListBegin(new TList(TType.I64, Nasfs.Count));
                    foreach (long _iter26 in Nasfs)
                    {
                        oprot.WriteI64(_iter26);
                    }
                    oprot.WriteListEnd();
                }
                oprot.WriteFieldEnd();
            }
            if (Condutas != null && __isset.condutas)
            {
                field.Name = "condutas";
                field.Type = TType.List;
                field.ID   = 22;
                oprot.WriteFieldBegin(field);
                {
                    oprot.WriteListBegin(new TList(TType.I64, Condutas.Count));
                    foreach (long _iter27 in Condutas)
                    {
                        oprot.WriteI64(_iter27);
                    }
                    oprot.WriteListEnd();
                }
                oprot.WriteFieldEnd();
            }
            if (__isset.stGravidezPlanejada)
            {
                field.Name = "stGravidezPlanejada";
                field.Type = TType.Bool;
                field.ID   = 23;
                oprot.WriteFieldBegin(field);
                oprot.WriteBool(StGravidezPlanejada);
                oprot.WriteFieldEnd();
            }
            if (__isset.nuGestasPrevias)
            {
                field.Name = "nuGestasPrevias";
                field.Type = TType.I32;
                field.ID   = 24;
                oprot.WriteFieldBegin(field);
                oprot.WriteI32(NuGestasPrevias);
                oprot.WriteFieldEnd();
            }
            if (__isset.nuPartos)
            {
                field.Name = "nuPartos";
                field.Type = TType.I32;
                field.ID   = 25;
                oprot.WriteFieldBegin(field);
                oprot.WriteI32(NuPartos);
                oprot.WriteFieldEnd();
            }
            if (__isset.racionalidadeSaude)
            {
                field.Name = "racionalidadeSaude";
                field.Type = TType.I64;
                field.ID   = 26;
                oprot.WriteFieldBegin(field);
                oprot.WriteI64(RacionalidadeSaude);
                oprot.WriteFieldEnd();
            }
            if (__isset.perimetroCefalico)
            {
                field.Name = "perimetroCefalico";
                field.Type = TType.Double;
                field.ID   = 27;
                oprot.WriteFieldBegin(field);
                oprot.WriteDouble(PerimetroCefalico);
                oprot.WriteFieldEnd();
            }
            oprot.WriteFieldStop();
            oprot.WriteStructEnd();
        }