File: find.py

package info (click to toggle)
odil 0.13.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,476 kB
  • sloc: cpp: 55,982; python: 3,947; javascript: 460; xml: 182; makefile: 99; sh: 36
file content (40 lines) | stat: -rw-r--r-- 1,311 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import odil

association = odil.Association()
association.set_peer_host("184.73.255.26")
association.set_peer_port(11112)

presentation_contexts = [
    odil.AssociationParameters.PresentationContext(
        1, odil.registry.StudyRootQueryRetrieveInformationModelFind,
        [ odil.registry.ExplicitVRLittleEndian ], True, False
    ),
    odil.AssociationParameters.PresentationContext(
        3, odil.registry.Verification,
        [ odil.registry.ExplicitVRLittleEndian ], True, False
    )
]

association.update_parameters()\
    .set_calling_ae_title("myself")\
    .set_called_ae_title("AWSPIXELMEDPUB") \
    .set_presentation_contexts(presentation_contexts)
association.associate()

query = odil.DataSet()
query.add(odil.registry.PatientName, odil.Value.Strings(["*"]))
query.add(odil.registry.QueryRetrieveLevel, odil.Value.Strings(["STUDY"]))
query.add(odil.registry.StudyDescription)
query.add(odil.registry.StudyDate)

find = odil.FindSCU(association)
find.set_affected_sop_class(odil.registry.StudyRootQueryRetrieveInformationModelFind)

def callback(data_set):
    print data_set.as_string(odil.registry.PatientName)[0]
find.find(query, callback)

data_sets = find.find(query)
print len(data_sets), "found"
for data_set in data_sets:
    print data_set.as_string(odil.registry.PatientName)[0]