;; -*- lexical-binding: t -*- (require 'ksh-forms) (require 'ksh-report) ;; Datafile path and fields (setq forms-file (expand-file-name "data/scan3.dat" ksh-path)) (setq forms-number-of-fields (forms-enumerate '(ip-op-no patient-name age sex visit-date lmp-date lmp-edd scan survey-presentation survey-placenta survey-liquor survey-amniotic-fluid-index survey-umbilical-cord survey-fetal-activity survey-cardiac-activity survey-fetal-heart-rate biometry-bpd biometry-bpd-age biometry-bpd-percentile biometry-hc biometry-hc-age biometry-hc-percentile biometry-ac biometry-ac-age biometry-ac-percentile biometry-fl biometry-fl-age biometry-fl-percentile biometry-fetal-weight impression-gestational-age impression-menstrual-age impression-corrected-edd impression-notes sonologist))) ;; Default values for fields (setq default-field-values `((,sex . "F") (,survey-presentation . "cephalic") (,survey-placenta . "posterior") (,survey-liquor . "normal") (,survey-fetal-activity . "normal") (,survey-cardiac-activity . "normal") (,sonologist . "Dr. Bala Bharathy"))) ;; Format specification for form display (setq forms-format-list (append (list "Trimester 3 - Scan Report\n\n") (seq-mapcat 'form-entry '(("IP/OP No" . ip-op-no) ("Patient Name" . patient-name) ("Age" . age) ("Sex" . sex) ("Visit Date" . visit-date) ("LMP Date" . lmp-date) ("LMP EDD" . lmp-edd))) (list "Indications\n" "Growth Scan\n" "Real time B-mode ultrasonography of gravid uterus done.\n" "Route: Transabdominal\n" scan "\n\n") (list "Fetal Survey\n") (seq-mapcat 'form-entry '(("Presentation" . survey-presentation) ("Placenta" . survey-placenta) ("Liquor" . survey-liquor) ("Amniotic fluid index" . survey-amniotic-fluid-index) ("Umbilical cord" . survey-umbilical-cord) ("Fetal activity" . survey-fetal-activity) ("Cardiac activity" . survey-cardiac-activity) ("Fetal heart rate" . survey-fetal-heart-rate))) (list "Fetal Biometry\n") (seq-mapcat 'form-entry '(("BPD" . biometry-bpd) ("BPD-Age" . biometry-bpd-age) ("BPD-Percentile" . biometry-bpd-percentile) ("HC" . biometry-hc) ("HC-Age" . biometry-hc-age) ("HC-Percentile" . biometry-hc-percentile) ("AC" . biometry-ac) ("AC-Age" . biometry-ac-age) ("AC-Percentile" . biometry-ac-percentile) ("FL" . biometry-fl) ("FL-Age" . biometry-fl-age) ("FL-Percentile" . biometry-fl-percentile) ("Estimated fetal weight according to BPD, HC, AC, FL" . biometry-fetal-weight))) (list "Impression\n") (seq-mapcat 'form-entry '(("Gestational age" . impression-gestational-age) ("Menstrual age" . impression-menstrual-age) ("Corrected EDD" . impression-corrected-edd) ("Notes" . impression-notes) ("Sonologist" . sonologist))))) (setq form-to-org (lambda () (with-output-to-string (make-report-header "OB - 3/3 TRIMESTER SCAN REPORT") (seq-do 'single-line-org-entry `(("IP/OP No" . ,ip-op-no) ("Age" . ,age) ("Sex" . ,sex) ("Name of Patient" . ,patient-name) ("Visit Date" . ,visit-date) ("LMP Date" . ,lmp-date) ("LMP EDD" . ,lmp-edd))) (mapc 'princ `("* Indications\n" "** Growth Scan\n" "Real time B-mode ultrasonography of gravid uterus done.\n\n")) (seq-do 'single-line-org-entry `(("Route" . "Transabdominal"))) (text-if-non-blank (get-field scan)) (princ "* Fetal Survey\n") (seq-do 'single-line-org-entry `(("Presentation" . ,survey-presentation) ("Placenta" . ,survey-placenta) ("Liquor" . ,survey-liquor) ("Amniotic fluid index" . ,survey-amniotic-fluid-index) ("Umbilical cord" . ,survey-umbilical-cord) ("Fetal activity" . ,survey-fetal-activity) ("Cardiac activity" . ,survey-cardiac-activity) ("Fetal heart rate" . ,survey-fetal-heart-rate))) (insert-biometry "Fetal Biometry" `(("BPD" ,biometry-bpd ,biometry-bpd-age ,biometry-bpd-percentile) ("HC" ,biometry-hc ,biometry-hc-age ,biometry-hc-percentile) ("AC" ,biometry-ac ,biometry-ac-age ,biometry-ac-percentile) ("FL" ,biometry-fl ,biometry-fl-age ,biometry-fl-percentile))) (princ "* Impression\n") (princ (format "%s gestational age assigned as per biometry (CRL)\n\n" (get-field impression-gestational-age))) (seq-do 'single-line-org-entry `(("Menstrual age" . ,impression-menstrual-age) ("Corrected EDD" . ,impression-corrected-edd) ("Placenta" . ,survey-placenta) ("Presentation" . ,survey-presentation) ("Liquor" . ,survey-liquor) ("Estimated fetal weight according to BPD, HC, AC, FL" . ,biometry-fetal-weight))) (text-if-non-blank (get-field impression-notes)) (multi-line-org-entry `("Sonologist" . ,sonologist)))))