Package Gnumed :: Package importers :: Module gmSMSImporter
[frames] | no frames]

Source Code for Module Gnumed.importers.gmSMSImporter

  1   
  2  import sys, datetime as dt 
  3   
  4   
  5  if __name__ == '__main__': 
  6          sys.path.insert(0, '../../') 
  7  from Gnumed.pycommon import gmPG2, gmI18N, gmDateTime 
  8  from Gnumed.business import gmPerson 
  9   
 10   
 11  # define some defaults 
 12  external_id_type = 'SMS-Waage' 
 13  idx_date = 1 
 14  idx_gsm = 2 
 15  idx_sms = 3 
 16  soap_cat = 'o' 
 17  weight_template = 'aktuelles Gewicht (%s)::%s' 
 18  #============================================== 
19 -class cLogin:
20 pass
21
22 -def usage():
23 print "use like this:" 24 print "" 25 print " gmSMSImporter.py <date> <gsm> <weight>" 26 print " <weight> must be: <patient id>:::<weight value>" 27 print "" 28 print " current command line:", sys.argv
29
30 -def run_importer():
31 32 # map data from commandline 33 try: 34 date = sys.argv[idx_date] 35 gsm = sys.argv[idx_gsm] 36 sms = sys.argv[idx_sms] 37 pk_patient, weight = sms.split(':::') 38 except Exception: 39 return False 40 41 # find patient by gsm 42 # cmd1 = u"select dem.add_external_id_type(%(desc)s, %(org)s)" 43 # args1 = {'desc': external_id_type, 'org': u'gmSMSImporter.py'} 44 # cmd2 = u'select pk from dem.enum_ext_id_types where name = %(desc)s' 45 # rows, idx = gmPG2.run_rw_queries ( 46 # queries = [ 47 # {'cmd': cmd1, 'args': args1}, 48 # {'cmd': cmd2, 'args': args1} 49 # ], 50 # return_data = True 51 # ) 52 # ext_id_pk = rows[0][0] 53 54 # cmd = u""" 55 #select li2id.id_identity 56 #from dem.lnk_identity2ext_id li2id 57 #where 58 # li2id.external_id = %(id)s and 59 # fk_origin = %(src)s""" 60 # args = {'id': gsm, 'src': ext_id_pk} 61 62 # rows, idx = gmPG2.run_ro_queries ( 63 # queries = [{'cmd': cmd, 'args': args}], 64 # return_data = True 65 # ) 66 # if len(rows) == 0: 67 # print "patient with GSM [%s] not found" % gsm 68 # return False 69 # pk_patient = rows[0][0] 70 71 gmPerson.set_active_patient(patient = gmPerson.cPerson(aPK_obj = pk_patient)) 72 73 # ensure structure of EMR 74 curr_pat = gmPerson.gmCurrentPatient() 75 emr = curr_pat.emr 76 epi = emr.add_episode(episode_name = 'Gewichtsmonitoring', is_open = False) 77 78 # and import our stuff 79 narr = emr.add_clin_narrative ( 80 note = weight_template % (dt.datetime.now().strftime('%X'), weight), 81 soap_cat = soap_cat, 82 episode = epi 83 ) 84 85 return True
86 #============================================== 87 if __name__ == '__main__': 88 89 gmI18N.activate_locale() 90 gmI18N.install_domain(domain = 'gnumed') 91 gmDateTime.init() 92 93 login = cLogin() 94 login.database = 'gnumed_v9' 95 login.host = 'publicdb.gnumed.de' 96 login.port = 5432 97 login.user = 'any-doc' 98 login.password = 'any-doc' 99 100 if not run_importer(): 101 usage() 102 sys.exit() 103