def test_GetParticipantIDs(): kwargs = { Constants.NIDM_PROJECT_NAME: "FBIRN_PhaseII", Constants.NIDM_PROJECT_IDENTIFIER: 9610, Constants.NIDM_PROJECT_DESCRIPTION: "Test investigation" } project = Project(uuid="_123456", attributes=kwargs) session = Session(uuid="_13579", project=project) acq = Acquisition(uuid="_15793", session=session) acq2 = Acquisition(uuid="_15795", session=session) person = acq.add_person(attributes=({Constants.NIDM_SUBJECTID: "9999"})) acq.add_qualified_association(person=person, role=Constants.NIDM_PARTICIPANT) person2 = acq2.add_person(attributes=({Constants.NIDM_SUBJECTID: "8888"})) acq2.add_qualified_association(person=person2, role=Constants.NIDM_PARTICIPANT) #save a turtle file with open("test.ttl", 'w') as f: f.write(project.serializeTurtle()) participant_list = Query.GetParticipantIDs(["test.ttl"]) remove("test.ttl") assert (participant_list['ID'].str.contains('9999').any()) assert (participant_list['ID'].str.contains('8888').any())
def makeTestFile(filename, params): global test_person_uuid, test_p2_subject_uuids nidm_project_name = params.get('NIDM_PROJECT_NAME', False) or "Project_name_sample" nidm_project_identifier = params.get('NIDM_PROJECT_IDENTIFIER', False) or 9610 nidm_project2_identifier = params.get('NIDM_PROJECT_IDENTIFIER', False) or 550 nidm_project_description = params.get( 'NIDM_PROJECT_DESCRIPTION', False) or "1234356 Test investigation" project_uuid = params.get('PROJECT_UUID', False) or "_proj1" project_uuid2 = params.get('PROJECT2_UUID', False) or "_proj2" session_uuid = params.get('SESSION_UUID', False) or "_ses1" session_uuid2 = params.get('SESSION2_UUID', False) or "_ses2" p1kwargs = { Constants.NIDM_PROJECT_NAME: nidm_project_name, Constants.NIDM_PROJECT_IDENTIFIER: nidm_project_identifier, Constants.NIDM_PROJECT_DESCRIPTION: nidm_project_description } p2kwargs = { Constants.NIDM_PROJECT_NAME: nidm_project_name, Constants.NIDM_PROJECT_IDENTIFIER: nidm_project2_identifier, Constants.NIDM_PROJECT_DESCRIPTION: nidm_project_description } project = Project(uuid=project_uuid, attributes=p1kwargs) session = Session(uuid=session_uuid, project=project) acq = Acquisition(uuid="_acq1", session=session) acq2 = Acquisition(uuid="_acq2", session=session) acq3 = Acquisition(uuid="_acq2", session=session) person = acq.add_person(attributes=({Constants.NIDM_SUBJECTID: "a1_9999"})) test_person_uuid = (str(person.identifier)).replace("niiri:", "") acq.add_qualified_association(person=person, role=Constants.NIDM_PARTICIPANT) person2 = acq2.add_person(attributes=({ Constants.NIDM_SUBJECTID: "a1_8888" })) acq2.add_qualified_association(person=person2, role=Constants.NIDM_PARTICIPANT) person3 = acq3.add_person(attributes=({ Constants.NIDM_SUBJECTID: "a2_7777" })) acq2.add_qualified_association(person=person3, role=Constants.NIDM_PARTICIPANT) project2 = Project(uuid=project_uuid2, attributes=p2kwargs) session2 = Session(uuid=session_uuid2, project=project2) acq4 = Acquisition(uuid="_acq3", session=session2) acq5 = Acquisition(uuid="_acq4", session=session2) person4 = acq4.add_person(attributes=({ Constants.NIDM_SUBJECTID: "a3_6666" })) acq4.add_qualified_association(person=person4, role=Constants.NIDM_PARTICIPANT) person5 = acq5.add_person(attributes=({ Constants.NIDM_SUBJECTID: "a4_5555" })) acq5.add_qualified_association(person=person5, role=Constants.NIDM_PARTICIPANT) # now add some assessment instrument data addData( acq, { Constants.NIDM_AGE: 9, Constants.NIDM_HANDEDNESS: "R", Constants.NIDM_DIAGNOSIS: "Anxiety" }) addData( acq2, { Constants.NIDM_AGE: 8, Constants.NIDM_HANDEDNESS: "L", Constants.NIDM_DIAGNOSIS: "ADHD" }) addData( acq4, { Constants.NIDM_AGE: 7, Constants.NIDM_HANDEDNESS: "A", Constants.NIDM_DIAGNOSIS: "Depression" }) addData( acq5, { Constants.NIDM_AGE: 6, Constants.NIDM_HANDEDNESS: "R", Constants.NIDM_DIAGNOSIS: "Depression" }) test_p2_subject_uuids.append( (str(person4.identifier)).replace("niiri:", "")) test_p2_subject_uuids.append( (str(person5.identifier)).replace("niiri:", "")) with open("a.ttl", 'w') as f: f.write(project.graph.serialize(None, format='rdf', rdf_format='ttl')) with open("b.ttl", 'w') as f: f.write(project2.graph.serialize(None, format='rdf', rdf_format='ttl')) #create empty graph graph = Graph() for nidm_file in ("a.ttl", "b.ttl"): tmp = Graph() graph = graph + tmp.parse(nidm_file, format=util.guess_format(nidm_file)) graph.serialize(filename, format='turtle') os.unlink("a.ttl") os.unlink("b.ttl") with open(filename, "r") as f: x = f.read() with open("./agent.ttl", "w") as f: f.write(x)