@fnndsc/brasa 0.56.1 → 0.56.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/buildinfo.json +1 -1
- package/dist/builtins/berth/berth.d.ts +90 -3
- package/dist/builtins/berth/berth.js +129 -76
- package/dist/builtins/berth/berth.js.map +1 -1
- package/dist/builtins/berth/berthClose.d.ts +25 -6
- package/dist/builtins/berth/berthClose.js +8 -64
- package/dist/builtins/berth/berthClose.js.map +1 -1
- package/dist/builtins/berth/berthCube.d.ts +3 -2
- package/dist/builtins/berth/berthCube.js +9 -16
- package/dist/builtins/berth/berthCube.js.map +1 -1
- package/dist/builtins/berth/berthProcesses.js +33 -3
- package/dist/builtins/berth/berthProcesses.js.map +1 -1
- package/dist/builtins/debug.d.ts +24 -3
- package/dist/builtins/debug.js +66 -13
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/fs/acl.args.d.ts +5 -38
- package/dist/builtins/fs/acl.args.js +6 -72
- package/dist/builtins/fs/acl.args.js.map +1 -1
- package/dist/builtins/fs/acl.d.ts +100 -10
- package/dist/builtins/fs/acl.js +222 -68
- package/dist/builtins/fs/acl.js.map +1 -1
- package/dist/builtins/fs/cat.args.d.ts +14 -15
- package/dist/builtins/fs/cat.args.js +13 -40
- package/dist/builtins/fs/cat.args.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +40 -3
- package/dist/builtins/fs/cat.js +92 -13
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +24 -6
- package/dist/builtins/fs/cd.js +71 -18
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/configWrite.d.ts +24 -8
- package/dist/builtins/fs/configWrite.js +77 -36
- package/dist/builtins/fs/configWrite.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +39 -4
- package/dist/builtins/fs/cp.js +122 -56
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.d.ts +31 -4
- package/dist/builtins/fs/download.js +75 -38
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/du.d.ts +59 -33
- package/dist/builtins/fs/du.js +111 -79
- package/dist/builtins/fs/du.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +19 -4
- package/dist/builtins/fs/edit.js +77 -16
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/find.d.ts +25 -0
- package/dist/builtins/fs/find.js +76 -5
- package/dist/builtins/fs/find.js.map +1 -1
- package/dist/builtins/fs/ls.d.ts +69 -4
- package/dist/builtins/fs/ls.js +84 -45
- package/dist/builtins/fs/ls.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +28 -18
- package/dist/builtins/fs/mkdir.js +95 -66
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +34 -4
- package/dist/builtins/fs/mv.js +129 -64
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.args.d.ts +56 -17
- package/dist/builtins/fs/pull.args.js +16 -66
- package/dist/builtins/fs/pull.args.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +62 -0
- package/dist/builtins/fs/pull.js +123 -31
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +19 -5
- package/dist/builtins/fs/pwd.js +62 -8
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +58 -21
- package/dist/builtins/fs/rm.js +99 -82
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/rmdir.d.ts +29 -11
- package/dist/builtins/fs/rmdir.js +87 -36
- package/dist/builtins/fs/rmdir.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +44 -9
- package/dist/builtins/fs/touch.js +91 -27
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/tree.d.ts +36 -9
- package/dist/builtins/fs/tree.js +126 -36
- package/dist/builtins/fs/tree.js.map +1 -1
- package/dist/builtins/fs/upload.d.ts +22 -3
- package/dist/builtins/fs/upload.js +82 -14
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/fs/xattr.args.d.ts +12 -33
- package/dist/builtins/fs/xattr.args.js +17 -95
- package/dist/builtins/fs/xattr.args.js.map +1 -1
- package/dist/builtins/fs/xattr.d.ts +98 -8
- package/dist/builtins/fs/xattr.js +163 -24
- package/dist/builtins/fs/xattr.js.map +1 -1
- package/dist/builtins/games/bytes.d.ts +201 -5
- package/dist/builtins/games/bytes.js +255 -54
- package/dist/builtins/games/bytes.js.map +1 -1
- package/dist/builtins/games/chimes.d.ts +180 -3
- package/dist/builtins/games/chimes.js +203 -26
- package/dist/builtins/games/chimes.js.map +1 -1
- package/dist/builtins/games/chrislab.d.ts +101 -3
- package/dist/builtins/games/chrislab.js +117 -17
- package/dist/builtins/games/chrislab.js.map +1 -1
- package/dist/builtins/games/cowsay.d.ts +93 -2
- package/dist/builtins/games/cowsay.js +90 -31
- package/dist/builtins/games/cowsay.js.map +1 -1
- package/dist/builtins/games/figlet.d.ts +70 -2
- package/dist/builtins/games/figlet.js +83 -6
- package/dist/builtins/games/figlet.js.map +1 -1
- package/dist/builtins/games/lab.d.ts +104 -5
- package/dist/builtins/games/lab.js +144 -6
- package/dist/builtins/games/lab.js.map +1 -1
- package/dist/builtins/games/lolcat.d.ts +61 -1
- package/dist/builtins/games/lolcat.js +59 -24
- package/dist/builtins/games/lolcat.js.map +1 -1
- package/dist/builtins/games/morse.d.ts +36 -1
- package/dist/builtins/games/morse.js +50 -2
- package/dist/builtins/games/morse.js.map +1 -1
- package/dist/builtins/games/numbers.d.ts +241 -5
- package/dist/builtins/games/numbers.js +298 -23
- package/dist/builtins/games/numbers.js.map +1 -1
- package/dist/builtins/games/play.d.ts +96 -6
- package/dist/builtins/games/play.js +137 -6
- package/dist/builtins/games/play.js.map +1 -1
- package/dist/builtins/games/qr.d.ts +40 -1
- package/dist/builtins/games/qr.js +51 -2
- package/dist/builtins/games/qr.js.map +1 -1
- package/dist/builtins/games/show.d.ts +131 -6
- package/dist/builtins/games/show.js +208 -20
- package/dist/builtins/games/show.js.map +1 -1
- package/dist/builtins/games/sky.d.ts +178 -4
- package/dist/builtins/games/sky.js +228 -12
- package/dist/builtins/games/sky.js.map +1 -1
- package/dist/builtins/games/text.d.ts +258 -7
- package/dist/builtins/games/text.js +310 -29
- package/dist/builtins/games/text.js.map +1 -1
- package/dist/builtins/games/trek.d.ts +67 -3
- package/dist/builtins/games/trek.js +63 -10
- package/dist/builtins/games/trek.js.map +1 -1
- package/dist/builtins/games/wtf.d.ts +58 -1
- package/dist/builtins/games/wtf.js +67 -6
- package/dist/builtins/games/wtf.js.map +1 -1
- package/dist/builtins/help.d.ts +41 -3
- package/dist/builtins/help.js +92 -796
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/connect.d.ts +36 -3
- package/dist/builtins/net/connect.js +84 -26
- package/dist/builtins/net/connect.js.map +1 -1
- package/dist/builtins/net/cubepath.d.ts +49 -5
- package/dist/builtins/net/cubepath.js +69 -27
- package/dist/builtins/net/cubepath.js.map +1 -1
- package/dist/builtins/net/logout.d.ts +13 -4
- package/dist/builtins/net/logout.js +49 -3
- package/dist/builtins/net/logout.js.map +1 -1
- package/dist/builtins/net/netstat.d.ts +29 -4
- package/dist/builtins/net/netstat.js +64 -23
- package/dist/builtins/net/netstat.js.map +1 -1
- package/dist/builtins/net/pacs.d.ts +169 -15
- package/dist/builtins/net/pacs.js +92 -33
- package/dist/builtins/net/pacs.js.map +1 -1
- package/dist/builtins/net/query.args.d.ts +95 -0
- package/dist/builtins/net/query.args.js +26 -0
- package/dist/builtins/net/query.args.js.map +1 -0
- package/dist/builtins/net/query.d.ts +98 -5
- package/dist/builtins/net/query.js +89 -83
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/status.d.ts +5 -3
- package/dist/builtins/net/status.js +5 -12
- package/dist/builtins/net/status.js.map +1 -1
- package/dist/builtins/parametersofplugin.d.ts +82 -3
- package/dist/builtins/parametersofplugin.js +79 -23
- package/dist/builtins/parametersofplugin.js.map +1 -1
- package/dist/builtins/proc.d.ts +210 -3
- package/dist/builtins/proc.js +210 -119
- package/dist/builtins/proc.js.map +1 -1
- package/dist/builtins/res/compute.d.ts +67 -3
- package/dist/builtins/res/compute.js +121 -35
- package/dist/builtins/res/compute.js.map +1 -1
- package/dist/builtins/res/dicom.d.ts +55 -7
- package/dist/builtins/res/dicom.js +86 -52
- package/dist/builtins/res/dicom.js.map +1 -1
- package/dist/builtins/res/expect.d.ts +52 -3
- package/dist/builtins/res/expect.js +92 -29
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/feed.d.ts +475 -3
- package/dist/builtins/res/feed.js +253 -158
- package/dist/builtins/res/feed.js.map +1 -1
- package/dist/builtins/res/files.d.ts +517 -3
- package/dist/builtins/res/files.js +124 -44
- package/dist/builtins/res/files.js.map +1 -1
- package/dist/builtins/res/gather.d.ts +113 -3
- package/dist/builtins/res/gather.js +153 -44
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.process.d.ts +27 -19
- package/dist/builtins/res/gather.process.js +29 -59
- package/dist/builtins/res/gather.process.js.map +1 -1
- package/dist/builtins/res/group.d.ts +284 -3
- package/dist/builtins/res/group.js +147 -76
- package/dist/builtins/res/group.js.map +1 -1
- package/dist/builtins/res/image.d.ts +30 -2
- package/dist/builtins/res/image.js +62 -10
- package/dist/builtins/res/image.js.map +1 -1
- package/dist/builtins/res/play.d.ts +71 -9
- package/dist/builtins/res/play.js +124 -82
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/res/plugininstance.d.ts +307 -2
- package/dist/builtins/res/plugininstance.js +122 -50
- package/dist/builtins/res/plugininstance.js.map +1 -1
- package/dist/builtins/res/pluginmeta.d.ts +244 -2
- package/dist/builtins/res/pluginmeta.js +98 -40
- package/dist/builtins/res/pluginmeta.js.map +1 -1
- package/dist/builtins/res/record.d.ts +37 -3
- package/dist/builtins/res/record.js +127 -57
- package/dist/builtins/res/record.js.map +1 -1
- package/dist/builtins/res/resourceList.d.ts +136 -0
- package/dist/builtins/res/resourceList.js +51 -0
- package/dist/builtins/res/resourceList.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +244 -3
- package/dist/builtins/res/tag.js +97 -41
- package/dist/builtins/res/tag.js.map +1 -1
- package/dist/builtins/res/user.d.ts +122 -3
- package/dist/builtins/res/user.js +83 -21
- package/dist/builtins/res/user.js.map +1 -1
- package/dist/builtins/res/workflow.d.ts +244 -2
- package/dist/builtins/res/workflow.js +97 -40
- package/dist/builtins/res/workflow.js.map +1 -1
- package/dist/builtins/store.d.ts +85 -3
- package/dist/builtins/store.js +135 -68
- package/dist/builtins/store.js.map +1 -1
- package/dist/builtins/sys/apropos.d.ts +80 -5
- package/dist/builtins/sys/apropos.js +121 -15
- package/dist/builtins/sys/apropos.js.map +1 -1
- package/dist/builtins/sys/cal.d.ts +44 -5
- package/dist/builtins/sys/cal.js +57 -10
- package/dist/builtins/sys/cal.js.map +1 -1
- package/dist/builtins/sys/command.d.ts +20 -0
- package/dist/builtins/sys/command.js +31 -0
- package/dist/builtins/sys/command.js.map +1 -1
- package/dist/builtins/sys/context.d.ts +13 -3
- package/dist/builtins/sys/context.js +51 -4
- package/dist/builtins/sys/context.js.map +1 -1
- package/dist/builtins/sys/date.d.ts +56 -5
- package/dist/builtins/sys/date.js +63 -9
- package/dist/builtins/sys/date.js.map +1 -1
- package/dist/builtins/sys/echo.d.ts +63 -2
- package/dist/builtins/sys/echo.js +87 -8
- package/dist/builtins/sys/echo.js.map +1 -1
- package/dist/builtins/sys/fortune.d.ts +27 -2
- package/dist/builtins/sys/fortune.js +44 -2
- package/dist/builtins/sys/fortune.js.map +1 -1
- package/dist/builtins/sys/grep.d.ts +245 -11
- package/dist/builtins/sys/grep.js +418 -131
- package/dist/builtins/sys/grep.js.map +1 -1
- package/dist/builtins/sys/joblets.d.ts +66 -7
- package/dist/builtins/sys/joblets.js +101 -14
- package/dist/builtins/sys/joblets.js.map +1 -1
- package/dist/builtins/sys/motd.d.ts +37 -3
- package/dist/builtins/sys/motd.js +49 -8
- package/dist/builtins/sys/motd.js.map +1 -1
- package/dist/builtins/sys/notes.d.ts +75 -3
- package/dist/builtins/sys/notes.js +90 -29
- package/dist/builtins/sys/notes.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +24 -3
- package/dist/builtins/sys/physicalmode.js +68 -14
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/tasks.d.ts +74 -5
- package/dist/builtins/sys/tasks.js +102 -14
- package/dist/builtins/sys/tasks.js.map +1 -1
- package/dist/builtins/sys/textFilters.d.ts +673 -41
- package/dist/builtins/sys/textFilters.js +719 -264
- package/dist/builtins/sys/textFilters.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +24 -3
- package/dist/builtins/sys/timing.js +67 -14
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/variables.d.ts +70 -4
- package/dist/builtins/sys/variables.js +103 -31
- package/dist/builtins/sys/variables.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +27 -2
- package/dist/builtins/sys/version.js +48 -3
- package/dist/builtins/sys/version.js.map +1 -1
- package/dist/builtins/sys/weather.d.ts +92 -15
- package/dist/builtins/sys/weather.js +71 -45
- package/dist/builtins/sys/weather.js.map +1 -1
- package/dist/builtins/sys/whoami.d.ts +38 -18
- package/dist/builtins/sys/whoami.js +112 -8
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/builtins/utils.d.ts +1 -38
- package/dist/builtins/utils.js +1 -87
- package/dist/builtins/utils.js.map +1 -1
- package/dist/chris/backend.js +2 -0
- package/dist/chris/backend.js.map +1 -1
- package/dist/chris/chrisCommands.js +62 -159
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/commandFallback.d.ts +12 -0
- package/dist/chris/commandFallback.js +47 -0
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/files.js +24 -85
- package/dist/chris/files.js.map +1 -1
- package/dist/chris/filesystem.js +7 -5
- package/dist/chris/filesystem.js.map +1 -1
- package/dist/chris/help.js +0 -1082
- package/dist/chris/help.js.map +1 -1
- package/dist/chris/kinds.d.ts +30 -0
- package/dist/chris/kinds.js +154 -0
- package/dist/chris/kinds.js.map +1 -0
- package/dist/chris/mounts.d.ts +4 -4
- package/dist/chris/mounts.js +9 -16
- package/dist/chris/mounts.js.map +1 -1
- package/dist/chris/navigation.d.ts +2 -3
- package/dist/chris/navigation.js +6 -20
- package/dist/chris/navigation.js.map +1 -1
- package/dist/chris/pacsResources.d.ts +259 -0
- package/dist/chris/pacsResources.js +168 -0
- package/dist/chris/pacsResources.js.map +1 -0
- package/dist/chris/promptContext.d.ts +6 -0
- package/dist/chris/promptContext.js +3 -1
- package/dist/chris/promptContext.js.map +1 -1
- package/dist/core/argumentKinds.d.ts +107 -0
- package/dist/core/argumentKinds.js +223 -0
- package/dist/core/argumentKinds.js.map +1 -0
- package/dist/core/backend.d.ts +4 -1
- package/dist/core/backend.js.map +1 -1
- package/dist/core/commandDeclaration.d.ts +453 -0
- package/dist/core/commandDeclaration.js +52 -0
- package/dist/core/commandDeclaration.js.map +1 -0
- package/dist/core/commandParse.d.ts +64 -0
- package/dist/core/commandParse.js +468 -0
- package/dist/core/commandParse.js.map +1 -0
- package/dist/core/commandRegistry.d.ts +37 -0
- package/dist/core/commandRegistry.js +100 -3
- package/dist/core/commandRegistry.js.map +1 -1
- package/dist/core/commandSchema.d.ts +32 -0
- package/dist/core/commandSchema.js +117 -0
- package/dist/core/commandSchema.js.map +1 -0
- package/dist/core/commandUsage.d.ts +62 -0
- package/dist/core/commandUsage.js +247 -0
- package/dist/core/commandUsage.js.map +1 -0
- package/dist/core/coreCommands.js +66 -214
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/dispatch.js +15 -8
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/paths.d.ts +51 -0
- package/dist/core/paths.js +86 -2
- package/dist/core/paths.js.map +1 -1
- package/dist/core/preprocess.d.ts +10 -9
- package/dist/core/preprocess.js +10 -20
- package/dist/core/preprocess.js.map +1 -1
- package/dist/core/warmupFailures.d.ts +34 -2
- package/dist/core/warmupFailures.js +43 -2
- package/dist/core/warmupFailures.js.map +1 -1
- package/dist/lib/completer/cfsPaths.d.ts +14 -0
- package/dist/lib/completer/cfsPaths.js +91 -0
- package/dist/lib/completer/cfsPaths.js.map +1 -0
- package/dist/lib/completer/declared.d.ts +15 -0
- package/dist/lib/completer/declared.js +189 -0
- package/dist/lib/completer/declared.js.map +1 -0
- package/dist/lib/completer/index.js +33 -79
- package/dist/lib/completer/index.js.map +1 -1
- package/dist/lib/parser.d.ts +5 -8
- package/dist/lib/parser.js +2 -11
- package/dist/lib/parser.js.map +1 -1
- package/dist/lib/vfs/vfs.d.ts +2 -1
- package/dist/lib/vfs/vfs.js +9 -6
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/lib/wildcard.js +2 -3
- package/dist/lib/wildcard.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +6 -5
package/dist/chris/help.js
CHANGED
|
@@ -26,182 +26,6 @@ export const CHRIS_BUILTIN_LINES = [
|
|
|
26
26
|
' ${gather.name} ${gather.feed.id} any field of the cohort, as `gather` answers it',
|
|
27
27
|
];
|
|
28
28
|
export const chrisHelp = {
|
|
29
|
-
user: {
|
|
30
|
-
category: 'Admin',
|
|
31
|
-
usage: 'user <add|inspect|disable|enable|remove> <username>',
|
|
32
|
-
description: 'Manage CUBE-local accounts; federated identities remain externally managed',
|
|
33
|
-
options: ['Use `sudo user …` for lifecycle operations.', 'add prompts for email and a hidden password confirmation.'],
|
|
34
|
-
examples: ['sudo user add jack.bivowac', 'sudo user disable jack.bivowac', 'sudo user remove jack.bivowac'],
|
|
35
|
-
},
|
|
36
|
-
netstat: {
|
|
37
|
-
category: 'Connection',
|
|
38
|
-
usage: 'netstat [-n <count>] [-r]',
|
|
39
|
-
description: 'What the session has asked of CUBE: requests since the session (or the last reset), by endpoint family with the time spent, and the last few timed',
|
|
40
|
-
options: [
|
|
41
|
-
'-n <count> List that many recent requests (default 10)',
|
|
42
|
-
'-r, --reset Forget the count after showing it',
|
|
43
|
-
],
|
|
44
|
-
examples: [
|
|
45
|
-
'netstat # the count, by family, the last 10',
|
|
46
|
-
'netstat -n 30 # the last 30 requests, timed',
|
|
47
|
-
'netstat -r; cd ~/feeds; netstat # what one navigation costs',
|
|
48
|
-
],
|
|
49
|
-
},
|
|
50
|
-
edit: {
|
|
51
|
-
category: 'Files',
|
|
52
|
-
usage: 'edit <file>',
|
|
53
|
-
description: 'Edit a ChRIS file in $EDITOR — fetches, opens, saves back on write',
|
|
54
|
-
options: [
|
|
55
|
-
'Uses $EDITOR (or $VISUAL, or vi as fallback)',
|
|
56
|
-
'No-ops if file is unchanged on exit',
|
|
57
|
-
'On save: deletes original and re-uploads — file path preserved, ID changes',
|
|
58
|
-
'On upload failure: edited content preserved in /tmp',
|
|
59
|
-
],
|
|
60
|
-
examples: [
|
|
61
|
-
'edit /home/chris/uploads/config.yaml',
|
|
62
|
-
'edit notes.txt',
|
|
63
|
-
'EDITOR=nano edit report.json',
|
|
64
|
-
],
|
|
65
|
-
},
|
|
66
|
-
setfacl: {
|
|
67
|
-
posix: { group: 'Files', differs: 'ChRIS sharing, as ACL entries' },
|
|
68
|
-
category: 'Sharing',
|
|
69
|
-
usage: 'setfacl -m u:<user>:r|g:<group>:r|o::r|o::- <path>... | setfacl -x u:<user>|g:<group> <path>...',
|
|
70
|
-
summary: 'Share a feed with a user, a group or everyone, or stop sharing it',
|
|
71
|
-
description: 'A feed\'s access list, as POSIX ACL entries. -m u:<user>:r shares it with a user, -m g:<group>:r '
|
|
72
|
-
+ 'with a group, -m o::r with everyone (a public feed) and -m o::- makes it private again. '
|
|
73
|
-
+ '-x u:<user> or -x g:<group> withdraws that grant. A feed is named by id, by the feed_N a '
|
|
74
|
-
+ 'listing shows, by any path through /feeds/, or by /proc/jobs/feed_N. Given a feed and no '
|
|
75
|
-
+ 'entry, it asks which user to share it with.',
|
|
76
|
-
options: [
|
|
77
|
-
'-m u:<user>:r Share with a user (the perms must include r)',
|
|
78
|
-
'-m g:<group>:r Share with a group',
|
|
79
|
-
'-m o::r | o::- Make the feed public, or private again (chmod o+r / o-r is the same)',
|
|
80
|
-
'-x u:<user> Stop sharing with a user',
|
|
81
|
-
'-x g:<group> Stop sharing with a group',
|
|
82
|
-
],
|
|
83
|
-
examples: [
|
|
84
|
-
'setfacl -m u:someone:r /home/me/feeds/feed_12',
|
|
85
|
-
'setfacl -m g:grantlab:r feed_12 feed_13',
|
|
86
|
-
'setfacl -m o::r feed_12 # public',
|
|
87
|
-
'setfacl -x u:someone feed_12',
|
|
88
|
-
'setfacl feed_12 # asks who to share it with',
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
getfacl: {
|
|
92
|
-
posix: { group: 'Files', differs: 'who a feed or folder is shared with, as ACL entries' },
|
|
93
|
-
category: 'Sharing',
|
|
94
|
-
usage: 'getfacl <path>...',
|
|
95
|
-
summary: 'Show who can read a feed: users, groups, and whether it is public',
|
|
96
|
-
description: 'Show who can read a feed, in the familiar block: a # file: line, the owner\'s user:: entry, '
|
|
97
|
-
+ 'one user: line per user and one group: line per group holding access, then other:: '
|
|
98
|
-
+ '(r-- when the feed is public).',
|
|
99
|
-
examples: [
|
|
100
|
-
'getfacl /home/me/feeds/feed_12',
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
chmod: {
|
|
104
|
-
posix: { group: 'Files', differs: 'sets who may see a feed or folder (ChRIS sharing)' },
|
|
105
|
-
category: 'Sharing',
|
|
106
|
-
usage: 'chmod o+r|o-r <feed>...',
|
|
107
|
-
summary: 'Make a feed public, or private again',
|
|
108
|
-
description: 'The other entry of a feed\'s access list spelled as a mode: o+r makes it public, o-r private, '
|
|
109
|
-
+ 'exactly as setfacl -m o::r and o::- do. No other mode is one a feed has.',
|
|
110
|
-
examples: [
|
|
111
|
-
'chmod o+r feed_12',
|
|
112
|
-
'chmod o-r /proc/jobs/feed_12',
|
|
113
|
-
],
|
|
114
|
-
},
|
|
115
|
-
setfattr: {
|
|
116
|
-
posix: { group: 'Files', differs: 'tags on a feed, as extended attributes' },
|
|
117
|
-
category: 'Sharing',
|
|
118
|
-
usage: 'setfattr -n tag -v <value> <path>... | setfattr -x tag [-v <value>] <path>...',
|
|
119
|
-
summary: 'Hang a tag on a feed, or take it off',
|
|
120
|
-
description: 'A feed\'s tags are the values of one extended attribute, tag (also user.tag): CUBE\'s '
|
|
121
|
-
+ 'freeform labels. -n tag -v <value> hangs one of your tags (a folder under /proc/tags: '
|
|
122
|
-
+ 'mkdir /proc/tags/<name> makes a tag, and naming one that does not exist is an error); '
|
|
123
|
-
+ '-x tag -v <value> takes it off; -x tag alone takes every tag off, as '
|
|
124
|
-
+ 'setfattr removes the whole attribute. A feed is named by id, by feed_N, by any path '
|
|
125
|
-
+ 'through /feeds/, or by its projection /proc/jobs/feed_N. Silent on success.',
|
|
126
|
-
options: [
|
|
127
|
-
'-n, --name tag The attribute to set (only tag exists)',
|
|
128
|
-
'-v, --value <value> The tag',
|
|
129
|
-
'-x, --remove tag Remove the tag given by -v, or every tag without -v',
|
|
130
|
-
],
|
|
131
|
-
examples: [
|
|
132
|
-
'setfattr -n tag -v urgent feed_12',
|
|
133
|
-
'setfattr -n tag -v review feed_12 feed_13',
|
|
134
|
-
'setfattr -x tag -v urgent /proc/jobs/feed_12',
|
|
135
|
-
],
|
|
136
|
-
},
|
|
137
|
-
getfattr: {
|
|
138
|
-
posix: { group: 'Files', differs: 'a feed\'s tags, as extended attributes' },
|
|
139
|
-
category: 'Sharing',
|
|
140
|
-
usage: 'getfattr [-n tag] <path>...',
|
|
141
|
-
summary: 'Show the tags a feed wears',
|
|
142
|
-
description: 'Show a feed\'s tags in getfattr\'s dump shape: a # file: line, then one tag="…" line per tag.',
|
|
143
|
-
examples: [
|
|
144
|
-
'getfattr feed_12',
|
|
145
|
-
'getfattr -n tag /home/me/feeds/feed_12',
|
|
146
|
-
],
|
|
147
|
-
},
|
|
148
|
-
config: {
|
|
149
|
-
category: 'Files',
|
|
150
|
-
usage: 'config write <cfs-path> <base64-content>',
|
|
151
|
-
description: 'Write a small configuration document into the user\'s CUBE home (the durable layer: argus desktops, surface preferences). Reads travel the ordinary cat. Documents are notes, not datasets: 256KB limit.',
|
|
152
|
-
options: [],
|
|
153
|
-
examples: [
|
|
154
|
-
'config write ~/.config/argus/desktops/quad.desk dmlldyBmaWxlcwo= # a saved argus desktop',
|
|
155
|
-
'cat ~/.config/argus/desktops/quad.desk # reading one back',
|
|
156
|
-
],
|
|
157
|
-
},
|
|
158
|
-
upload: {
|
|
159
|
-
category: 'Files',
|
|
160
|
-
usage: 'upload <local_path_or_glob> <chris_path>',
|
|
161
|
-
description: 'Upload local files, directories, or glob matches to ChRIS with progress tracking',
|
|
162
|
-
options: [
|
|
163
|
-
'Displays progress bar showing:',
|
|
164
|
-
' - File count and percentage complete',
|
|
165
|
-
' - Estimated time remaining (ETA)',
|
|
166
|
-
' - Data transfer progress',
|
|
167
|
-
'Shows summary statistics after upload',
|
|
168
|
-
],
|
|
169
|
-
examples: [
|
|
170
|
-
'upload ~/data/file.csv /home/user/uploads/',
|
|
171
|
-
'upload ~/Pictures/earthandmoon* .',
|
|
172
|
-
'upload ./results/ ~/data/',
|
|
173
|
-
'upload ~/experiment/data /home/user/projects/',
|
|
174
|
-
],
|
|
175
|
-
},
|
|
176
|
-
download: {
|
|
177
|
-
category: 'Files',
|
|
178
|
-
usage: 'download <chris_path_or_glob> <local_path> [-f|--force]',
|
|
179
|
-
description: 'Download a ChRIS file, directory, or CFS glob to the local filesystem with progress tracking',
|
|
180
|
-
options: [
|
|
181
|
-
'-f, --force Overwrite existing local paths',
|
|
182
|
-
'Progress bar shows files, ETA, bytes transferred',
|
|
183
|
-
],
|
|
184
|
-
examples: [
|
|
185
|
-
'download /home/user/data ./data',
|
|
186
|
-
'download /home/user/results/*.nii ./results/',
|
|
187
|
-
'download /feeds/feed_123 ./downloads -f',
|
|
188
|
-
],
|
|
189
|
-
},
|
|
190
|
-
connect: {
|
|
191
|
-
category: 'Connection',
|
|
192
|
-
usage: 'connect <username> <url> [password]',
|
|
193
|
-
description: 'Connect to ChRIS server',
|
|
194
|
-
examples: [
|
|
195
|
-
'connect alice https://cube.chrisproject.org/api/v1/',
|
|
196
|
-
'connect bob http://localhost:8000/api/v1/ mypassword',
|
|
197
|
-
],
|
|
198
|
-
},
|
|
199
|
-
logout: {
|
|
200
|
-
category: 'Connection',
|
|
201
|
-
usage: 'logout',
|
|
202
|
-
description: 'Disconnect from ChRIS server',
|
|
203
|
-
examples: ['logout'],
|
|
204
|
-
},
|
|
205
29
|
plugin: {
|
|
206
30
|
category: 'Resources',
|
|
207
31
|
usage: 'plugin <subcommand> [options]',
|
|
@@ -340,109 +164,6 @@ export const chrisHelp = {
|
|
|
340
164
|
'plugins add my-plugin:latest --publicRepo https://github.com/org/my-plugin',
|
|
341
165
|
],
|
|
342
166
|
},
|
|
343
|
-
feed: {
|
|
344
|
-
category: 'Resources',
|
|
345
|
-
usage: 'feed <subcommand> [options]',
|
|
346
|
-
description: 'Work with a single ChRIS feed - create, annotate, comment',
|
|
347
|
-
options: [
|
|
348
|
-
'',
|
|
349
|
-
'SUBCOMMANDS:',
|
|
350
|
-
' create <path> Create a new feed from a data directory',
|
|
351
|
-
' note <feedId> Show the feed\'s note',
|
|
352
|
-
' note edit <feedId> Edit the note in the surface\'s editor (edit /proc/jobs/feed_N/note)',
|
|
353
|
-
' note <feedId> --title <t> Update note title',
|
|
354
|
-
' note <feedId> --content <c> Update note content',
|
|
355
|
-
' comments <feedId> List all comments on a feed',
|
|
356
|
-
' comment add <feedId> Add a comment (--title, --content)',
|
|
357
|
-
' comment edit <feedId> <commentId> Edit a comment (--title, --content)',
|
|
358
|
-
' comment delete <feedId> <commentId> Delete a comment',
|
|
359
|
-
' rm [<feed>] [-f] Remove a feed and everything in it (asks first)',
|
|
360
|
-
' tree [<feed>] Render the feed\'s plugin-instance DAG',
|
|
361
|
-
' tree [<feed>] --focus <id> Scope the tree to one node\'s subtree',
|
|
362
|
-
' tree [<feed>] --max-nodes <n> Cap rendered nodes (0 = all)',
|
|
363
|
-
' diagram [<feed>] Shallow alias of feed tree',
|
|
364
|
-
' diagram --signalflow [<feed>] Emit the DAG as SignalFlow YAML to stdout',
|
|
365
|
-
' (pipe it: feed diagram --signalflow 42 | signalflow -)',
|
|
366
|
-
'',
|
|
367
|
-
' <feed> accepts an ID, feed_N directory name, exact title, or unique search.',
|
|
368
|
-
' Omit it while inside a feed_N path to use the current directory\'s feed.',
|
|
369
|
-
],
|
|
370
|
-
examples: [
|
|
371
|
-
'feed create /home/user/uploads/MRI-data',
|
|
372
|
-
'feed tree 1669',
|
|
373
|
-
'feed diagram # Current feed, from inside feed_N',
|
|
374
|
-
'feed note 42',
|
|
375
|
-
'feed note 42 --title "QC passed" --content "No artefacts found"',
|
|
376
|
-
'feed comments 42',
|
|
377
|
-
'feed comment add 42 --title "Issue" --content "Slice 14 looks odd"',
|
|
378
|
-
'feed comment edit 42 7 --content "Resolved — motion artefact, excluded"',
|
|
379
|
-
'feed comment delete 42 7',
|
|
380
|
-
],
|
|
381
|
-
},
|
|
382
|
-
feeds: {
|
|
383
|
-
category: 'Resources',
|
|
384
|
-
usage: 'feeds <subcommand> [options]',
|
|
385
|
-
description: 'Manage collections of ChRIS feeds - list, delete, share, query',
|
|
386
|
-
options: [
|
|
387
|
-
'',
|
|
388
|
-
'DESCRIPTION:',
|
|
389
|
-
' A feed represents a data analysis workflow in ChRIS - a DAG of linked plugin',
|
|
390
|
-
' instances, also navigable as a folder at /home/<user>/feeds/.',
|
|
391
|
-
...RESOURCE_LIST_OPTIONS,
|
|
392
|
-
'--user <username> Filter by owner username (admin only)',
|
|
393
|
-
'',
|
|
394
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
395
|
-
' delete <id> Remove a feed',
|
|
396
|
-
],
|
|
397
|
-
examples: [
|
|
398
|
-
'feeds list',
|
|
399
|
-
'feeds list --all',
|
|
400
|
-
'feeds list --limit 100',
|
|
401
|
-
'feeds search experiment',
|
|
402
|
-
'feeds list --fields id,name,creation_date',
|
|
403
|
-
'feeds list --user radstar',
|
|
404
|
-
'feeds list --all --user radstar',
|
|
405
|
-
'feeds inspect',
|
|
406
|
-
'feeds delete 123',
|
|
407
|
-
],
|
|
408
|
-
},
|
|
409
|
-
files: {
|
|
410
|
-
category: 'Resources',
|
|
411
|
-
usage: 'files <subcommand> [path] [options]',
|
|
412
|
-
description: 'Manage ChRIS file resources',
|
|
413
|
-
options: [...RESOURCE_LIST_OPTIONS],
|
|
414
|
-
examples: [
|
|
415
|
-
'files list',
|
|
416
|
-
'files list /path',
|
|
417
|
-
'files search fname:dicom',
|
|
418
|
-
'files inspect',
|
|
419
|
-
],
|
|
420
|
-
},
|
|
421
|
-
links: {
|
|
422
|
-
category: 'Resources',
|
|
423
|
-
usage: 'links <subcommand> [path] [options]',
|
|
424
|
-
description: 'Manage ChRIS link resources',
|
|
425
|
-
options: [...RESOURCE_LIST_OPTIONS],
|
|
426
|
-
examples: ['links list', 'links search', 'links inspect'],
|
|
427
|
-
},
|
|
428
|
-
dirs: {
|
|
429
|
-
category: 'Resources',
|
|
430
|
-
usage: 'dirs <subcommand> [path] [options]',
|
|
431
|
-
description: 'Manage ChRIS directory resources',
|
|
432
|
-
options: [...RESOURCE_LIST_OPTIONS],
|
|
433
|
-
examples: ['dirs list', 'dirs search', 'dirs inspect'],
|
|
434
|
-
},
|
|
435
|
-
whatif: {
|
|
436
|
-
category: 'Resources',
|
|
437
|
-
usage: 'whatif <plugin or Pipeline> [operands] [options]',
|
|
438
|
-
summary: 'Print what a plugin or Pipeline line would do, and run nothing',
|
|
439
|
-
description: 'Resolve the line as a run would and print it: the version picked, the operands as read, the stage, the node it would attach to or the feed it would root, and every parameter with defaults marked. Nothing is staged, no feed is made, no job starts. When the real line would refuse, whatif prints the same refusal and exits non-zero.',
|
|
440
|
-
options: [
|
|
441
|
-
'A prefix, as time and env are: every flag after a /bin name belongs to the plugin.',
|
|
442
|
-
'Several directory operands print one resolution per run.',
|
|
443
|
-
],
|
|
444
|
-
examples: ['whatif pl-freesurfer ~/uploads/t1.nii as sub-01', 'whatif pl-dcm2niix ~/feeds/feed_12/pl-dircopy_40/data'],
|
|
445
|
-
},
|
|
446
167
|
pipeline: {
|
|
447
168
|
category: 'Resources',
|
|
448
169
|
usage: 'pipeline <subcommand> [args]',
|
|
@@ -504,808 +225,5 @@ export const chrisHelp = {
|
|
|
504
225
|
'cat /bin/PHI_detection # Cached executable summary',
|
|
505
226
|
],
|
|
506
227
|
},
|
|
507
|
-
pacs: {
|
|
508
|
-
category: 'PACS',
|
|
509
|
-
usage: 'pacs <subcommand> [args]',
|
|
510
|
-
description: 'PACS subsystem — server context, query, and series retrieval',
|
|
511
|
-
options: [
|
|
512
|
-
'SUBCOMMANDS:',
|
|
513
|
-
' connect List registered PACS servers with active one marked',
|
|
514
|
-
' connect <name|id> Set active PACS server',
|
|
515
|
-
' disconnect Clear active PACS server',
|
|
516
|
-
' list List registered PACS servers (alias: pacs connect)',
|
|
517
|
-
' query <Key:Value...> Create PACS query and wait for results',
|
|
518
|
-
' pull <vfs-path...> Pull DICOM series into ChRIS storage',
|
|
519
|
-
' status <target> Per-series pulled/pending report with in-CUBE paths;',
|
|
520
|
-
' target is an expression, VFS path, or query id',
|
|
521
|
-
],
|
|
522
|
-
examples: [
|
|
523
|
-
'pacs # Show active server',
|
|
524
|
-
'pacs connect # List all servers',
|
|
525
|
-
'pacs connect PACSDCM # Set active server by identifier',
|
|
526
|
-
'pacs connect 1 # Set active server by numeric ID',
|
|
527
|
-
'pacs disconnect # Clear active server',
|
|
528
|
-
'pacs list # List all servers',
|
|
529
|
-
'pacs query PatientID:1234 # Query PACS',
|
|
530
|
-
'pacs pull /net/pacs/queries/42_AccessionNumber:12345678',
|
|
531
|
-
'pacs status AccessionNumber:22119730 # What has landed in CUBE, what is missing',
|
|
532
|
-
],
|
|
533
|
-
},
|
|
534
|
-
'pacs query': {
|
|
535
|
-
usage: 'pacs query <Key:Value[,Key:Value...]> [--table | --csv | --csv-to <cfs-path>] [--series] [--title <title>] [--pacsserver <id>] [--fresh]',
|
|
536
|
-
description: 'Create a PACS query, wait for results, and print the VFS path',
|
|
537
|
-
options: [
|
|
538
|
-
'--title <title> Title for the query record (default: Query <timestamp>)',
|
|
539
|
-
'--pacsserver <id> Override PACS server (default: context PACSserver);',
|
|
540
|
-
' a comma-separated list asks each and names the server on every row',
|
|
541
|
-
'--patients <list> Ask after several patients: MRNs comma-separated, or @<cfs-file>',
|
|
542
|
-
' (one MRN per line; blanks and # comments ignored)',
|
|
543
|
-
'--csv Render the answer as CSV (a row per study, and one per patient with none)',
|
|
544
|
-
'--csv-to <cfs-path> Write that CSV into ChRIS storage, where a detached surface can reach it',
|
|
545
|
-
' (given no path, the destination is asked for)',
|
|
546
|
-
'--force Overwrite the table at that path; without it, an existing file is kept',
|
|
547
|
-
'--table Show the answer\'s rows as an aligned table: the CSV\'s columns, for a screen',
|
|
548
|
-
'--series One row per series instead of per study (on the table and in the CSV);',
|
|
549
|
-
' alone, it shows the series table',
|
|
550
|
-
'--anon Stand in for names and record numbers (for demonstrating on a live PACS)',
|
|
551
|
-
'--fresh Ask the PACS even if this question was answered before',
|
|
552
|
-
'--help Show this help',
|
|
553
|
-
],
|
|
554
|
-
examples: [
|
|
555
|
-
'pacs query PatientID:1234',
|
|
556
|
-
'pacs query PatientID:1234 --fresh # ignore the stored answer',
|
|
557
|
-
'pacs query AccessionNumber:12345678 --title "Hip DDH workup"',
|
|
558
|
-
'pacs query PatientID:1234,StudyDate:20240101',
|
|
559
|
-
'pacs query PatientID:1234 --table # the rows, aligned, one per study',
|
|
560
|
-
'pacs query PatientID:1234 --series # one row per series',
|
|
561
|
-
'pacs query PatientID:1234 --csv-to ~/audit.csv --table --series',
|
|
562
|
-
'',
|
|
563
|
-
'# Standalone alias (identical behaviour)',
|
|
564
|
-
'query PatientID:1234',
|
|
565
|
-
],
|
|
566
|
-
},
|
|
567
|
-
'pacs pull': {
|
|
568
|
-
usage: 'pacs pull [--nowait] [--retry N] [--new-feed <title>] <vfs-path|query-expr> [...]',
|
|
569
|
-
description: 'Pull PACS series into ChRIS storage (blocking, with LONK progress)',
|
|
570
|
-
options: [
|
|
571
|
-
'--detach Fire retrieves and return the handles at once; prints <seriesUID> <retrieveId> per line',
|
|
572
|
-
' (--nowait is the older spelling of the same flag)',
|
|
573
|
-
'--retry N Re-fire retrieves for [NO LONK] series up to N additional times',
|
|
574
|
-
'--new-feed <title> Create one named feed from the complete retrieved selection',
|
|
575
|
-
'--help Show this help',
|
|
576
|
-
],
|
|
577
|
-
examples: [
|
|
578
|
-
'pacs pull /net/pacs/queries/42_AccessionNumber:12345678',
|
|
579
|
-
'pacs pull /net/pacs/queries/42_.../Study_1.2.3_US-Hips_DDH',
|
|
580
|
-
'pacs pull AccessionNumber:12345678 # query-then-pull shorthand',
|
|
581
|
-
'pacs pull AccessionNumber:12345678 --new-feed "Brain MRI"',
|
|
582
|
-
'',
|
|
583
|
-
'# Standalone alias (identical behaviour)',
|
|
584
|
-
'pull /net/pacs/queries/42_AccessionNumber:12345678',
|
|
585
|
-
],
|
|
586
|
-
},
|
|
587
|
-
'pacs connect': {
|
|
588
|
-
usage: 'pacs connect [<name|id>]',
|
|
589
|
-
description: 'List registered PACS servers or set the active one',
|
|
590
|
-
examples: [
|
|
591
|
-
'pacs connect # List all servers with active marked',
|
|
592
|
-
'pacs connect PACSDCM # Set active server by identifier',
|
|
593
|
-
'pacs connect 1 # Set active server by numeric ID',
|
|
594
|
-
],
|
|
595
|
-
},
|
|
596
|
-
'pacs disconnect': {
|
|
597
|
-
usage: 'pacs disconnect',
|
|
598
|
-
description: 'Clear the active PACS server from context',
|
|
599
|
-
examples: [
|
|
600
|
-
'pacs disconnect # Clear active server',
|
|
601
|
-
],
|
|
602
|
-
},
|
|
603
|
-
'pacs list': {
|
|
604
|
-
usage: 'pacs list',
|
|
605
|
-
description: 'List registered PACS servers with active one marked (alias: pacs connect)',
|
|
606
|
-
examples: [
|
|
607
|
-
'pacs list # List all servers',
|
|
608
|
-
],
|
|
609
|
-
},
|
|
610
|
-
pacsservers: {
|
|
611
|
-
category: 'PACS',
|
|
612
|
-
usage: 'pacsservers <subcommand> [options]',
|
|
613
|
-
description: 'List or inspect available PACS servers (context-aware)',
|
|
614
|
-
examples: [
|
|
615
|
-
'pacsservers list # List PACS servers',
|
|
616
|
-
'pacsservers list --table # Table view',
|
|
617
|
-
'pacsservers fieldslist # Show fields',
|
|
618
|
-
],
|
|
619
|
-
},
|
|
620
|
-
pacsqueries: {
|
|
621
|
-
category: 'PACS',
|
|
622
|
-
usage: 'pacsqueries <subcommand> [options]',
|
|
623
|
-
description: 'Create or list PACS queries (uses current pacsserver context unless overridden)',
|
|
624
|
-
options: [
|
|
625
|
-
'--pacsserver <id|name> Use specific PACS server for this call',
|
|
626
|
-
'--title <string> Title for created query',
|
|
627
|
-
'--search <filters> Filters for list (supports comma-separated key:value)',
|
|
628
|
-
],
|
|
629
|
-
examples: [
|
|
630
|
-
'pacsqueries list # List for current pacsserver',
|
|
631
|
-
'pacsqueries list --pacsserver PACSDCM # Override server',
|
|
632
|
-
'pacsqueries create "PatientID:1234" --title "PID 1234"',
|
|
633
|
-
'pacsqueries decode <id> # Decode a query result',
|
|
634
|
-
],
|
|
635
|
-
},
|
|
636
|
-
pacsretrieve: {
|
|
637
|
-
category: 'PACS',
|
|
638
|
-
usage: 'pacsretrieve <subcommand> [options]',
|
|
639
|
-
description: 'Pull or inspect DICOM retrieves for PACS queries',
|
|
640
|
-
examples: [
|
|
641
|
-
'pacsretrieve pull <queryId> # Pull data for a query',
|
|
642
|
-
'pacsretrieve report <queryId> # Show retrieve status',
|
|
643
|
-
'pacsretrieve cancel <retrieveId> # Cancel a retrieve',
|
|
644
|
-
],
|
|
645
|
-
},
|
|
646
|
-
context: {
|
|
647
|
-
category: 'Connection',
|
|
648
|
-
usage: 'context',
|
|
649
|
-
description: 'Display current ChRIS context information',
|
|
650
|
-
examples: ['context'],
|
|
651
|
-
},
|
|
652
|
-
whoami: {
|
|
653
|
-
category: 'Connection',
|
|
654
|
-
usage: 'whoami',
|
|
655
|
-
description: 'Print the currently authenticated ChRIS username',
|
|
656
|
-
examples: ['whoami'],
|
|
657
|
-
},
|
|
658
|
-
id: {
|
|
659
|
-
category: 'Connection',
|
|
660
|
-
usage: 'id',
|
|
661
|
-
description: 'Print the current CUBE user as a Unix-style UID, projected primary GID, and complete list of CUBE group memberships.',
|
|
662
|
-
examples: ['id'],
|
|
663
|
-
},
|
|
664
|
-
ping: {
|
|
665
|
-
usage: 'ping [-c N] [cube]',
|
|
666
|
-
summary: 'Round trips to CUBE, timed',
|
|
667
|
-
description: 'Makes N (3) HTTP round trips to the CUBE this session talks to and times each, then sums up as ping does — and adds the average of this session\'s own calls to CUBE so far. Only CUBE is pinged from here: a hosted session is not a probe for the network it sits on.',
|
|
668
|
-
options: [' -c N Round trips to make (default 3, at most 20)'],
|
|
669
|
-
examples: ['ping', 'ping -c 10'],
|
|
670
|
-
},
|
|
671
|
-
chrisfetch: {
|
|
672
|
-
usage: 'chrisfetch',
|
|
673
|
-
summary: 'The brain beside the session\'s facts, neofetch style',
|
|
674
|
-
description: 'Who you are and where, feeds by scope, jobs run and the failure rate, the index\'s state, the surfaces attached, the uptime — beside the ChRIS brain. All from what the session already holds: no extra calls.',
|
|
675
|
-
examples: ['chrisfetch', 'chrisfetch | lolcat'],
|
|
676
|
-
},
|
|
677
|
-
file: {
|
|
678
|
-
posix: { group: 'Files', differs: 'names a CFS file by its first bytes (DICOM, NIfTI, …)' },
|
|
679
|
-
category: 'Files',
|
|
680
|
-
usage: 'file <path>...',
|
|
681
|
-
summary: 'What a file is, by its first bytes',
|
|
682
|
-
description: 'Reads a CFS file\'s head and names it by its magic: DICOM, NIfTI, gzip, PNG, JPEG, PDF, ZIP, JSON, text and more, with its size.',
|
|
683
|
-
examples: ['file 0001.dcm', 'file ~/data/*'],
|
|
684
|
-
},
|
|
685
|
-
xxd: {
|
|
686
|
-
posix: { group: 'Text', differs: 'reads a CFS file' },
|
|
687
|
-
usage: 'xxd [-s OFFSET] [-l LENGTH] <path>',
|
|
688
|
-
summary: 'A hex dump of a file',
|
|
689
|
-
description: 'The canonical hex dump — offset, sixteen bytes in pairs, the text beside — of a CFS file. 256 bytes unless -l asks for more; -s starts further in. Says how much of the file it showed.',
|
|
690
|
-
options: [' -s OFFSET Start at this byte (default 0)', ' -l LENGTH Show this many bytes (default 256)'],
|
|
691
|
-
examples: ['xxd 0001.dcm', 'xxd -s 128 -l 16 0001.dcm', 'xxd -l 4096 image.nii'],
|
|
692
|
-
},
|
|
693
|
-
strings: {
|
|
694
|
-
posix: { group: 'Text', differs: 'reads a CFS file' },
|
|
695
|
-
usage: 'strings [-n MIN] [-l LIMIT] <path>',
|
|
696
|
-
summary: 'The readable runs in a file',
|
|
697
|
-
description: 'Prints the runs of printable characters, MIN (4) or longer, in a CFS file — the way to see what a binary carries. 200 lines unless -l asks for more; says how many there were.',
|
|
698
|
-
options: [' -n MIN Shortest run to show (default 4)', ' -l LIMIT Most runs to show (default 200)'],
|
|
699
|
-
examples: ['strings 0001.dcm', 'strings -n 8 report.pdf'],
|
|
700
|
-
},
|
|
701
|
-
sha256sum: {
|
|
702
|
-
posix: { group: 'Text', differs: 'hashes a CFS file' },
|
|
703
|
-
usage: 'sha256sum <path>...',
|
|
704
|
-
summary: 'The SHA-256 digest of a file',
|
|
705
|
-
description: 'Prints each CFS file\'s SHA-256 as hex, then its name, in the format the coreutils tool uses.',
|
|
706
|
-
examples: ['sha256sum image.nii.gz', 'sha256sum ~/uploads/*'],
|
|
707
|
-
},
|
|
708
|
-
md5sum: {
|
|
709
|
-
posix: { group: 'Text', differs: 'hashes a CFS file' },
|
|
710
|
-
usage: 'md5sum <path>...',
|
|
711
|
-
summary: 'The MD5 digest of a file',
|
|
712
|
-
description: 'Prints each CFS file\'s MD5 as hex, then its name.',
|
|
713
|
-
examples: ['md5sum image.nii.gz'],
|
|
714
|
-
},
|
|
715
|
-
motd: {
|
|
716
|
-
category: 'Games',
|
|
717
|
-
usage: 'motd [surface]',
|
|
718
|
-
summary: 'The greeting a session gives on arrival',
|
|
719
|
-
description: 'Says who you are, how many feeds you hold, how many jobs have run and what share of them failed, and what is running now — from the session\'s own index, at no cost. While the index is still warming it says what it holds so far. A surface may name itself (motd ARGUS) and the greeting says where you arrived. Ends with a short fortune.',
|
|
720
|
-
examples: ['motd', 'motd ARGUS'],
|
|
721
|
-
},
|
|
722
|
-
whereami: {
|
|
723
|
-
category: 'Connection',
|
|
724
|
-
usage: 'whereami',
|
|
725
|
-
description: 'Print the current CUBE URL',
|
|
726
|
-
examples: ['whereami'],
|
|
727
|
-
},
|
|
728
|
-
proc: {
|
|
729
|
-
category: 'Monitoring',
|
|
730
|
-
usage: 'proc <jobs|stat|feeds|refresh|retry|find|here|watch|unwatch> [args]',
|
|
731
|
-
summary: 'Job history inspector — navigate, query and monitor ChRIS pipeline execution via /proc/jobs',
|
|
732
|
-
description: '/proc/jobs is a job history inspector for every computation visible to the current ChRIS identity. Each plugin instance is a discrete job with a parent, zero or more children, a status, parameters, and a log. Jobs are grouped into feeds (pipeline runs), and the parent-child relationships form a DAG: the execution tree of a full computation. /proc/jobs exposes this as a navigable filesystem. The daemon restores an identity-scoped local topology checkpoint, validates feed visibility with CUBE, and reconciles all plugin instances in the background. Restored queries remain usable while syncing; a cold cache still guards global queries until complete. CUBE remains authoritative.',
|
|
733
|
-
subcommands: [
|
|
734
|
-
'jobs list List all feeds with full counter fields (default 20)',
|
|
735
|
-
'jobs list --fields id,title,erroredJobs Select columns',
|
|
736
|
-
'jobs list --sort erroredJobs --reverse Sort by field',
|
|
737
|
-
'jobs list --table Tabular output',
|
|
738
|
-
'jobs list --csv CSV output',
|
|
739
|
-
'jobs list --all All feeds (no limit)',
|
|
740
|
-
'jobs list --search failed Filter by title substring',
|
|
741
|
-
'jobs list --force Wait for warm-up, then list complete results',
|
|
742
|
-
'jobs inspect Show all available field names',
|
|
743
|
-
'stat Show cache summary',
|
|
744
|
-
'stat <feed_id> Show raw counters + topology state for one feed',
|
|
745
|
-
'feeds <query> [--fresh] [--force] Find feeds by title, feed_N name or id; an id the roster lacks is asked of CUBE; --fresh walks the whole feed index now; --force waits for warm-up',
|
|
746
|
-
'feeds --new Feeds shared with you since your last visit, not yet opened (NEW)',
|
|
747
|
-
'seen <feed ...> | all Take the NEW mark off feeds you have looked at',
|
|
748
|
-
'universe Every feed the index holds as it landed: size, status, pipeline shape; honest while warming',
|
|
749
|
-
'layout <name> Where a surface last laid the universe out under a layout, as the session keeps it',
|
|
750
|
-
'layout put <name> <places> Keep a layout: node ids to [x, y, z], as JSON (surfaces put what they settle)',
|
|
751
|
-
'refresh Rebuild entire proc cache',
|
|
752
|
-
'refresh <feed_id> Rebuild cache for one feed only',
|
|
753
|
-
'retry Resume a failed topology sweep at its failed page',
|
|
754
|
-
'find <id> Targeted instance lookup; available during warm-up',
|
|
755
|
-
'find <name> [--force] Name search; --force waits for warm-up',
|
|
756
|
-
'here Navigate from a CFS feed/output path to its matching job',
|
|
757
|
-
'jump [--where] <id | name> Go to a feed or node by id or /proc name (feed_N, plugin_N); a number that is both is not guessed; --where only answers',
|
|
758
|
-
'watch <feed> Keep a running feed live: sample it while it runs, push its DAG to every surface',
|
|
759
|
-
'watch List the session\'s watches with their state',
|
|
760
|
-
'unwatch <feed> Release the watch on a feed',
|
|
761
|
-
],
|
|
762
|
-
examples: [
|
|
763
|
-
'proc jobs list',
|
|
764
|
-
'proc jobs list --sort erroredJobs --reverse --table',
|
|
765
|
-
'proc jobs list --fields id,title,erroredJobs,startedJobs --all',
|
|
766
|
-
'proc jobs list --search failed',
|
|
767
|
-
'proc jobs inspect',
|
|
768
|
-
'proc stat',
|
|
769
|
-
'proc stat 899',
|
|
770
|
-
'proc feeds failed',
|
|
771
|
-
'proc feeds --fresh',
|
|
772
|
-
'proc feeds --new',
|
|
773
|
-
'proc seen all',
|
|
774
|
-
'proc universe',
|
|
775
|
-
'proc refresh',
|
|
776
|
-
'proc retry',
|
|
777
|
-
'proc find 64306',
|
|
778
|
-
'proc find pl-fshack',
|
|
779
|
-
'proc here',
|
|
780
|
-
'proc jump 639204',
|
|
781
|
-
'proc jump feed_4389',
|
|
782
|
-
'proc watch feed_2583',
|
|
783
|
-
'proc unwatch 2583',
|
|
784
|
-
],
|
|
785
|
-
},
|
|
786
|
-
physicalmode: {
|
|
787
|
-
category: 'Settings',
|
|
788
|
-
usage: 'physicalmode [on|off]',
|
|
789
|
-
description: 'Toggle or display physical filesystem mode',
|
|
790
|
-
options: [
|
|
791
|
-
'on Enable physical mode (paths used directly)',
|
|
792
|
-
'off Disable physical mode (use logical-to-physical mapping)',
|
|
793
|
-
],
|
|
794
|
-
examples: [
|
|
795
|
-
'physicalmode # Show current status',
|
|
796
|
-
'physicalmode on # Enable physical mode',
|
|
797
|
-
'physicalmode off # Disable physical mode',
|
|
798
|
-
],
|
|
799
|
-
},
|
|
800
|
-
parametersofplugin: {
|
|
801
|
-
category: 'Resources',
|
|
802
|
-
usage: 'parametersofplugin <plugin_name>',
|
|
803
|
-
description: 'Display parameters for a specific plugin',
|
|
804
|
-
examples: [
|
|
805
|
-
'parametersofplugin pl-dircopy',
|
|
806
|
-
'parametersofplugin pl-simpledsapp',
|
|
807
|
-
],
|
|
808
|
-
},
|
|
809
|
-
tree: {
|
|
810
|
-
posix: { group: 'Files', differs: 'a CFS tree' },
|
|
811
|
-
category: 'Navigation',
|
|
812
|
-
usage: 'tree [options] [path]',
|
|
813
|
-
description: 'Display directory tree structure',
|
|
814
|
-
options: [
|
|
815
|
-
'--follow Follow symbolic links when traversing',
|
|
816
|
-
'--path Emit one full path per entry (grep-friendly, no tree art)',
|
|
817
|
-
'--dirs Show directories only',
|
|
818
|
-
'--dirpath Emit one full directory path per line',
|
|
819
|
-
],
|
|
820
|
-
examples: [
|
|
821
|
-
'tree # Tree of current directory',
|
|
822
|
-
'tree /home/user/data # Tree of specific path',
|
|
823
|
-
'tree --follow # Follow symbolic links',
|
|
824
|
-
'tree --path # One path per line, no decoration',
|
|
825
|
-
'tree --dirs # Directory hierarchy only',
|
|
826
|
-
'tree --dirpath # One directory path per line',
|
|
827
|
-
],
|
|
828
|
-
},
|
|
829
|
-
du: {
|
|
830
|
-
posix: { group: 'Files', differs: 'sizes in CFS' },
|
|
831
|
-
category: 'Navigation',
|
|
832
|
-
usage: 'du [options] [path]',
|
|
833
|
-
description: 'Display disk usage statistics (mimics Linux du)',
|
|
834
|
-
options: [
|
|
835
|
-
'-h, --human-readable Print sizes in human readable format',
|
|
836
|
-
'-s, --summarize Display only total for each argument',
|
|
837
|
-
'-a, --all Show counts for all files, not just directories',
|
|
838
|
-
'-c, --total Produce a grand total',
|
|
839
|
-
'-d N, --max-depth=N Print total only if N or fewer levels below',
|
|
840
|
-
'-S, --separate-dirs Do not include size of subdirectories',
|
|
841
|
-
],
|
|
842
|
-
examples: [
|
|
843
|
-
'du # Disk usage of current directory',
|
|
844
|
-
'du -h # Human-readable sizes (1K, 234M, 2G)',
|
|
845
|
-
'du -s /home/user/data # Summary only for specified path',
|
|
846
|
-
'du -a # Show all files, not just directories',
|
|
847
|
-
'du -c # Show grand total at end',
|
|
848
|
-
'du -d 2 # Max depth of 2 levels',
|
|
849
|
-
'du -sh # Human-readable summary',
|
|
850
|
-
],
|
|
851
|
-
},
|
|
852
|
-
store: {
|
|
853
|
-
category: 'Resources',
|
|
854
|
-
usage: 'store <subcommand> [options]',
|
|
855
|
-
description: 'Browse, search, and install plugins from ChRIS peer store',
|
|
856
|
-
options: [
|
|
857
|
-
'',
|
|
858
|
-
'NOTE: The Store is an external peer ChRIS instance, not a local CUBE resource.',
|
|
859
|
-
' Standard resource options (--all, --limit, etc.) do not apply.',
|
|
860
|
-
'',
|
|
861
|
-
'SUBCOMMANDS:',
|
|
862
|
-
' list Browse all plugins in the peer store',
|
|
863
|
-
' search <query> Search plugins by name',
|
|
864
|
-
' install <name> Install a plugin from the store into local CUBE',
|
|
865
|
-
' inspect Show current peer store URL and connection info',
|
|
866
|
-
' set <url> Set peer store URL (persisted to ~/.config/chell/settings.json)',
|
|
867
|
-
' reset Reset peer store URL to default (cube.chrisproject.org)',
|
|
868
|
-
'',
|
|
869
|
-
'INSTALL OPTIONS:',
|
|
870
|
-
' --compute <names> Compute resources (comma-separated)',
|
|
871
|
-
' Use `sudo store install …` for an administrator installation.',
|
|
872
|
-
'-l Long listing format',
|
|
873
|
-
],
|
|
874
|
-
examples: [
|
|
875
|
-
'store list',
|
|
876
|
-
'store search dicom',
|
|
877
|
-
'store install pl-dcm2niix',
|
|
878
|
-
'store install pl-dcm2niix-v1.2.3',
|
|
879
|
-
'store install fnndsc/pl-dcm2niix:1.2.3',
|
|
880
|
-
'store install pl-dcm2niix --compute moc',
|
|
881
|
-
'store inspect',
|
|
882
|
-
'store set https://my-cube.org/api/v1/',
|
|
883
|
-
'store reset',
|
|
884
|
-
],
|
|
885
|
-
},
|
|
886
|
-
compute: {
|
|
887
|
-
category: 'Resources',
|
|
888
|
-
usage: 'compute <subcommand> [options]',
|
|
889
|
-
description: 'Manage ChRIS compute resources',
|
|
890
|
-
options: [
|
|
891
|
-
...RESOURCE_LIST_OPTIONS,
|
|
892
|
-
],
|
|
893
|
-
examples: [
|
|
894
|
-
'compute list',
|
|
895
|
-
'compute list --table',
|
|
896
|
-
'compute list --csv',
|
|
897
|
-
'compute inspect',
|
|
898
|
-
],
|
|
899
|
-
},
|
|
900
|
-
tag: {
|
|
901
|
-
category: 'Resources',
|
|
902
|
-
usage: 'tags <subcommand> [options]',
|
|
903
|
-
description: 'Manage ChRIS tags',
|
|
904
|
-
options: [
|
|
905
|
-
...RESOURCE_LIST_OPTIONS,
|
|
906
|
-
'',
|
|
907
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
908
|
-
' create <name> Create a new tag',
|
|
909
|
-
' update <id> <name> Rename a tag',
|
|
910
|
-
' delete <id> Remove a tag',
|
|
911
|
-
],
|
|
912
|
-
examples: ['tags list', 'tags search brain', 'tags inspect', 'tag create neuro', 'tag delete 5'],
|
|
913
|
-
},
|
|
914
|
-
tags: {
|
|
915
|
-
category: 'Resources',
|
|
916
|
-
usage: 'tags <subcommand> [options]',
|
|
917
|
-
description: 'Manage ChRIS tags',
|
|
918
|
-
options: [
|
|
919
|
-
...RESOURCE_LIST_OPTIONS,
|
|
920
|
-
'',
|
|
921
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
922
|
-
' create <name> Create a new tag',
|
|
923
|
-
' update <id> <name> Rename a tag',
|
|
924
|
-
' delete <id> Remove a tag',
|
|
925
|
-
],
|
|
926
|
-
examples: ['tags list', 'tags search brain', 'tags inspect', 'tag create neuro', 'tag delete 5'],
|
|
927
|
-
},
|
|
928
|
-
record: {
|
|
929
|
-
category: 'Workflows',
|
|
930
|
-
usage: 'record <start <manifest>|stop|status>',
|
|
931
|
-
description: 'Write what this session does down as a manifest',
|
|
932
|
-
options: [
|
|
933
|
-
'SUBCOMMANDS:',
|
|
934
|
-
' start <manifest> Begin capturing the lines this session runs',
|
|
935
|
-
' stop Write the manifest and say what it holds',
|
|
936
|
-
' status Whether anything is recording, and how much (the default)',
|
|
937
|
-
'',
|
|
938
|
-
'A recording captures typed lines and the lines a surface mints from a press',
|
|
939
|
-
'alike. It never invents expectations: adding `expect` lines is the author\'s',
|
|
940
|
-
'act, and the one that turns a recording into a test. Identifiers a PACS line',
|
|
941
|
-
'wears on its face (PatientID, AccessionNumber, PatientName) are offered as',
|
|
942
|
-
'parameters, so the file is shareable rather than personal.',
|
|
943
|
-
],
|
|
944
|
-
examples: [
|
|
945
|
-
'record start ~/flows/sag-cohort.mise',
|
|
946
|
-
'# … do the work, by hand or by pressing …',
|
|
947
|
-
'record stop',
|
|
948
|
-
'play ~/flows/sag-cohort.mise --param MRN=1234567',
|
|
949
|
-
],
|
|
950
|
-
},
|
|
951
|
-
gather: {
|
|
952
|
-
category: 'Workflows',
|
|
953
|
-
usage: 'gather <subcommand> [path...]',
|
|
954
|
-
description: "Hold the set of things this session is working on",
|
|
955
|
-
options: [
|
|
956
|
-
'SUBCOMMANDS:',
|
|
957
|
-
' list Show the cohort (the default)',
|
|
958
|
-
' add <path...> Take series, directories or files into it',
|
|
959
|
-
' remove <path|index...> Drop members, by path or by listed index',
|
|
960
|
-
'',
|
|
961
|
-
'add and remove take paths, handles (@SER3, @SER1-4), ${listing}, or a',
|
|
962
|
-
'listing piped in with no operands: query … | gather add. With none of',
|
|
963
|
-
'these they refuse rather than guess.',
|
|
964
|
-
' clear Empty it, name and feed included',
|
|
965
|
-
' name [<name>] Read the cohort\'s name, or give it one',
|
|
966
|
-
' feed [--title T] The cohort\'s feed, made now if it has none.',
|
|
967
|
-
' Series still at the PACS are pulled first, then',
|
|
968
|
-
' one feed is rooted on every member. The title is',
|
|
969
|
-
' T, else the cohort\'s name.',
|
|
970
|
-
' process <name> [--title T] [--detach] [-- <its arguments>]',
|
|
971
|
-
' Run a plugin or pipeline ONCE over the whole',
|
|
972
|
-
' cohort: one feed whose root holds every member',
|
|
973
|
-
' (the cohort\'s own feed when it has one), the run',
|
|
974
|
-
' off that root. Refuses while a series is unpulled.',
|
|
975
|
-
' Answers as the bare run would: R=$(gather process …)',
|
|
976
|
-
' <name> is the /bin name or the pipeline\'s own',
|
|
977
|
-
' name: gather process "FreeSurfer 8.2.0 mri_convert"',
|
|
978
|
-
' A plugin that starts jobs of its own (pl-dymap)',
|
|
979
|
-
' finishes once they are submitted; watch them in',
|
|
980
|
-
' the feed.',
|
|
981
|
-
],
|
|
982
|
-
examples: [
|
|
983
|
-
'gather',
|
|
984
|
-
'gather add /net/pacs/queries/qid:3125/Study_1.2.3/Series_4.5.6',
|
|
985
|
-
'gather add ~/uploads/brain',
|
|
986
|
-
'gather add @SER3 @SER7',
|
|
987
|
-
'query PatientID:1234567,Modality:MR | gather add',
|
|
988
|
-
'gather remove 2',
|
|
989
|
-
'gather name "sag cohort"',
|
|
990
|
-
'gather feed',
|
|
991
|
-
'R=$(gather process pl-dcm2niix-v1.0.2 --title "sag nifti")',
|
|
992
|
-
],
|
|
993
|
-
},
|
|
994
|
-
berth: {
|
|
995
|
-
category: 'Workflows',
|
|
996
|
-
usage: 'berth [anchor <path> [name] [--refresh] [--yes] | close [--infeed <anchor> | --newfeed] [--name <feed>] [--title <text>] [--force] | drop <name> | clear]',
|
|
997
|
-
summary: "The ChRIS paths downloaded into this session's berth, and the work returned: anchor, list, close, drop, clear",
|
|
998
|
-
description: "Anchor ChRIS paths in this session's berth: download each into the anchors folder, list them, return the outgoing folder to ChRIS as one node, drop one, or clear them all",
|
|
999
|
-
options: [
|
|
1000
|
-
'SUBCOMMANDS:',
|
|
1001
|
-
' (none) List the anchors: name, ChRIS path, node or',
|
|
1002
|
-
' none, files, size, when anchored; and when',
|
|
1003
|
-
' the berth last closed',
|
|
1004
|
-
' anchor <path> [name] Download a ChRIS path you can read into',
|
|
1005
|
-
' <anchors>/<name>/, named by its last part',
|
|
1006
|
-
' unless a name is given',
|
|
1007
|
-
' --refresh Download an anchor that stands again',
|
|
1008
|
-
' --yes, -y Answer yes to the question above 10 GB',
|
|
1009
|
-
' close Upload the outgoing folder, with berth.json,',
|
|
1010
|
-
' to ~/berth/<uuid>/ and make it one node',
|
|
1011
|
-
' (pl-dsdircopy): a child of the node every',
|
|
1012
|
-
' anchor is under, or a new feed when none is',
|
|
1013
|
-
' --infeed <anchor> A child of that anchor\'s node',
|
|
1014
|
-
' --newfeed A new feed over every anchor',
|
|
1015
|
-
' --name <feed> The new feed\'s name',
|
|
1016
|
-
' --title <text> The node\'s title (berth work)',
|
|
1017
|
-
' --force, -f Answer yes when your processes still run',
|
|
1018
|
-
' drop <name> Remove one anchor; ChRIS still holds it',
|
|
1019
|
-
' clear Remove every anchor and empty the outgoing',
|
|
1020
|
-
' folder; asks first when it holds files not',
|
|
1021
|
-
' yet closed',
|
|
1022
|
-
'',
|
|
1023
|
-
'Under your own ~/feeds an anchor has a node, the plugin instance its',
|
|
1024
|
-
'path runs through, which must be finishedSuccessfully; anywhere else',
|
|
1025
|
-
'(uploads, PACS, /PUBLIC, /SHARED) it has none. Anchors of two nodes,',
|
|
1026
|
-
'or of a node and of none, want --infeed or --newfeed to close. A close',
|
|
1027
|
-
'removes nothing. help anchors says more.',
|
|
1028
|
-
'On a host, not in a berth, berth says so and refuses the subcommands.',
|
|
1029
|
-
],
|
|
1030
|
-
examples: [
|
|
1031
|
-
'berth',
|
|
1032
|
-
'berth anchor ~/feeds/feed_5/pl-dircopy_7/pl-fshack_41/data/sub-01',
|
|
1033
|
-
'berth anchor ~/uploads/weights',
|
|
1034
|
-
'berth anchor /PUBLIC/atlas/weights atlas-weights',
|
|
1035
|
-
'berth anchor ~/uploads/weights --refresh',
|
|
1036
|
-
'berth close',
|
|
1037
|
-
'berth close --title "sub-01 segmentation"',
|
|
1038
|
-
'berth close --infeed sub-01',
|
|
1039
|
-
'berth close --newfeed --name "unet weights"',
|
|
1040
|
-
'berth drop sub-01',
|
|
1041
|
-
'berth clear',
|
|
1042
|
-
],
|
|
1043
|
-
},
|
|
1044
|
-
group: {
|
|
1045
|
-
category: 'Resources',
|
|
1046
|
-
usage: 'groups <subcommand> [options]',
|
|
1047
|
-
description: 'Manage ChRIS user groups',
|
|
1048
|
-
options: [
|
|
1049
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1050
|
-
'',
|
|
1051
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1052
|
-
' inspect [<group>] Show group identity, or fields when omitted',
|
|
1053
|
-
' members <group> List users in a group',
|
|
1054
|
-
' create <name> [admin] Create a new group',
|
|
1055
|
-
' delete <id> [admin] Remove a group',
|
|
1056
|
-
' adduser <group> <user...> [admin] Add one or more users',
|
|
1057
|
-
' removeuser <group> <user...> [admin] Remove one or more users',
|
|
1058
|
-
],
|
|
1059
|
-
examples: ['groups list', 'group members pacs_users', 'group adduser pacs_users peter.hong joe.schmo', 'group removeuser pacs_users joe.schmo'],
|
|
1060
|
-
},
|
|
1061
|
-
groups: {
|
|
1062
|
-
category: 'Resources',
|
|
1063
|
-
usage: 'groups <subcommand> [options]',
|
|
1064
|
-
description: 'Manage ChRIS user groups',
|
|
1065
|
-
options: [
|
|
1066
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1067
|
-
'',
|
|
1068
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1069
|
-
' inspect [<group>] Show group identity, or fields when omitted',
|
|
1070
|
-
' members <group> List users in a group',
|
|
1071
|
-
' create <name> [admin] Create a new group',
|
|
1072
|
-
' delete <id> [admin] Remove a group',
|
|
1073
|
-
' adduser <group> <user...> [admin] Add one or more users',
|
|
1074
|
-
' removeuser <group> <user...> [admin] Remove one or more users',
|
|
1075
|
-
],
|
|
1076
|
-
examples: ['groups list', 'group members pacs_users', 'group adduser pacs_users peter.hong joe.schmo', 'group removeuser pacs_users joe.schmo'],
|
|
1077
|
-
},
|
|
1078
|
-
pluginmeta: {
|
|
1079
|
-
category: 'Resources',
|
|
1080
|
-
usage: 'pluginmetas <subcommand> [options]',
|
|
1081
|
-
description: 'Browse ChRIS plugin metadata (abstract tool identities across versions)',
|
|
1082
|
-
options: [
|
|
1083
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1084
|
-
'',
|
|
1085
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1086
|
-
' plugins <id> List all registered versions of a plugin meta',
|
|
1087
|
-
],
|
|
1088
|
-
examples: ['pluginmetas list', 'pluginmetas search dircopy', 'pluginmetas inspect', 'pluginmeta plugins 12'],
|
|
1089
|
-
},
|
|
1090
|
-
pluginmetas: {
|
|
1091
|
-
category: 'Resources',
|
|
1092
|
-
usage: 'pluginmetas <subcommand> [options]',
|
|
1093
|
-
description: 'Browse ChRIS plugin metadata (abstract tool identities across versions)',
|
|
1094
|
-
options: [
|
|
1095
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1096
|
-
'',
|
|
1097
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1098
|
-
' plugins <id> List all registered versions of a plugin meta',
|
|
1099
|
-
],
|
|
1100
|
-
examples: ['pluginmetas list', 'pluginmetas search dircopy', 'pluginmetas inspect', 'pluginmeta plugins 12'],
|
|
1101
|
-
},
|
|
1102
|
-
plugininstance: {
|
|
1103
|
-
category: 'Resources',
|
|
1104
|
-
usage: 'plugininstances <subcommand> [options]',
|
|
1105
|
-
description: 'Manage ChRIS plugin instances (jobs)',
|
|
1106
|
-
options: [
|
|
1107
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1108
|
-
'',
|
|
1109
|
-
'A JOB IS WORKED IN /proc/jobs:',
|
|
1110
|
-
' proc find <id> Name the job\'s path',
|
|
1111
|
-
' rm <path> Cancel it while it runs; remove it once done',
|
|
1112
|
-
' cat <path>/params Its parameters',
|
|
1113
|
-
' cat <path>/log Its log',
|
|
1114
|
-
' <path>/data Its output folder',
|
|
1115
|
-
],
|
|
1116
|
-
examples: ['jobs list', 'jobs list --all', 'jobs search status:started', 'jobs list --search feed_id:5536', 'jobs inspect', 'proc find 42'],
|
|
1117
|
-
},
|
|
1118
|
-
plugininstances: {
|
|
1119
|
-
category: 'Resources',
|
|
1120
|
-
usage: 'plugininstances <subcommand> [options]',
|
|
1121
|
-
description: 'Manage ChRIS plugin instances (jobs)',
|
|
1122
|
-
options: [
|
|
1123
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1124
|
-
'',
|
|
1125
|
-
'A JOB IS WORKED IN /proc/jobs:',
|
|
1126
|
-
' proc find <id> Name the job\'s path',
|
|
1127
|
-
' rm <path> Cancel it while it runs; remove it once done',
|
|
1128
|
-
' cat <path>/params Its parameters',
|
|
1129
|
-
' cat <path>/log Its log',
|
|
1130
|
-
' <path>/data Its output folder',
|
|
1131
|
-
],
|
|
1132
|
-
examples: ['jobs list', 'jobs list --all', 'jobs search status:started', 'jobs list --search feed_id:5536', 'jobs inspect', 'proc find 42'],
|
|
1133
|
-
},
|
|
1134
|
-
workflow: {
|
|
1135
|
-
category: 'Resources',
|
|
1136
|
-
usage: 'workflows <subcommand> [options]',
|
|
1137
|
-
description: 'Manage ChRIS workflows (pipeline executions)',
|
|
1138
|
-
options: [
|
|
1139
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1140
|
-
'',
|
|
1141
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1142
|
-
' run Run a pipeline (alias: pipeline run)',
|
|
1143
|
-
' jobs <id> List plugin instances created by this workflow',
|
|
1144
|
-
' rename <id> <title> Rename a workflow',
|
|
1145
|
-
' delete <id> Remove a workflow',
|
|
1146
|
-
],
|
|
1147
|
-
examples: ['workflows list', 'workflows list --all', 'workflows inspect', 'workflow jobs 7', 'workflow delete 7'],
|
|
1148
|
-
},
|
|
1149
|
-
workflows: {
|
|
1150
|
-
category: 'Resources',
|
|
1151
|
-
usage: 'workflows <subcommand> [options]',
|
|
1152
|
-
description: 'Manage ChRIS workflows (pipeline executions)',
|
|
1153
|
-
options: [
|
|
1154
|
-
...RESOURCE_LIST_OPTIONS,
|
|
1155
|
-
'',
|
|
1156
|
-
'RESOURCE-SPECIFIC SUBCOMMANDS:',
|
|
1157
|
-
' run Run a pipeline (alias: pipeline run)',
|
|
1158
|
-
' jobs <id> List plugin instances created by this workflow',
|
|
1159
|
-
' rename <id> <title> Rename a workflow',
|
|
1160
|
-
' delete <id> Remove a workflow',
|
|
1161
|
-
],
|
|
1162
|
-
examples: ['workflows list', 'workflows list --all', 'workflows inspect', 'workflow jobs 7', 'workflow delete 7'],
|
|
1163
|
-
},
|
|
1164
|
-
meta: { category: 'Resources', usage: 'pluginmetas <subcommand> [options]', description: 'Alias for pluginmeta/pluginmetas', options: [...RESOURCE_LIST_OPTIONS], examples: ['metas list', 'meta inspect'] },
|
|
1165
|
-
metas: { category: 'Resources', usage: 'pluginmetas <subcommand> [options]', description: 'Alias for pluginmeta/pluginmetas', options: [...RESOURCE_LIST_OPTIONS], examples: ['metas list', 'meta inspect'] },
|
|
1166
|
-
instance: { category: 'Resources', usage: 'plugininstances <subcommand> [options]', description: 'Alias for plugininstance/plugininstances/job/jobs', options: [...RESOURCE_LIST_OPTIONS], examples: ['instances list', 'proc find 42'] },
|
|
1167
|
-
instances: { category: 'Resources', usage: 'plugininstances <subcommand> [options]', description: 'Alias for plugininstance/plugininstances/job/jobs', options: [...RESOURCE_LIST_OPTIONS], examples: ['instances list', 'proc find 42'] },
|
|
1168
|
-
job: { category: 'Resources', usage: 'plugininstances <subcommand> [options]', description: 'Alias for plugininstance/plugininstances', options: [...RESOURCE_LIST_OPTIONS], examples: ['jobs list', 'jobs search feed_id:5536', 'proc find 42'] },
|
|
1169
|
-
jobs: { category: 'Resources', usage: 'plugininstances <subcommand> [options]', description: 'Alias for plugininstance/plugininstances', options: [...RESOURCE_LIST_OPTIONS], examples: ['jobs list', 'jobs search feed_id:5536', 'proc find 42'] },
|
|
1170
|
-
dcm: {
|
|
1171
|
-
category: 'Imaging',
|
|
1172
|
-
usage: 'dcm <series|tags> <path> [options]',
|
|
1173
|
-
summary: 'DICOM as the kernel sees it: a folder as a series, a file or folder as tags',
|
|
1174
|
-
description: 'Read DICOM without leaving the session. `dcm series` answers what a folder is as a series: '
|
|
1175
|
-
+ 'identity, modality, instance count, stack order, geometry, transfer syntax, bytes, and any '
|
|
1176
|
-
+ 'annotations saved for its UID. `dcm tags` lists every element of a file, or what a folder\'s '
|
|
1177
|
-
+ 'files share against what changes across them. Identifying tags are marked PHI and shown; '
|
|
1178
|
-
+ 'a shared surface redacts them by that mark.',
|
|
1179
|
-
options: [
|
|
1180
|
-
'SUBCOMMANDS:',
|
|
1181
|
-
' series <folder> The folder as a series (one header read, order from file names)',
|
|
1182
|
-
' tags <file|folder> Every tag of a file; constant versus varying across a folder',
|
|
1183
|
-
'',
|
|
1184
|
-
'OPTIONS (tags):',
|
|
1185
|
-
' --all Show meta and private groups too',
|
|
1186
|
-
' --filter <text> Only tags whose tag, name, value or decoding contains <text>',
|
|
1187
|
-
'',
|
|
1188
|
-
'A folder\'s tags are read from every file up to 512, then from an even sample; the listing says '
|
|
1189
|
-
+ 'how many were read of how many there are.',
|
|
1190
|
-
],
|
|
1191
|
-
examples: [
|
|
1192
|
-
'dcm series . # This folder as a series',
|
|
1193
|
-
'dcm series /SERVICES/PACS/PACSDCM/patient/study/00005-T1-abcdef0',
|
|
1194
|
-
'dcm tags 0001-1.2.840.113619.2.55.3.1.dcm # One file, grouped by module',
|
|
1195
|
-
'dcm tags . --filter Position # Position tags across the folder',
|
|
1196
|
-
'dcm tags . --all # Meta and private groups included',
|
|
1197
|
-
],
|
|
1198
|
-
},
|
|
1199
|
-
image: {
|
|
1200
|
-
category: 'Imaging',
|
|
1201
|
-
usage: 'image [--force] <path>',
|
|
1202
|
-
summary: 'Show a DICOM series or a volume — a browser draws it, a terminal reflects it',
|
|
1203
|
-
description: 'Open an image as the kernel sees it. `image <path>` resolves what the path is — a series '
|
|
1204
|
-
+ 'folder, a `.dcm` file (its folder is the series), or a NIfTI/MGZ volume — and emits an image.view '
|
|
1205
|
-
+ 'intent every attached surface renders in its own way: a graphical surface (ARGUS) opens a rendered '
|
|
1206
|
-
+ 'pane; a text surface (a shared TTY) prints a reflection — the same facts `dcm series` shows, under an '
|
|
1207
|
-
+ '`image` line, with a small ASCII or truecolour thumbnail of the middle slice. So the same `image` line '
|
|
1208
|
-
+ 'works from a browser and from a terminal sharing one CALYPSO session.',
|
|
1209
|
-
options: [
|
|
1210
|
-
'OPTIONS:',
|
|
1211
|
-
' --force Ride through the volume-size guard a graphical surface would hold at',
|
|
1212
|
-
],
|
|
1213
|
-
examples: [
|
|
1214
|
-
'image ~/uploads/sag-anon # A series folder',
|
|
1215
|
-
'image /SERVICES/PACS/PACSDCM/patient/study/00005-T1-abcdef0',
|
|
1216
|
-
'image scan.dcm # A single file; its folder is the series',
|
|
1217
|
-
'image brain.nii.gz --force # A volume, past the size guard',
|
|
1218
|
-
],
|
|
1219
|
-
},
|
|
1220
|
-
cubepath: {
|
|
1221
|
-
category: 'Navigation',
|
|
1222
|
-
usage: 'cubepath <vfs-path> [--pacsserver <id>]',
|
|
1223
|
-
description: 'Show CUBE FS path and file count for each series under a PACS VFS path. Zero files = not pulled.',
|
|
1224
|
-
options: [
|
|
1225
|
-
'--pacsserver <id> Override PACS server (default: context PACSserver)',
|
|
1226
|
-
'--help Show this help',
|
|
1227
|
-
],
|
|
1228
|
-
examples: [
|
|
1229
|
-
'# All series under a query',
|
|
1230
|
-
'cubepath /net/pacs/queries/AccessionNumber:12345678_qid:2661',
|
|
1231
|
-
'',
|
|
1232
|
-
'# All series under a study',
|
|
1233
|
-
'cubepath /net/pacs/queries/AccessionNumber:12345678_qid:2661/Study_1.2.3_Brain_MRI',
|
|
1234
|
-
'',
|
|
1235
|
-
'# Single series',
|
|
1236
|
-
'cubepath /net/pacs/queries/AccessionNumber:12345678_qid:2661/Study_1.2.3/Series_1.2.3.4_AX_T2',
|
|
1237
|
-
],
|
|
1238
|
-
},
|
|
1239
|
-
query: {
|
|
1240
|
-
category: 'PACS',
|
|
1241
|
-
usage: 'query <Key:Value[,Key:Value...]> [--patients <list|@cfs-file>] [--title <title>] [--pacsserver <id>] [--fresh]',
|
|
1242
|
-
description: 'Create a PACS query, wait for results, and print the VFS path',
|
|
1243
|
-
options: [
|
|
1244
|
-
'Some PACS ignore keys: PACSDCM answers SeriesDescription and StudyDescription',
|
|
1245
|
-
'as if they were not asked (query says so). Narrow the answer with grep:',
|
|
1246
|
-
' query PatientID:1234567,Modality:MR | grep -i t1 | grep -vi gadavist',
|
|
1247
|
-
'The keys each server ignores: ~/.config/mise/pacs.json',
|
|
1248
|
-
' {"ignoredKeys": {"PACSDCM": ["SeriesDescription", "StudyDescription"]}}',
|
|
1249
|
-
'',
|
|
1250
|
-
'--title <title> Title for the query record (default: Query <timestamp>)',
|
|
1251
|
-
'--pacsserver <id> Override PACS server (default: context PACSserver)',
|
|
1252
|
-
'--table Render results as a table instead of the default list',
|
|
1253
|
-
'--fresh Ask the PACS even if this question was answered before',
|
|
1254
|
-
'--help Show this help',
|
|
1255
|
-
],
|
|
1256
|
-
examples: [
|
|
1257
|
-
'query PatientID:1234',
|
|
1258
|
-
'query PatientID:1234 --fresh # ignore the stored answer',
|
|
1259
|
-
'query AccessionNumber:12345678 --title "Hip DDH workup"',
|
|
1260
|
-
'query PatientID:1234,StudyDate:20240101',
|
|
1261
|
-
'',
|
|
1262
|
-
'# A PACS matches one patient at a time, so several MRNs is several queries',
|
|
1263
|
-
'query PatientID:1234,4532,6654 # three questions, one table',
|
|
1264
|
-
'query --patients @~/cohorts/ddh.txt # a cohort from a file in ChRIS',
|
|
1265
|
-
'query StudyDate:20240101 --patients 1234,4532 # narrowed, per patient',
|
|
1266
|
-
'query PatientID:1234 --pacsserver PACSDCM,ORTHANC # ask both, one listing',
|
|
1267
|
-
'',
|
|
1268
|
-
'# A cohort audit, as a table a spreadsheet reads',
|
|
1269
|
-
'query --patients @~/cohorts/ddh.txt --csv > audit.csv # a local terminal',
|
|
1270
|
-
'query --patients @~/cohorts/ddh.txt --csv-to ~/audits/ddh.csv # any surface',
|
|
1271
|
-
'',
|
|
1272
|
-
'# Use output path directly with pull',
|
|
1273
|
-
'pull $(query PatientID:1234 | grep "VFS path" | awk \'{print $3}\')',
|
|
1274
|
-
],
|
|
1275
|
-
},
|
|
1276
|
-
pull: {
|
|
1277
|
-
category: 'PACS',
|
|
1278
|
-
usage: 'pull [--detach] [--retry N] [--new-feed <title>] <vfs-path|query-expr> [...]',
|
|
1279
|
-
description: 'Pull PACS series into ChRIS storage; accepts VFS paths or query expressions (blocking)',
|
|
1280
|
-
options: [
|
|
1281
|
-
'--detach Fire retrieves and return the handles at once; prints <seriesUID> <retrieveId> per line',
|
|
1282
|
-
' (--nowait is the older spelling of the same flag)',
|
|
1283
|
-
'--retry N Re-fire retrieves for [NO LONK] series up to N additional times',
|
|
1284
|
-
'--new-feed <title> Create one named feed from the complete retrieved selection',
|
|
1285
|
-
'--help Show this help',
|
|
1286
|
-
],
|
|
1287
|
-
examples: [
|
|
1288
|
-
'# Pull all series in a query (blocking)',
|
|
1289
|
-
'pull /net/pacs/queries/42_AccessionNumber:12345678',
|
|
1290
|
-
'',
|
|
1291
|
-
'# Pull a single study',
|
|
1292
|
-
'pull /net/pacs/queries/42_AccessionNumber:12345678/Study_1.2.3_US-Hips_DDH',
|
|
1293
|
-
'',
|
|
1294
|
-
'# Pull a specific series',
|
|
1295
|
-
'pull /net/pacs/queries/42_AccessionNumber:12345678/Study_1.2.3_US-Hips_DDH/Series_1.2.3.4_XR',
|
|
1296
|
-
'',
|
|
1297
|
-
'# Pull multiple paths in one blocking call',
|
|
1298
|
-
'pull /net/pacs/queries/42_AccessionNumber:12345678 /net/pacs/queries/43_PatientID:P001',
|
|
1299
|
-
'',
|
|
1300
|
-
'# Pull directly from a query expression (creates query, waits, then pulls)',
|
|
1301
|
-
'pull PatientID:1234',
|
|
1302
|
-
'pull AccessionNumber:12345678',
|
|
1303
|
-
'pull AccessionNumber:12345678 --new-feed "Brain MRI"',
|
|
1304
|
-
'',
|
|
1305
|
-
'# Detached: take the handles and carry on',
|
|
1306
|
-
'pull --detach /net/pacs/queries/42_AccessionNumber:12345678',
|
|
1307
|
-
'# Output: <seriesUID> <retrieveId> (one per series, in tree-walk order)',
|
|
1308
|
-
],
|
|
1309
|
-
},
|
|
1310
228
|
};
|
|
1311
229
|
//# sourceMappingURL=help.js.map
|