def retrieveSampleAnnotationsFromCondensedSdrf(condensedSdrfStr):
    """
    >>> (diseases, tissues, crossRefs) = retrieveSampleAnnotationsFromCondensedSdrf("")
    >>> len(diseases)
    0
    >>> (diseases, tissues, crossRefs) = retrieveSampleAnnotationsFromCondensedSdrf("E-MTAB-2770\\t\\trun_5637.2\\tfactor\\tcell line\t5637\thttp://www.ebi.ac.uk/efo/EFO_0002096")
    >>> len(diseases) + len(tissues) + len(crossRefs)
    0
    >>> (diseases, tissues, crossRefs) = retrieveSampleAnnotationsFromCondensedSdrf("E-MTAB-2770\\t\\trun_5637.2\\tfactor\\tdisease\\tbladder carcinoma\\thttp://www.ebi.ac.uk/efo/EFO_0000292")
    >>> "bladder carcinoma" in diseases
    True
    >>> "EFO_0000292" in crossRefs
    True
    >>> tissues
    set()
    >>> (diseases, tissues, crossRefs) = retrieveSampleAnnotationsFromCondensedSdrf("E-MTAB-513\\t\\tERR030881\\tfactor\\torganism part\\tadrenal\\thttp://purl.obolibrary.org/obo/UBERON_0002369")
    >>> "adrenal" in tissues
    True
    >>> "UBERON_0002369" in crossRefs
    True
    >>> diseases
    set()
    """
    diseases, tissues, crossRefs  = (set([]), set([]), set([]))
    for row in condensedSdrfStr.split("\n"):
        arr = row.strip().split("\t")
        if len(arr) > 4 and arr[3] == "factor":
            if arr[4].lower() == "organism part":
                tissues.add(arr[5].strip())
                if len(arr) > 6:
                    crossRefs.add(arr[6].split("/")[-1].strip())             
            elif arr[4].lower() == "disease":
                diseases.add(arr[5].strip())
                if len(arr) > 6:
                    crossRefs.add(arr[6].split("/")[-1].strip())
    return (diseases, tissues, crossRefs)