]> Softwares of Agnibho - medscript.git/commitdiff
Enabled prescriber switching
authorAgnibho Mondal <mondal@agnibho.com>
Sat, 9 Sep 2023 18:19:58 +0000 (23:49 +0530)
committerAgnibho Mondal <mondal@agnibho.com>
Sat, 9 Sep 2023 18:19:58 +0000 (23:49 +0530)
prescription.py
setting.py
window.py

index 3cce577f6cacafae32723cabbfee95804c42ae45..678a822efecf61a9f4679468f41c311e4d0f3450 100644 (file)
@@ -9,8 +9,11 @@ import json
 from config import config
 
 class Prescriber:
-    def __init__(self):
-        self.read_from(config["prescriber"])
+    def __init__(self, file=None):
+        if file is None:
+            self.read_from(config["prescriber"])
+        else:
+            self.read_from(file)
 
     def set_data(self, name="", qualification="", registration="", address="", contact="", extra=""):
         self.name = name
@@ -94,3 +97,6 @@ class Prescription:
         with open(file, "r") as f:
             self.set_data_from_json(json.loads(f.read()))
         self.file=file
+
+    def reload_prescriber(self, file=None):
+        self.prescriber=Prescriber(file)
index 280b853e847f961a8921aaa4d27e1a6510621cc6..d2df6b1547ca5c8905009e190924d042f0f41104 100644 (file)
@@ -7,11 +7,14 @@
 
 from PyQt6.QtWidgets import QWidget, QMainWindow, QFormLayout, QPushButton, QLabel, QLineEdit, QTextEdit, QStatusBar, QMessageBox
 from PyQt6.QtGui import QIcon
+from PyQt6.QtCore import pyqtSignal
 import os, json
 from config import config
 
 class EditPrescriber(QMainWindow):
 
+    signal_save=pyqtSignal(str)
+
     file=""
     prescriber=""
 
@@ -42,6 +45,7 @@ class EditPrescriber(QMainWindow):
             with open(self.file, "w") as f:
                 f.write(json.dumps(self.prescriber, indent=4))
             QMessageBox.information(self,"Saved", "Information saved.")
+            self.signal_save.emit(self.file)
             self.hide()
         except Exception as e:
             QMessageBox.critical(self,"Failed to save", "Failed to save the data to the file.")
index 3c3d6112a315f00169db9984dde8970d563089f4..1d40b811d59b49e39bbb836537bd9b1094f0439f 100644 (file)
--- a/window.py
+++ b/window.py
@@ -81,8 +81,7 @@ class MainWindow(QMainWindow):
         self.cmd_save(save_as=True)
 
     def cmd_refresh(self):
-        self.update_instance()
-        self.load_interface_from_instance()
+        self.refresh()
 
     def cmd_quit(self):
         if(self.confirm_exit()):
@@ -100,6 +99,15 @@ class MainWindow(QMainWindow):
     def cmd_prescriber(self):
         self.edit_prescriber.show()
 
+    def cmd_prescriber_reload(self, file=None):
+        self.prescription.reload_prescriber(file=None)
+        self.refresh()
+
+    def cmd_switch(self):
+        print("switch")
+        self.prescription.reload_prescriber(QFileDialog.getOpenFileName(self, "Open File", config["prescriber_directory"], "JSON (*.json);; All Files (*)")[0])
+        self.refresh()
+
     def cmd_about(self):
         self.viewbox.open(os.path.join(config["resource"], "about.html"))
         self.viewbox.show()
@@ -249,6 +257,11 @@ class MainWindow(QMainWindow):
             QMessageBox.critical(self,"Failed", "Critical failure happned. Please check console for more info.")
             print(e)
 
+    def refresh(self):
+        self.update_instance()
+        self.load_interface_from_instance()
+
+
     def add_attachment(self):
         try:
             new=QFileDialog.getOpenFileName(self, "Open File", config["document_directory"], "PDF (*.pdf);; Images (*.jpg, *.jpeg, *.png, *.gif);; All Files (*)")[0]
@@ -324,6 +337,8 @@ class MainWindow(QMainWindow):
         action_render2.triggered.connect(self.cmd_render)
         action_prescriber=QAction("Prescriber", self)
         action_prescriber.triggered.connect(self.cmd_prescriber)
+        action_switch=QAction("Switch", self)
+        action_switch.triggered.connect(self.cmd_switch)
         action_about=QAction("About", self)
         action_about.triggered.connect(self.cmd_about)
         action_help=QAction("Help", self)
@@ -340,6 +355,7 @@ class MainWindow(QMainWindow):
         menu_prepare.addAction(action_render)
         menu_prepare.addAction(action_refresh)
         menu_prepare.addAction(action_prescriber)
+        menu_prepare.addAction(action_switch)
         menu_help=menubar.addMenu("Help")
         menu_help.addAction(action_about)
         menu_help.addAction(action_help)
@@ -548,6 +564,7 @@ class MainWindow(QMainWindow):
         self.renderbox=RenderBox()
         self.signal_view.connect(self.renderbox.update)
         self.edit_prescriber=EditPrescriber()
+        self.edit_prescriber.signal_save.connect(self.cmd_prescriber_reload)
         self.viewbox=ViewBox()
 
         if(config["filename"]):