summary refs log tree commit diff
path: root/ksh-scan2.el
diff options
context:
space:
mode:
Diffstat (limited to 'ksh-scan2.el')
-rw-r--r--ksh-scan2.el177
1 files changed, 177 insertions, 0 deletions
diff --git a/ksh-scan2.el b/ksh-scan2.el
new file mode 100644
index 0000000..75f3ae4
--- /dev/null
+++ b/ksh-scan2.el
@@ -0,0 +1,177 @@
+;; -*- lexical-binding: t -*-
+
+(load "ksh-forms-improved.el")
+(load "ksh-report-header.el")
+(load "ksh-biometry.el")
+
+;; Datafile path and fields
+(setq forms-file (expand-file-name "scan2.dat" ksh-data-path))
+(setq forms-number-of-fields
+      (forms-enumerate
+       '(ip-op-no patient-name age sex visit-date lmp-date lmp-edd
+		    scan
+		    maternal-cervix maternal-internal-os
+		    survey-presentation survey-placenta survey-liquor
+		    survey-umbilical-cord survey-fetal-activity survey-cardiac-activity
+		    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
+		    extended-foot-length extended-tcd
+		    anatomy-intracranial anatomy-neck anatomy-spine
+		    anatomy-face anatomy-lungs anatomy-heart
+		    anatomy-abdominal-situs anatomy-kidneys-bladder
+		    anatomy-long-bones
+		    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 . "present")
+	(,survey-cardiac-activity . "present")
+	(,anatomy-intracranial . "normal")
+	(,anatomy-neck . "normal. No evidence of significant open neural tube defect")
+	(,anatomy-spine . "normal")
+	(,anatomy-face . "normal")
+	(,anatomy-lungs . "normal")
+	(,anatomy-heart . "normal")
+	(,anatomy-abdominal-situs . "normal")
+	(,anatomy-kidneys-bladder . "normal")
+	(,anatomy-long-bones . "normal for the period of gestation")
+	(,sonologist . "Dr. Bala Bharathy")))
+
+;; Format specification for form display
+(setq forms-format-list
+      (append
+       (list "Trimester 2 - Scan Report\n\n")
+       (form-entries
+	'(("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 "Maternal\n")
+       (form-entries
+	'(("Cervix" . maternal-cervix)
+	  ("Internal os" . maternal-internal-os)))
+       (list "Fetal Survey\n")
+       (form-entries
+	'(("Presentation" . survey-presentation)
+	  ("Placenta" . survey-placenta)
+	  ("Liquor" . survey-liquor)
+	  ("Umbilical cord" . survey-umbilical-cord)
+	  ("Fetal activity" . survey-fetal-activity)
+	  ("Cardiac activity" . survey-cardiac-activity)))
+       (list "Fetal Biometry\n")
+       (form-entries
+	'(("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 "Extended Biometry\n")
+       (form-entries
+	'(("Foot Length" . extended-foot-length)
+	  ("TCD" . extended-tcd)))
+       (list "Fetal Anatomy\n")
+       (form-entries
+	'(("Intracranial structures" . anatomy-intracranial)
+	  ("Neck" . anatomy-neck)
+	  ("Spine" . anatomy-spine)
+	  ("Fetal face" . anatomy-face)
+	  ("Both lungs" . anatomy-lungs)
+	  ("Heart" . anatomy-heart)
+	  ("Abdominal situs" . anatomy-abdominal-situs)
+	  ("Both kidneys and bladder" . anatomy-kidneys-bladder)
+	  ("All long bones" . anatomy-long-bones)))
+       (list "Impression\n")
+       (form-entries
+	'(("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 - 2/3 TRIMESTER SCAN REPORT")
+	  (single-line-org-entries
+	   `(("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" "** Target Scan\n"
+			 "Real time B-mode ultrasonography of gravid uterus done.\n\n"))
+	  (single-line-org-entries
+	   `(("Route" . "Transabdominal")))
+	  (princ (get-field scan))
+	  (princ "\n\n* Maternal\n")
+	  (single-line-org-entries
+	   `(("Cervix" . ,maternal-cervix)
+	     ("Internal os" . ,maternal-internal-os)))
+	  (princ "* Fetal Survey\n")
+	  (single-line-org-entries
+	   `(("Presentation" . ,survey-presentation)
+	     ("Placenta" . ,survey-placenta)
+	     ("Liquor" . ,survey-liquor)
+	     ("Umbilical cord" . ,survey-umbilical-cord)
+	     ("Fetal activity" . ,survey-fetal-activity)
+	     ("Cardiac activity" . ,survey-cardiac-activity)))
+	  (princ "* Fetal Biometry\n")
+	  (insert-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 "* Extended Biometry\n")
+	  (single-line-org-entries
+	   `(("Foot Length" . ,extended-foot-length)
+	     ("TCD" . ,extended-tcd)))
+	  (princ "* Fetal Anatomy\n")
+	  (single-line-org-entries
+	   `(("Intracranial structures" . ,anatomy-intracranial)
+	     ("Neck" . ,anatomy-neck)
+	     ("Spine" . ,anatomy-spine)
+	     ("Fetal face" . ,anatomy-face)
+	     ("Both lungs" . ,anatomy-lungs)
+	     ("Heart" . ,anatomy-heart)
+	     ("Abdominal situs" . ,anatomy-abdominal-situs)
+	     ("Both kidneys and bladder" . ,anatomy-kidneys-bladder)
+	     ("All long bones" . ,anatomy-long-bones)))
+	  (princ "* Impression\n")
+	  (princ (format "%s corresponding to a gestational age of %s\n\n"
+			 (get-field scan) (get-field impression-gestational-age)))
+	  (princ "Gestational age assigned as per biometry (CRL)\n\n")
+	  (single-line-org-entries
+	   `(("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-entries
+	   `(("Sonologist" . ,sonologist))))))