summaryrefslogtreecommitdiff
path: root/ksh-report.el
diff options
context:
space:
mode:
Diffstat (limited to 'ksh-report.el')
-rw-r--r--ksh-report.el71
1 files changed, 71 insertions, 0 deletions
diff --git a/ksh-report.el b/ksh-report.el
new file mode 100644
index 0000000..4d6d4e8
--- /dev/null
+++ b/ksh-report.el
@@ -0,0 +1,71 @@
+(require 'seq)
+
+(defun draw-biometry (param-name param param-age percentile)
+ (let ((temp-script-file (make-temp-script
+ (format "%s %s" param-name param)
+ param-age (string-to-number percentile))))
+ (message "Drawing %s..." temp-script-file)
+ (shell-command
+ (format "asy -f pdf -o %s %s" (file-name-directory temp-script-file) temp-script-file))
+ (delete-file temp-script-file)
+ (format "%s.pdf" temp-script-file)))
+
+(defun make-temp-script (param param-age percentile)
+ (let ((temp-script-file (make-temp-file "biometry")))
+ (with-temp-file temp-script-file
+ (insert "include \"biometry\";\n")
+ (insert (format
+ "draw_biometry(\"%s\", \"%s\", %d);"
+ param param-age percentile)))
+ temp-script-file))
+
+(defun insert-biometry (readings)
+ (princ
+ (format "[[%s]]\n"
+ (crop-pdf
+ (combine-pdfs
+ (mapcar (lambda (reading)
+ (apply 'draw-biometry
+ (mapcar 'get-field reading))) readings))))))
+
+(defun combine-pdfs (pdfs)
+ (let ((temp-combination (make-temp-file "pdfjam" nil ".pdf")))
+ (apply 'call-process "pdfjam" nil nil nil
+ "--nup" "4x1"
+ "--outfile" temp-combination pdfs)
+ (mapc 'delete-file pdfs)
+ temp-combination))
+
+(defun crop-pdf (pdf)
+ (message "Cropping %s..." pdf)
+ (let ((output-pdf (format "%s-crop.pdf" (file-name-sans-extension pdf))))
+ (shell-command (format "pdfcrop %s %s" pdf output-pdf))
+ (delete-file pdf) output-pdf))
+
+(defun latex-use-package (package &optional arguments)
+ (if arguments
+ (format "\\usepackage[%s]{%s}" arguments package)
+ (format "\\usepackage{%s}" package)))
+
+(defun make-report-header (title)
+ (seq-do 'ksh-forms-org-keyword
+ '(("TITLE" . "Kuzhanthai Sanjeevi Hospital")
+ ("AUTHOR" . "Dr. Serene Isaac, MD, DGO, DNB")))
+ (seq-do 'ksh-forms-org-latex-header
+ (list (latex-use-package "fullpage")
+ (latex-use-package "nopageno")
+ (latex-use-package "datetime" "ddmmyyyy")
+ "\\renewcommand{\\dateseparator}{-}"
+ "\\setlength{\\parindent}{0cm}"
+ (latex-use-package "titlesec" "tiny")
+ (latex-use-package "wasysym")
+ (latex-use-package "titling")
+ ,(format "\\pretitle{\\hrule \\begin{center} {\\Large \\textbf{%s}} \\par \\small \\sc}" title)
+ "\\posttitle{\\par 17, Jawahar Street, Ramavarmapuram, Nagercoil - 629001 \\par \\phone \\, 223374 \\end{center}}"
+ "\\preauthor{}"
+ "\\postauthor{\\par Obstetrician and Gynaecologist}"
+ "\\predate{\\hfill \\textbf{Date: }}"
+ "\\date{\\today}"
+ "\\postdate{\\vspace{1em} \\hrule \\par}")))
+
+(provide 'ksh-report)