annotate Resources/Toolbox.lua @ 1427:d710ea64f0fd

Custom setting of the local AET during C-Store SCU (both in Lua and in the REST API)
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 29 Jun 2015 12:42:54 +0200
parents 921532f67770
children 6406f5493d92
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
397
941ea46e9e26 lua filter of new instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 394
diff changeset
1 --[[ PrintRecursive(struct, [limit], [indent]) Recursively print arbitrary data.
384
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2 Set limit (default 100) to stanch infinite loops.
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3 Indents tables as [KEY] VALUE, nested tables as [KEY] [KEY]...[KEY] VALUE
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 Set indent ("") to prefix each line: Mytable [KEY] [KEY]...[KEY] VALUE
394
9784f19f7e1b path relative to configuration path, list of lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 384
diff changeset
5 Source: https://gist.github.com/stuby/5445834#file-rprint-lua
384
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6 --]]
394
9784f19f7e1b path relative to configuration path, list of lua scripts
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 384
diff changeset
7
397
941ea46e9e26 lua filter of new instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 394
diff changeset
8 function PrintRecursive(s, l, i) -- recursive Print (structure, limit, indent)
1006
649d47854314 proper handling of metadata in Store
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 418
diff changeset
9 l = (l) or 100; -- default item limit
649d47854314 proper handling of metadata in Store
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 418
diff changeset
10 i = i or ""; -- indent string
384
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
11 if (l<1) then print "ERROR: Item limit reached."; return l-1 end;
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
12 local ts = type(s);
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13 if (ts ~= "table") then print (i,ts,s); return l-1 end
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
14 print (i,ts); -- print "table"
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
15 for k,v in pairs(s) do -- print "[KEY] VALUE"
397
941ea46e9e26 lua filter of new instances
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 394
diff changeset
16 l = PrintRecursive(v, l, i.."\t["..tostring(k).."]");
384
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17 if (l < 0) then break end
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 end
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 return l
18fe778eeb95 wrapper around lua
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20 end
418
b79bf2f4ab2e execution of lua through REST
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 397
diff changeset
21
1010
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
22
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
23
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
24
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
25 function _InitializeJob()
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
26 _job = {}
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
27 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
28
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
29
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
30 function _AccessJob()
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
31 return _job
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
32 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
33
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
34
1427
d710ea64f0fd Custom setting of the local AET during C-Store SCU (both in Lua and in the REST API)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1065
diff changeset
35 function SendToModality(instanceId, modality, localAet)
1010
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
36 if instanceId == nil then
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
37 error('Cannot send a nonexistent instance')
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
38 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
39
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
40 table.insert(_job, {
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
41 Operation = 'store-scu',
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
42 Instance = instanceId,
1427
d710ea64f0fd Custom setting of the local AET during C-Store SCU (both in Lua and in the REST API)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1065
diff changeset
43 Modality = modality,
d710ea64f0fd Custom setting of the local AET during C-Store SCU (both in Lua and in the REST API)
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1065
diff changeset
44 LocalAet = localAet
1010
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
45 })
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
46 return instanceId
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
47 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
48
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
49
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
50 function SendToPeer(instanceId, peer)
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
51 if instanceId == nil then
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
52 error('Cannot send a nonexistent instance')
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
53 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
54
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
55 table.insert(_job, {
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
56 Operation = 'store-peer',
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
57 Instance = instanceId,
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
58 Peer = peer
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
59 })
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
60 return instanceId
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
61 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
62
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
63
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
64 function Delete(instanceId)
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
65 if instanceId == nil then
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
66 error('Cannot delete a nonexistent instance')
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
67 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
68
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
69 table.insert(_job, {
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
70 Operation = 'delete',
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
71 Instance = instanceId
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
72 })
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
73 return nil -- Forbid chaining
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
74 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
75
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
76
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
77 function ModifyInstance(instanceId, replacements, removals, removePrivateTags)
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
78 if instanceId == nil then
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
79 error('Cannot modify a nonexistent instance')
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
80 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
81
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
82 if instanceId == '' then
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
83 error('Cannot modify twice an instance');
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
84 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
85
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
86 table.insert(_job, {
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
87 Operation = 'modify',
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
88 Instance = instanceId,
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
89 Replace = replacements,
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
90 Remove = removals,
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
91 RemovePrivateTags = removePrivateTags
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
92 })
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
93 return '' -- Chain with another operation
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
94 end
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
95
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
96
1065
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
97 function CallSystem(instanceId, command, args)
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
98 if instanceId == nil then
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
99 error('Cannot modify a nonexistent instance')
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
100 end
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
101
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
102 table.insert(_job, {
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
103 Operation = 'call-system',
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
104 Instance = instanceId,
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
105 Command = command,
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
106 Arguments = args
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
107 })
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
108
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
109 return instanceId
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
110 end
921532f67770 Lua scripts can invoke system commands, with CallSystem()
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1010
diff changeset
111
1010
160dfe770618 refactoring
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 1006
diff changeset
112
418
b79bf2f4ab2e execution of lua through REST
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 397
diff changeset
113 print('Lua toolbox installed')