MakersNetwork/agenda-saude

View on GitHub
app/views/community/patients/_form.html.erb

Summary

Maintainability
Test Coverage
<%= error_messages_for(f.object) %>

<p>
  As informações coletadas são de uso único e exclusivo do sistema de agendamento da vacina, afim de atestar a
  veracidade do cadastro.
</p>

<div class="form-row">
  <div class="form-group col-md-12">
    <div class="input-group mb-2">
      <div class="input-group-prepend">
        <div class="input-group-text">CPF</div>
      </div>
      <%= f.text_field :cpf,
                       readonly: true,
                       class: "form-control form-control-lg",
                       aria: { describedby: "cpfHelp" } %>
    </div>
  </div>
</div>

<h3>Dados pessoais</h3>

<p>Todos os dados informados serão confirmados no momento da vacinação.</p>

<div class="form-row">
  <div class="form-group col-md-4">
    <%= f.label :name %>
    <%= f.text_field :name,
                     autofocus: true, autocomplete: "name", required: true,
                     class: "form-control",
                     aria: { describedby: "nameHelp" } %>
    <small id="nameHelp" class="form-text text-muted">
      Nome completo conforme documento de identificação com foto.
    </small>
  </div>

  <div class="form-group col-md-4">
    <%= f.label :birthday %>
    <div class="form-row date">
      <%= f.date_select :birthday,
                        {
                          start_year: (Date.current.year.to_i) - 1, # min age
                          end_year: Date.current.year.to_i - 120, # max age
                          with_css_classes: true,
                          prompt: {
                            day: '- dia -',
                            month: '- mês -',
                            year: '- ano -'
                          },
                        },
                        required: true,
                        aria: { describedby: "birthDateHelp" },
                        class: "form-control" %>
    </div>
    <small id="birthDateHelp" class="form-text text-muted">
      Data de nascimento conforme documento de identificação com foto.
    </small>
  </div>

  <div class="form-group col-md-4">
    <%= f.label :mother_name %>
    <%= f.text_field :mother_name,
                     autocomplete: "mother_name", required: true,
                     class: "form-control" %>
    <small id="birthDateHelp" class="form-text text-muted">
      Nome completo da <strong>mãe</strong>.
    </small>
  </div>
</div>

<h3>Grupos prioritários que pertence</h3>

<%= embedded_page :patient_groups_priority -%>

<p>Escolha ao menos uma das opções abaixo.</p>

<div class="form-row">
  <div class="form-group col-md-12">
    <%= render partial: '/shared/group_boxes', locals: { for_group: :priority, f: f } %>
  </div>
</div>

<h3>Comorbidades que possui</h3>

<%= embedded_page :patient_groups_comorbidity -%>

<p>Escolha ao menos uma das opções abaixo.</p>

<div class="form-row">
  <div class="form-group col-md-12">
    <%= render partial: '/shared/group_boxes', locals: { for_group: :comorbidity, f: f } %>
  </div>
</div>

<h3>Endereço residencial</h3>

<div class="form-row">
  <div class="form-group col-md-8">
    <%= f.label :public_place %>
    <%= f.text_field :public_place,
                     autocomplete: "place", required: true,
                     class: "form-control" %>
  </div>

  <div class="form-group col-md-4">
    <%= f.label :place_number %>
    <%= f.text_field :place_number,
                     required: true,
                     class: "form-control" %>
  </div>
</div>

<div class="form-row">
  <div class="form-group col-md-8">
    <%= f.label :street_2 %>
    <%= optional_field_tag %>
    <%= f.text_field :street_2,
                     autocomplete: "place",
                     class: "form-control" %>
  </div>

  <div class="form-group col-md-4">
    <%= f.label :neighborhood_id %>
    <%= f.collection_select :neighborhood_id, Neighborhood.order(:name), :id, :name, { prompt: '- Escolha o bairro -' },
                            class: "form-control" %>
  </div>
</div>

<div class="form-row">
  <div class="form-group col-md-6">
    <%= f.label :phone %>
    <%= f.text_field :phone,
                     autocomplete: "phone", required: true,
                     class: "form-control sp-celphones" %>
  </div>

  <div class="form-group col-md-6">
    <%= f.label :other_phone %>
    <%= optional_field_tag %>
    <%= f.text_field :other_phone,
                     autocomplete: "other_phone", required: false,
                     class: "form-control sp-celphones" %>
  </div>
</div>

<h3>Dados complementares</h3>

<div class="form-row">
  <div class="form-group col-md-8">
    <%= f.label :email %>
    <%= optional_field_tag %>
    <%= f.email_field :email,
                      autocomplete: "email", required: false,
                      class: "form-control",
                      aria: { describedby: "emailHelp" } %>
    <small id="emailHelp" class="form-text text-muted">
      Endereço de email.
    </small>
  </div>

  <div class="form-group col-md-4">
    <%= f.label :sus %>
    <%= optional_field_tag %>
    <%= f.number_field :sus,
                       autocomplete: "sus", required: false,
                       class: "form-control" %>
    <small id="susHelp" class="form-text text-muted">
      Número do cartão SUS. Descubra o número acessando o
      <a href="https://conectesus-paciente.saude.gov.br" target="cartaosus">ConecteSUS</a>.
    </small>
  </div>
</div>

<% if InquiryQuestion.active.any? -%>
  <h3>
    Inquérito
    <%= optional_field_tag %>
  </h3>

  <%= embedded_page :patient_inquiry_intro -%>

  <div class="form-row">
    <div class="form-group col-md-12">
      <%= render partial: '/shared/inquiry', locals: { f: f } %>
    </div>
  </div>
<% end -%>