Пример #1
0
def view_task(request, uid, return_context=False):
    task = Task.get(uid)[0]

    # Replace newlines with <br>, etc.
    task["definition"] = clean_html(task["definition"])
    contrasts = Task.get_contrasts(task["id"])

    # Make a lookup dictionary based on concept id
    concept_lookup = dict()
    for contrast in contrasts:
        contrast_concepts = Contrast.get_concepts(contrast["contrast_id"])
        for concept in contrast_concepts:
            concept_lookup = update_lookup(concept_lookup,
                                           concept["concept_id"], contrast)

    # Retrieve conditions, make associations with contrasts
    conditions = Task.get_conditions(uid)

    context = {
        "task": task,
        "concepts": concept_lookup,
        "contrasts": contrasts,
        "conditions": conditions,
        "domain": DOMAIN
    }

    if return_context == True:
        return context
    return render(request, 'atlas/view_task.html', context)
Пример #2
0
class NodeChildrenTest(TestCase):
    def setUp(self):
        self.task = Task()
        self.node_name = "test_name"
        self.node_properties = {'test_key': 'test_value'}
        self.graph = Graph("http://graphdb:7474/db/data/")
        self.task1 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task2 = self.task.create(
            name=self.node_name,
            properties=self.node_properties)
        condition = Condition()
        self.cond = condition.create(
            name=self.node_name,
            properties=self.node_properties)
        contrast = Contrast()
        self.cont = contrast.create(
            name=self.node_name,
            properties=self.node_properties)
        concept = Concept()
        self.con = concept.create(
            name=self.node_name,
            properties=self.node_properties)
        self.task.link(
            self.task1.properties['id'],
            self.cond.properties['id'],
            "HASCONDITION",
            endnode_type='condition')
        self.task.link(
            self.task1.properties['id'],
            self.con.properties['id'],
            "ASSERTS",
            endnode_type='concept')
        condition.link(
            self.cond.properties['id'],
            self.cont.properties['id'],
            "HASCONTRAST",
            endnode_type='contrast')
        concept.link(
            self.con.properties['id'],
            self.cont.properties['id'],
            "MEASUREDBY",
            endnode_type='contrast')

    def tearDown(self):
        self.task1.delete_related()
        self.task2.delete_related()
        self.cond.delete_related()
        self.cont.delete_related()
        self.con.delete_related()
        self.task1.delete()
        self.task2.delete()
        self.cond.delete()
        self.cont.delete()
        self.con.delete()

    def test_task_get_contrasts(self):
        contrasts = self.task.get_contrasts(self.task1.properties['id'])
        self.assertEqual(len(contrasts), 1)
        self.assertEqual(
            contrasts[0]['contrast_id'],
            self.cont.properties['id'])

    def test_task_get_conditions(self):
        conditions = self.task.get_conditions(self.task1.properties['id'])
        self.assertEqual(len(conditions), 1)
        self.assertEqual(
            conditions[0]['condition_id'],
            self.cond.properties['id'])

    def test_contrast_get_conditions(self):
        contrast = Contrast()
        conditions = contrast.get_conditions(self.cont.properties['id'])
        self.assertEqual(len(conditions), 1)
        self.assertEqual(
            conditions[0]['condition_id'],
            self.cond.properties['id'])

    def test_contrast_get_concepts(self):
        contrast = Contrast()
        concepts = contrast.get_concepts(self.cont.properties['id'])
        self.assertEqual(len(concepts), 1)
        self.assertEqual(concepts[0]['concept_id'], self.con.properties['id'])

    def test_contrast_get_tasks(self):
        contrast = Contrast()
        tasks = contrast.get_tasks(self.cont.properties['id'])
        self.assertEqual(len(tasks), 1)
        self.assertEqual(tasks[0]['task_id'], self.task1.properties['id'])