]> Softwares of Agnibho - medscript.git/commitdiff
Added markdown support
authorAgnibho Mondal <mondal@agnibho.com>
Thu, 14 Sep 2023 18:41:56 +0000 (00:11 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Thu, 14 Sep 2023 18:41:56 +0000 (00:11 +0530)
config.py
config/config.json
renderer.py
requirements.txt
setting.py

index 8bfe45cb02f94701d5cb67e19a24260deaf9c8cf..ad0db950bb2f521735ddac4e39a5614850b20649 100644 (file)
--- a/config.py
+++ b/config.py
@@ -40,6 +40,7 @@ default = {
         "preset_directory": "preset",
         "preset_newline": "True",
         "preset_delimiter": ",",
+        "markdown": "False",
         "smime": "False",
         "root_bundle": "",
         "private_key": "",
index 65d9130e6ad52637c14800cc60538f403c836241..0555e7bf0d0d177b971f24f66cdd9f5fdf644380 100644 (file)
@@ -9,6 +9,7 @@
     "preset_directory": "preset",
     "preset_newline": true,
     "preset_delimiter": ",",
+    "markdown": false,
     "smime": false,
     "root_bundle": "",
     "certificate": "",
index 43cc27af2780aec85c56ce30ca4e52a20f3688de..d046aaa81eb0970e39c473baef5db3e3ef6990b9 100644 (file)
@@ -6,6 +6,7 @@
 # You should have received a copy of the GNU General Public License along with MedScript. If not, see <https://www.gnu.org/licenses/>.
 
 import os, shutil, tempfile, json, datetime, re
+from markdown import markdown
 from jinja2 import Template
 from config import config
 
@@ -23,6 +24,8 @@ class Renderer:
             with open(template) as template_file:
                 template_data = Template(template_file.read())
                 data=self.process_medication(self.process_diagnosis(json.loads(source_file.read())))
+                if config["markdown"]:
+                    data=self.render_markdown(data)
                 try:
                     data["date"]=datetime.datetime.strptime(data["date"], "%Y-%m-%d %H:%M:%S")
                 except Exception as e:
@@ -51,3 +54,11 @@ class Renderer:
                     medication_list.append([line, ""])
         data["medication_list"]=medication_list
         return data
+
+    def render_markdown(self, data):
+        data["note"]=markdown(data["note"])
+        data["report"]=markdown(data["report"])
+        data["advice"]=markdown(data["advice"])
+        data["investigation"]=markdown(data["investigation"])
+        data["additional"]=markdown(data["additional"])
+        return data
index 13cc2d9ac63b3d05d9e74db0280d4124e4ddb8fd..11ac06374a8cc1155064b4cf53782dbe1bd26b64 100644 (file)
@@ -1,6 +1,7 @@
 Jinja2==3.1.2
 lxml==4.9.2
 M2Crypto==0.38.0
+Markdown==3.4.4
 PyQt6==6.5.2
 PyQt6_sip==13.5.2
 python_dateutil==2.8.2
index 02037ed0afeab4a29ef31ce70ef4940f65e71ce5..3722db26024eb4d323ea7086705dd65b505fdeb3 100644 (file)
@@ -43,6 +43,7 @@ class EditConfiguration(QMainWindow):
             self.input_prescriber.setText(self.config["prescriber"])
             self.input_newline.setChecked(bool(self.config["preset_newline"]))
             self.input_delimiter.setCurrentText(self.config["preset_delimiter"])
+            self.input_markdown.setChecked(bool(self.config["markdown"]))
             if sign_available:
                 self.input_smime.setChecked(bool(self.config["smime"]))
                 self.input_key.setText(self.config["private_key"])
@@ -59,6 +60,7 @@ class EditConfiguration(QMainWindow):
                 self.config["prescriber"]=self.input_prescriber.text()
                 self.config["preset_newline"]=self.input_newline.isChecked()
                 self.config["preset_delimiter"]=self.input_delimiter.currentText()
+                self.config["markdown"]=self.input_markdown.isChecked()
                 if sign_available:
                     self.config["smime"]=self.input_smime.isChecked()
                     self.config["private_key"]=self.input_key.text()
@@ -77,6 +79,7 @@ class EditConfiguration(QMainWindow):
 
         with open(config_file) as f:
             self.config=json.loads(f.read())
+        self.config=self.config|config
 
         self.setWindowTitle("MedScript")
         self.setGeometry(200, 200, 300, 200)
@@ -102,6 +105,8 @@ class EditConfiguration(QMainWindow):
         self.input_delimiter=QComboBox(self)
         self.input_delimiter.addItems([",", ";"])
         layout.addRow("Preset Delimiter", self.input_delimiter)
+        self.input_markdown=QCheckBox("Enable markdown formatting", self)
+        layout.addRow("Markdown", self.input_markdown)
         if sign_available:
             self.input_smime=QCheckBox("Enable digital signature (experimental)", self)
             layout.addRow("S/MIME", self.input_smime)