Example #1
0
    def load (self, context):
        if self.uid == -1:
            return
        
        # Is it already loaded?  Convenience check for client calls
        # don't need to verify loads from the cache.
        if context.config.use_cache:
            try:
                if self.journal_title:
                    # Already loaded
                    return
            except AttributeError:
                # Note already loaded, so continue
                pass

        cursor = context.get_cursor()
        cursor.execute("""
            SELECT journal_title, abbreviation, issn, nlm_id
            FROM medline_journals
            WHERE uid = %s
            """, self.uid)
        fields = [d[0] for d in cursor.description]
        desc = dtuple.TupleDescriptor([[f] for f in fields])
        
        rows = cursor.fetchall()
        for row in rows:
            row = dtuple.DatabaseTuple(desc, row)
            for k, v in row.items():
                self.set(k, v) 
                
        if context.config.use_cache:
            context.cache_set('%s:%s' % (self.ALT_CACHE_KEY, self.issn), self)
Example #2
0
    def load(self, context):
        if self.uid == -1:
            return

        # Is it already loaded?  Convenience check for client calls
        # don't need to verify loads from the cache.
        if context.config.use_cache:
            try:
                if getattr(self, self.CACHE_CHECK_KEY):
                    # Already loaded
                    return
            except AttributeError:
                # Note already loaded, so continue
                pass

        cursor = context.get_cursor()
        cursor.execute(
            """
            SELECT reference, comments
            FROM human_studies
            WHERE uid = %s
            """,
            self.uid,
        )
        fields = [d[0] for d in cursor.description]
        desc = dtuple.TupleDescriptor([[f] for f in fields])
        row = cursor.fetchone()
        row = dtuple.DatabaseTuple(desc, row)
        self.reference = row["reference"]
        self.comments = row["comments"]

        if context.config.use_cache:
            context.cache_set("%s:%s" % (self.CACHE_KEY, self.uid), self)
Example #3
0
 def load_from_issn (self, context, issn):
     if not issn:
         return
     
     if context.config.use_cache:
         j = context.cache_get('%s:%s' % (self.ALT_CACHE_KEY, issn))
         if j \
             and j.journal_title:
             for att in ('uid', 'journal_title', 'abbreviation',
                 'issn', 'eissn', 'iso_abbr', 'nlm_id'):
                 self.set(att, getattr(j, att))
             return
     
     cursor = context.get_cursor()
     cursor.execute("""
         SELECT uid, journal_title, abbreviation, nlm_id
         FROM medline_journals
         WHERE issn = %s
         """, issn)
     fields = [d[0] for d in cursor.description]
     desc = dtuple.TupleDescriptor([[f] for f in fields])
     rows = cursor.fetchall()
     if rows:
         row = rows[0]
         row = dtuple.DatabaseTuple(desc, row)
         for k, v in row.items():
             self.set(k, v)
         self.issn = issn
         
         if context.config.use_cache:
             context.cache_set('%s:%s' % (self.CACHE_KEY, self.uid), self)
             context.cache_set('%s:%s' % (self.ALT_CACHE_KEY, self.issn), self)
Example #4
0
    def save(self, context):
        cursor = context.get_cursor()

        try:
            if self.uid == -1:
                cursor.execute(
                    """
                    INSERT INTO human_studies
                    (reference, comments)
                    VALUES (%s, %s)
                    """,
                    (self.reference, self.comments),
                )
                self.uid = self.get_new_uid(context)
                context.logger.info("HumanStudy created with uid %s", self.uid)

            else:
                cursor.execute(
                    """
                    UPDATE human_studies
                    SET reference = %s, comments = %s
                    WHERE uid = %s
                    """,
                    (self.reference, self.comments, self.uid),
                )
                context.logger.info("HumanStudy %s updates", self.uid)
        except:
            print traceback.print_exc()
            raise Error, "Duplicate reference"

        if context.config.use_cache:
            context.cache_set("%s:%s" % (self.CACHE_KEY, self.uid), self)
Example #5
0
    def save(self, context):
        cursor = context.get_cursor()

        try:
            if self.uid == -1:
                cursor.execute(
                    """
                    INSERT INTO human_studies
                    (reference, comments)
                    VALUES (%s, %s)
                    """, (self.reference, self.comments))
                self.uid = self.get_new_uid(context)
                context.logger.info('HumanStudy created with uid %s', self.uid)

            else:
                cursor.execute(
                    """
                    UPDATE human_studies
                    SET reference = %s, comments = %s
                    WHERE uid = %s
                    """, (self.reference, self.comments, self.uid))
                context.logger.info('HumanStudy %s updates', self.uid)
        except:
            print traceback.print_exc()
            raise Error, 'Duplicate reference'

        if context.config.use_cache:
            context.cache_set('%s:%s' % (self.CACHE_KEY, self.uid), self)
Example #6
0
    def load(self, context):
        if self.uid == -1:
            return

        # Is it already loaded?  Convenience check for client calls
        # don't need to verify loads from the cache.
        if context.config.use_cache:
            try:
                if getattr(self, self.CACHE_CHECK_KEY):
                    # Already loaded
                    return
            except AttributeError:
                # Note already loaded, so continue
                pass

        cursor = context.get_cursor()
        cursor.execute(
            """
            SELECT reference, comments
            FROM human_studies
            WHERE uid = %s
            """, self.uid)
        fields = [d[0] for d in cursor.description]
        desc = dtuple.TupleDescriptor([[f] for f in fields])
        row = cursor.fetchone()
        row = dtuple.DatabaseTuple(desc, row)
        self.reference = row['reference']
        self.comments = row['comments']

        if context.config.use_cache:
            context.cache_set('%s:%s' % (self.CACHE_KEY, self.uid), self)
Example #7
0
    def save (self, context, update_all=False):
        # NOTE: For now, do not allow creation of arbitrary concepts
        if self.uid == -1:
            return
        
        cursor = context.get_cursor()
        # NOTE: For now, only allow update of preferred_name
        cursor.execute("""
            UPDATE umls_concepts
            SET preferred_name = %s
            WHERE umls_concept_id = %s
            """, (self.term, self.uid))

        if context.config.use_cache:
            context.cache_set('%s:%s' % (self.CACHE_KEY, self.uid), self)
Example #8
0
    def save(self, context, update_all=False):
        # NOTE: For now, do not allow creation of arbitrary concepts
        if self.uid == -1:
            return

        cursor = context.get_cursor()
        # NOTE: For now, only allow update of preferred_name
        cursor.execute(
            """
            UPDATE umls_concepts
            SET preferred_name = %s
            WHERE umls_concept_id = %s
            """, (self.term, self.uid))

        if context.config.use_cache:
            context.cache_set('%s:%s' % (self.CACHE_KEY, self.uid), self)