Mercurial > hg > orthanc
annotate Resources/Samples/Lua/CallImageJ.lua @ 3640:94f4a18a79cc
upgrade to year 2020
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 31 Jan 2020 17:14:59 +0100 |
parents | 34c8954544e8 |
children |
rev | line source |
---|---|
1535
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
1 -- This sample shows how to invoke an ImageJ script on every DICOM |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
2 -- image received by Orthanc. The ImageJ script is generated by the |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
3 -- "Initialize()" function at the startup of Orthanc. Whenever a new |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
4 -- instance is received, its DICOM file is stored into a temporary |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
5 -- file, and a system call to ImageJ is triggered. |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
6 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
7 SCRIPT = 'ImageJScript.txt' |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
8 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
9 function Initialize() |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
10 local target = assert(io.open(SCRIPT, 'w')) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
11 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
12 -- This is a sample ImageJ script that display the size of the DICOM image |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
13 target:write('if (getArgument=="") exit ("No argument!");\n') |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
14 target:write('open(getArgument);\n') |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
15 target:write('print(getTitle + ": " + getWidth + "x" + getHeight);\n') |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
16 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
17 target:close() |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
18 end |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
19 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
20 function OnStoredInstance(instanceId) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
21 -- Retrieve the DICOM instance from Orthanc |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
22 local dicom = RestApiGet('/instances/' .. instanceId .. '/file') |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
23 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
24 -- Write the DICOM content to some temporary file |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
25 local path = instanceId .. '.dcm' |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
26 local target = assert(io.open(path, 'wb')) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
27 target:write(dicom) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
28 target:close() |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
29 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
30 -- Call ImageJ |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
31 os.execute('imagej -b ' .. SCRIPT .. ' ' .. path) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
32 |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
33 -- Remove the temporary DICOM file |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
34 os.remove(path) |
34c8954544e8
sample Lua script to invoke ImageJ on DICOM images
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff
changeset
|
35 end |