summaryrefslogtreecommitdiff
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))))))