Beispiel #1
0
    def test_03_visit_special(self):
        """
        This test tries to visit special files.
        These can be copies from already loaded files, DICOM with missing fields, etc.
        """
        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA2',
                                                          db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.Provenance).count(), 3)

        # Visit various files
        files_recording.visit('./data/any/',
                              provenance_id,
                              'SPECIAL',
                              1,
                              db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.DataFile).count(), 8)

        # A few more things to check
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='DICOM').count(), 4)
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='NIFTI').count(), 3)
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(is_copy=True).count(), 1)
Beispiel #2
0
    def test_01_visit(self):
        """
        This is a basic use case.
        First, we want to visit a DICOM data-set after the 'ACQUISITION' process. Then, we want to visit a NIFTI
        data-set generated from the previous DICOM files after the 'DICOM2NIFTI' process.
        """

        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA',
                                                          db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.Provenance).count(), 1)

        # Visit DICOM files
        acquisition_step_id = files_recording.visit(
            './data/dcm/',
            provenance_id,
            'ACQUISITION',
            config=['sid_by_patient', 'pid_in_vid'],
            db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.DataFile).count(), 4)

        # Create a provenance with some fake Matlab and SPM version numbers
        provenance_id = files_recording.create_provenance('TEST_DATA',
                                                          software_versions={
                                                              'matlab_version':
                                                              '2016R',
                                                              'spm_version':
                                                              'v12'
                                                          },
                                                          db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.Provenance).count(), 2)

        # Visit NIFTI files
        files_recording.visit('./data/nii/',
                              provenance_id,
                              'DICOM2NIFTI',
                              acquisition_step_id,
                              config=['sid_by_patient', 'pid_in_vid'],
                              db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.DataFile).count(), 7)

        # A few more things to check
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='DICOM').count(), 3)
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='NIFTI').count(), 3)
Beispiel #3
0
    def test_02_visit_again(self):
        """
        Here, run again the test_01_visit so we can check that there are no duplicates in the DB.
        """

        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA',
                                                          db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.Provenance).count(), 2)

        # Visit DICOM files
        acquisition_step_id = files_recording.visit(
            './data/dcm/',
            provenance_id,
            'ACQUISITION',
            config=['sid_by_patient', 'pid_in_vid'],
            db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.DataFile).count(), 7)

        # Create a provenance with some fake Matlab and SPM version numbers
        provenance_id = files_recording.create_provenance('TEST_DATA',
                                                          software_versions={
                                                              'matlab_version':
                                                              '2016R',
                                                              'spm_version':
                                                              'v12'
                                                          },
                                                          db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.Provenance).count(), 2)

        # Visit NIFTI files
        files_recording.visit('./data/nii/',
                              provenance_id,
                              'DICOM2NIFTI',
                              acquisition_step_id,
                              config=['sid_by_patient', 'pid_in_vid'],
                              db_url=DB_URL)
        assert_equal(
            self.db_conn.db_session.query(self.db_conn.DataFile).count(), 7)

        # A few more things to check
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='DICOM').count(), 3)
        assert_equal(
            self.db_conn.db_session.query(
                self.db_conn.DataFile).filter_by(type='NIFTI').count(), 3)
Beispiel #4
0
    def test_01_visit(self):
        """
        This is a basic use case.
        First, we want to visit a DICOM data-set after the 'ACQUISITION' process. Then, we want to visit a NIFTI
        data-set generated from the previous DICOM files after the 'DICOM2NIFTI' process.
        """

        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA', db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.Provenance).filter_by(
            dataset='TEST_DATA', matlab_version=None).count(), 1)

        # Visit DICOM files
        acquisition_step_id = files_recording.visit('./data/dcm/', provenance_id, 'ACQUISITION',
                                                    config=['sid_by_patient', 'pid_in_vid'], db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            processing_step_id=acquisition_step_id).count(), 4)

        # Create a provenance with some fake Matlab and SPM version numbers
        provenance_id2 = files_recording.create_provenance('TEST_DATA',
                                                           software_versions={
                                                               'matlab_version': '2016R', 'spm_version': 'v12'},
                                                           db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.Provenance).filter_by(
            dataset='TEST_DATA', matlab_version='2016R').count(), 1)

        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='DICOM', processing_step_id=acquisition_step_id).count(), 3)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='NIFTI', processing_step_id=acquisition_step_id).count(), 0)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='other', processing_step_id=acquisition_step_id).count(), 1)

        # Visit NIFTI files
        acquisition_step_id2 = files_recording.visit('./data/nii/', provenance_id2, 'DICOM2NIFTI', acquisition_step_id,
                                                     config=['sid_by_patient', 'pid_in_vid'], db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            processing_step_id=acquisition_step_id2).count(), 3)

        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='DICOM', processing_step_id=acquisition_step_id2).count(), 0)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='NIFTI', processing_step_id=acquisition_step_id2).count(), 3)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='other', processing_step_id=acquisition_step_id2).count(), 0)
Beispiel #5
0
    def test_02_visit_again(self):
        """
        Here, run again the test_01_visit so we can check that there are no duplicates in the DB.
        """

        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA', db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.Provenance).filter_by(
            dataset='TEST_DATA', matlab_version=None).count(), 1)

        # Visit DICOM files
        acquisition_step_id = files_recording.visit('./data/dcm/', provenance_id, 'ACQUISITION',
                                                    config=['sid_by_patient', 'pid_in_vid'], db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            processing_step_id=acquisition_step_id).count(), 4)

        # Create a provenance with some fake Matlab and SPM version numbers
        provenance_id2 = files_recording.create_provenance('TEST_DATA',
                                                           software_versions={
                                                               'matlab_version': '2016R', 'spm_version': 'v12'},
                                                           db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.Provenance).filter_by(
            dataset='TEST_DATA', matlab_version='2016R').count(), 1)

        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='DICOM', processing_step_id=acquisition_step_id).count(), 3)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='NIFTI', processing_step_id=acquisition_step_id).count(), 0)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='other', processing_step_id=acquisition_step_id).count(), 1)

        # Visit NIFTI files
        acquisition_step_id2 = files_recording.visit('./data/nii/', provenance_id2, 'DICOM2NIFTI', acquisition_step_id,
                                                     config=['sid_by_patient', 'pid_in_vid'], db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            processing_step_id=acquisition_step_id2).count(), 3)

        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='DICOM', processing_step_id=acquisition_step_id2).count(), 0)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='NIFTI', processing_step_id=acquisition_step_id2).count(), 3)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='other', processing_step_id=acquisition_step_id2).count(), 0)
Beispiel #6
0
    def test_03_visit_special(self):
        """
        This test tries to visit special files.
        These can be copies from already loaded files, DICOM with missing fields, etc.
        """
        # Create a simple provenance
        provenance_id = files_recording.create_provenance('TEST_DATA2', db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.Provenance).filter_by(dataset='TEST_DATA2').count(), 1)

        # Visit various files
        acquisition_step_id = files_recording.visit('./data/any/', provenance_id, 'SPECIAL', 1, db_url=DB_URL)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            processing_step_id=acquisition_step_id).count(), 1)

        # A few more things to check
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='DICOM', processing_step_id=acquisition_step_id).count(), 1)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            type='NIFTI', processing_step_id=acquisition_step_id).count(), 0)
        assert_equal(self.db_conn.db_session.query(self.db_conn.DataFile).filter_by(
            is_copy=True, processing_step_id=acquisition_step_id).count(), 1)