filtros fecha nombre

This commit is contained in:
santiago.sferco 2024-07-10 12:51:28 -03:00
parent 2a7558ada1
commit eedaa8a439

View File

@ -28,7 +28,10 @@ defmodule DerivantesWeb.DerivantesLive do
class="flex items-stretch" class="flex items-stretch"
> >
<.input field={@filters[:dni]} type="text" placeholder="Documento del paciente"/> <.input field={@filters[:dni]} type="text" placeholder="Documento del paciente"/>
<.input field={@filters[:accession]} type="text" placeholder="Accession number"/> <.input field={@filters[:nombre]} type="text" placeholder="Nombre del paciente"/>
<.input field={@filters[:apellido]} type="text" placeholder="Apellido del paciente"/>
<.input field={@filters[:fecha]} type="date"/>
<br> <br>
<:actions> <:actions>
<.button class="w-full"> <.button class="w-full">
@ -107,20 +110,32 @@ defmodule DerivantesWeb.DerivantesLive do
def get_studies(socket, filter) do def get_studies(socket, filter) do
keys = Map.keys(filter) keys = Map.keys(filter)
IO.inspect(keys)
mat_filter = dynamic([vl], vl.matder == ^socket.assigns.current_user.matricula) mat_filter = dynamic([vl], vl.matder == ^socket.assigns.current_user.matricula)
filter_conditions = filter_conditions =
Enum.reduce(keys, mat_filter, fn v, filter_conditions -> Enum.reduce(keys, mat_filter, fn v, filter_conditions ->
case v do case v do
"dni" -> "dni" ->
if(filter["dni"] != "") do if(filter["dni"] != "") do
dynamic([vl], vl.tipo_documento == ^filter["dni"] and ^filter_conditions) dni_with_du = "DU" <> filter["dni"]
dynamic([vl], vl.tipo_documento == ^dni_with_du and ^filter_conditions)
else else
filter_conditions filter_conditions
end end
"accession" -> "nombre" ->
if(filter["accession"] != "") do if(filter["nombre"] != "") do
dynamic([vl], vl.accessionnumber == ^filter["accession"] and ^filter_conditions) dynamic([vl], vl.patientfirstname == ^filter["nombre"] and ^filter_conditions)
else
filter_conditions
end
"apellido" ->
if(filter["apellido"] != "") do
dynamic([vl], vl.patientlastname == ^filter["apellido"] and ^filter_conditions)
else
filter_conditions
end
"fecha" ->
if(filter["fecha"] != "") do
dynamic([vl], vl.start_date == ^String.replace(filter["fecha"], "-", "") and ^filter_conditions)
else else
filter_conditions filter_conditions
end end