Beispiel #1
0
 def add_relation(self, rel, concept):
     if isinstance(concept, pymedtermino.Concept):
         if rel in self.relations:
             getattr(self, rel).add(concept)
         else:
             self.relations.add(rel)
             setattr(self, rel, pymedtermino.Concepts([concept]))
     else:
         if rel in self.relations:
             getattr(self, rel).update(concept)
         else:
             self.relations.add(rel)
             setattr(self, rel, pymedtermino.Concepts(concept))
Beispiel #2
0
 def map_concepts(self, concepts):
     r = pymedtermino.Concepts()
     for concept in concepts:
         db_cursor.execute(self.request, (concept.code, ))
         for (code, ) in db_cursor.fetchall():
             c = self.terminology2.get(code)
             if c: r.add(c)
     return r
Beispiel #3
0
 def map_concepts(self, concepts):
     r = pymedtermino.Concepts()
     for concept in concepts:
         code = concept.code.replace(".", "")
         db_cursor.execute(
             "SELECT cimcdf_cdf_numero_fk_pk, cimcdf_cdf_code_fk_pk FROM cimcdf_cim10_codif WHERE cimcdf_cim_code_fk_pk = %s",
             (code, ))
         for (numero, code) in db_cursor.fetchall():
             c = self.terminology2.get("%s_%s" % (numero, code))
             if c: r.add(c)
     return r
Beispiel #4
0
 def associated_clinical_findings(self):
     """Return the clinical finding concepts associated to this concept (which is expected to be a anatomical structure, a morphology, etc)."""
     r = pymedtermino.Concepts()
     for i in set(self.self_and_descendants()) | set(
             self.descendant_parts()):
         for relation in MAIN_CLINICAL_FINDING_RELATIONS:
             relation = "INVERSE_%s" % relation
             if relation in i.relations:
                 for j in getattr(i, relation):
                     if j.is_a(SNOMEDCT[404684003]): r.add(j)
     return r
Beispiel #5
0
 def map_concepts(self, concepts):
     r = pymedtermino.Concepts()
     for concept in concepts:
         db_cursor.execute(
             "SELECT cimcdf_cim_code_fk_pk FROM  WHERE (cimcdf_cdf_numero_fk_pk = %s) AND (cimcdf_cdf_code_fk_pk = %s)",
             (concept.cdf_numero, concept.cdf_code))
         for (code, ) in db_cursor.fetchall():
             if (not "-" in code) and (len(code) > 3):
                 code = "%s.%s" % (code[:3], code[3:])
             c = self.terminology2.get(code)
             if c: r.add(c)
     return r