@smile-digital-health/crl 6.4.41 → 6.4.46
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/ast/builder.d.ts +3 -2
- package/dist/ast/builder.js +50 -4
- package/dist/ast/builder.js.map +1 -1
- package/dist/ast/types.d.ts +11 -0
- package/dist/ast/types.js.map +1 -1
- package/dist/authoring-kit/audit.json +4 -4
- package/dist/authoring-kit/index.js +27 -11
- package/dist/authoring-kit/index.js.map +1 -1
- package/dist/authoring-kit/navigation.js +5 -4
- package/dist/authoring-kit/navigation.js.map +1 -1
- package/dist/authoring-kit/questionUnitExample.d.ts +1 -0
- package/dist/authoring-kit/questionUnitExample.js +29 -0
- package/dist/authoring-kit/questionUnitExample.js.map +1 -0
- package/dist/cel/emitter/emitFhir.js +12 -0
- package/dist/cel/emitter/emitFhir.js.map +1 -1
- package/dist/cel/emitter/types.d.ts +1 -1
- package/dist/cli/nativeSignals.js +1 -1
- package/dist/cli/nativeSignals.js.map +1 -1
- package/dist/cli/run-apply-session.js +186 -63
- package/dist/cli/run-apply-session.js.map +1 -1
- package/dist/cli/run-emit-results.js +4 -0
- package/dist/cli/run-emit-results.js.map +1 -1
- package/dist/cli/run-regression.js +7 -4
- package/dist/cli/run-regression.js.map +1 -1
- package/dist/cli/sessionInputQueue.d.ts +14 -0
- package/dist/cli/sessionInputQueue.js +85 -0
- package/dist/cli/sessionInputQueue.js.map +1 -0
- package/dist/cql-emitter/emitCQL.js +6 -1
- package/dist/cql-emitter/emitCQL.js.map +1 -1
- package/dist/cql-emitter/renderPublicationSelection.d.ts +1 -0
- package/dist/cql-emitter/renderPublicationSelection.js +4 -4
- package/dist/cql-emitter/renderPublicationSelection.js.map +1 -1
- package/dist/cql-emitter/renderQuantityType.d.ts +3 -0
- package/dist/cql-emitter/renderQuantityType.js +75 -0
- package/dist/cql-emitter/renderQuantityType.js.map +1 -0
- package/dist/cre/run.js +10 -0
- package/dist/cre/run.js.map +1 -1
- package/dist/emit/presentation.d.ts +9 -1
- package/dist/emit/presentation.js +36 -0
- package/dist/emit/presentation.js.map +1 -1
- package/dist/emit/publicationProgram.d.ts +1 -0
- package/dist/emit/publicationProgram.js +14 -1
- package/dist/emit/publicationProgram.js.map +1 -1
- package/dist/emit/publicationQuantity.d.ts +5 -0
- package/dist/emit/publicationQuantity.js +25 -0
- package/dist/emit/publicationQuantity.js.map +1 -1
- package/dist/emit/questionUnit.d.ts +12 -0
- package/dist/emit/questionUnit.js +10 -0
- package/dist/emit/questionUnit.js.map +1 -0
- package/dist/fhir-emitter/closureOrchestrator.js +26 -2
- package/dist/fhir-emitter/closureOrchestrator.js.map +1 -1
- package/dist/fhir-emitter/decision.d.ts +1 -0
- package/dist/fhir-emitter/decision.js +18 -2
- package/dist/fhir-emitter/decision.js.map +1 -1
- package/dist/fhir-emitter/presentationGroups.d.ts +24 -0
- package/dist/fhir-emitter/presentationGroups.js +25 -0
- package/dist/fhir-emitter/presentationGroups.js.map +1 -0
- package/dist/fhir-emitter/presentationReachability.js +16 -1
- package/dist/fhir-emitter/presentationReachability.js.map +1 -1
- package/dist/fhir-emitter/structureDefinition.d.ts +1 -0
- package/dist/fhir-emitter/structureDefinition.js +11 -1
- package/dist/fhir-emitter/structureDefinition.js.map +1 -1
- package/dist/fhir-package/index.js +2 -2
- package/dist/fhir-package/index.js.map +1 -1
- package/dist/flag-change-summary.schema.json +246 -0
- package/dist/flags/buildFlagDraft.d.ts +11 -0
- package/dist/flags/buildFlagDraft.js +21 -0
- package/dist/flags/buildFlagDraft.js.map +1 -1
- package/dist/flags/changeSummary.d.ts +154 -0
- package/dist/flags/changeSummary.js +30 -0
- package/dist/flags/changeSummary.js.map +1 -0
- package/dist/flags/flagContext.d.ts +8 -0
- package/dist/flags/flagContext.js +20 -0
- package/dist/flags/flagContext.js.map +1 -0
- package/dist/flags/flagVocab.d.ts +5 -4
- package/dist/flags/flagVocab.js +16 -2
- package/dist/flags/flagVocab.js.map +1 -1
- package/dist/flags/mvFlag.d.ts +2 -1
- package/dist/flags/mvFlag.js +7 -0
- package/dist/flags/mvFlag.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLLexer.d.ts +115 -111
- package/dist/grammar/generated/antlr/CRLLexer.js +765 -728
- package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParser.d.ts +232 -188
- package/dist/grammar/generated/antlr/CRLParser.js +1367 -1086
- package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParserListener.d.ts +6 -0
- package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +4 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.js +26 -11
- package/dist/mcp/server.js.map +1 -1
- package/dist/results/driver/ApplyDriver.build.json +6 -4
- package/dist/results/driver/ApplyDriver.class +0 -0
- package/dist/results/driver/ApplyDriver.java +132 -4
- package/dist/results/driver/ApplyWorker.class +0 -0
- package/dist/results/driver/ApplyWorker.java +107 -0
- package/dist/results/driver/windows-owned-process.ps1 +2 -2
- package/dist/results/driver.js +19 -18
- package/dist/results/driver.js.map +1 -1
- package/dist/results/nativeProcess.d.ts +20 -0
- package/dist/results/nativeProcess.js +98 -0
- package/dist/results/nativeProcess.js.map +1 -0
- package/dist/results/nativeWorker.d.ts +4 -0
- package/dist/results/nativeWorker.js +17 -0
- package/dist/results/nativeWorker.js.map +1 -0
- package/dist/results/nativeWorkerOwner.d.ts +31 -0
- package/dist/results/nativeWorkerOwner.js +271 -0
- package/dist/results/nativeWorkerOwner.js.map +1 -0
- package/dist/results/nativeWorkerPool.d.ts +47 -0
- package/dist/results/nativeWorkerPool.js +353 -0
- package/dist/results/nativeWorkerPool.js.map +1 -0
- package/dist/results/ownedProcess.d.ts +2 -0
- package/dist/results/ownedProcess.js +10 -2
- package/dist/results/ownedProcess.js.map +1 -1
- package/dist/results/produce.d.ts +10 -0
- package/dist/results/produce.js +110 -85
- package/dist/results/produce.js.map +1 -1
- package/dist/results/runProducer.d.ts +2 -0
- package/dist/results/runProducer.js +6 -4
- package/dist/results/runProducer.js.map +1 -1
- package/dist/results/runtimeFingerprint.d.ts +2 -1
- package/dist/results/runtimeFingerprint.js +5 -5
- package/dist/results/runtimeFingerprint.js.map +1 -1
- package/dist/results/session.d.ts +5 -0
- package/dist/results/session.js +91 -63
- package/dist/results/session.js.map +1 -1
- package/dist/results/spawn.d.ts +4 -4
- package/dist/results/spawn.js +4 -4
- package/dist/results/spawn.js.map +1 -1
- package/docs/apply-session.md +113 -10
- package/package.json +1 -1
package/dist/ast/builder.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
|
|
2
2
|
import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
|
|
3
|
-
import { CrlContext, PresentationStatementContext, DecisionStatementContext, CriterionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext, CountDefinitionContext, NarrativeDefinitionContext, DefinedAsBodyContext, DefinedAsBareRefContext, DefinedAsExistsContext, DefinedAsCompositionContext, DefinedAsBooleanCompositionContext, CompositionExpressionContext, SemOrContext, SemAndContext, SemNotContext, CompositionRefContext, CompositionGroupContext, NarrativeContext, NConceptRefContext, NQuantityContext, NWordContext, NArgGroupElementContext, QuantityContext, ArgGroupContext, ArgDisjunctionContext, ArgConjunctionContext, ArgSingletonContext, AVConceptRefContext, AVQuantityContext, AVNestedGroupContext, WhenWithBodyContext, WhenSingleActionContext, OtherwiseWithBodyContext, OtherwiseSingleActionContext } from "../grammar/generated/antlr/CRLParser";
|
|
3
|
+
import { CrlContext, PresentationStatementContext, PresentationGroupStatementContext, DecisionStatementContext, CriterionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext, CountDefinitionContext, NarrativeDefinitionContext, DefinedAsBodyContext, DefinedAsBareRefContext, DefinedAsExistsContext, DefinedAsCompositionContext, DefinedAsBooleanCompositionContext, CompositionExpressionContext, SemOrContext, SemAndContext, SemNotContext, CompositionRefContext, CompositionGroupContext, NarrativeContext, NConceptRefContext, NQuantityContext, NWordContext, NArgGroupElementContext, QuantityContext, ArgGroupContext, ArgDisjunctionContext, ArgConjunctionContext, ArgSingletonContext, AVConceptRefContext, AVQuantityContext, AVNestedGroupContext, WhenWithBodyContext, WhenSingleActionContext, OtherwiseWithBodyContext, OtherwiseSingleActionContext } from "../grammar/generated/antlr/CRLParser";
|
|
4
4
|
import { CRLParserVisitor } from "../grammar/generated/antlr/CRLParserVisitor";
|
|
5
5
|
import type { CRLError } from "../types/errors";
|
|
6
6
|
import { ASTNode, Decision, Criterion, DecisionBody, WhenBlock, OtherwiseBlock, BranchBlock, BlockBody, ActionStatement, RecommendActivity, UseDecision, Terminology, TerminologyValueset, TerminologySystem, TerminologyCode, Activity, ActivityBody, ActivityRequest, ActivityWith, ActivityBecause, Concept, Parameter, DefinedAsDefinition, DefinedAsBareRef, DefinedAsExists, DefinedAsComposition, DefinedAsBooleanComposition, CompositionExpression, CompositionRef, CompositionGroup, DefinitionIsDefinition, ReductionDefinition, NarrativeClause, NConceptRef, NWord, NDisjunction, NConjunction, Quantity } from "./types";
|
|
7
|
-
import type { CRL, Presentation, LibraryDeclaration, Include } from "./types";
|
|
7
|
+
import type { CRL, Presentation, PresentationGroup, LibraryDeclaration, Include } from "./types";
|
|
8
8
|
export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> implements CRLParserVisitor<ASTNode> {
|
|
9
9
|
private readonly errors;
|
|
10
10
|
protected defaultResult(): ASTNode;
|
|
@@ -15,6 +15,7 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
|
|
|
15
15
|
visitIncludeStatement(ctx: IncludeStatementContext): Include;
|
|
16
16
|
visitDecisionStatement(ctx: DecisionStatementContext): Decision;
|
|
17
17
|
visitPresentationStatement(ctx: PresentationStatementContext): Presentation;
|
|
18
|
+
visitPresentationGroupStatement(ctx: PresentationGroupStatementContext): PresentationGroup;
|
|
18
19
|
visitCriterionStatement(ctx: CriterionStatementContext): Criterion;
|
|
19
20
|
visitDecisionBody(ctx: DecisionBodyContext): DecisionBody;
|
|
20
21
|
visitBranchItem(ctx: BranchItemContext): BranchBlock;
|
package/dist/ast/builder.js
CHANGED
|
@@ -103,8 +103,9 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
103
103
|
const includes = ctx
|
|
104
104
|
.includeStatement()
|
|
105
105
|
.map((i) => this.visitIncludeStatement(i));
|
|
106
|
-
const statements = ctx.statement().filter((s) => !s.presentationStatement()).map((s) => this.visit(s));
|
|
106
|
+
const statements = ctx.statement().filter((s) => !s.presentationStatement() && !s.presentationGroupStatement()).map((s) => this.visit(s));
|
|
107
107
|
const presentations = ctx.statement().flatMap((s) => s.presentationStatement() ? [this.visitPresentationStatement(s.presentationStatement())] : []);
|
|
108
|
+
const presentationGroups = ctx.statement().flatMap((s) => s.presentationGroupStatement() ? [this.visitPresentationGroupStatement(s.presentationGroupStatement())] : []);
|
|
108
109
|
return {
|
|
109
110
|
type: "CRL",
|
|
110
111
|
...(header ? { header } : {}),
|
|
@@ -112,6 +113,7 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
112
113
|
includes,
|
|
113
114
|
statements,
|
|
114
115
|
...(presentations.length ? { presentations } : {}),
|
|
116
|
+
...(presentationGroups.length ? { presentationGroups } : {}),
|
|
115
117
|
location: getLocation(ctx),
|
|
116
118
|
};
|
|
117
119
|
}
|
|
@@ -153,7 +155,7 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
153
155
|
location: getLocation(line) });
|
|
154
156
|
}
|
|
155
157
|
else {
|
|
156
|
-
const key = line.QUESTION_TEXT_IS() ? "questionText" : "questionDescription";
|
|
158
|
+
const key = line.CHOICE_GROUP_IS() ? "choiceGroup" : line.QUESTION_TEXT_IS() ? "questionText" : "questionDescription";
|
|
157
159
|
const value = (line.QUOTED_STRING()?.text ?? line.backtickString().text).slice(1, -1);
|
|
158
160
|
if (node[key] !== undefined || !value.trim())
|
|
159
161
|
this.reportError("AstError", line, { message: `Presentation ${key} must be nonempty and declared only once.` });
|
|
@@ -165,6 +167,42 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
165
167
|
this.reportError("AstError", ctx, { message: "Presentation requires nonempty question text." });
|
|
166
168
|
return node;
|
|
167
169
|
}
|
|
170
|
+
visitPresentationGroupStatement(ctx) {
|
|
171
|
+
const node = { type: "PresentationGroup", name: unquote(ctx.identifier().text), location: getLocation(ctx) };
|
|
172
|
+
const seen = new Set();
|
|
173
|
+
for (const line of ctx.presentationGroupLine()) {
|
|
174
|
+
const key = line.COLUMNS_IS() ? "columns" : line.CONTROL_IS() ? "control" : line.QUESTION_TEXT_IS() ? "questionText" : "questionDescription";
|
|
175
|
+
if (seen.has(key)) {
|
|
176
|
+
this.reportError("AstError", line, { message: `Presentation group ${key} must be declared only once.` });
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
seen.add(key);
|
|
180
|
+
if (key === "columns") {
|
|
181
|
+
const value = Number(line.NUMBER().text);
|
|
182
|
+
if (!Number.isInteger(value) || value < 1 || value > 2147483647)
|
|
183
|
+
this.reportError("AstError", line, { message: "Presentation group columns must be a positive integer." });
|
|
184
|
+
else
|
|
185
|
+
node.columns = value;
|
|
186
|
+
}
|
|
187
|
+
else if (key === "control") {
|
|
188
|
+
const value = line.NARRATIVE_WORD().text;
|
|
189
|
+
if (value !== "checkbox" && value !== "radio")
|
|
190
|
+
this.reportError("AstError", line, { message: "Presentation group control must be checkbox or radio." });
|
|
191
|
+
else
|
|
192
|
+
node.control = value;
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
const value = (line.QUOTED_STRING()?.text ?? line.backtickString().text).slice(1, -1);
|
|
196
|
+
if (!value.trim())
|
|
197
|
+
this.reportError("AstError", line, { message: `Presentation group ${key} must be nonempty.` });
|
|
198
|
+
else
|
|
199
|
+
node[key] = value;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (!node.name.trim() || !node.questionText?.trim())
|
|
203
|
+
this.reportError("AstError", ctx, { message: "Presentation group requires a nonempty name and question text." });
|
|
204
|
+
return node;
|
|
205
|
+
}
|
|
168
206
|
visitCriterionStatement(ctx) {
|
|
169
207
|
const name = ctx.criterionIdentifier().text.slice(1, -1);
|
|
170
208
|
const condition = this.branchConditionFrom(ctx.branchCondition());
|
|
@@ -477,7 +515,12 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
477
515
|
catch {
|
|
478
516
|
}
|
|
479
517
|
}
|
|
480
|
-
|
|
518
|
+
const declared = valueTypeLines.filter(line => line.SINGLE_QUOTED_STRING());
|
|
519
|
+
const quantityUnit = declared[0]?.SINGLE_QUOTED_STRING()?.text.slice(1, -1);
|
|
520
|
+
if (declared.length && (valueTypes.length !== 1 || valueTypes[0] !== "Quantity" || !/^[\x21-\x7e]+$/.test(quantityUnit ?? ""))) {
|
|
521
|
+
this.reportError("AstError", _ctx, { message: "A unit requires exactly one Quantity value type and a nonempty unit code without whitespace." });
|
|
522
|
+
}
|
|
523
|
+
return { conceptType, valueTypes, ...(quantityUnit === undefined ? {} : { quantityUnit }) };
|
|
481
524
|
}
|
|
482
525
|
parseConceptShape(bodyCtx) {
|
|
483
526
|
const shapeLine = bodyCtx.shapeLine?.()?.[0];
|
|
@@ -696,6 +739,8 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
696
739
|
const tok = vtl.CONCEPT_VALUE_TYPE();
|
|
697
740
|
if (tok)
|
|
698
741
|
valueTypes.push((tok.text === "text" ? "string" : tok.text));
|
|
742
|
+
if (vtl.SINGLE_QUOTED_STRING())
|
|
743
|
+
this.reportError("AstError", vtl, { message: "Declare the Quantity unit on the concept value type, not on a source representation." });
|
|
699
744
|
}
|
|
700
745
|
catch {
|
|
701
746
|
}
|
|
@@ -771,7 +816,7 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
771
816
|
return null;
|
|
772
817
|
}
|
|
773
818
|
const types = this.parseConceptTypes(bodyCtx, ctx);
|
|
774
|
-
const { conceptType, valueTypes } = types;
|
|
819
|
+
const { conceptType, valueTypes, quantityUnit } = types;
|
|
775
820
|
const meta = this.metaFrom(bodyCtx.metaLine());
|
|
776
821
|
const evidence = this.parseEvidence(bodyCtx);
|
|
777
822
|
const code = this.parseCode(bodyCtx);
|
|
@@ -788,6 +833,7 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
|
|
|
788
833
|
name,
|
|
789
834
|
...(conceptType ? { conceptType } : {}),
|
|
790
835
|
valueTypes,
|
|
836
|
+
...(quantityUnit === undefined ? {} : { quantityUnit }),
|
|
791
837
|
shape,
|
|
792
838
|
...(shapeReduction ? { shapeReduction } : {}),
|
|
793
839
|
...(code !== undefined ? { code } : {}),
|
package/dist/ast/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ast/builder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/ast/builder.ts"],"names":[],"mappings":"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"}
|
package/dist/ast/types.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface CRL extends ASTNode {
|
|
|
23
23
|
includes: Include[];
|
|
24
24
|
statements: Statement[];
|
|
25
25
|
presentations?: Presentation[];
|
|
26
|
+
presentationGroups?: PresentationGroup[];
|
|
26
27
|
location: Location;
|
|
27
28
|
}
|
|
28
29
|
export interface Presentation extends ASTNode {
|
|
@@ -35,6 +36,15 @@ export interface Presentation extends ASTNode {
|
|
|
35
36
|
}[];
|
|
36
37
|
questionText?: string;
|
|
37
38
|
questionDescription?: string;
|
|
39
|
+
choiceGroup?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface PresentationGroup extends ASTNode {
|
|
42
|
+
type: "PresentationGroup";
|
|
43
|
+
name: string;
|
|
44
|
+
questionText?: string;
|
|
45
|
+
questionDescription?: string;
|
|
46
|
+
columns?: number;
|
|
47
|
+
control?: "checkbox" | "radio";
|
|
38
48
|
}
|
|
39
49
|
export type Statement = Decision | Concept | Activity | Terminology | Parameter | Criterion;
|
|
40
50
|
export interface LibraryDeclaration extends ASTNode {
|
|
@@ -267,6 +277,7 @@ export interface ShapeReduction extends ASTNode {
|
|
|
267
277
|
equalTime: "error" | "preferLocal";
|
|
268
278
|
}
|
|
269
279
|
export interface Concept extends ASTNode {
|
|
280
|
+
quantityUnit?: string;
|
|
270
281
|
type: "Concept";
|
|
271
282
|
name: string;
|
|
272
283
|
conceptType?: ConceptType;
|
package/dist/ast/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"auditedRevision": "
|
|
3
|
-
"auditedSchemaVersion": "2.
|
|
4
|
-
"auditedContentHash": "
|
|
5
|
-
"scope": "Reviewed schema 2.
|
|
2
|
+
"auditedRevision": "8e9b442578bdfa7076b2dc7c7005dc0f64fa55c4",
|
|
3
|
+
"auditedSchemaVersion": "2.43",
|
|
4
|
+
"auditedContentHash": "3335e25050a9b4c5c9621780cac1838cc52c30ba2aa80e1b58d536f15ae6c8f9",
|
|
5
|
+
"scope": "Reviewed schema 2.43 Quantity type units and structured flags/summaries; baseline c5966c5f80aad52ec582774766e7332a9bdaddf4. Canonical delta: engine identity only. Release Notes UI is outside authoring guidance. R4/direct-profile/exact-admission limits retained; coverage.md has evidence. Installed release/deployment are separate gates.",
|
|
6
6
|
"evidence": "packages/crl/src/authoring-kit/tests/coverage.md"
|
|
7
7
|
}
|
|
@@ -8,6 +8,7 @@ const uncertaintyExample_1 = require("./uncertaintyExample");
|
|
|
8
8
|
const answerExample_1 = require("./answerExample");
|
|
9
9
|
const intakeExample_1 = require("./intakeExample");
|
|
10
10
|
const quantityIntakeExample_1 = require("./quantityIntakeExample");
|
|
11
|
+
const questionUnitExample_1 = require("./questionUnitExample");
|
|
11
12
|
const selectionExample_1 = require("./selectionExample");
|
|
12
13
|
const quantityExample_1 = require("./quantityExample");
|
|
13
14
|
const decisionExamples_1 = require("./decisionExamples");
|
|
@@ -24,7 +25,7 @@ const conceptTypes_1 = require("../grammar/conceptTypes");
|
|
|
24
25
|
const conceptValueTypes_1 = require("../grammar/conceptValueTypes");
|
|
25
26
|
const spawn_1 = require("../results/spawn");
|
|
26
27
|
const reference_1 = require("./reference");
|
|
27
|
-
const SCHEMA_VERSION = "2.
|
|
28
|
+
const SCHEMA_VERSION = "2.43";
|
|
28
29
|
const FEEDBACK_URL = "https://github.com/alphora/clinical-reasoning-language/issues/new";
|
|
29
30
|
const SUMMARY = "Local decision support: express clinical intent through coded answers, supported source representations and explicit computed publications. Author decision/criterion structure for distinct criteria, named terminology for coded answer choices, and presentations for question wording. Validate and compare CRE predictions with emitted CQL/FHIR and native $apply. Supported age, request, qualification, threshold and finite-code BMI forms are in scope; broader #320 limitations are listed separately.";
|
|
30
31
|
const FORCE_MODEL = {
|
|
@@ -123,6 +124,8 @@ const RULES = [
|
|
|
123
124
|
id: "text-answers", applicability: "Authoring typed intake questions", category: "concept-model",
|
|
124
125
|
rule: "Use value type is text on an explicit Record/Observation with code is and shape reduction is most recent. text is the author-facing alias for FHIR string; existing string spelling remains accepted. Emission uses Observation.valueString and a string Questionnaire item whose response uses valueString. Preserve the answer text; has-value does not trim it or judge clinical sufficiency. For a Boolean decision guard, derive a separate uncoded Record/Observation/boolean concept with definition is \"Primary Diagnosis\" has a value and its own most-recent reduction. The uncoded guard contributes no question; its answerable operand is included in the form.",
|
|
125
126
|
clauses: [
|
|
127
|
+
{ text: "Source capability #328: declare value type is Quantity 'kg/m2'. on a selected Record/Observation concept; presentation supplies only wording. A local code adds a question; uncoded computed Quantities also normalize without an answer slot. CQL/CRE normalize local/source/computed publication values to the declared unit before selection, preserving raw inputs and actual validity. CEL normalizes its locally asserted Quantity before stamping the profile. Same-unit values retain existing admission; conversion supports m/cm and kg/g only, with both input and output limited to magnitude 10^6 and eight decimal places. Conversion bounds apply even when a concept is used only for presence or display. The canonical unit applies to populated numeric values. Unit-only input is an explicit semantic unit assertion; typed output uses the authored canonical UCUM identity, while raw source data stays unchanged. Lossy conversion or incompatible units error. Threshold/BMI operations retain their own supported domains. Unknown/valueless data stays unchanged; comparators and raw unitless numeric Quantities error. CEL facts still state their own unit. Codes are explicit author UCUM assertions; lexical admission is not UCUM dictionary validation. Changing a shared declared unit changes its executable contract: regenerate and deploy the affected include closure together; mixing stale owner artifacts with new consumer artifacts is unsupported. Primitive annotations are carried through opaquely; unit-dependent annotation contents are not recalculated.", force: "validator-enforced" },
|
|
128
|
+
{ text: "Declared Quantity units emit standard elementdefinition-allowedUnits on Observation.value[x] in the concept profile and executable CQL type normalization. The shared generator maps profile units to standard questionnaire-unitOption; no custom CRL presentation extension or numeric initial answer is emitted. The matching driver refuses engines lacking the standard profile mapping, including released6.4.45. This source capability needs a separately qualified runtime/VSIX release before production adoption. The shipped LForms client attaches the offered unit to numeric entry. Other clients need separate rendered qualification; unitOption itself specifies choices rather than a universal default. Verify Start, untouched entry, change, clear, exported QR, native extraction and static outputs with the exact candidate digest. No declaration keeps existing behavior.", force: "default" },
|
|
126
129
|
{ text: "Has-value tests only the selected publication's value. No selected record or a selected valueless/extension-only primitive record produces false. Valid text, Boolean false and recognized Unknown/N/A codes produce true. Supported operands are selected Boolean, text/string, dateTime, domain-interpreted CodeableConcept and Quantity publications. Quantity presence tests the numeric value: zero is answered; unit-only and extension-only numeric values are unanswered. Presence needs no threshold or unit conversion. Populated exact Quantities require a nonempty unit/code identity and UCUM system when supplied; comparator quantities are rejected. Valueless unit metadata and UCUM lexical validity retain existing validation limits. Invalid type, unrecognized coded domain and selection failures remain errors. This predicate does not establish whether a diagnosis exists clinically or whether a dataset is complete.", force: "validator-enforced" },
|
|
127
130
|
{ text: "CEL rejects empty text values. Native inputs must be valid FHIR: the pinned FHIR parser can normalize an invalid empty valueString to an absent primitive before CQL evaluates it, so has-value is not a raw JSON schema validator. Clear an answer by retaining its response item without an answer, not by sending an empty string.", force: "default" },
|
|
128
131
|
{ text: "A selected operand supplies the computed record's validity and provenance; no operand yields an undated computed false with no invented clinical timestamp or evidence reference. A newer valueless record can replace an earlier answer. Clearing is a client/request contract, not removal of historical records: prove actual Q/QR extraction and selection with older answers still present. Omitting a field is not an instruction to clear it.", force: "default" },
|
|
@@ -130,7 +133,7 @@ const RULES = [
|
|
|
130
133
|
{ text: "Numeric count/rate answers use selected Quantity and a separate uncoded has-value Boolean. CEL examples include 0 '1', 3 '{session}', 2 'd/wk' and 1.5 'h/d'. For optional evidence use a compound guard and the same outcome in otherwise. For source-required completion a single unqualified when branch can withhold the result until all required presence predicates hold; an empty result with false presence is not a null-condition pause. Do not invent a threshold to collect counts. Verify actual rendered Quantity entry/export and clear separately from native execution. Unsupported Quantity thresholds are rejected during validation and executable preparation.", force: "default" },
|
|
131
134
|
{ text: "Use value type is dateTime for temporal answers. It emits Observation.valueDateTime, Questionnaire type dateTime and QuestionnaireResponse valueDateTime using the standard engine. CEL value is contains the answer; date is timestamps the assertion for selection. Valid calendar-only values and zoned timestamps are accepted without inventing missing time. Renderer input/export behavior must be verified separately; a dateTime picker need not preserve date-only precision. Radio versus dropdown presentation and Record/RecordSet multiple-selection extensions remain backlog #322. Do not post-process emitted CQL, profiles or CEL data to invent unsupported language behavior.", force: "default" }
|
|
132
135
|
],
|
|
133
|
-
ref: "docs/typed-intake-answers.md; src/emit/tests/publicationHasValue.test.ts; intake-reference.crl; intake-reference.cel"
|
|
136
|
+
ref: "docs/typed-intake-answers.md; src/emit/tests/publicationHasValue.test.ts; src/emit/tests/questionUnit.test.ts; example:quantity-question-unit; intake-reference.crl; intake-reference.cel"
|
|
134
137
|
},
|
|
135
138
|
{
|
|
136
139
|
id: "concept-form",
|
|
@@ -269,6 +272,18 @@ const RULES = [
|
|
|
269
272
|
"why": "Concept names identify knowledge. Questionnaire text asks a question in context; changing wording must not change computation, codes, or canonicals.",
|
|
270
273
|
"ref": "docs/named-answer-valuesets-and-presentation.md; src/emit/presentation.ts; src/fhir-emitter/decision.ts",
|
|
271
274
|
"clauses": [
|
|
275
|
+
{
|
|
276
|
+
"text": "Group independent Boolean questions with presentation group \"Symptoms\": - question text is \"Which symptoms apply?\". - columns is 3. - control is checkbox. Add choice group is \"Symptoms\" to each member's default presentation for declaration. Each member remains its own local coded Record/Observation/boolean with shape reduction is most recent. Group title is required; description is optional; columns is a positive integer (default 1); control is radio (default) or checkbox. Order is member default-presentation declaration order. Groups are separate annotations, never concept symbols, a shared terminology, a multi-answer value, or a clinical ANY/ALL reducer. Imported owner groups are inherited; scoped membership/reassignment and importing overrides are refused. Scoped wording must remain compatible for every member collected together.",
|
|
277
|
+
"force": "validator-enforced"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"text": "At the first ordinarily encountered member, a protocol 1 native runtime collects every declared group member together before population, including members behind a later branch. Unencountered groups and ungrouped questions keep normal collection. This can offer a grouped later-branch question early; author separate groups for branch-private intake. Emitted action inputs carry complete ordered profile/wording descriptors keyed by the actual owning emitted Library canonical, authored version and group name. One nonrepeating answerless Questionnaire group wraps the original independent profile items. Profile identities, CQL computations, enablement, extraction and values stay unchanged. Presentation-only peers do not become clinical pruning dependencies.",
|
|
281
|
+
"force": "default"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"text": "Checkbox mode preserves true (checked), explicit false (unchecked) and unanswered (mixed and labeled Not answered); Clear restores unanswered. Untouched, omitted or cleared controls never imply false. Columns adapt to available width. An unfamiliar renderer can use ordinary independent Yes/No/Clear controls. CRL 6.4.42 supplies the grouping compiler and MV renderer with a protocol 1 default native engine. Keep compiler, client and default engine together when upgrading; older engines are refused for grouped inputs. A generic consumer can render the standard Questionnaire group with independent Boolean controls; the checkbox grid is a client presentation enhancement. Older engines that ignore the optional grouping extension receive ordinary cpg-input-text containing the authored group question followed by each member question. That flat fallback can gather members at different stages; it does not provide complete-panel collection or the checkbox grid. Clinical logic still uses the independent concept values. Use first: explicitly when the authored decision requires a single ordered outcome; grouping does not change branch selection. Installed tooling qualification does not establish customer clinical acceptance.",
|
|
285
|
+
"force": "default"
|
|
286
|
+
},
|
|
272
287
|
{
|
|
273
288
|
"text": "Explicit scopes for one target must not overlap, even if text is identical or different fields are supplied. There is no last-declaration, decision-vs-criterion, or file-order precedence. A profile cannot silently retain the first of conflicting presentations in one form.",
|
|
274
289
|
"force": "validator-enforced"
|
|
@@ -866,7 +881,7 @@ const RULES = [
|
|
|
866
881
|
id: "fhir-packaging",
|
|
867
882
|
applicability: "Distributing existing FHIR definitions as an NPM package",
|
|
868
883
|
category: "process",
|
|
869
|
-
rule: "For a definitions-only FHIR collection Bundle, call emit_crl_bundle with an absolute CRL path, or SDK emitCrlBundle(path). It emits the dependency closure and embeds local CQL in Library.content.data without writing files or adding patient data or a static Questionnaire. Inspect success and diagnostics; emission errors, unresolved references, filename collisions and missing CQL refuse the Bundle. External dependencies such as hl7.fhir.uv.cql.FHIRHelpers still need runtime resolution. This is not native execution or FHIR/profile validation. After emitting and verifying definitions, call package_fhir with an absolute projectRoot, or crl-package-fhir --project <path>. This packages existing src/fhir; it does not emit, publish, or run $apply. Configure package.json name (the policy ID), exact SemVer version, author, description and crl.canonicalBase, plus a separate dotted
|
|
884
|
+
rule: "For a definitions-only FHIR collection Bundle, call emit_crl_bundle with an absolute CRL path, or SDK emitCrlBundle(path). It emits the dependency closure and embeds local CQL in Library.content.data without writing files or adding patient data or a static Questionnaire. Inspect success and diagnostics; emission errors, unresolved references, filename collisions and missing CQL refuse the Bundle. External dependencies such as hl7.fhir.uv.cql.FHIRHelpers still need runtime resolution. This is not native execution or FHIR/profile validation. After emitting and verifying definitions, call package_fhir with an absolute projectRoot, or crl-package-fhir --project <path>. This packages existing src/fhir; it does not emit, publish, or run $apply. Configure package.json name (the policy ID), exact SemVer version, author, description and crl.canonicalBase, plus a separate dotted root packageId (at most 64 characters) and exact crl.fhirDependencies for external FHIR packages. packageId/--package-id overrides the root package ID. Existing crl.packageId is accepted only when the root field is absent; a present invalid root value is rejected. The R4 core dependency is 4.0.1. An optional license must be a single FHIR R4 SPDX code; no license is invented. The default output/package.tgz contains package/package.json, an ImplementationGuide resource inventory, a v2 .index.json and the canonical definitions. Existing resource identities and versions are preserved. Local Library attachments within src are embedded only in the archive copy; source files are unchanged. Only the chosen archive is replaced. Optional outputFile/--out selects its destination outside src. Patient examples and MV/regression data are refused under src/fhir. Duplicate identities, unsafe paths and invalid metadata are errors. Identical inputs produce identical archive bytes. Known CPG, CRMI, SDC, CQL and terminology dependencies are checked, but packaging does not resolve transitive dependencies or prove FHIR/profile/CQL executable validity. Inspect the archive's package/.index.json and ImplementationGuide inventory and independently validate content for its intended use. A separate CRMI asset-collection manifest Library is not required merely to create an NPM package; this tool does not implement a server $package operation.",
|
|
870
885
|
ref: "docs/fhir-npm-packaging.md; fhir-package/index.test.ts",
|
|
871
886
|
clauses: [
|
|
872
887
|
{ text: "Provide valid package metadata and keep patient/case data outside src/fhir; the packager refuses invalid metadata, duplicate identities and unsafe paths.", force: "validator-enforced" },
|
|
@@ -877,8 +892,8 @@ const RULES = [
|
|
|
877
892
|
id: "native-apply-session",
|
|
878
893
|
applicability: "Applications submitting successive native QuestionnaireResponse edits",
|
|
879
894
|
category: "process",
|
|
880
|
-
rule: "Use @smile-digital-health/crl/session applySession or crl-apply-session for one stateless native R4 $r5.apply request. Supply schemaVersion 1, request/case/step IDs, PlanDefinition ID, subject, immutable repository JSON and explicit current request-data JSON; the CLI accepts JSON file paths instead. Include the matching returned Questionnaire with a submitted response. buildSessionResponse requires the exact response SHA256, authored time and mode: full reasserts supplied contents; edits-only submits explicit edits and ancestors, omitting untouched answers. Echoing a source-populated request in full mode creates a new local assertion; a date-only source overlapping its authored instant can correctly fail publication selection. Use edits-only with retained successful caller data when changing only a later question. Set native value[x] answers; clear retains an item without its answer. False is a value. No date coercion or timestamp inference occurs. Edits-only under repeating groups or answer children is refused; full mode preserves supplied hierarchy but does not establish persistence identity. The caller owns resource replacement, retained extracted state and acceptance of successful results; no hidden state or universal merge rule exists. Error/fatal native outcomes, invalid inputs, process failures, timeout, cancellation, output limits or unconfirmed cleanup fail the request. Raw input/output artifacts, hashes and runtime identity remain available. A returned Questionnaire or ok:true alone does not prove a clinical disposition; inspect expected actions and answers. Use JRE17+ and the pinned engine. See packages/crl/docs/apply-session.md for the exact API and limits. Native engine question structure is consumed as returned, not repaired by this adapter.",
|
|
881
|
-
ref: "packages/crl/docs/apply-session.md; results/tests/sessionResponse.test.ts; results/tests/session.test.ts",
|
|
895
|
+
rule: "Use @smile-digital-health/crl/session applySession or crl-apply-session for one stateless clinical native R4 $r5.apply request. The process-default pool starts with one reusable JVM; independent jobs may run concurrently on a configured pool. Each evaluation has fresh repositories, settings, clinical state and terminology expansion caches. Compiled definitions may be reused only for identical current definition content; embedded definition edits invalidate that retained generation. Evaluated clinical results are never reused, and external library-content URLs use fresh compilation. Keep a single crl-apply-session --serve process for repeated CLI steps: send one NDJSON object per line with request and out path fields, and read one structured result per line. Independent CLI processes cannot share a JVM. End stdin to close the CLI. createNativeWorkerPool({workerLimit,maxHeapMb}) queues complete independent sessions through runJob(async ({signal}) => ...); await each applySession step in that callback so one owner holds the serial session. Use a unique output directory for every step. setWorkerLimit(n) adjusts that same pool from outside its jobs; decreases await removed owners at job boundaries. status() reports actual PIDs, jobs and heap reservations. shutdown() closes that pool; shutdownNativeRuntime() retires all native workers and releases their reservations but permits later calls. Never await resizing, recursive same-pool runJob or shutdown from within its own job. CLI --serve --workers N runs independent controls concurrently; {workers:N} adjusts that process, and responses remain in input order. Pipeline independent controls; dependent steps must wait for and consume prior successful results. A failed call is not replayed; timeout, cancellation or native failure during execution retires the worker so a later call starts cleanly. Unconfirmed cleanup requires restarting the tool. Supply schemaVersion 1, request/case/step IDs, PlanDefinition ID, subject, immutable repository JSON and explicit current request-data JSON; the CLI accepts JSON file paths instead. Include the matching returned Questionnaire with a submitted response. buildSessionResponse requires the exact response SHA256, authored time and mode: full reasserts supplied contents; edits-only submits explicit edits and ancestors, omitting untouched answers. Echoing a source-populated request in full mode creates a new local assertion; a date-only source overlapping its authored instant can correctly fail publication selection. Use edits-only with retained successful caller data when changing only a later question. Set native value[x] answers; clear retains an item without its answer. False is a value. No date coercion or timestamp inference occurs. Edits-only under repeating groups or answer children is refused; full mode preserves supplied hierarchy but does not establish persistence identity. The caller owns resource replacement, retained extracted state and acceptance of successful results; no hidden state or universal merge rule exists. Error/fatal native outcomes, invalid inputs, process failures, timeout, cancellation, output limits or unconfirmed cleanup fail the request. Raw input/output artifacts, hashes and runtime identity remain available. A returned Questionnaire or ok:true alone does not prove a clinical disposition; inspect expected actions and answers. Use JRE17+ and the pinned engine. See packages/crl/docs/apply-session.md for the exact API and limits. Native engine question structure is consumed as returned, not repaired by this adapter.",
|
|
896
|
+
ref: "packages/crl/docs/apply-session.md; results/tests/sessionResponse.test.ts; results/tests/session.test.ts; results/tests/nativeWorker.test.ts; results/tests/nativeWorker.native.test.ts; results/tests/sessionCli.test.ts",
|
|
882
897
|
clauses: [
|
|
883
898
|
{ text: "Choose full or edits-only explicitly and distinguish omission from clear; retain prior successful caller state on failure.", force: "default" },
|
|
884
899
|
{ text: "Verify native actions, answers and errors independently from adapter success; repeated-resource reconciliation remains caller-owned.", force: "default" },
|
|
@@ -888,7 +903,7 @@ const RULES = [
|
|
|
888
903
|
id: "produce-results",
|
|
889
904
|
applicability: "All CRL authoring",
|
|
890
905
|
category: "process",
|
|
891
|
-
rule: "Questionnaires are generated by `$apply`, never emitted from CRL: no Questionnaire appears in the CRL definition emit. After validation and CRE checks, call `emit_results(celPath, crlPath, useCase)` (useCase selects result-driver behavior, not kit content); it owns result placement, so never place `$apply` output yourself. Enable `crl.enableResults` in VS Code User settings and restart the MCP client. An absent setting preserves an existing opt-in; explicit false removes it. A JRE 17+ and the CRL-maintained complete CLI engine " + spawn_1.ENGINE_JAR_SOURCE.buildId + " are required. The tool gives the download command when missing, discovers <home>/" + spawn_1.ENGINE_JAR_SOURCE.cacheRelativePath + ", and verifies the pinned hash; normal use needs no manual hashing, extraction, or classpath. The original Maven jar is not the corrected default. `jarPath` and `jarSha256` are overrides. Normal emit_results selects the complete MV suite. Its schema-1 manifest is tests/results/questionnaire-manifest-mv.json; celLibrary labels the selected set and each entry retains sourceFile and caseId. Read every case state: generated / no-questionnaire / populate-degraded / failed / timeout / not-run. The unsuccessful-case count includes degradation and not-run while preserving their distinct states. A clean no-questionnaire result must be compared with the particular case expectations; inputs elsewhere in the definition closure do not prove this route should have a form. Normal runs replace the complete generated results directory, including old manifests, after source/runtime preflight. Custom files there are deleted; Git owns recovery. An absent file alone is not evidence that the policy asked nothing. generated means a Questionnaire was returned, not that the intended activity or pause was verified; compare those outcomes against each case oracle. Written MV pairs have stable per-case identities and omit QuestionnaireResponse.authored to avoid run-time churn. They are MV review artifacts; do not resubmit these normalized files unchanged as interactive responses. The results tree is producer-owned; use returned paths/manifests and keep hand-authored Q/QR elsewhere. Set caseTimeoutMs (CLI --case-timeout-ms) to increase the per-case deadline; default 600000 milliseconds. Native runs own their subprocesses and allow one active producer per server. On Windows they require Windows 10/Server 2016 or later and Windows PowerShell. If cleanup is unconfirmed, inspect the reported processes and restart that server before another native run. Output preserves UTF-8 question and answer text. Use retryFailed: true (CLI --retry-failed) to retain compatible successful results and rerun unsuccessful, changed, or damaged cases. A changed model or runtime, or an older manifest without compatibility fingerprints, requires a full run. Retry replays the original CEL input clock; retained rows are historical results with their original producedAt, while reruns evaluate at the live engine time. generatedAt identifies the current invocation and reused marks retained rows. For a fresh evaluation of all cases, run without retry. Native regression may retry its previous scratch run with --retry-from <manifest>; it cannot target MV output.",
|
|
906
|
+
rule: "Questionnaires are generated by `$apply`, never emitted from CRL: no Questionnaire appears in the CRL definition emit. After validation and CRE checks, call `emit_results(celPath, crlPath, useCase)` (useCase selects result-driver behavior, not kit content); it owns result placement, so never place `$apply` output yourself. Enable `crl.enableResults` in VS Code User settings and restart the MCP client. An absent setting preserves an existing opt-in; explicit false removes it. A JRE 17+ and the CRL-maintained complete CLI engine " + spawn_1.ENGINE_JAR_SOURCE.buildId + " are required. The tool gives the download command when missing, discovers <home>/" + spawn_1.ENGINE_JAR_SOURCE.cacheRelativePath + ", and verifies the pinned hash; normal use needs no manual hashing, extraction, or classpath. The original Maven jar is not the corrected default. `jarPath` and `jarSha256` are overrides. Normal emit_results selects the complete MV suite. Its schema-1 manifest is tests/results/questionnaire-manifest-mv.json; celLibrary labels the selected set and each entry retains sourceFile and caseId. Read every case state: generated / no-questionnaire / populate-degraded / failed / timeout / not-run. The unsuccessful-case count includes degradation and not-run while preserving their distinct states. A clean no-questionnaire result must be compared with the particular case expectations; inputs elsewhere in the definition closure do not prove this route should have a form. Normal runs replace the complete generated results directory, including old manifests, after source/runtime preflight. Custom files there are deleted; Git owns recovery. An absent file alone is not evidence that the policy asked nothing. generated means a Questionnaire was returned, not that the intended activity or pause was verified; compare those outcomes against each case oracle. Written MV pairs have stable per-case identities and omit QuestionnaireResponse.authored to avoid run-time churn. They are MV review artifacts; do not resubmit these normalized files unchanged as interactive responses. The results tree is producer-owned; use returned paths/manifests and keep hand-authored Q/QR elsewhere. Set caseTimeoutMs (CLI --case-timeout-ms) to increase the per-case deadline; default 600000 milliseconds. Native runs own their subprocesses and allow one active producer per server. Set workerLimit (CLI --workers N) to run independent cases concurrently on reusable JVMs; an omitted limit retains the process-default limit, initially1. Workers take the next queued case, with fresh clinical state per evaluation and no automatic failed-case replay. The raised default limit persists until changed or the process exits. setNativeWorkerLimit(n) adjusts the same process-default pool outside its jobs; other processes cannot control it. Warm JVMs and their heap reservations remain until shrinking, shutdownNativeRuntime or exit. Aggregate admission covers all explicit pools and multi-worker default capacity: the default budget is half effective physical/constrained memory; CRL_NATIVE_HEAP_BUDGET_MB can set an explicit MiB budget within effective memory. The exclusive legacy default limit1 preserves its existing caller-supplied heap cap; explicit pools and additional workers require budget admission. Heap caps do not predict total RSS; select concurrency using real measurements. workerPool metrics report actual workerPids/nativeCalls/peakActiveCases/elapsedMs, not proof of clinical correctness. Manifest entries keep input order and every scheduled case receives a terminal state before scratch cleanup. On Windows they require Windows 10/Server 2016 or later and Windows PowerShell. If cleanup is unconfirmed, inspect the reported processes and restart that server before another native run. Output preserves UTF-8 question and answer text. Use retryFailed: true (CLI --retry-failed) to retain compatible successful results and rerun unsuccessful, changed, or damaged cases. A changed model or runtime, or an older manifest without compatibility fingerprints, requires a full run. Retry replays the original CEL input clock; retained rows are historical results with their original producedAt, while reruns evaluate at the live engine time. generatedAt identifies the current invocation and reused marks retained rows. For a fresh evaluation of all cases, run without retry. Native regression may retry its previous scratch run with --retry-from <manifest>; it cannot target MV output.",
|
|
892
907
|
ref: "verifyLoop",
|
|
893
908
|
clauses: [
|
|
894
909
|
{
|
|
@@ -917,9 +932,9 @@ const RULES = [
|
|
|
917
932
|
"contradicts itself (source-vs-source); `@open-fork` — an INTERNAL modeling fork you encoded one way but did not " +
|
|
918
933
|
"settle (`chosen`/`alternatives` fields); `@fidelity-defect` — a known encoding≠source defect, with a REQUIRED " +
|
|
919
934
|
"`direction` = `over-reach|criterion-drop` (over-reach = you ADDED logic the source doesn't support; criterion-drop = " +
|
|
920
|
-
"you OMITTED a source-required criterion). Use a short `title` and
|
|
921
|
-
"Title is the flag header; Description is the separate explanation. The API accepts `title` (preferred) or legacy `gist`; when both are supplied they must match after trimming. Records keep schema1 `gist` and `description`: no stored-record rename or migration. Verify the persisted record and rendered header/Description after authoring. Description is plain text displayed in MV; `fields.description` is rejected: use the top-level parameter. Description is trimmed at the edges, omitted when blank, and permits newlines, semicolons and backticks. Description does not participate in retry identity; retrying with changed detail returns the existing record without overwriting it.
|
|
922
|
-
"In Medical Review, Answer Flag resolves the KE question and creates a distinct open MV flag at the same anchor. Its Description
|
|
935
|
+
"you OMITTED a source-required criterion). Use a short `title`, a succinct top-level `question`, and the actual source document/section/page and quotation in `sourceReference` and `sourceQuote`. Put supporting interpretation, alternatives and consequences in top-level `description`. Source fields are optional plain text; disclose unavailable source rather than inventing a quotation. Older descriptions remain readable without migration. " +
|
|
936
|
+
"For reruns, technical Before / Requested change / Change made (or Not implemented) summaries can be delivered under src/medical-validation/change-summaries/<runId>.json before existing final candidate gates. Validate against the SDK flagChangeSummarySchema or flagChangeSummaryJsonSchema (schemaVersion1, including recordedAt as a UTC ISO timestamp with milliseconds); evidence uses delivered artifact-relative src/ or tests/ paths plus actual SHA256. Final delivery SHA stays in post-delivery run evidence. Summaries never mark human flags Fixed or Approved and are not clinical approval. Title is the flag header; Description is the separate explanation. The API accepts `title` (preferred) or legacy `gist`; when both are supplied they must match after trimming. Records keep schema1 `gist` and `description`: no stored-record rename or migration. Verify the persisted record and rendered header/Description after authoring. Description is plain text displayed in MV; `fields.description` is rejected: use the top-level parameter. Description is trimmed at the edges, omitted when blank, and permits newlines, semicolons and backticks. Description does not participate in retry identity; retrying with changed detail returns the actual existing record without overwriting it. Structured question/source fields do participate in generated keys. A matching stored key with different structured content, or structured regeneration of an open legacy concern, returns content-conflict with its existing id and full flag record without overwriting or duplicating it. Read and retain that existing record; create_flag is not an amend operation. Report proposed revisions for its owner to review, and do not resolve an unanswered flag merely to recreate it or file a duplicate with a changed gist. Legacy questions remain usable without structured-field upgrades. An optional issue link belongs in `fields.ref` (e.g. `#207`). " +
|
|
937
|
+
"In Medical Review, Answer Flag resolves the KE question and creates a distinct open MV flag at the same anchor. Its Description retains the structured Question, Source and Supporting context, followed by Answer: for the reviewer; flags without structured fields retain the original Description fallback. Linked answers report when current question content differs from the captured content; this does not change review status. Ignore Flag resolves only the KE question. KE content is read-only in MV; resolved KE questions can be reopened. New MV flags are stored locally without creating tracker issues. All MV flags start Pending fix (`open`), then MV manually marks Fixed and Approved; Pending and Fixed block completion. KE cannot write MV flags to mark them Fixed, and may report completion out of band. Meaningful changes reset the MV review to Pending; unchanged saves preserve status. Legacy resolved MV flags count as Approved. Extraction flags retain open/resolved. An open extraction flag blocks Medical Validation " +
|
|
923
938
|
"completion. Separately, `@gap-filed` IS still a `.crl` meta tag (NOT a flag) — a durable `- meta is `@gap-filed: …; " +
|
|
924
939
|
"ref <issue>`.` pointer to an already-filed gap, REQUIRED `; ref`; it ships fine and does not gate. The four flag " +
|
|
925
940
|
"tags above belong to extraction (CRL versus narrative fidelity). The validation-phase vocabulary has four general " +
|
|
@@ -963,7 +978,7 @@ const RULES = [
|
|
|
963
978
|
},
|
|
964
979
|
{
|
|
965
980
|
text: "How to WRITE flags — use the `crl` MCP tools; they write the store directly. `create_flag` authors a flag on a " +
|
|
966
|
-
"concept, decision, or library (pass `kind`, `name`, the `tag`, a short `title`, optional plain-text `description`, and required extra `fields` " +
|
|
981
|
+
"concept, decision, or library (pass `kind`, `name`, the `tag`, a short `title`, optional plain-text `question`, `sourceReference`, `sourceQuote`, supporting `description`, and required extra `fields` " +
|
|
967
982
|
"like `direction`, and the optional issue link as `fields.ref`); `set_flag_status` flips one flag " +
|
|
968
983
|
'`open`<->`resolved` for extraction by selector. Ordinary MV flags use open, fixed, approved under MV authorization; reserved Q/A flags refuse this API and use only Q/A controls. This KE automation API remains distinct from human MV Answer/Ignore: resolving an extraction flag leaves it KE-owned and creates no MV flag. Pass `tag` as the BARE tag id — `"open-fork"`, `"fidelity-defect"` (the `@` ' +
|
|
969
984
|
'prefix is display-only prose; `tag: "@open-fork"` is an `unknown-tag`). Both REQUIRE a `path` to a `.crl` file ' +
|
|
@@ -971,7 +986,7 @@ const RULES = [
|
|
|
971
986
|
"uses it to VALIDATE the anchor target exists AND to locate the store, while `set_flag_status` uses it ONLY to " +
|
|
972
987
|
"locate the store (it does no `.crl` content read). They WRITE the `medical-validation/flags/<id>.json` record (they do NOT " +
|
|
973
988
|
"return `.crl` source for you to apply, and they never edit `.crl` files). `create_flag` is idempotent while open " +
|
|
974
|
-
"(a same-content retry returns the existing record; Description is excluded from generated keys and does not overwrite existing detail on retry; explicit keys remain caller-owned). PRECONDITION: the store is located by walking up to the " +
|
|
989
|
+
"(a same-content retry returns the existing record; Description is excluded from generated keys and does not overwrite existing detail on retry; question/source content is checked on matching keys and an open legacy upgrade conflicts instead of silently duplicating; explicit keys remain caller-owned). PRECONDITION: the store is located by walking up to the " +
|
|
975
990
|
'policy\'s `src/` dir, identified by `provenance/` or by both `crl/` and `cel/`; if the tool errors "not inside a discoverable policy", check that layout. ' +
|
|
976
991
|
"Source correspondence is still required for source highlighting and the provenance/promotion workflow, but not to locate this flag store. (`@validation-concern`'s optional " +
|
|
977
992
|
"`kind` triage enum + any occurrence `key` are carried as `fields` by the same tools.)",
|
|
@@ -1019,6 +1034,7 @@ const EXAMPLES = [
|
|
|
1019
1034
|
{ id: "source-field-order", title: "source-field-order", language: "crl", valid: true, snippet: sourceOrderExample_1.SOURCE_ORDER_EXAMPLE, note: "Exact declaration shared with concept-body-order-independence.test.ts: all concept fields precede the trailing source block. The owning test checks AST ownership and publication preparation, not native execution." },
|
|
1020
1035
|
{ id: "coded-observation-source", title: "Selected coded Observation source", language: "crl", valid: true, snippet: codedSourceExample_1.CODED_SOURCE_POLICY, note: "Complete synthetic source-only policy shared with the coded-source emitter and CRE tests. Declare the tested source and result terminology; do not replace it with clinical codes without source justification. Supply package.json name coded-source and crl.canonicalBase https://example.org/coded-source. No local code means no editable question. Interpretation follows final selection; no extra indeterminate modifier is introduced. These source tests do not certify a customer policy or native execution." },
|
|
1021
1036
|
{ id: "quantity-declaration", title: "quantity-declaration", language: "crl", valid: true, snippet: quantityExample_1.QUANTITY_EXAMPLE_DECLARATION, note: "Exact current Quantity declaration from the owning CEL numeric-literal test. Supply package.json crl.canonicalBase for emission. This example defines a measurement, not a Boolean decision guard." },
|
|
1037
|
+
{ id: "quantity-question-unit", title: "Quantity question with an explicit unit", language: "crl", valid: true, snippet: (0, questionUnitExample_1.questionUnitSource)(), note: "Synthetic BMI threshold example shared with questionUnit.test.ts and questionUnit.native.test.mjs. Supply package.json crl.canonicalBase. Requires the standard profile-unit mapping engine and matching driver; source-qualified, unavailable in the released 6.4.45 engine. Fresh number entry uses kg/m2; no clinical eligibility recommendation is intended by the Above/Below labels. No post-processing or engine-specific CRL is needed." },
|
|
1022
1038
|
{ id: "quantity-answer", title: "quantity-answer", language: "cel", valid: true, snippet: quantityExample_1.QUANTITY_EXAMPLE_FACT, note: "Fact excerpt shared verbatim with numericValueRules.test.ts. Use within a CEL library covering L with a Patient subject and case referencing F. The owning test checks numeric-literal diagnostics; this excerpt does not establish BMI, unit conversion or native execution." },
|
|
1023
1039
|
{
|
|
1024
1040
|
id: "terminology-displays", title: "Instantiated terminology with authored displays",
|