file=""
def cmd_pdf(self):
- file=QFileDialog.getSaveFileName(self, "Save PDF", os.path.abspath(os.path.join(config["document_directory"], ".pdf")), "PDF (*.pdf);; All Files (*)")
- page=QPageSize(QPageSize.PageSizeId[self.input_size.currentText()])
- self.webview.printToPdf(file[0], QPageLayout(page, QPageLayout.Orientation.Portrait, QMarginsF()))
+ try:
+ file=QFileDialog.getSaveFileName(self, "Save PDF", os.path.abspath(os.path.join(config["document_directory"], ".pdf")), "PDF (*.pdf);; All Files (*)")
+ page=QPageSize(QPageSize.PageSizeId[self.input_size.currentText()])
+ self.webview.printToPdf(file[0], QPageLayout(page, QPageLayout.Orientation.Portrait, QMarginsF()))
+ except Exception as e:
+ logging.exception(e)
def cmd_print(self):
- dialog=QPrintDialog(self.printer)
- if(dialog.exec()):
- self.webview.print(self.printer)
+ try:
+ dialog=QPrintDialog(self.printer)
+ if(dialog.exec()):
+ self.webview.print(self.printer)
+ except Exception as e:
+ logging.exception(e)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
tempdir=None
def render(self, data_directory):
- source=os.path.join(data_directory, "prescription.json")
- target=os.path.join(data_directory, "template", "output.html")
- template=os.path.join(data_directory, "template", "index.html")
- if not os.path.exists(template):
- shutil.copytree(config["template"], os.path.join(data_directory, "template"), dirs_exist_ok=True)
- with open(source, "r") as source_file, open(target, "w") as target_file:
- 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:
- logging.exception(e)
- output=template_data.render(data)
- target_file.write(output)
- return(target)
+ try:
+ source=os.path.join(data_directory, "prescription.json")
+ target=os.path.join(data_directory, "template", "output.html")
+ template=os.path.join(data_directory, "template", "index.html")
+ if not os.path.exists(template):
+ shutil.copytree(config["template"], os.path.join(data_directory, "template"), dirs_exist_ok=True)
+ with open(source, "r") as source_file, open(target, "w") as target_file:
+ 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:
+ logging.exception(e)
+ output=template_data.render(data)
+ target_file.write(output)
+ return(target)
+ except Exception as e:
+ logging.exception(e)
def process_diagnosis(self, data):
diagnosis_list=[]
if(self.save_state==md5(self.prescription.get_json().encode()).hexdigest()):
try:
target=self.renderer.render(self.current_file.directory.name)
- self.signal_view.emit(target)
- self.renderbox.showMaximized()
+ if target is not None:
+ self.signal_view.emit(target)
+ self.renderbox.showMaximized()
+ else:
+ QMessageBox.critical(self, "Render failed", "Presciption rendering failed. Please check if prescription file or template is corrupted.")
+ logging.error("Prescription rendering failed.")
except FileNotFoundError as e:
logging.warning(e)
QMessageBox.information(self, "Save first", "Please save the file before rendering.")
-
else:
QMessageBox.information(self, "Save first", "Please save the file before rendering.")