;; -*- 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" . ""))))))