Subiendo api v2
This commit is contained in:
70
lib/api/api_consultas/downloadpdf.ex
Normal file
70
lib/api/api_consultas/downloadpdf.ex
Normal file
@ -0,0 +1,70 @@
|
||||
defmodule Api.Downloadpdf do
|
||||
import Ecto.Query
|
||||
alias Api.Repo
|
||||
require Logger
|
||||
|
||||
def get_report_query(idstudyreport) do
|
||||
Logger.info("hash antes de query: #{idstudyreport}")
|
||||
# uso hex en la desencriptación porque el proceso de encriptación involucraba convertir los datos binarios a una cadena de texto (substring)
|
||||
q = """
|
||||
SELECT convert_from(decrypt(decode('#{idstudyreport}', 'hex')::bytea, '1nf0rm3'::bytea, 'aes'), 'UTF8');
|
||||
"""
|
||||
idstudyreport = Repo.query!(q).rows |> hd() |> hd()
|
||||
Logger.info("hash despues de query: #{idstudyreport}")
|
||||
|
||||
idstudyreport = String.to_integer(idstudyreport)
|
||||
|
||||
template_name = Envar.get("TEMPLATE_NAME")
|
||||
# template_name = System.get_env("TEMPLATE_NAME")
|
||||
Logger.info("template: #{template_name}")
|
||||
# pr2_statusname = Envar.get("pr2_statusname")
|
||||
|
||||
query =
|
||||
from sr in "studyreport",
|
||||
join: s in "study",
|
||||
on: s.idstudy == sr.idstudy,
|
||||
join: p in "patient",
|
||||
on: p.idpatient == s.idpatient,
|
||||
left_join: pr in "professional",
|
||||
on: pr.idprofessional == sr.idprofessional_finalizedby,
|
||||
left_join: u in "users",
|
||||
on: u.iduser == pr.iduser,
|
||||
join: pt in "printtemplates",
|
||||
on: pt.printtemplate_type == "STUDYREPORT",
|
||||
where: sr.idstudyreport == ^idstudyreport,
|
||||
where: pt.printtemplate == ^template_name,
|
||||
where: pt.enabled == true,
|
||||
select: %{
|
||||
idstudyreport: sr.idstudyreport,
|
||||
body: sr.body,
|
||||
idstudy: s.idstudy,
|
||||
printtemplate: pt.template,
|
||||
accessionnumber: s.accessionnumber,
|
||||
patientname: fragment("replace(?, '^', ' ')", p.patientname),
|
||||
studydate: fragment("TO_CHAR(?, 'YYYY-MM-DD')", s.studydate),
|
||||
studytime: s.studytime,
|
||||
studydescription: s.studydescription,
|
||||
proceduredescription: s.proceduredescription,
|
||||
procedurecode: s.procedurecode,
|
||||
modality: s.modality,
|
||||
patientid: p.patientid,
|
||||
patientbirthdate: fragment("TO_CHAR(?, 'YYYY-MM-DD')", p.patientbirthdate),
|
||||
fin_signature: pr.signature,
|
||||
matricula_finalized: fragment("COALESCE(?, '')",pr.matricula),
|
||||
informantphysician: u.username,
|
||||
insurer: fragment("COALESCE(?, '')",s.insurer),
|
||||
institutionname: s.institutionname,
|
||||
referringphysiciansname: fragment("COALESCE(?, '')", s.referringphysiciansname)
|
||||
}
|
||||
|
||||
|
||||
result = Repo.one(
|
||||
from q in subquery(query),
|
||||
select: fragment("json_build_object('idstudyreport', ?, 'body', ?, 'idstudy', ?, 'accessionnumber', ?, 'patientname', ?, 'studydate', ?, 'studytime', ?, 'studydescription', ?, 'proceduredescription', ?, 'procedurecode', ?, 'modality', ?, 'patientid', ?, 'patientbirthdate', ?, 'fin_signature', ?, 'matricula_finalized', ?, 'informantphysician', ?, 'insurer', ?, 'institutionname', ?, 'referringphysiciansname', ?, 'printtemplate', ?)",
|
||||
q.idstudyreport, q.body, q.idstudy, q.accessionnumber, q.patientname, q.studydate, q.studytime, q.studydescription, q.proceduredescription, q.procedurecode, q.modality, q.patientid, q.patientbirthdate, q.fin_signature, q.matricula_finalized, q.informantphysician, q.insurer, q.institutionname, q.referringphysiciansname, q.printtemplate
|
||||
)
|
||||
)
|
||||
Logger.info("#{inspect(result)}")
|
||||
result
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user