Mercurial > hg > orthanc
annotate Resources/Samples/Lua/Autorouting.lua @ 1007:871c49c9b11d lua-scripting
lua routing is working
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 08 Jul 2014 17:35:00 +0200 |
parents | 649d47854314 |
children | 187ed107a59f |
rev | line source |
---|---|
1007
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
1 function _InitializeJob() |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
2 _job = {} |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
3 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
4 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
5 function _AccessJob() |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
6 return _job |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
7 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
8 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
9 function SendToModality(instanceId, modality) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
10 if instanceId == nil then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
11 error('Cannot send an nonexistent instance') |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
12 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
13 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
14 table.insert(_job, { |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
15 operation = 'store-scu', |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
16 instance = instanceId, |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
17 modality = modality |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
18 }) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
19 return instanceId |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
20 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
21 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
22 function SendToPeer(instanceId, peer) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
23 if instanceId == nil then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
24 error('Cannot send an nonexistent instance') |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
25 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
26 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
27 table.insert(_job, { |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
28 operation = 'store-peer', |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
29 instance = instanceId, |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
30 peer = peer |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
31 }) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
32 return instanceId |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
33 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
34 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
35 function Delete(instanceId) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
36 if instanceId == nil then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
37 error('Cannot delete an nonexistent instance') |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
38 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
39 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
40 table.insert(_job, { |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
41 operation = 'delete', |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
42 instance = instanceId |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
43 }) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
44 return nil -- Forbid chaining |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
45 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
46 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
47 function Modify(instanceId, replacements, removals, removePrivateTags) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
48 if instanceId == nil then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
49 error('Cannot modify an nonexistent instance') |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
50 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
51 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
52 if instanceId == '' then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
53 error('Cannot modify twice an instance'); |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
54 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
55 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
56 table.insert(_job, { |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
57 operation = 'modify', |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
58 instance = instanceId, |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
59 replacements = replacements, |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
60 removals = removals, |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
61 removePrivateTags = removePrivateTags |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
62 }) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
63 return '' -- Chain with another operation |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
64 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
65 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
66 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
67 function OnStoredInstance(instanceId, tags, metadata) |
1002
b067017a8a5b
anonymization refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
998
diff
changeset
|
68 --PrintRecursive(tags) |
1007
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
69 --PrintRecursive(metadata) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
70 --print(metadata['RemoteAET']) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
71 |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
72 if true then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
73 local patientName = string.lower(tags['PatientName']) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
74 if string.find(patientName, 'david') ~= nil then |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
75 --Delete(SendToModality(instanceId, 'sample')) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
76 --Delete(SendToPeer(instanceId, 'peer')) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
77 Delete(SendToModality(Modify(instanceId, { PatientName = 'Hello^World' }), 'sample')) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
78 else |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
79 Delete(instanceId) |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
80 end |
871c49c9b11d
lua routing is working
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1006
diff
changeset
|
81 end |
998
4136fab6a639
callback on stored instance
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
82 end |