예제 #1
0
def test_site_submission(setup_orthanc0):
    reset_mock_seed()

    O = Orthanc()

    assert (O.check())

    n_instances_init = O.gateway.statistics()["CountInstances"]

    logging.debug(O.gateway.statistics())

    site_desc = yaml.load(sample_site_desc)

    H = MockSite.Factory.create(desc=site_desc)[0]

    try:
        with timeout(15):
            print("Starting mock site")
            H.run(pacs=O)
    except:
        print("Stopping mock site")

    n_instances = O.gateway.statistics()["CountInstances"]

    # At least 500 new instances arrived in the last 15 seconds
    assert (n_instances > n_instances_init + 500)
예제 #2
0
def mock_runner():
    """Generates a single CR study and sends to the mock pacs"""

    reset_mock_seed()
    print("Starting mock site")
    O = Orthanc()
    desc = yaml.load(site_desc)
    H = MockSite.Factory.create(desc=desc)[0]
    H.run(pacs=O)
    print("Stopping mock site")
예제 #3
0
def test_mock_site():
    reset_mock_seed()

    site_desc = yaml.load(sample_site_desc)
    logging.debug(pformat(site_desc))

    H = MockSite.Factory.create(desc=site_desc)[0]

    logging.debug(H)
    logging.debug(list(H.devices()))

    assert (len(list(H.devices())) == 5)

    for device in H.devices():
        s = device.gen_study(study_datetime=ref_dt)
        # print("{!s}".format( next(s.instances()) ))
        assert ("{!s}".format(next(s.instances())) in ref_studies)
예제 #4
0
def test_mock_dixel():

    reset_mock_seed()
    d = MockStudy(study_datetime=ref_dt)
    inst = list(d.instances())[-1]

    # Check reproducibility
    reset_mock_seed()
    e = MockStudy(study_datetime=ref_dt)
    assert (inst.tags == list(e.instances())[-1].tags)

    # Check correctness
    logging.debug(inst.tags)
    assert (inst.tags == ref_inst_tags)

    logging.debug(len(list(d.instances())))
    assert (len(list(d.instances())) == ref_n_instances)

    for item in d.instances():
        logging.debug("{!s}".format(item))

    # Check file creation
    inst.gen_file()
    inst_dcm = find_resource("resources/mock/inst.dcm")

    # Reset mock/inst.dcm with fresh data
    with open(inst_dcm, "wb") as f:
        f.write(inst.file)

    with open(inst_dcm, "rb") as f:
        data = f.read()
    assert (inst.file == data)

    # Test file legibility
    ds = pydicom.dcmread(BytesIO(inst.file))
    logging.debug(ds)
    assert (ds.AccessionNumber == d.tags["AccessionNumber"])

    # Test new item is unique
    f = MockStudy(study_datetime=ref_dt)
    for item in f.instances():
        logging.debug("{!s}".format(item))

    assert (d.tags["AccessionNumber"] != f.tags["AccessionNumber"])