Exemple #1
0
 def openDB(self):
   '''
   Открыть БД и отобразить список пациентов
   '''
   # Подчищаем старые данные
   self.closeDB()
   # Создаём новый список экспортных пациентов
   self.patLst = pr.ExportProbes()
   # Получаем имя базы в системной кодировке
   filename = pu.convert(QtGui.QFileDialog.getOpenFileName(self,
                                                           u'Выберете файл базы данных',
                                                           QtCore.QDir.homePath(),
                                                           u"Базы данных (*.gdb *.GDB)"))
   if filename != '':
     # Подключаемся к базе
     global base
     try:
       base = db.DBAccess(filename)
       # Получаем список пациентов
       patients = base.getAllPatients()
       # Выводим его
       for id in patients.keys():
         # Порядок полей: ID, ФИО, дата рождения, пол
         item = QtGui.QTreeWidgetItem([ str(id), patients[id][0], str(patients[id][1]), patients[id][2] ])
         item.setCheckState(0, QtCore.Qt.Unchecked)
         self.ui.trePatients.addTopLevelItem(item)
       self.statusBar().showMessage(u'База данных загружена. Найдено ' + str(len(patients)) + u' пациентов.')
     except UnicodeDecodeError:
       self.statusBar().showMessage(u'Ошибка: слишком длинный путь до базы данных.')
Exemple #2
0
 def exportProbes(self):
   '''
   Экспортирование съемов
   '''
   # Запрашиваем дирректорию сохраниения съемов в системной кодировке
   dirName = pu.convert(QtGui.QFileDialog.getExistingDirectory(self,
                                                               u'Выберете дирректорию сохранения'))
   if dirName != '':
     # Получаем список съемов, приготовленнных к экспорту
     exportLst = self.patLst.getAllProbes()
     # Для каждого пациента в списке экспортных съемов
     for patient in exportLst.keys():
       # Для каждого съема конкретного пациента
       for date in exportLst[patient].keys():
         # Получаем дату съема
         trueDate = datetime.datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
         # преобразуем её в строку особого вида
         dateStr = trueDate.strftime('%Y-%m-%d-%H-%M-%S')
         # Получаем Ф.И.О пациента в нужной кодировке
         patientName = pu.convert(base.getPatientName(patient))
         # Суммируем полученные ранее переменные в полное имя файла
         fileName = os.path.join(dirName, patientName + '_' + dateStr + '.txt')
         # Открываем файл на запись
         tmpFile = open(fileName, "w")
         # Получаем матрицы съема
         lMatr, rMatr = base.getMatrix(patient, date)
         # Пишем матрицы по очереди в файл (Формат Новосибирска)
         for i in xrange(35):
           for j in xrange(24):
             tmpFile.write(str(lMatr[i][j]))
             tmpFile.write('; ')
           tmpFile.write('\n')
         for i in xrange(35):
           for j in xrange(24):
             tmpFile.write(str(rMatr[i][j]))
             tmpFile.write('; ')
           tmpFile.write('\n')
         # Закрываем файл
         tmpFile.close()
     # Информируем пользователя
     self.statusBar().showMessage(u'Экспорт прошёл успешно')