# 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
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:
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
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"])
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()
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)
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)