def i_memberOf(ss: Substrate, crorwc: crOrWildCard) -> Sctids_or_Error: # TODO -- this function executes queries - need to redo ? refsetids = ss.i_conceptReference(crorwc.cr) if crorwc.inran('cr') else \ Sctids_or_Error(ok=ss.descendants(refset_concept)) if refsetids.inran('error'): return refsetids refsets = result_sctids(refsetids) refset_members = [ss.i_refsetId(sctid) for sctid in refsets] rval = refset_members[0] if refset_members else Sctids_or_Error(ok=ss.equivalent_concepts(None)) for m in refset_members[1:]: rval = rval.union(m) return rval
def i_focusConcept(ss: Substrate, fc: focusConcept) -> Sctids_or_Error: return ss.i_conceptReference(fc.focusConcept_c.cr) if fc.inran('focusConcept_c') and fc.focusConcept_c.inran('cr') else \ Sctids_or_Error(ok=ss.concepts) if fc.inran('focusConcept_c') and fc.focusConcept_c.inran('wc') else \ i_memberOf(ss, fc.focusConcept_m)