Exemplo n.º 1
0
def test_study_find_patient_attrs_with_filters_negative(pacs_srv: pacs.PACS):
    request = Dataset()
    request.PatientName = 'Test1^*'
    request.SpecificCharacterSet = 'ISO_IR 192'
    request.QueryRetrieveLevel = 'STUDY'
    request.AccessionNumber = '1234'
    assert not list(pacs_srv.c_find(request))
Exemplo n.º 2
0
def test_study_find_no_patient_attrs(pacs_srv: pacs.PACS):
    request = Dataset()
    request.SpecificCharacterSet = 'ISO_IR 192'
    request.QueryRetrieveLevel = 'STUDY'
    request.AccessionNumber = '1234'
    results = list(pacs_srv.c_find(request))
    assert len(results) == 1
    assert results[0].AccessionNumber == '1234'
Exemplo n.º 3
0
def test_study_find_modalities_in_study_no_filter(pacs_srv: pacs.PACS):
    request = Dataset()
    request.SpecificCharacterSet = 'ISO_IR 192'
    request.QueryRetrieveLevel = 'STUDY'
    request.AccessionNumber = '1234'
    request.ModalitiesInStudy = None
    results = list(pacs_srv.c_find(request))
    assert len(results) == 1
    assert results[0].ModalitiesInStudy == ['DX', 'SR']
Exemplo n.º 4
0
def test_study_find_patient_attrs_with_filters_positive(pacs_srv: pacs.PACS):
    request = Dataset()
    request.PatientName = 'Test^*'
    request.SpecificCharacterSet = 'ISO_IR 192'
    request.QueryRetrieveLevel = 'STUDY'
    request.AccessionNumber = '1234'
    results = list(pacs_srv.c_find(request))
    assert len(results) == 1
    assert results[0].AccessionNumber == '1234'
    assert results[0].PatientName == 'Test^Test^Test'
Exemplo n.º 5
0
def move_accession_number(accession_number, one_per_series=True):
    if one_per_series:
        print('Getting metadata for study')
        d = make_dataset('image')
        d.AccessionNumber = accession_number
        d.QueryRetrieveLevel = 'IMAGE'
        x = do_find(d)
        x = query_results_to_dataframe(x)
        y = x.groupby('SeriesInstanceUID').SOPInstanceUID.first()
        print('Grabbing images')
        for sop_instance_uid in y:
            move_sop_instance(sop_instance_uid)
    else:
        d = Dataset()
        d.QueryRetrieveLevel = 'STUDY'
        d.AccessionNumber = accession_number
        do_move(d)
Exemplo n.º 6
0
def make_dataset(query_level='series', **kwargs):

    if query_level == 'study':
        d = Dataset()
        d.QueryRetrieveLevel = 'STUDY'
        d.StudyDate = ''
        #Required
        d.StudyInstanceUID = ''
        #Optional
        d.PatientName = ''
        d.PatientID = ''
        d.AccessionNumber = ''
        d.StudyDescription = ''
        d.StudyID = ''
        d.StudyTime = ''
        d.StudyInstanceUID = ''
        d.NumberOfStudyRelatedSeries = ''
        d.StationName = ''
        d.SpecificCharacterSet = ''
        d.ModalitiesInStudy = ''
        d.Manufacturer = ''
        d.ManufacturerModelName = ''
        d.InstitutionName = ''

    if query_level == 'series':
        d = Dataset()
        d.QueryRetrieveLevel = 'SERIES'
        d.SeriesDescription = ''
        d.SeriesNumber = ''
        d.SeriesInstanceUID = ''
        d.Modality = ''
        d.NumberOfSeriesRelatedInstances = ''
        d.StationName = ''
        d.SpecificCharacterSet = ''
        d.SeriesDate = ''
        d.AccessionNumber = ''
        d.SeriesTime = ''
        d.Manufacturer = ''
        d.ManufacturerModelName = ''
        d.SOPClassUID = ''

    if query_level == 'image':
        d = Dataset()
        d.QueryRetrieveLevel = "IMAGE"
        #Required
        d.SeriesInstanceUID = ''
        #Optional
        d.StudyInstanceUID = ''
        d.SOPInstanceUID = ''
        d.AccessionNumber = ''
        d.StationName = ''
        d.SeriesDate = ''
        d.SeriesTime = ''
        d.SOPClassUID = ''
        d.InstanceNumber = ''
        d.SpecificCharacterSet = ''
        d.StudyInstanceUID = ''

    if query_level == 'patient':  #todo find optional tags
        d = Dataset()
        d.QueryRetrieveLevel = 'PATIENT'
        d.PatientName = ''
        d.PatientSex = ''
        d.PatientID = ''
        d.AccessionNumber = ''

    for k, v in kwargs.items():
        try:
            d = write_tag_by_keyword(d, k, v)
        except:
            print(f'could not write tag: "{k}" with value: {v}')

    return d