Example #1
0
def create_narr():
    # don't worry about which patient we chose, just be consistent
    cmd = "select pk_episode, pk_encounter from v_pat_narrative limit 1"
    data = gmPG.run_ro_query('historica', cmd)
    narr = gmClinNarrative.create_narrative_item(narrative=magic_string,
                                                 soap_cat='s',
                                                 episode_id=data[0][0],
                                                 encounter_id=data[0][1])
    return narr
Example #2
0
def find_narr():
	cmd = "select pk from clin_narrative where narrative = %s limit 1"
	data = gmPG.run_ro_query (
		'clinical',
		cmd,
		None,
		magic_string
	)
	if len(data) == 0:
		return create_narr()
	return gmClinNarrative.cNarrative(aPK_obj=data[0][0])
Example #3
0
def create_narr():
	# don't worry about which patient we chose, just be consistent
	cmd = "select pk_episode, pk_encounter from v_pat_narrative limit 1"
	data = gmPG.run_ro_query('historica', cmd)
	narr = gmClinNarrative.create_narrative_item (
		narrative = magic_string,
		soap_cat = 's',
		episode_id = data[0][0],
		encounter_id = data[0][1]
	)
	return narr
Example #4
0
def find_narr():
    cmd = "select pk from clin_narrative where narrative = %s limit 1"
    data = gmPG.run_ro_query('clinical', cmd, None, magic_string)
    if len(data) == 0:
        return create_narr()
    return gmClinNarrative.cNarrative(aPK_obj=data[0][0])
Example #5
0
emr = pat.emr
epi = emr.get_episodes()[0]

print "creating new narrative row"
note = emr.add_clin_narrative (
	note = 'testing concurrency detection: %s' % time.time(),
	episode = epi
)
print "primary key:", note['pk_narrative']
print "xmin before change:", note['xmin_clin_narrative']

print "waiting for narrative row (xmin) to change"
print "manually update the clin_narrative row with pk=<%s> in the database now" % note['pk_narrative']
cmd = "select xmin from clin_narrative where pk=%s"
while 1:
	data = gmPG.run_ro_query('historica', cmd, None, note['pk_narrative'])
	if data[0][0] != note['xmin_clin_narrative']:
		break

print "narrative row (xmin) changed"
print "xmin after change:", data[0][0]

print "provoking concurrency triggered integrity violation"

note['narrative'] = 'cannot change note to this line'
successful, data = note.save_payload()

if successful:
	sys.exit()
err, msg = data
if err == 2:
schedule_template = """
Schedule "%s" (%s)
  indication : %s (%s)
  start @ age: %s days
  # of shots : %s
  comment    : %s
"""

#===========================
# export vaccine information
#===========================

# retrieve vaccines
cmd = "select * from clin.v_vaccine"
vaccine_rows, idx = gmPG.run_ro_query(link_obj='clinical',
                                      aQuery=cmd,
                                      get_col_idx=True)
# error
if vaccine_rows is None:
    print("error retrieving vaccine data")
# display vaccine data
else:
    f.write('Vaccines in the GNUmed database\n')
    f.write('-------------------------------\n')
    for vacc in vaccine_rows:
        f.write(
            vaccine_template %
            (vacc[idx['trade_name']], vacc[idx['short_name']],
             vacc[idx['comment']], vacc[idx['l10n_route_description']],
             vacc[idx['route_abbreviation']], vacc[idx['route_description']],
             vacc[idx['min_age']].day, vacc[idx['max_age']].day))
Example #7
0
emr = pat.get_emr()
epi = emr.get_episodes()[0]

print "creating new narrative row"
note = emr.add_clin_narrative (
	note = 'testing concurrency detection: %s' % time.time(),
	episode = epi
)
print "primary key:", note['pk_narrative']
print "xmin before change:", note['xmin_clin_narrative']

print "waiting for narrative row (xmin) to change"
print "manually update the clin_narrative row with pk=<%s> in the database now" % note['pk_narrative']
cmd = "select xmin from clin_narrative where pk=%s"
while 1:
	data = gmPG.run_ro_query('historica', cmd, None, note['pk_narrative'])
	if data[0][0] != note['xmin_clin_narrative']:
		break

print "narrative row (xmin) changed"
print "xmin after change:", data[0][0]

print "provoking concurrency triggered integrity violation"

note['narrative'] = 'cannot change note to this line'
successful, data = note.save_payload()

if successful:
	sys.exit()
err, msg = data
if err == 2:
Schedule "%s" (%s)
  indication : %s (%s)
  start @ age: %s days
  # of shots : %s
  comment    : %s
"""

#===========================
# export vaccine information
#===========================

# retrieve vaccines
cmd = "select * from clin.v_vaccine"
vaccine_rows, idx = gmPG.run_ro_query (
	link_obj = 'clinical',
	aQuery = cmd,
	get_col_idx = True
)
# error
if vaccine_rows is None:
	print "error retrieving vaccine data"
# display vaccine data
else:
	f.write('Vaccines in the GNUmed database\n')
	f.write('-------------------------------\n')
	for vacc in vaccine_rows:
		f.write(vaccine_template % (
			vacc[idx['trade_name']],
			vacc[idx['short_name']],
			vacc[idx['comment']],
			vacc[idx['l10n_route_description']],