annotate Resources/Samples/Python/ChangesLoop.py @ 340:61f6a3d66b85

changes loop sample
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 17 Jan 2013 15:54:02 +0100
parents
children b51c67f28b33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
340
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 #!/usr/bin/python
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 import time
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 import sys
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 import RestToolbox
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 if len(sys.argv) != 3:
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8 print("""
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 Sample script that continuously monitors the arrival of new DICOM
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
10 images into Orthanc (through the Changes API).
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 Usage: %s [hostname] [HTTP port]
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 For instance: %s localhost 8042
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 """ % (sys.argv[0], sys.argv[0]))
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 exit(-1)
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
16
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 URL = 'http://%s:%d' % (sys.argv[1], int(sys.argv[2]))
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 def NewInstanceReceived(path):
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 print 'New instance received: "%s"' % path
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 URL = 'http://localhost:8042'
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 current = 0
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26 while True:
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 r = RestToolbox.DoGet(URL + '/changes', {
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 'since' : current,
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 'limit' : 4
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 })
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 for change in r['Changes']:
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 if change['ChangeType'] == 'NewInstance':
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34 path = change['Path']
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 NewInstanceReceived(path)
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 RestToolbox.DoDelete(URL + path)
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 current = r['Last']
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 if r['Done']:
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 print "Everything has been processed: Waiting..."
61f6a3d66b85 changes loop sample
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 time.sleep(1)