Seleccionar idstudy segun identifierfield para redirect

This commit is contained in:
2025-10-28 09:43:28 -03:00
parent 1dd403c587
commit 513bdcbb67

View File

@ -12,13 +12,6 @@ defmodule ApiWeb.Redirect do
viewer_uid = Envar.get("imViewer4_uid") viewer_uid = Envar.get("imViewer4_uid")
gethash = Envar.get("imViewer4_gethash") gethash = Envar.get("imViewer4_gethash")
idsite = Envar.get("IDSITE") idsite = Envar.get("IDSITE")
studyidentifier_ed = Envar.get("acceso_ed")
accession = studyidentifier = if studyidentifier_ed == "IDSTUDY" do
String.to_integer(accession)
else
accession
end
Logger.info("parametros: #{inspect(accession)}") Logger.info("parametros: #{inspect(accession)}")
@ -79,7 +72,37 @@ defmodule ApiWeb.Redirect do
defp open_imviewer4(v, accession, expiration) do defp open_imviewer4(v, accession, expiration) do
url = v.gethash <> v.client_uuid url = v.gethash <> v.client_uuid
case Req.post(url, json: %{"accessionnumber" => accession, "expiration" => expiration}) do studyidentifier = Envar.get("IDENTIFIERFIELD") || "IDSTUDY"
query =
if studyidentifier == "IDSTUDY" do
from s in "study",
join: p in "patient",
on: p.idpatient == s.idpatient,
where: s.accessionnumber == ^accessionnumber,
select: %{
idstudy: s.idstudy
}
else
from s in "study",
join: p in "patient",
on: p.idpatient == s.idpatient,
where: s.accessionnumber == ^accessionnumber,
select: %{
idstudy: s.idstudy
}
end
idstudy = case Repo.one(query) do
nil ->
"nil"
res ->
res.idstudy
end
idstudy_str = to_string(idstudy)
case Req.post(url, json: %{"idstudy" => idstudy_str, "expiration" => expiration}) do
{:ok, %Req.Response{status: 200, body: %{"hash" => hash}}} -> {:ok, %Req.Response{status: 200, body: %{"hash" => hash}}} ->
{:ok, hash} {:ok, hash}