systemreboot git repos ksh-reports / master ksh-discharge.el
master

Tree @master (Download .tar.gz)

ksh-discharge.el @masterraw · history · blame

;; -*- lexical-binding: t -*-

(require 'ksh-forms)

;; Datafile path and fields
(setq forms-file (expand-file-name "data/discharge.dat" ksh-path))
(setq forms-number-of-fields
      (forms-enumerate
       '(ip-op-no patient-name age sex address admission-date
		  discharge-date diagnosis surgical-procedure
		  history clinical-examination course-in-hospital
		  investigation treatment condition-on-discharge advice)))

;; Default values for fields
(setq default-field-values
      `((,sex . "F")
	(,advice . "Triple A Cal Forte - 30 Cap")))

;; Format specification for form display
(setq forms-format-list
      (append
       (list "Discharge Summary\n\n")
       (seq-mapcat 'form-entry
                   '(("IP/OP No" . ip-op-no)
                     ("Age" . age)
                     ("Sex" . sex)
                     ("Name of Patient" . patient-name)
                     ("Address" . address)
                     ("Date of Admission" . admission-date)
                     ("Date of Discharge" . discharge-date)
                     ("Diagnosis" . diagnosis)
                     ("Surgical Procedure" . surgical-procedure)
                     ("History" . history)
                     ("Clinical Examination" . clinical-examination)
                     ("Course in Hospital" . course-in-hospital)
                     ("Investigation" . investigation)
                     ("Treatment" . treatment)
                     ("Condition on Discharge" . condition-on-discharge)
                     ("Advice" . advice)))))

(setq form-to-org
      (lambda ()
	(with-output-to-string
	  (make-report-header "DISCHARGE SUMMARY")
	  (seq-do 'single-line-org-entry
                  `(("IP/OP No" . ,ip-op-no)
                    ("Age" . ,age)
                    ("Sex" . ,sex)
                    ("Name of Patient" . ,patient-name)
                    ("Date of Admission" . ,admission-date)
                    ("Date of Discharge" . ,discharge-date)))
	  (seq-do 'multi-line-org-entry
                  `(("Address" . ,address)
                    ("Diagnosis" . ,diagnosis)
                    ("Surgical Procedure" . ,surgical-procedure)
                    ("History" . ,history)
                    ("Clinical Examination" . ,clinical-examination)
                    ("Course in Hospital" . ,course-in-hospital)
                    ("Investigation" . ,investigation)
                    ("Treatment" . ,treatment)
                    ("Condition on Discharge" . ,condition-on-discharge)
                    ("Advice" . ,advice)
                    ("Signature of the Medical Officer" . ""))))))