@fnndsc/brasa 0.46.0 → 0.47.0
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/fs/pull.js +23 -0
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/help.js +55 -0
- package/dist/builtins/help.js.map +1 -1
- package/dist/builtins/net/query.d.ts +3 -21
- package/dist/builtins/net/query.js +4 -65
- package/dist/builtins/net/query.js.map +1 -1
- package/dist/builtins/net/query.model.d.ts +31 -0
- package/dist/builtins/net/query.model.js +66 -0
- package/dist/builtins/net/query.model.js.map +1 -0
- package/dist/builtins/res/expect.d.ts +38 -0
- package/dist/builtins/res/expect.js +77 -182
- package/dist/builtins/res/expect.js.map +1 -1
- package/dist/builtins/res/gather.facts.d.ts +18 -0
- package/dist/builtins/res/gather.facts.js +114 -0
- package/dist/builtins/res/gather.facts.js.map +1 -0
- package/dist/builtins/res/gather.js +40 -9
- package/dist/builtins/res/gather.js.map +1 -1
- package/dist/builtins/res/gather.process.d.ts +17 -0
- package/dist/builtins/res/gather.process.js +58 -5
- package/dist/builtins/res/gather.process.js.map +1 -1
- package/dist/builtins/res/gather.store.d.ts +36 -0
- package/dist/builtins/res/gather.store.js +105 -2
- package/dist/builtins/res/gather.store.js.map +1 -1
- package/dist/builtins/res/play.js +29 -10
- package/dist/builtins/res/play.js.map +1 -1
- package/dist/builtins/variablesPage.js +2 -0
- package/dist/builtins/variablesPage.js.map +1 -1
- package/dist/chris/backend.js +2 -0
- package/dist/chris/backend.js.map +1 -1
- package/dist/chris/binExecutables.d.ts +7 -1
- package/dist/chris/binExecutables.js +13 -3
- package/dist/chris/binExecutables.js.map +1 -1
- package/dist/chris/chrisCommands.js +0 -6
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/commandFallback.js +4 -2
- package/dist/chris/commandFallback.js.map +1 -1
- package/dist/chris/expectSubjects.d.ts +3 -0
- package/dist/chris/expectSubjects.js +131 -0
- package/dist/chris/expectSubjects.js.map +1 -0
- package/dist/chris/help.js +10 -55
- package/dist/chris/help.js.map +1 -1
- package/dist/core/backend.d.ts +38 -0
- package/dist/core/backend.js.map +1 -1
- package/dist/core/coreCommands.js +6 -0
- package/dist/core/coreCommands.js.map +1 -1
- package/dist/core/dispatch.js +9 -1
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/pipeHead.d.ts +36 -0
- package/dist/core/pipeHead.js +28 -0
- package/dist/core/pipeHead.js.map +1 -0
- package/dist/core/variables.d.ts +3 -2
- package/dist/core/variables.js +7 -3
- package/dist/core/variables.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +5 -5
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* @file Builtin expect command: a claim the session can refuse.
|
|
3
3
|
*
|
|
4
4
|
* A workflow that only acts is a demonstration. `expect` is what makes one a
|
|
5
|
-
* TEST: it states a claim about the session —
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* TEST: it states a claim about the session — what a path holds, and,
|
|
6
|
+
* through the subjects a backend registers, how many things are gathered,
|
|
7
|
+
* what a run's status is, whether a domain verifies — and refuses, non-zero,
|
|
8
|
+
* when the claim does not hold. Because it is a verb rather than a
|
|
8
9
|
* harness, a workflow asserts wherever it is played: in CI, at an operator's
|
|
9
10
|
* console, or in someone else's browser after they were handed the file.
|
|
10
11
|
*
|
|
@@ -13,20 +14,21 @@
|
|
|
13
14
|
* language has no sleep: a sleep asserts nothing and lies about how long the
|
|
14
15
|
* work actually took.
|
|
15
16
|
*
|
|
17
|
+
* The grammar, the polling and the verdict are the core's, and so is `path`
|
|
18
|
+
* (`exists`, `count`). Everything else a claim can be about belongs to a
|
|
19
|
+
* backend's world, and the backend registers it (`Backend.expectSubjects`):
|
|
20
|
+
* this file names no backend.
|
|
21
|
+
*
|
|
16
22
|
* @module
|
|
17
23
|
*/
|
|
18
24
|
import chalk from 'chalk';
|
|
19
25
|
import path from 'path';
|
|
20
|
-
import { procCache_get } from '@fnndsc/cumin';
|
|
21
|
-
import { jobs_statusBatch } from '@fnndsc/salsa';
|
|
22
26
|
import { envelope_ok, envelope_error } from '@fnndsc/menu';
|
|
23
27
|
import { commandArgs_process, path_resolve } from '../utils.js';
|
|
24
28
|
import { duration_parse } from '../../lib/duration.js';
|
|
25
29
|
export { duration_parse };
|
|
26
30
|
import { vfs } from '../../lib/vfs/vfs.js';
|
|
27
|
-
import {
|
|
28
|
-
import { path_physical, tagsModel_read } from './dicom.js';
|
|
29
|
-
import { feedStatus_derive } from '../proc.helpers.js';
|
|
31
|
+
import { backendInstalled_get } from '../../core/backend.js';
|
|
30
32
|
import { commandCancellation_enable, commandCancellation_signalGet } from '../../core/cancellation.js';
|
|
31
33
|
/** The model kind under which a checked claim travels to a surface. */
|
|
32
34
|
export const EXPECT_MODEL_KIND = 'expect.result';
|
|
@@ -34,8 +36,6 @@ export const EXPECT_MODEL_KIND = 'expect.result';
|
|
|
34
36
|
const PREDICATES = [
|
|
35
37
|
'eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'contains', 'notContains', 'matches',
|
|
36
38
|
];
|
|
37
|
-
/** What a claim can be about. */
|
|
38
|
-
const SUBJECTS = ['gather', 'feed', 'run', 'path'];
|
|
39
39
|
/** Predicates that only mean anything about numbers. */
|
|
40
40
|
const NUMERIC_PREDICATES = new Set(['gt', 'gte', 'lt', 'lte']);
|
|
41
41
|
/** How often a waiting claim asks again. */
|
|
@@ -82,82 +82,8 @@ export function claim_holds(got, predicate, wanted) {
|
|
|
82
82
|
return { refusal: `matches needs a regular expression, and "${wanted}" is not one` };
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Reads how much of the cohort is home.
|
|
87
|
-
*
|
|
88
|
-
* A place gathered from the filesystem was never anywhere else, so it counts
|
|
89
|
-
* as home; a series counts once CUBE has said where it landed.
|
|
90
|
-
*
|
|
91
|
-
* @param state - The cohort.
|
|
92
|
-
* @returns How many members are in CUBE.
|
|
93
|
-
*/
|
|
94
|
-
function cohortPulled_count(state) {
|
|
95
|
-
return state.series.filter((member) => {
|
|
96
|
-
if (member.kind !== 'series')
|
|
97
|
-
return true;
|
|
98
|
-
const landed = member.folderPath;
|
|
99
|
-
return typeof landed === 'string' && landed.length > 0;
|
|
100
|
-
}).length;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Answers a claim about the cohort.
|
|
104
|
-
*
|
|
105
|
-
* @param property - `size`, `pulled`, `unpulled` or `name`.
|
|
106
|
-
* @returns What the cohort says.
|
|
107
|
-
*/
|
|
108
|
-
async function gather_read(property) {
|
|
109
|
-
const state = await cohort_read();
|
|
110
|
-
if (property === 'size')
|
|
111
|
-
return { got: `${state.series.length}` };
|
|
112
|
-
if (property === 'pulled')
|
|
113
|
-
return { got: `${cohortPulled_count(state)}` };
|
|
114
|
-
// "Every member landed" said directly: no arithmetic between two readings.
|
|
115
|
-
if (property === 'unpulled')
|
|
116
|
-
return { got: `${state.series.length - cohortPulled_count(state)}` };
|
|
117
|
-
if (property === 'name')
|
|
118
|
-
return { got: state.name ?? '' };
|
|
119
|
-
return { got: null, refusal: `gather has no property "${property}" — try size, pulled, unpulled or name` };
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Answers a claim about a feed.
|
|
123
|
-
*
|
|
124
|
-
* @param target - The feed id.
|
|
125
|
-
* @param property - `status` today.
|
|
126
|
-
* @returns What the feed says.
|
|
127
|
-
*/
|
|
128
|
-
async function feed_read(target, property) {
|
|
129
|
-
const feedID = Number(target);
|
|
130
|
-
if (!Number.isInteger(feedID))
|
|
131
|
-
return { got: null, refusal: `"${target}" is not a feed id` };
|
|
132
|
-
if (property !== 'status')
|
|
133
|
-
return { got: null, refusal: `feed has no property "${property}" — try status` };
|
|
134
|
-
const feed = procCache_get().feed_get(feedID);
|
|
135
|
-
if (feed === undefined || feed === null) {
|
|
136
|
-
return { got: null, refusal: `feed ${feedID} is not in this session's index yet` };
|
|
137
|
-
}
|
|
138
|
-
return { got: feedStatus_derive(feed) };
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Answers a claim about one run.
|
|
142
|
-
*
|
|
143
|
-
* @param target - The plugin instance id.
|
|
144
|
-
* @param property - `status` today.
|
|
145
|
-
* @returns What the run says.
|
|
146
|
-
*/
|
|
147
|
-
async function run_read(target, property) {
|
|
148
|
-
const instanceID = Number(target);
|
|
149
|
-
if (!Number.isInteger(instanceID))
|
|
150
|
-
return { got: null, refusal: `"${target}" is not an instance id` };
|
|
151
|
-
if (property !== 'status')
|
|
152
|
-
return { got: null, refusal: `run has no property "${property}" — try status` };
|
|
153
|
-
const statuses = await jobs_statusBatch([instanceID]);
|
|
154
|
-
const status = statuses.get(instanceID);
|
|
155
|
-
if (status === undefined)
|
|
156
|
-
return { got: null, refusal: `instance ${instanceID} did not answer` };
|
|
157
|
-
return { got: status };
|
|
158
|
-
}
|
|
159
85
|
/** How far beneath a named folder a claim will look for what it was asked about. */
|
|
160
|
-
const DEEP_MAX = 4;
|
|
86
|
+
export const DEEP_MAX = 4;
|
|
161
87
|
/**
|
|
162
88
|
* Walks a folder, gathering what it holds and the folders under it.
|
|
163
89
|
*
|
|
@@ -171,7 +97,7 @@ const DEEP_MAX = 4;
|
|
|
171
97
|
* @param depth - How many levels below the root to visit.
|
|
172
98
|
* @returns Every item found, with the folder each was found in.
|
|
173
99
|
*/
|
|
174
|
-
async function folder_walkDeep(root, depth) {
|
|
100
|
+
export async function folder_walkDeep(root, depth) {
|
|
175
101
|
const found = [];
|
|
176
102
|
const queue = [{ path: root, level: 0 }];
|
|
177
103
|
while (queue.length > 0) {
|
|
@@ -201,19 +127,14 @@ function glob_toRegExp(pattern) {
|
|
|
201
127
|
return new RegExp(`^${escaped}$`);
|
|
202
128
|
}
|
|
203
129
|
/**
|
|
204
|
-
* Answers a claim about a path: whether it is there, what it holds
|
|
205
|
-
* headers say.
|
|
130
|
+
* Answers a claim about a path: whether it is there, and what it holds.
|
|
206
131
|
*
|
|
207
|
-
* @param
|
|
208
|
-
* @param property - `exists`, `count`, or `tags`.
|
|
209
|
-
* @param tagName - The tag to read, when the property is `tags`.
|
|
210
|
-
* @param matching - A glob narrowing a count.
|
|
211
|
-
* @param deep - Look beneath the folder, not only in it.
|
|
132
|
+
* @param ask - The claim, as the path subject is asked it.
|
|
212
133
|
* @returns What the path says.
|
|
213
134
|
*/
|
|
214
|
-
async function path_read(
|
|
215
|
-
const resolved = await path_resolve(target);
|
|
216
|
-
if (property === 'exists') {
|
|
135
|
+
async function path_read(ask) {
|
|
136
|
+
const resolved = await path_resolve(ask.target ?? '');
|
|
137
|
+
if (ask.property === 'exists') {
|
|
217
138
|
const listed = await vfs.data_get(resolved);
|
|
218
139
|
if (listed.ok)
|
|
219
140
|
return { got: 'true' };
|
|
@@ -224,85 +145,43 @@ async function path_read(target, property, tagName, matching, deep) {
|
|
|
224
145
|
const leaf = path.posix.basename(resolved);
|
|
225
146
|
return { got: `${parent.value.some((item) => item.name === leaf)}` };
|
|
226
147
|
}
|
|
227
|
-
if (
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return { got: `${files.filter((item) => deepPattern.test(item.name)).length}` };
|
|
237
|
-
}
|
|
238
|
-
const listed = await vfs.data_get(resolved);
|
|
239
|
-
if (!listed.ok)
|
|
240
|
-
return { got: null, refusal: `${resolved} cannot be listed` };
|
|
241
|
-
if (matching === undefined)
|
|
242
|
-
return { got: `${listed.value.length}` };
|
|
243
|
-
const pattern = glob_toRegExp(matching);
|
|
244
|
-
return { got: `${listed.value.filter((item) => pattern.test(item.name)).length}` };
|
|
148
|
+
if (ask.deep) {
|
|
149
|
+
const walked = await folder_walkDeep(resolved, DEEP_MAX);
|
|
150
|
+
const files = walked
|
|
151
|
+
.map((entry) => entry.item)
|
|
152
|
+
.filter((item) => item.type !== 'dir');
|
|
153
|
+
if (ask.matching === undefined)
|
|
154
|
+
return { got: `${files.length}` };
|
|
155
|
+
const deepPattern = glob_toRegExp(ask.matching);
|
|
156
|
+
return { got: `${files.filter((item) => deepPattern.test(item.name)).length}` };
|
|
245
157
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
// node's own folder looks BENEATH it before giving up: the files a run
|
|
254
|
-
// produced are what the claim is about, wherever the plugin filed them.
|
|
255
|
-
const walked = await folder_walkDeep(resolved, DEEP_MAX);
|
|
256
|
-
const folders = [...new Set(walked
|
|
257
|
-
.filter((entry) => entry.item.type === 'dir')
|
|
258
|
-
.map((entry) => `${entry.folder.replace(/\/$/, '')}/${entry.item.name}`))];
|
|
259
|
-
for (const folder of folders) {
|
|
260
|
-
const beneath = await tagsModel_read(await path_physical(folder));
|
|
261
|
-
if (beneath.ok) {
|
|
262
|
-
model = beneath;
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
if (!model.ok)
|
|
268
|
-
return { got: null, refusal: `${resolved} holds no readable DICOM, here or beneath it` };
|
|
269
|
-
const constant = model.value.constant.find((tag) => tag.name === tagName || tag.tag === tagName);
|
|
270
|
-
if (constant !== undefined)
|
|
271
|
-
return { got: constant.value };
|
|
272
|
-
// A tag that varies across the folder answers with every value it takes,
|
|
273
|
-
// so a claim about "the" value cannot pass by reading only the first file.
|
|
274
|
-
const varying = model.value.varying.find((tag) => tag.name === tagName || tag.tag === tagName);
|
|
275
|
-
if (varying !== undefined) {
|
|
276
|
-
const values = [...new Set(varying.values
|
|
277
|
-
.map((entry) => entry.value ?? '')
|
|
278
|
-
.filter((value) => value.length > 0))];
|
|
279
|
-
return { got: values.join(', ') };
|
|
280
|
-
}
|
|
281
|
-
return { got: '' };
|
|
282
|
-
}
|
|
283
|
-
return { got: null, refusal: `path has no property "${property}" — try exists, count or tags` };
|
|
158
|
+
const listed = await vfs.data_get(resolved);
|
|
159
|
+
if (!listed.ok)
|
|
160
|
+
return { got: null, refusal: `${resolved} cannot be listed` };
|
|
161
|
+
if (ask.matching === undefined)
|
|
162
|
+
return { got: `${listed.value.length}` };
|
|
163
|
+
const pattern = glob_toRegExp(ask.matching);
|
|
164
|
+
return { got: `${listed.value.filter((item) => pattern.test(item.name)).length}` };
|
|
284
165
|
}
|
|
166
|
+
/** The core's own subject: a path in the session's filesystem. */
|
|
167
|
+
const PATH_SUBJECT = { name: 'path', named: true, properties: { exists: 0, count: 0 }, read: path_read };
|
|
285
168
|
/**
|
|
286
|
-
*
|
|
169
|
+
* Every subject this session can make claims about: the core's `path`, then
|
|
170
|
+
* the backend's. Two registrations of one name are one subject, each
|
|
171
|
+
* answering its own properties (ChRIS adds `tags` to `path`).
|
|
287
172
|
*
|
|
288
|
-
* @
|
|
289
|
-
* @param target - Which one, for the subjects that need naming.
|
|
290
|
-
* @param property - What about it.
|
|
291
|
-
* @param tagName - The tag, when the property is `tags`.
|
|
292
|
-
* @param matching - A glob, when the property is `count`.
|
|
293
|
-
* @param deep - Whether to look beneath the path as well as in it.
|
|
294
|
-
* @returns What the session answered.
|
|
173
|
+
* @returns The subjects, by name, in the order they were registered.
|
|
295
174
|
*/
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
return
|
|
175
|
+
export function expectSubjects_get() {
|
|
176
|
+
const subjects = new Map();
|
|
177
|
+
for (const subject of [PATH_SUBJECT, ...(backendInstalled_get()?.expectSubjects ?? [])]) {
|
|
178
|
+
const entry = subjects.get(subject.name) ?? { named: subject.named, properties: new Map() };
|
|
179
|
+
for (const [property, words] of Object.entries(subject.properties)) {
|
|
180
|
+
entry.properties.set(property, { words, read: subject.read });
|
|
181
|
+
}
|
|
182
|
+
subjects.set(subject.name, entry);
|
|
183
|
+
}
|
|
184
|
+
return subjects;
|
|
306
185
|
}
|
|
307
186
|
/**
|
|
308
187
|
* Sleeps between asks, unless the command is cancelled first.
|
|
@@ -344,27 +223,36 @@ export async function builtin_expect(args) {
|
|
|
344
223
|
const parsed = commandArgs_process(args, { booleanLongOptions: ['deep'] });
|
|
345
224
|
const operands = parsed._;
|
|
346
225
|
const subject = operands[0];
|
|
226
|
+
const subjects = expectSubjects_get();
|
|
227
|
+
const names = [...subjects.keys()].join(', ');
|
|
347
228
|
if (subject === undefined) {
|
|
348
229
|
process.exitCode = 1;
|
|
349
|
-
return envelope_error('', undefined, `${chalk.red(
|
|
230
|
+
return envelope_error('', undefined, `${chalk.red(`Usage: expect <${[...subjects.keys()].join('|')}> [<target>] <property> [<predicate> <value>] [--within <duration>]`)}\n`);
|
|
350
231
|
}
|
|
351
232
|
// The subject is checked FIRST: read as a shape instead, an unknown
|
|
352
233
|
// subject refuses by complaining about whatever word happened to land
|
|
353
234
|
// where a comparison goes, which names the wrong fault.
|
|
354
|
-
|
|
235
|
+
const entry = subjects.get(subject);
|
|
236
|
+
if (entry === undefined) {
|
|
355
237
|
process.exitCode = 1;
|
|
356
|
-
return envelope_error('', undefined, `${chalk.red(`expect knows nothing about "${subject}" — try ${
|
|
238
|
+
return envelope_error('', undefined, `${chalk.red(`expect knows nothing about "${subject}" in this session — try ${names}.`)}\n`);
|
|
357
239
|
}
|
|
358
|
-
//
|
|
359
|
-
const
|
|
360
|
-
const
|
|
361
|
-
const
|
|
362
|
-
const
|
|
363
|
-
const tagName = property === 'tags' ? rest.shift() : undefined;
|
|
240
|
+
// A subject that is one thing (`gather`: there is one cohort) names nothing.
|
|
241
|
+
const target = entry.named ? operands[1] : undefined;
|
|
242
|
+
const property = entry.named ? operands[2] : operands[1];
|
|
243
|
+
const rest = entry.named ? operands.slice(3) : operands.slice(2);
|
|
244
|
+
const properties = [...entry.properties.keys()].join(', ');
|
|
364
245
|
if (property === undefined) {
|
|
365
246
|
process.exitCode = 1;
|
|
366
|
-
return envelope_error('', undefined, `${chalk.red(`expect ${subject}: say what about it —
|
|
247
|
+
return envelope_error('', undefined, `${chalk.red(`expect ${subject}: say what about it — ${properties}.`)}\n`);
|
|
248
|
+
}
|
|
249
|
+
const answering = entry.properties.get(property);
|
|
250
|
+
if (answering === undefined) {
|
|
251
|
+
process.exitCode = 1;
|
|
252
|
+
return envelope_error('', undefined, `${chalk.red(`expect: ${subject} has no property "${property}" — try ${properties}.`)}\n`);
|
|
367
253
|
}
|
|
254
|
+
// A property may take words before the comparison (`tags PatientID`).
|
|
255
|
+
const words = rest.splice(0, answering.words);
|
|
368
256
|
// `expect path <p> exists` is the claim in full; everything else compares.
|
|
369
257
|
const predicate = rest[0] ?? (property === 'exists' ? 'eq' : '');
|
|
370
258
|
const wanted = rest[1] ?? (property === 'exists' ? 'true' : '');
|
|
@@ -386,17 +274,24 @@ export async function builtin_expect(args) {
|
|
|
386
274
|
// held, and a battery is read by people who were not there.
|
|
387
275
|
const narrowing = matching_get(parsed) === undefined ? '' : `--matching '${matching_get(parsed)}'`;
|
|
388
276
|
const claim = claim_render([
|
|
389
|
-
subject, target ?? '', property,
|
|
277
|
+
subject, target ?? '', property, ...words, narrowing,
|
|
390
278
|
parsed.deep === true ? '--deep' : '', predicate, wanted,
|
|
391
279
|
]);
|
|
392
280
|
const started = Date.now();
|
|
393
281
|
if (deadlineMs > 0)
|
|
394
282
|
commandCancellation_enable();
|
|
395
283
|
const signal = deadlineMs > 0 ? commandCancellation_signalGet() : undefined;
|
|
284
|
+
const matching = matching_get(parsed);
|
|
396
285
|
let reading = { got: null };
|
|
397
286
|
let outcome = { held: false };
|
|
398
287
|
for (;;) {
|
|
399
|
-
reading = await
|
|
288
|
+
reading = await answering.read({
|
|
289
|
+
...(target !== undefined ? { target } : {}),
|
|
290
|
+
property,
|
|
291
|
+
words,
|
|
292
|
+
...(matching !== undefined ? { matching } : {}),
|
|
293
|
+
deep: parsed.deep === true,
|
|
294
|
+
});
|
|
400
295
|
if (reading.got !== null) {
|
|
401
296
|
outcome = claim_holds(reading.got, predicate, wanted);
|
|
402
297
|
if ('refusal' in outcome)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../../src/builtins/res/expect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../../src/builtins/res/expect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { GatherMember } from './gather.store.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fills in each series member's facts from the query answer its path names.
|
|
4
|
+
*
|
|
5
|
+
* A fact the answer does not have is left as it was, and an answer that
|
|
6
|
+
* cannot be read leaves the member bare: these are what a listing shows,
|
|
7
|
+
* and none of them is a reason to refuse the gather.
|
|
8
|
+
*
|
|
9
|
+
* @param members - Members being gathered, changed in place.
|
|
10
|
+
*/
|
|
11
|
+
export declare function seriesFacts_fill(members: GatherMember[]): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Whether a gathered folder is imagery, by its name and place.
|
|
14
|
+
*
|
|
15
|
+
* @param member - A member being gathered.
|
|
16
|
+
* @returns True for a directory that holds one series.
|
|
17
|
+
*/
|
|
18
|
+
export declare function placeImagery_is(member: GatherMember): boolean;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file What a gathered member is, told by the kernel rather than a surface.
|
|
3
|
+
*
|
|
4
|
+
* A member is stored by its path; what a listing shows about it — a series'
|
|
5
|
+
* description, modality, patient and study, whether a folder is imagery —
|
|
6
|
+
* is filled in here when it is gathered, so every surface reads the same
|
|
7
|
+
* row and none of them has to carry facts into the cohort itself.
|
|
8
|
+
*
|
|
9
|
+
* A series' facts come from the query answer its path names. The PACS
|
|
10
|
+
* mount already holds that answer decoded (the operator listed it to find
|
|
11
|
+
* the series), so this is usually a cache read and at most one CUBE read
|
|
12
|
+
* per query. A folder's imagery comes from its name and place alone.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import path from 'path';
|
|
17
|
+
import { queryId_extractFromFolder } from '@fnndsc/salsa';
|
|
18
|
+
import { seriesFolder_is } from '@fnndsc/menu';
|
|
19
|
+
/**
|
|
20
|
+
* The query a PACS path lives under: its id and its folder's path.
|
|
21
|
+
*
|
|
22
|
+
* @param address - A resolved `/net/pacs/queries/...` path.
|
|
23
|
+
* @returns The query, or null when the path names none.
|
|
24
|
+
*/
|
|
25
|
+
function pathQuery_of(address) {
|
|
26
|
+
if (!address.startsWith('/net/pacs/'))
|
|
27
|
+
return null;
|
|
28
|
+
const parts = address.split('/').filter(Boolean);
|
|
29
|
+
const at = parts.findIndex((part) => /_qid:\d+/.test(part));
|
|
30
|
+
if (at === -1)
|
|
31
|
+
return null;
|
|
32
|
+
const queryId = queryId_extractFromFolder(parts[at]);
|
|
33
|
+
if (Number.isNaN(queryId))
|
|
34
|
+
return null;
|
|
35
|
+
return { queryId, folder: `/${parts.slice(0, at + 1).join('/')}` };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Every series one query answered, by series UID.
|
|
39
|
+
*
|
|
40
|
+
* @param queryId - The query.
|
|
41
|
+
* @param folder - Its folder, which the answer's paths are built under.
|
|
42
|
+
* @returns The series, or an empty map when the answer cannot be read.
|
|
43
|
+
*/
|
|
44
|
+
async function answerSeries_get(queryId, folder) {
|
|
45
|
+
const byUID = new Map();
|
|
46
|
+
const { vfsDispatcher } = await import('@fnndsc/salsa');
|
|
47
|
+
const decoded = await vfsDispatcher.pacs.queryResult_fetch(queryId);
|
|
48
|
+
if (decoded === null || decoded.json === undefined || decoded.json === null)
|
|
49
|
+
return byUID;
|
|
50
|
+
// Loaded on demand: only a series gathered from an answer needs it.
|
|
51
|
+
const { pacsQueryModel_build } = await import('../net/query.model.js');
|
|
52
|
+
const model = pacsQueryModel_build(decoded, { queryId, vfsPath: folder, pacsName: '', expression: '' });
|
|
53
|
+
for (const study of model.studies) {
|
|
54
|
+
for (const series of study.series)
|
|
55
|
+
byUID.set(series.seriesUID, { series, study });
|
|
56
|
+
}
|
|
57
|
+
return byUID;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Fills in each series member's facts from the query answer its path names.
|
|
61
|
+
*
|
|
62
|
+
* A fact the answer does not have is left as it was, and an answer that
|
|
63
|
+
* cannot be read leaves the member bare: these are what a listing shows,
|
|
64
|
+
* and none of them is a reason to refuse the gather.
|
|
65
|
+
*
|
|
66
|
+
* @param members - Members being gathered, changed in place.
|
|
67
|
+
*/
|
|
68
|
+
export async function seriesFacts_fill(members) {
|
|
69
|
+
const queries = new Map();
|
|
70
|
+
for (const member of members) {
|
|
71
|
+
if (member.kind !== 'series' || member.seriesUID === undefined)
|
|
72
|
+
continue;
|
|
73
|
+
const query = pathQuery_of(member.vfsPath);
|
|
74
|
+
if (query !== null)
|
|
75
|
+
queries.set(query.queryId, query.folder);
|
|
76
|
+
}
|
|
77
|
+
const answered = new Map();
|
|
78
|
+
for (const [queryId, folder] of queries)
|
|
79
|
+
answered.set(queryId, await answerSeries_get(queryId, folder));
|
|
80
|
+
for (const member of members) {
|
|
81
|
+
if (member.kind !== 'series' || member.seriesUID === undefined)
|
|
82
|
+
continue;
|
|
83
|
+
const query = pathQuery_of(member.vfsPath);
|
|
84
|
+
if (query === null)
|
|
85
|
+
continue;
|
|
86
|
+
const found = answered.get(query.queryId)?.get(member.seriesUID);
|
|
87
|
+
if (found === undefined)
|
|
88
|
+
continue;
|
|
89
|
+
const { series, study } = found;
|
|
90
|
+
if (series.description !== '')
|
|
91
|
+
member.description = series.description;
|
|
92
|
+
if (series.modality !== '')
|
|
93
|
+
member.modality = series.modality;
|
|
94
|
+
if (series.fileCount !== undefined)
|
|
95
|
+
member.files = series.fileCount;
|
|
96
|
+
// MRN first, as the PACS listing reads a patient; the name when the
|
|
97
|
+
// answer carries no identifier.
|
|
98
|
+
const patient = study.patientId || study.patientName;
|
|
99
|
+
if (patient !== '')
|
|
100
|
+
member.patient = patient;
|
|
101
|
+
if (study.description !== '')
|
|
102
|
+
member.study = study.description;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Whether a gathered folder is imagery, by its name and place.
|
|
107
|
+
*
|
|
108
|
+
* @param member - A member being gathered.
|
|
109
|
+
* @returns True for a directory that holds one series.
|
|
110
|
+
*/
|
|
111
|
+
export function placeImagery_is(member) {
|
|
112
|
+
return member.kind === 'dir' && seriesFolder_is(member.vfsPath, path.posix.basename(member.vfsPath));
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=gather.facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gather.facts.js","sourceRoot":"","sources":["../../../src/builtins/res/gather.facts.ts"],"names":[],"mappings":"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"}
|