File size: 1,068 Bytes
4d43dfd dd83613 7182c88 dd83613 4d43dfd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
defmodule MedicodeWeb.TranscriptionReportsController do
use MedicodeWeb, :controller
alias Medicode.Transcriptions
def show(conn, _params) do
transcription = Transcriptions.get_transcription!(conn.params["id"])
text = Transcriptions.get_text_from_transcription(transcription)
finalized_codes = Transcriptions.list_transcription_finalized_codes(transcription.id)
conn =
conn
|> assign(:transcription, transcription)
|> assign(:text, text)
|> assign(:finalized_code_vectors, finalized_codes)
{:ok, pdf} = to_pdf(conn.assigns)
send_download(
conn,
{:binary, Base.decode64!(pdf)},
content_type: "application/pdf",
filename: "transcription_report.pdf"
)
end
defp to_pdf(assigns) do
[
content: content(assigns),
size: :a4
]
|> ChromicPDF.Template.source_and_options()
|> ChromicPDF.print_to_pdf()
end
defp content(assigns) do
Phoenix.HTML.Safe.to_iodata(
MedicodeWeb.Components.TranscriptionReportComponent.render(assigns)
)
end
end
|