ehr_records = kb.get_ehr_records() logging.info('Loaded %d EHR records' % len(ehr_records)) ehr_lookup = {} for rec in ehr_records: key = get_ehr_key(rec) ehr_lookup.setdefault(rec['i_id'], {}).setdefault(key, []).append(rec) logger.debug('Loaded EHR lookup table, %d individuals involved' % len(ehr_lookup.keys())) for ind, records in ehr_lookup.iteritems(): for k, vals in records.iteritems(): if len(vals) > 1: logger.info( '##### Individual %s has %d duplicated EHR records #####' % (ind, len(vals))) logger.debug(vals) for v in vals[1:]: logger.info('Invalidating record %r' % v) kb.invalidate_ehr_records(v['i_id'], timestamp=v['timestamp'], archetype=v['archetype'], grouper_id=v['g_id'], field=v['fields'].keys()[0], field_value=str( v['fields'].values()[0])) if __name__ == '__main__': main(sys.argv[1:])
kb = KB(driver='omero')(host, user, passwd) logging.info('Loading EHR records') ehr_records = kb.get_ehr_records() logging.info('Loaded %d EHR records' % len(ehr_records)) ehr_lookup = {} for rec in ehr_records: key = get_ehr_key(rec) ehr_lookup.setdefault(rec['i_id'], {}).setdefault(key,[]).append(rec) logger.debug('Loaded EHR lookup table, %d individuals involved' % len(ehr_lookup.keys())) for ind, records in ehr_lookup.iteritems(): for k, vals in records.iteritems(): if len(vals) > 1: logger.info('##### Individual %s has %d duplicated EHR records #####' % (ind, len(vals))) logger.debug(vals) for v in vals[1:]: logger.info('Invalidating record %r' % v) kb.invalidate_ehr_records(v['i_id'], timestamp = v['timestamp'], archetype = v['archetype'], grouper_id = v['g_id'], field = v['fields'].keys()[0], field_value = str(v['fields'].values()[0])) if __name__ == '__main__': main(sys.argv[1:])