Dios mío que horror no puedo hacer nada más que editar el archivo desde el propio gitea me quiero morir
This commit is contained in:
santiago.sferco 2024-07-04 11:57:50 -03:00
parent efd656a208
commit 1bfa423d04

View File

@ -1,109 +1,163 @@
defmodule DerivantesWeb.DerivantesLive do defmodule DerivantesWeb.DerivantesLive do
use DerivantesWeb, :live_view use DerivantesWeb, :live_view
use Phoenix.Component use Phoenix.Component
import Ecto.Query import Ecto.Query
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, filters = to_form(%{}, as: "filters")
socket {:ok,
|> assign(studies: get_studies(socket)) socket
} |> assign(studies: get_studies(socket, %{}))
end |> assign(filters: filters)
}
def render(assigns) do end
~H"""
<div> def render(assigns) do
<%= if length(@studies) > 0 do %> ~H"""
<div class="estudio_patientname"> <div>
<h1>Bienvenido, <%= @current_user.email %> </h1> <div class="pantalla_estudios_header">
<p>Para ver un estudio haga click en el icono de Informe o de Imágenes.</p> <img src={~p"/images/sana_americano_logo.png"} alt="IM LOGO"/>
</div> </div>
<div class="estudio_container"> <div class="estudio_patientname">
<div class="estudio_details"> <h1>Bienvenido, <%= @current_user.email %> </h1>
<p>Estudios</p> <p>Para ver un estudio haga click en el icono de Informe o de Imágenes.</p>
</div> </div>
<div class="estudio_icons"> <div>
<p>Informe</p> <.simple_form
<p>Imágenes</p> for={@filters}
</div> id="filters"
</div> phx-update="ignore"
<%= for study <- @studies do %> phx-submit="filter_study"
<div class="estudio_container"> >
<div class="estudio_details"> <.input field={@filters[:dni]} type="text"/>
<p><b>Fecha y hora:</b> <%= format_date(study.fecha) %> - <%= format_hour(study.hora) %></p> <.input field={@filters[:accession]} type="text"/>
<p><b>DNI:</b> <%= study.dni %></p> <:actions>
<p><b>Accession N°</b> <%= study.accession %></p> <.button phx-disable-with="Buscando..." class="w-full">Buscar</.button>
<p><b>Matricula derivante</b> <%= @current_user.matricula %></p> </:actions>
</.simple_form>
</div> </div>
<div class="estudio_icons"> <%= if length(@studies) > 0 do %>
<%= case {study.modality, study.esteco, study.estrx} do %> <div class="estudio_container">
<% {"US", "F", _} -> %> <div class="estudio_details">
<a href={"https://sga.sanatorio-americano.com.ar/diagnostico/impeco.asp?id=#{study.accession}"} target="_blank" style="color: #297177"> <p>Estudios</p>
<i class="fa-regular fa-file-lines fa-3x" style="color: #297177"></i> </div>
</a> <div class="estudio_icons">
<% {modality, _, "E"} when modality != "US" -> %> <p>Informe</p>
<a href={"https://ed.sanatorio-americano.com.ar/cgi-bin/minisite.bf/pdfonthefly/#{study.accession}"} target="_blank" style="color: #297177"> <p>Imágenes</p>
<i class="fa-regular fa-file-lines fa-3x" style="color: #297177"></i> </div>
</a> </div>
<% _ -> %> <%= for study <- @studies do %>
<i class="fa-solid fa-file-circle-question fa-3x" style="color: #DCDCDC"></i> <div class="estudio_container">
<% end %> <div class="estudio_details">
<%= if study.modality != "US" do %> <p><b>Fecha y hora:</b> <%= format_date(study.fecha) %> - <%= format_hour(study.hora) %></p>
<a href={"https://imagenes.sanatorio-americano.com.ar/portal/Default.aspx?user_name=urlusr&password=1nt3gr4c10n$$$&accession_number=#{study.accession}"} target="_blank" style="color: #297177"> <p><b>DNI:</b> <%= study.dni %></p>
<i class="fa-solid fa-file-circle-check fa-3x" style="color: #297177"></i> <p><b>Accession N°</b> <%= study.accession %></p>
</a> <p><b>Matricula derivante</b> <%= @current_user.matricula %></p>
<% else %>
<i class="fa-solid fa-file-circle-question fa-3x" style="color: #DCDCDC"></i> </div>
<% end %> <div class="estudio_icons">
</div> <%= case {study.modality, study.esteco, study.estrx} do %>
</div> <% {"US", "F", _} -> %>
<% end %> <a href={"https://sga.sanatorio-americano.com.ar/diagnostico/impeco.asp?id=#{study.accession}"} target="_blank" style="color: #297177">
<% else %> <i class="fa-regular fa-file-lines fa-3x" style="color: #297177"></i>
<div> </a>
<h1> <% {modality, _, "E"} when modality != "US" -> %>
No hay estudios para mostrar <a href={"https://ed.sanatorio-americano.com.ar/cgi-bin/minisite.bf/pdfonthefly/#{study.accession}"} target="_blank" style="color: #297177">
</h1> <i class="fa-regular fa-file-lines fa-3x" style="color: #297177"></i>
</div> </a>
<% end %> <% _ -> %>
</div> <i class="fa-solid fa-file-circle-question fa-3x" style="color: #DCDCDC"></i>
<% end %>
""" <%= if study.modality != "US" do %>
end <a href={"https://imagenes.sanatorio-americano.com.ar/portal/Default.aspx?user_name=urlusr&password=1nt3gr4c10n$$$&accession_number=#{study.accession}"} target="_blank" style="color: #297177">
<i class="fa-solid fa-file-circle-check fa-3x" style="color: #297177"></i>
def format_date(date_string) when is_binary(date_string) do </a>
anio = String.slice(date_string, 0..3) <% else %>
mes = String.slice(date_string, 4..5) <i class="fa-solid fa-file-circle-question fa-3x" style="color: #DCDCDC"></i>
dia = String.slice(date_string, 6..7) <% end %>
"#{dia}/#{mes}/#{anio}" </div>
end </div>
def format_hour(hour_string) when is_binary(hour_string) do <% end %>
hora = String.slice(hour_string, 0..1) <% else %>
minutos = String.slice(hour_string, 2..3) <div>
segundos = String.slice(hour_string, 4..6) <h1>
"#{hora}:#{minutos}:#{segundos}" No hay estudios para mostrar
end </h1>
</div>
def get_studies(socket) do <% end %>
query = from vl in "V_LISTAINGRESOS", </div>
select: %{
idstudy: field(vl, :ID), """
estrx: field(vl, :ESTRX), end
esteco: field(vl, :ESTECO),
# desc: field(vl, :PROD_DESC), def format_date(date_string) when is_binary(date_string) do
hora: field(vl, :START_TIME), anio = String.slice(date_string, 0..3)
fecha: field(vl, :START_DATE), mes = String.slice(date_string, 4..5)
modality: field(vl, :MODALITY), dia = String.slice(date_string, 6..7)
dni: field(vl, :TIPO_DOCUMENTO), "#{dia}/#{mes}/#{anio}"
lastname: field(vl, :PATIENTLASTNAME), end
accession: field(vl, :ACCESSIONNUMBER), def format_hour(hour_string) when is_binary(hour_string) do
patientname: field(vl, :PATIENTFIRSTNAME) hora = String.slice(hour_string, 0..1)
}, minutos = String.slice(hour_string, 2..3)
where: field(vl, :MATDER) == ^socket.assigns.current_user.matricula, segundos = String.slice(hour_string, 4..6)
order_by: [desc: field(vl, :START_DATE)], "#{hora}:#{minutos}:#{segundos}"
limit: 20 end
estudios = Derivantes.TdsRepo.all(query)
estudios def get_studies(socket, filter) do
end
keys = Map.keys(filter)
end IO.inspect(keys)
mat_filter = dynamic([vl], vl.matder == ^socket.assigns.current_user.matricula)
filter_conditions =
Enum.reduce(keys, mat_filter, fn v, filter_conditions ->
case v do
"dni" ->
if(filter["dni"] != "") do
dynamic([vl], vl.tipo_documento == ^filter["dni"] and ^filter_conditions)
else
filter_conditions
end
"accession" ->
if(filter["accession"] != "") do
dynamic([vl], vl.accessionnumber == ^filter["accession"] and ^filter_conditions)
else
filter_conditions
end
_ ->
filter_conditions
end
end)
query = from vl in "V_LISTAINGRESOS",
select: %{
idstudy: field(vl, :ID),
estrx: field(vl, :ESTRX),
esteco: field(vl, :ESTECO),
# desc: field(vl, :PROD_DESC),
hora: field(vl, :START_TIME),
fecha: field(vl, :START_DATE),
modality: field(vl, :MODALITY),
dni: field(vl, :TIPO_DOCUMENTO),
lastname: field(vl, :PATIENTLASTNAME),
accession: field(vl, :ACCESSIONNUMBER),
patientname: field(vl, :PATIENTFIRSTNAME)
},
where: ^filter_conditions,
order_by: [desc: field(vl, :START_DATE)],
limit: 20
estudios = Derivantes.TdsRepo.all(query)
estudios
end
def handle_event(event, params, socket) do
case event do
"filter_study" ->
studies = get_studies(socket, params["filters"])
{:noreply,
socket
|> assign(studies: studies)
}
end
end
end