Duvida---estou com dificuldade em verificar dados de um atributo da tabela

18/11/2011

0


estou a fazer uma aplicacao para um marcacao de consultas para um hospital onde tenho as tabelas médicos(id,nome,apelido), pacientes(id,nome,apelido,datanascimento,sexo) e consultas(id,medico_id,paciente_id).
Eu consigo inserir pacientes, médicos e marcar consultas para pacientes com os médicos.
O problema é que eu queria que antes que um médico efectua-se uma consulta ele pudesse verificar todas consultas feitas para um determinado paciente. E não tenho ideia de como fazer isso os controllers e models da classe consulta que é a principal estão abaixo:


class ConsultasController < ApplicationController

before_filter :authorize

layout suphc
#END:layout

# GET /consultas
# GET /consultas.xml
def index

@user = User.find(session[:user_id])

if @user.medico
@consultas = Consulta.find_all_by_medico_id(@user.medico.id)
end
if @consultas == nil and @user.paciente
@consultas = Consulta.find_all_by_paciente_id(@user.paciente.id)
end
if @consultas == nil and @user.auxadmin
@consultas = Consulta.all
end

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @consultas }

end
end

def historico

end

# GET /consultas/1
# GET /consultas/1.xml
def show
@consulta = Consulta.find(params[:id])
@user = User.find_by_id(session[:user_id])
@consulta.user = @user


respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @consulta }

end
end

# GET /consultas/new
# GET /consultas/new.xml
def new
@consulta = Consulta.new
@user = User.find(session[:user_id])

respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @consulta }
end
end




# GET /consultas/1/edit
def edit


@consulta = Consulta.find(params[:id])
@user = User.find_by_id(session[:user_id])
@consulta.user = @user


end

# POST /consultas
# POST /consultas.xml
def create
@consulta = Consulta.new(params[:consulta])

@user = User.find_by_id(session[:user_id])
@consulta.user = @user

# se o utilizador for paciente, ñ é preciso seleccionar
if @user.paciente
@consulta.paciente = @user.paciente
end

respond_to do |format|
if @consulta.save
format.html { redirect_to(@consulta, :notice => Consulta foi criada com sucesso.) }
format.xml { render :xml => @consulta, :status => :created, :location => @consulta }
else
format.html { render :action => new }
format.xml { render :xml => @consulta.errors, :status => :unprocessable_entity }
end
end
end

# PUT /consultas/1
# PUT /consultas/1.xml
def update


@consulta = Consulta.find(params[:id])

@user = User.find_by_id(session[:user_id])
@consulta.user = @user

# se o utilizador for paciente, ñ é preciso seleccionar
if @user.paciente
@consulta.paciente = @user.paciente
end

respond_to do |format|
if @consulta.update_attributes(params[:consulta])
format.html { redirect_to(@consulta, :notice => Consulta foi actualizada com sucesso.) }
format.xml { head :ok }
else
format.html { render :action => edit }
format.xml { render :xml => @consulta.errors, :status => :unprocessable_entity }
end
end
end

# DELETE /consultas/1
# DELETE /consultas/1.xml
def destroy

if access_to(admin) == 0
return 0
end

@consulta = Consulta.find(params[:id])
@consulta.destroy

respond_to do |format|
format.html { redirect_to(consultas_url) }
format.xml { head :ok }
end
end
end

Model
class Consulta < ActiveRecord::Base

# validates_presence_of :estado ,:message => -O Campo estado deve ser preenchido
validates_numericality_of :preco,:message => -O campo deve ser um númerico

belongs_to :medico, :foreign_key => medico_id
belongs_to :paciente, :foreign_key => paciente_id
belongs_to :user, :foreign_key => user_id
belongs_to :receita, :foreign_key => receita_id

def self.return_disponibilidades

find(:all )
end

def self.return_consultas
find(:all,:conditions => estado = Marcada)
end


def self.medicos_dados(medico)
consulta = self.new
consulta.medico = medico
return consulta
end

def privacy_enabled=(val)
self.privacy_disabled = val == 0
end

def privacy_enabled
!privacy_disabled
end


def self.return_consultas
find(:all,:conditions => estado = f)
end

end
Telmajackson

Telmajackson

Responder

Posts

20/08/2012

Rodrigo Jardim

é só fazer uma tela de para o medico pesquisar pelo consulta.paciente, provavelmente criando um controller novo
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar