Package Gnumed :: Package wxpython :: Package gui :: Module gmRequest |
[frames] | no frames]

# Source Code for Module Gnumed.wxpython.gui.gmRequest

      1  """This is a basic requests panel.
      2
      3  Status: hacking
      4
      5      Copyright (C) 2004 Ian Haywood
      6
      7      This program is free software; you can redistribute it and/or modify
      8      it under the terms of the GNU General Public License as published by
      9      the Free Software Foundation; either version 2 of the License, or
     10      (at your option) any later version.
     11
     12      This program is distributed in the hope that it will be useful,
     13      but WITHOUT ANY WARRANTY; without even the implied warranty of
     14      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15      GNU General Public License for more details.
     16
     17      You should have received a copy of the GNU General Public License
     18      along with this program; if not, write to the Free Software
     19      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     20
     21  """
     22  __author__ = "Ian Haywood <ihaywood@gnu.org>"
     23
     24  from Gnumed.wxpython import gmPlugin, gmGuiHelpers
     25  from Gnumed.business import gmForms
     26  from Gnumed.wxpython.gmPhraseWheel import cPhraseWheel
     27
     28  if __name__ == '__main__':
     29          _ = lambda x:x
     30
     31  # generated by wxGlade 0.3.3 on Tue Jun 15 13:29:57 2004
     32
     33  import wx
     34
     35 -class RequestsPanel(wx.Panel):
     36 -    def __init__(self, *args, **kwds):
     37          # begin wxGlade: RequestsPanel.__init__
     38          kwds["style"] = wx.TAB_TRAVERSAL
     39          wx.Panel.__init__(self, *args, **kwds)
     40          self.label_1 = wxStaticText(self, -1, _("Type"))
     41          self.wheel_type = cPhraseWheel(self, -1, "")
     42          self.label_2 = wxStaticText(self, -1, _("Form"))
     43          self.wheel_form = cPhraseWheel(self, -1, "")
     44          self.label_3 = wxStaticText(self, -1, _("Request"))
     45          self.text_ctrl_request = wx.TextCtrl(self, -1, "")
     46          self.label_4 = wxStaticText(self, -1, _("Clinical"))
     47          self.text_ctrl_clinical = wx.TextCtrl(self, -1, "", style=wx.TE_PROCESS_ENTER|wx.TE_MULTILINE)
     48          self.label_5 = wxStaticText(self, -1, _("Instructions"))
     49          self.text_ctrl_instructions = wx.TextCtrl(self, -1, "", style=wx.TE_PROCESS_ENTER|wx.TE_MULTILINE)
     50          self.button_OK = wx.Button(self, -1, _("OK"))
     51
     52          self.__set_properties()
     53          self.__do_layout()
     54          # end wxGlade
     55
     56 -    def __set_properties(self):
     57          # begin wxGlade: RequestsPanel.__set_properties
     58          pass
     59          # end wxGlade
     60
     61 -    def __do_layout(self):
     62          # begin wxGlade: RequestsPanel.__do_layout
     63          sizer_1 = wx.BoxSizer(wx.VERTICAL)
     64          grid_sizer_1 = wxFlexGridSizer(5, 2, 0, 0)
     65          grid_sizer_1.Add(self.label_1, 0, 0, 0)
     66          grid_sizer_1.Add(self.wheel_type, 0, wxEXPAND, 0)
     67          grid_sizer_1.Add(self.label_2, 0, 0, 0)
     68          grid_sizer_1.Add(self.wheel_form, 0, wxEXPAND, 0)
     69          grid_sizer_1.Add(self.label_3, 0, 0, 0)
     70          grid_sizer_1.Add(self.text_ctrl_request, 0, wxEXPAND, 0)
     71          grid_sizer_1.Add(self.label_4, 0, 0, 0)
     72          grid_sizer_1.Add(self.text_ctrl_clinical, 0, wxEXPAND, 0)
     73          grid_sizer_1.Add(self.label_5, 0, 0, 0)
     74          grid_sizer_1.Add(self.text_ctrl_instructions, 0, wxEXPAND, 0)
     75          grid_sizer_1.AddGrowableRow(3)
     76          grid_sizer_1.AddGrowableRow(4)
     77          grid_sizer_1.AddGrowableCol(1)
     78          sizer_1.Add(grid_sizer_1, 1, wxEXPAND, 0)
     79          sizer_1.Add(self.button_OK, 0, wxALIGN_CENTER_HORIZONTAL, 0)
     80          self.SetAutoLayout(1)
     81          self.SetSizer(sizer_1)
     82          sizer_1.Fit(self)
     83          sizer_1.SetSizeHints(self)
     84          # end wxGlade
     85
     86  # end of class RequestsPanel
     87
     88
     89
     90
     91 -class cActiveRequestsPanel (RequestsPanel):
     92      """
     93      A descendant of the autogenerated class to add activity
     94      """
     95 -    def __init__ (self, parent, id):
     96          RequestsPanel.__init__ (self, parent, id)
     97          self.wheel_type.matcher = gmForms.FormTypeMP()
     98          self.wheel_form.matcher = gmForms.FormMP()
     99          wx.EVT_BUTTON (self.button_OK, self.button_OK.GetId (), self._ok_pressed)
    100
    101 -    def _ok_pressed (self, event):
    102          form_id = self.wheel_form.getData ()
    103          print "Form id: %s" % form_id
    104          type_id = self.wheel_type.getData ()
    105          print "Type : %s" % type_id
    106          if form_id and type_id:
    107              try:
    108                  form = gmForms.get_form (form_id)
    109                  params = {}
    110                  params['type'] = self.wheel_type.GetValue ()
    111                  params['request'] = self.text_ctrl_request.GetValue ()
    112                  params['clinical_notes'] = self.text_ctrl_clinical.GetValue ()
    113                  params['instructions'] = self.text_ctrl_instructions.GetValue ()
    114                  form.store (params)
    115                  form.process (params)
    116                  form.printout ()
    117              except gmForms.FormError, e:
    118                  gmGuiHelpers.gm_show_error (str(e), _("Error processing form"))
    119              except:
    120                  gmLog.gmDefLog.LogException( "forms printing", sys.exc_info(), verbose=0)
    121          else:
    122              gmGuiHelpers.gm_show_error (_("You must select a form and type"), _("Missing field"))
    123
    124
    125 -class gmRequest (gmPlugin.cNotebookPluginOld):
    126
    127      tab_name = _("Request")
    128
    129 -    def name (self):
    130          return gmRequest.tab_name
    131
    132 -    def MenuInfo (self):
    133          return ("view", _("&Request"))
    134
    135 -    def GetWidget (self, parent):
    136          return cActiveRequestsPanel (parent, -1)
    137
    138 -    def can_receive_focus(self):
    139          # need patient
    140          if not self._verify_patient_avail():
    141              return None
    142          return 1
    143