From 7534a1c7c3d8317943161b01d8a558cf38397cc6 Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Mon, 6 Nov 2023 01:49:57 +0530 Subject: [PATCH] Moved certificate to separate tab --- config.py | 4 +- data/preset/{certify.csv => certificate.csv} | 0 editpreset.py | 2 +- prescription.py | 8 ++- window.py | 66 ++++++++++++-------- 5 files changed, 48 insertions(+), 32 deletions(-) rename data/preset/{certify.csv => certificate.csv} (100%) diff --git a/config.py b/config.py index f97cf81..61adb5d 100644 --- a/config.py +++ b/config.py @@ -88,8 +88,8 @@ if not os.path.exists(os.path.join(config["template_directory"], "default")): shutil.copytree(os.path.abspath(os.path.join(real_dir, "data", "template", "default")), os.path.join(config["template_directory"], "default")) if not os.path.exists(os.path.join(config["template_directory"], "medcert")): shutil.copytree(os.path.abspath(os.path.join(real_dir, "data", "template", "medcert")), os.path.join(config["template_directory"], "medcert")) -if not os.path.exists(os.path.join(config["preset_directory"], "certify.csv")): - shutil.copyfile(os.path.abspath(os.path.join(real_dir, "data", "preset", "certify.csv")), os.path.join(config["preset_directory"], "certify.csv")) +if not os.path.exists(os.path.join(config["preset_directory"], "certificate.csv")): + shutil.copyfile(os.path.abspath(os.path.join(real_dir, "data", "preset", "certificate.csv")), os.path.join(config["preset_directory"], "certificate.csv")) if not os.path.exists(os.path.join(config["preset_directory"], "note.csv")): shutil.copyfile(os.path.abspath(os.path.join(real_dir, "data", "preset", "note.csv")), os.path.join(config["preset_directory"], "note.csv")) if not os.path.exists(os.path.join(config["preset_directory"], "report.csv")): diff --git a/data/preset/certify.csv b/data/preset/certificate.csv similarity index 100% rename from data/preset/certify.csv rename to data/preset/certificate.csv diff --git a/editpreset.py b/editpreset.py index 84e0630..26289ad 100644 --- a/editpreset.py +++ b/editpreset.py @@ -26,7 +26,7 @@ class EditPreset(QMainWindow): self.table=QTableView() layout2=QHBoxLayout() self.input_file=QComboBox() - self.input_file.addItems(["note", "report", "advice", "investigation", "medication", "additional", "certify"]) + self.input_file.addItems(["note", "report", "advice", "investigation", "medication", "additional", "certificate"]) self.input_file.currentIndexChanged.connect(self.cmd_load) button_save=QPushButton("Save") button_save.clicked.connect(self.cmd_save) diff --git a/prescription.py b/prescription.py index e09bfb4..3a2c901 100644 --- a/prescription.py +++ b/prescription.py @@ -39,14 +39,14 @@ class Prescription: file="" - def __init__(self, date="", id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional="", prescriber=None): - self.set_data(date, name, dob, age, sex, address, contact, extra, mode, daw, diagnosis, note, report, advice, investigation, medication, additional) + def __init__(self, date="", id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional="", certificate="", prescriber=None): + self.set_data(date, name, dob, age, sex, address, contact, extra, mode, daw, diagnosis, note, report, advice, investigation, medication, additional, certificate) if prescriber is None: self.prescriber = Prescriber() else: self.prescriber = prescriber - def set_data(self, date="", id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional=""): + def set_data(self, date="", id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional="", certificate=""): self.date = date self.id = id self.name = name @@ -69,6 +69,7 @@ class Prescription: self.investigation = investigation self.medication = medication self.additional = additional + self.certificate = certificate def set_data_from_json(self, data): self.prescriber.set_data_from_json(data.get("prescriber")) @@ -90,6 +91,7 @@ class Prescription: self.investigation = data.get("investigation") self.medication = data.get("medication") self.additional = data.get("additional") + self.certificate = data.get("certificate") def get_json(self): return(json.dumps(self, default=lambda o: o.__dict__, indent=4)) diff --git a/window.py b/window.py index 92a4691..9c14cc7 100644 --- a/window.py +++ b/window.py @@ -257,16 +257,6 @@ class MainWindow(QMainWindow): def show_update(self, message): QMessageBox.information(self, "Check update", message) - def insert_preset_extra(self): - try: - self.input_extra.insertPlainText(self.preset_extra.data[self.input_extra_preset.currentText()]) - except KeyError: - self.input_extra.insertPlainText(self.input_extra_preset.currentText()) - finally: - self.input_extra_preset.setCurrentIndex(-1) - if config["preset_newline"]: - self.input_extra.insertPlainText("\n") - def insert_preset_note(self): try: self.input_note.insertPlainText(self.preset_note.data[self.input_note_preset.currentText()]) @@ -327,7 +317,17 @@ class MainWindow(QMainWindow): if config["preset_newline"]: self.input_additional.insertPlainText("\n") - def load_interface(self, file="", date=None, id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional=""): + def insert_preset_certificate(self): + try: + self.input_certificate.insertPlainText(self.preset_certificate.data[self.input_certificate_preset.currentText()]) + except KeyError: + self.input_certificate.insertPlainText(self.input_certificate_preset.currentText()) + finally: + self.input_certificate_preset.setCurrentIndex(-1) + if config["preset_newline"]: + self.input_certificate.insertPlainText("\n") + + def load_interface(self, file="", date=None, id="", name="", dob="", age="", sex="", address="", contact="", extra="", mode="", daw="", diagnosis="", note="", report="", advice="", investigation="", medication="", additional="", certificate=""): try: file_msg=self.current_file.file if self.current_file.file else "New file" sign_msg="(signed)" if config["smime"] and self.current_file.is_signed() else "" @@ -368,6 +368,7 @@ class MainWindow(QMainWindow): self.input_investigation.setText(investigation) self.input_medication.setText(medication) self.input_additional.setText(additional) + self.input_certificate.setText(certificate) self.label_prescriber.setText(self.prescription.prescriber.name) except Exception as e: QMessageBox.warning(self,"Failed to load", "Failed to load the data into the application.") @@ -398,7 +399,8 @@ class MainWindow(QMainWindow): advice=self.prescription.advice, investigation=self.prescription.investigation, medication=self.prescription.medication, - additional=self.prescription.additional + additional=self.prescription.additional, + certificate=self.prescription.certificate ) def update_instance(self): @@ -421,7 +423,8 @@ class MainWindow(QMainWindow): advice=self.input_advice.toPlainText(), investigation=self.input_investigation.toPlainText(), medication=self.input_medication.toPlainText(), - additional=self.input_additional.toPlainText() + additional=self.input_additional.toPlainText(), + certificate=self.input_certificate.toPlainText() ) except Exception as e: QMessageBox.critical(self,"Failed", "Critical failure happned. Please check console for more info.") @@ -504,13 +507,13 @@ class MainWindow(QMainWindow): icon_render=QIcon(os.path.join(config["resource"], "icon_render.svg")) icon_refresh=QIcon(os.path.join(config["resource"], "icon_refresh.svg")) - self.preset_extra=Preset(os.path.join(config["preset_directory"], "certify.csv")) self.preset_note=Preset(os.path.join(config["preset_directory"], "note.csv")) self.preset_report=Preset(os.path.join(config["preset_directory"], "report.csv")) self.preset_advice=Preset(os.path.join(config["preset_directory"], "advice.csv")) self.preset_investigation=Preset(os.path.join(config["preset_directory"], "investigation.csv")) self.preset_medication=Preset(os.path.join(config["preset_directory"], "medication.csv"), text_as_key=True) self.preset_additional=Preset(os.path.join(config["preset_directory"], "additional.csv")) + self.preset_certificate=Preset(os.path.join(config["preset_directory"], "certificate.csv")) action_new=QAction("New", self) action_new.setShortcut("Ctrl+N") @@ -678,19 +681,8 @@ class MainWindow(QMainWindow): self.input_diagnosis=QLineEdit(self) layout_info.addRow("Diagnosis", self.input_diagnosis) self.input_extra=QTextEdit(self) - self.input_extra_preset=QComboBox(self) - self.input_extra_preset.addItems(self.preset_extra.data.keys()) - self.input_extra_preset.setCurrentIndex(-1) - self.input_extra_preset.setEditable(True) - self.input_extra_preset.completer().setCompletionMode(QCompleter.CompletionMode.PopupCompletion) - self.input_extra_preset.completer().setFilterMode(Qt.MatchFlag.MatchContains) - self.input_extra_preset.setPlaceholderText("Select a preset") input_extra_preset_btn=QPushButton("Insert") - input_extra_preset_btn.clicked.connect(self.insert_preset_extra) - layout_info2.addWidget(self.input_extra_preset, 5) - layout_info2.addWidget(input_extra_preset_btn, 1) - layout_info.addRow("Certify\nPreset", layout_info2) - layout_info.addRow("Certify /\nExtra", self.input_extra) + layout_info.addRow("Extra", self.input_extra) self.input_mode=QComboBox(self) self.input_mode.addItems(["In-Person", "Tele-Consultation", "Other"]) self.input_mode.setEditable(True) @@ -824,6 +816,27 @@ class MainWindow(QMainWindow): layout_additional.addLayout(layout_additional2) layout_additional.addWidget(self.input_additional) + tab_certificate=QWidget(self) + layout_certificate=QVBoxLayout(tab_certificate) + layout_certificate2=QHBoxLayout() + label_certificate=QLabel("Certificate") + label_certificate.setProperty("class", "info_head") + self.input_certificate_preset=QComboBox(self) + self.input_certificate_preset.addItems(self.preset_certificate.data.keys()) + self.input_certificate_preset.setCurrentIndex(-1) + self.input_certificate_preset.setEditable(True) + self.input_certificate_preset.completer().setCompletionMode(QCompleter.CompletionMode.PopupCompletion) + self.input_certificate_preset.completer().setFilterMode(Qt.MatchFlag.MatchContains) + self.input_certificate_preset.setPlaceholderText("Select a preset") + input_certificate_preset_btn=QPushButton("Insert") + input_certificate_preset_btn.clicked.connect(self.insert_preset_certificate) + layout_certificate2.addWidget(self.input_certificate_preset, 5) + layout_certificate2.addWidget(input_certificate_preset_btn, 1) + self.input_certificate=QTextEdit(self) + layout_certificate.addWidget(label_certificate) + layout_certificate.addLayout(layout_certificate2) + layout_certificate.addWidget(self.input_certificate) + tab_attachment=QWidget(self) layout_attachment=QVBoxLayout(tab_attachment) layout_attachment2=QHBoxLayout() @@ -851,6 +864,7 @@ class MainWindow(QMainWindow): tab.addTab(tab_investigation, "Investigation") tab.addTab(tab_medication, "Medication") tab.addTab(tab_additional, "Additional") + tab.addTab(tab_certificate, "Certificate") tab.addTab(tab_attachment, "Attachment") self.setCentralWidget(tab) -- 2.39.5