@smile-digital-health/crl 4.108.0 → 4.112.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/ast/branchCondition.d.ts +1 -12
- package/dist/ast/branchCondition.js +24 -65
- package/dist/ast/branchCondition.js.map +1 -1
- package/dist/ast/builder.d.ts +13 -3
- package/dist/ast/builder.js +205 -44
- package/dist/ast/builder.js.map +1 -1
- package/dist/ast/conceptDependencies.d.ts +4 -0
- package/dist/ast/conceptDependencies.js +64 -0
- package/dist/ast/conceptDependencies.js.map +1 -0
- package/dist/ast/criterionExpansion.d.ts +1 -30
- package/dist/ast/criterionExpansion.js +1 -126
- package/dist/ast/criterionExpansion.js.map +1 -1
- package/dist/ast/criterionIndex.d.ts +19 -0
- package/dist/ast/criterionIndex.js +152 -0
- package/dist/ast/criterionIndex.js.map +1 -0
- package/dist/ast/guardDefines.d.ts +11 -0
- package/dist/ast/guardDefines.js +117 -0
- package/dist/ast/guardDefines.js.map +1 -0
- package/dist/ast/inferenceWalk.d.ts +2 -2
- package/dist/ast/inferenceWalk.js +6 -0
- package/dist/ast/inferenceWalk.js.map +1 -1
- package/dist/ast/questionReachability.d.ts +3 -0
- package/dist/ast/questionReachability.js +32 -0
- package/dist/ast/questionReachability.js.map +1 -0
- package/dist/ast/types.d.ts +130 -15
- package/dist/ast/types.js +60 -1
- package/dist/ast/types.js.map +1 -1
- package/dist/authoring-kit/index.js +310 -68
- package/dist/authoring-kit/index.js.map +1 -1
- package/dist/authoring-kit/reference.d.ts +8 -7
- package/dist/authoring-kit/reference.js +235 -41
- package/dist/authoring-kit/reference.js.map +1 -1
- package/dist/authoring-kit/types.d.ts +8 -0
- package/dist/cel/ast/builder.js +16 -2
- package/dist/cel/ast/builder.js.map +1 -1
- package/dist/cel/ast/types.d.ts +16 -1
- package/dist/cel/ast/types.js +4 -0
- package/dist/cel/ast/types.js.map +1 -1
- package/dist/cel/canonicalToken.d.ts +29 -0
- package/dist/cel/canonicalToken.js +59 -0
- package/dist/cel/canonicalToken.js.map +1 -0
- package/dist/cel/emitter/emitFhir.d.ts +5 -2
- package/dist/cel/emitter/emitFhir.js +351 -35
- package/dist/cel/emitter/emitFhir.js.map +1 -1
- package/dist/cel/emitter/types.d.ts +3 -1
- package/dist/cel/emitter/writer.d.ts +1 -1
- package/dist/cel/emitter/writer.js +14 -7
- package/dist/cel/emitter/writer.js.map +1 -1
- package/dist/cel/imports/resolver.js +9 -0
- package/dist/cel/imports/resolver.js.map +1 -1
- package/dist/cel/imports/types.d.ts +2 -0
- package/dist/cel/localMembership.d.ts +29 -0
- package/dist/cel/localMembership.js +0 -0
- package/dist/cel/localMembership.js.map +1 -0
- package/dist/cel/sourceMembership.d.ts +13 -0
- package/dist/cel/sourceMembership.js +67 -0
- package/dist/cel/sourceMembership.js.map +1 -0
- package/dist/cel/validator/types.d.ts +1 -1
- package/dist/cel/validator/validator.js +267 -0
- package/dist/cel/validator/validator.js.map +1 -1
- package/dist/cli/run-check-fhir-ids.d.ts +2 -0
- package/dist/cli/run-check-fhir-ids.js +90 -0
- package/dist/cli/run-check-fhir-ids.js.map +1 -0
- package/dist/cli/run-emitter.js +16 -31
- package/dist/cli/run-emitter.js.map +1 -1
- package/dist/cql-emitter/catalog/CRLCommon.cql +751 -605
- package/dist/cql-emitter/catalog/CaseFeatureCommon.cql +81 -21
- package/dist/cql-emitter/crossRepRecencyMerge.d.ts +8 -0
- package/dist/cql-emitter/crossRepRecencyMerge.js +13 -0
- package/dist/cql-emitter/crossRepRecencyMerge.js.map +1 -0
- package/dist/cql-emitter/emitCQL.d.ts +13 -1
- package/dist/cql-emitter/emitCQL.js +1281 -99
- package/dist/cql-emitter/emitCQL.js.map +1 -1
- package/dist/cql-emitter/emitCriterionDefine.d.ts +10 -0
- package/dist/cql-emitter/emitCriterionDefine.js +49 -0
- package/dist/cql-emitter/emitCriterionDefine.js.map +1 -0
- package/dist/cql-emitter/layeredEmit.d.ts +2 -1
- package/dist/cql-emitter/layeredEmit.js +228 -40
- package/dist/cql-emitter/layeredEmit.js.map +1 -1
- package/dist/cql-emitter/lowerLocalCodes.d.ts +11 -1
- package/dist/cql-emitter/lowerLocalCodes.js +774 -62
- package/dist/cql-emitter/lowerLocalCodes.js.map +1 -1
- package/dist/cql-emitter/renderConstructorCall.d.ts +51 -0
- package/dist/cql-emitter/renderConstructorCall.js +96 -0
- package/dist/cql-emitter/renderConstructorCall.js.map +1 -0
- package/dist/cql-emitter/renderRecordConstructor.d.ts +3 -0
- package/dist/cql-emitter/renderRecordConstructor.js +94 -0
- package/dist/cql-emitter/renderRecordConstructor.js.map +1 -0
- package/dist/cql-emitter/totalScalarBoolean.d.ts +20 -0
- package/dist/cql-emitter/totalScalarBoolean.js +0 -0
- package/dist/cql-emitter/totalScalarBoolean.js.map +1 -0
- package/dist/cre/criterionTables.d.ts +3 -0
- package/dist/cre/criterionTables.js +22 -0
- package/dist/cre/criterionTables.js.map +1 -0
- package/dist/cre/run.d.ts +23 -40
- package/dist/cre/run.js +566 -57
- package/dist/cre/run.js.map +1 -1
- package/dist/cre/viewModel.d.ts +9 -9
- package/dist/cre/viewModel.js +70 -30
- package/dist/cre/viewModel.js.map +1 -1
- package/dist/emit/booleanTotality.d.ts +113 -0
- package/dist/emit/booleanTotality.js +539 -0
- package/dist/emit/booleanTotality.js.map +1 -0
- package/dist/emit/closeIndex.d.ts +60 -0
- package/dist/emit/closeIndex.js +164 -0
- package/dist/emit/closeIndex.js.map +1 -0
- package/dist/emit/conceptDatumSignals.d.ts +4 -0
- package/dist/emit/conceptDatumSignals.js +15 -0
- package/dist/emit/conceptDatumSignals.js.map +1 -0
- package/dist/emit/declaredResultIndex.d.ts +49 -0
- package/dist/emit/declaredResultIndex.js +128 -0
- package/dist/emit/declaredResultIndex.js.map +1 -0
- package/dist/emit/effectiveRepresentation.d.ts +80 -0
- package/dist/emit/effectiveRepresentation.js +464 -0
- package/dist/emit/effectiveRepresentation.js.map +1 -0
- package/dist/emit/producerCandidate.d.ts +152 -0
- package/dist/emit/producerCandidate.js +263 -0
- package/dist/emit/producerCandidate.js.map +1 -0
- package/dist/emit/recordBooleanGuard.d.ts +4 -0
- package/dist/emit/recordBooleanGuard.js +52 -0
- package/dist/emit/recordBooleanGuard.js.map +1 -0
- package/dist/emit/recordConstructor.d.ts +73 -0
- package/dist/emit/recordConstructor.js +168 -0
- package/dist/emit/recordConstructor.js.map +1 -0
- package/dist/emit/resourceEmitRegistry.d.ts +94 -0
- package/dist/emit/resourceEmitRegistry.js +269 -0
- package/dist/emit/resourceEmitRegistry.js.map +1 -0
- package/dist/emit-writers.d.ts +10 -0
- package/dist/emit-writers.js +56 -0
- package/dist/emit-writers.js.map +1 -0
- package/dist/fhir-emitter/activity.d.ts +1 -0
- package/dist/fhir-emitter/activity.js +8 -5
- package/dist/fhir-emitter/activity.js.map +1 -1
- package/dist/fhir-emitter/caseFeatureCollection.js +2 -6
- package/dist/fhir-emitter/caseFeatureCollection.js.map +1 -1
- package/dist/fhir-emitter/caseFeatureRecord.d.ts +32 -0
- package/dist/fhir-emitter/caseFeatureRecord.js +74 -0
- package/dist/fhir-emitter/caseFeatureRecord.js.map +1 -0
- package/dist/fhir-emitter/checkIds.d.ts +34 -0
- package/dist/fhir-emitter/checkIds.js +150 -0
- package/dist/fhir-emitter/checkIds.js.map +1 -0
- package/dist/fhir-emitter/closureOrchestrator.d.ts +1 -0
- package/dist/fhir-emitter/closureOrchestrator.js +278 -28
- package/dist/fhir-emitter/closureOrchestrator.js.map +1 -1
- package/dist/fhir-emitter/codeSystem.d.ts +4 -0
- package/dist/fhir-emitter/codeSystem.js +49 -3
- package/dist/fhir-emitter/codeSystem.js.map +1 -1
- package/dist/fhir-emitter/decision.d.ts +2 -0
- package/dist/fhir-emitter/decision.js +172 -45
- package/dist/fhir-emitter/decision.js.map +1 -1
- package/dist/fhir-emitter/index.d.ts +2 -0
- package/dist/fhir-emitter/index.js +5 -1
- package/dist/fhir-emitter/index.js.map +1 -1
- package/dist/fhir-emitter/inlineAnswerSet.d.ts +24 -0
- package/dist/fhir-emitter/inlineAnswerSet.js +103 -0
- package/dist/fhir-emitter/inlineAnswerSet.js.map +1 -0
- package/dist/fhir-emitter/library.js.map +1 -1
- package/dist/fhir-emitter/localDomain.d.ts +27 -0
- package/dist/fhir-emitter/localDomain.js +39 -0
- package/dist/fhir-emitter/localDomain.js.map +1 -0
- package/dist/fhir-emitter/recommendation.d.ts +1 -0
- package/dist/fhir-emitter/recommendation.js +2 -2
- package/dist/fhir-emitter/recommendation.js.map +1 -1
- package/dist/fhir-emitter/slug.d.ts +9 -3
- package/dist/fhir-emitter/slug.js +55 -10
- package/dist/fhir-emitter/slug.js.map +1 -1
- package/dist/fhir-emitter/structureDefinition.d.ts +19 -1
- package/dist/fhir-emitter/structureDefinition.js +149 -60
- package/dist/fhir-emitter/structureDefinition.js.map +1 -1
- package/dist/fhir-emitter/types.d.ts +3 -3
- package/dist/fhir-emitter/types.js +11 -8
- package/dist/fhir-emitter/types.js.map +1 -1
- package/dist/fhir-emitter/valueSet.d.ts +6 -0
- package/dist/fhir-emitter/valueSet.js +53 -10
- package/dist/fhir-emitter/valueSet.js.map +1 -1
- package/dist/fhir-emitter/writer.d.ts +1 -1
- package/dist/fhir-emitter/writer.js +2 -2
- package/dist/fhir-emitter/writer.js.map +1 -1
- package/dist/fhir-model/caseFeatureResources.d.ts +4 -0
- package/dist/fhir-model/caseFeatureResources.js +28 -0
- package/dist/fhir-model/caseFeatureResources.js.map +1 -0
- package/dist/fhir-model/elementPath.d.ts +1 -0
- package/dist/fhir-model/elementPath.js +8 -0
- package/dist/fhir-model/elementPath.js.map +1 -0
- package/dist/fhir-model/fhirValueModel.d.ts +7 -0
- package/dist/fhir-model/fhirValueModel.js +65 -0
- package/dist/fhir-model/fhirValueModel.js.map +1 -0
- package/dist/grammar/conceptShapes.d.ts +3 -0
- package/dist/grammar/conceptShapes.js +13 -0
- package/dist/grammar/conceptShapes.js.map +1 -0
- package/dist/grammar/generated/antlr/CELLexer.d.ts +11 -10
- package/dist/grammar/generated/antlr/CELLexer.js +306 -299
- package/dist/grammar/generated/antlr/CELLexer.js.map +1 -1
- package/dist/grammar/generated/antlr/CELParser.d.ts +14 -10
- package/dist/grammar/generated/antlr/CELParser.js +244 -215
- package/dist/grammar/generated/antlr/CELParser.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLLexer.d.ts +93 -70
- package/dist/grammar/generated/antlr/CRLLexer.js +688 -512
- package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParser.d.ts +303 -113
- package/dist/grammar/generated/antlr/CRLParser.js +1756 -874
- package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
- package/dist/grammar/generated/antlr/CRLParserListener.d.ts +39 -0
- package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +26 -0
- package/dist/grammar/generated/types/conceptShapes.json +5 -0
- package/dist/grammar/generated/types/conceptValueTypes.json +1 -0
- package/dist/grammar/generated/types/parameterTypes.json +1 -0
- package/dist/grammar/resultType.d.ts +13 -0
- package/dist/grammar/resultType.js +27 -0
- package/dist/grammar/resultType.js.map +1 -0
- package/dist/imports/computeEmitClosure.js +15 -3
- package/dist/imports/computeEmitClosure.js.map +1 -1
- package/dist/imports/emit.d.ts +2 -0
- package/dist/imports/emit.js +49 -47
- package/dist/imports/emit.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/language-services/catalog.d.ts +2 -2
- package/dist/language-services/catalog.js +1 -0
- package/dist/language-services/catalog.js.map +1 -1
- package/dist/language-services/contextDetect.js +2 -0
- package/dist/language-services/contextDetect.js.map +1 -1
- package/dist/language-services/projectIndex.js +23 -1
- package/dist/language-services/projectIndex.js.map +1 -1
- package/dist/lexer/CRLLexerErrorListener.js +3 -0
- package/dist/lexer/CRLLexerErrorListener.js.map +1 -1
- package/dist/mcp/server.js +176 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/migration/migrationInventory.d.ts +105 -0
- package/dist/migration/migrationInventory.js +732 -0
- package/dist/migration/migrationInventory.js.map +1 -0
- package/dist/migration/renderInventory.d.ts +7 -0
- package/dist/migration/renderInventory.js +321 -0
- package/dist/migration/renderInventory.js.map +1 -0
- package/dist/migration/repoExclusions.d.ts +2 -0
- package/dist/migration/repoExclusions.js +37 -0
- package/dist/migration/repoExclusions.js.map +1 -0
- package/dist/provenance/cockpitModel.js.map +1 -1
- package/dist/provenance/conceptShape.js +2 -6
- package/dist/provenance/conceptShape.js.map +1 -1
- package/dist/provenance/crlConceptLayer.d.ts +1 -0
- package/dist/provenance/crlConceptLayer.js +5 -1
- package/dist/provenance/crlConceptLayer.js.map +1 -1
- package/dist/provenance/crlStructure.js +5 -5
- package/dist/provenance/crlStructure.js.map +1 -1
- package/dist/provenance/definedAsExpr.js +7 -2
- package/dist/provenance/definedAsExpr.js.map +1 -1
- package/dist/provenance/failedCriteria.js +4 -3
- package/dist/provenance/failedCriteria.js.map +1 -1
- package/dist/provenance/generate.js +11 -11
- package/dist/provenance/generate.js.map +1 -1
- package/dist/provenance/indexer.js +34 -12
- package/dist/provenance/indexer.js.map +1 -1
- package/dist/template-match/agePredicate.d.ts +8 -2
- package/dist/template-match/agePredicate.js +22 -3
- package/dist/template-match/agePredicate.js.map +1 -1
- package/dist/template-match/canonicalTypes.d.ts +12 -1
- package/dist/template-match/matcher.d.ts +18 -1
- package/dist/template-match/matcher.js +140 -14
- package/dist/template-match/matcher.js.map +1 -1
- package/dist/template-match/operandConstraints.d.ts +17 -0
- package/dist/template-match/operandConstraints.js +71 -0
- package/dist/template-match/operandConstraints.js.map +1 -0
- package/dist/template-match/patternCatalog.d.ts +35 -0
- package/dist/template-match/patternCatalog.js +148 -0
- package/dist/template-match/patternCatalog.js.map +1 -0
- package/dist/template-match/pipeline.d.ts +19 -0
- package/dist/template-match/pipeline.js +46 -0
- package/dist/template-match/pipeline.js.map +1 -0
- package/dist/template-match/recencyProjectionOverride.d.ts +56 -0
- package/dist/template-match/recencyProjectionOverride.js +160 -0
- package/dist/template-match/recencyProjectionOverride.js.map +1 -0
- package/dist/template-match/recencyValueConcept.d.ts +14 -0
- package/dist/template-match/recencyValueConcept.js +82 -0
- package/dist/template-match/recencyValueConcept.js.map +1 -0
- package/dist/template-match/referenceRoles.d.ts +6 -0
- package/dist/template-match/referenceRoles.js +76 -0
- package/dist/template-match/referenceRoles.js.map +1 -0
- package/dist/template-match/resolvePipeline.d.ts +87 -0
- package/dist/template-match/resolvePipeline.js +227 -0
- package/dist/template-match/resolvePipeline.js.map +1 -0
- package/dist/validator/agePredicateValidator.js +50 -25
- package/dist/validator/agePredicateValidator.js.map +1 -1
- package/dist/validator/answerOptionsValidator.d.ts +7 -0
- package/dist/validator/answerOptionsValidator.js +169 -0
- package/dist/validator/answerOptionsValidator.js.map +1 -0
- package/dist/validator/conceptSubstanceValidator.d.ts +7 -0
- package/dist/validator/conceptSubstanceValidator.js +41 -0
- package/dist/validator/conceptSubstanceValidator.js.map +1 -0
- package/dist/validator/cycleDetector.js +18 -1
- package/dist/validator/cycleDetector.js.map +1 -1
- package/dist/validator/emitCapabilityValidator.d.ts +7 -0
- package/dist/validator/emitCapabilityValidator.js +45 -0
- package/dist/validator/emitCapabilityValidator.js.map +1 -0
- package/dist/validator/membershipScopeValidator.d.ts +7 -0
- package/dist/validator/membershipScopeValidator.js +168 -0
- package/dist/validator/membershipScopeValidator.js.map +1 -0
- package/dist/validator/pipelineStageValidator.d.ts +9 -0
- package/dist/validator/pipelineStageValidator.js +103 -0
- package/dist/validator/pipelineStageValidator.js.map +1 -0
- package/dist/validator/recordSetBoundValidator.d.ts +9 -0
- package/dist/validator/recordSetBoundValidator.js +76 -0
- package/dist/validator/recordSetBoundValidator.js.map +1 -0
- package/dist/validator/reductionShapeValidator.d.ts +8 -0
- package/dist/validator/reductionShapeValidator.js +259 -0
- package/dist/validator/reductionShapeValidator.js.map +1 -0
- package/dist/validator/referenceResolver.js +26 -1
- package/dist/validator/referenceResolver.js.map +1 -1
- package/dist/validator/representationShapeValidator.d.ts +11 -0
- package/dist/validator/representationShapeValidator.js +246 -0
- package/dist/validator/representationShapeValidator.js.map +1 -0
- package/dist/validator/useSiteTypeValidator.d.ts +21 -0
- package/dist/validator/useSiteTypeValidator.js +645 -0
- package/dist/validator/useSiteTypeValidator.js.map +1 -0
- package/dist/validator/validator.d.ts +67 -3
- package/dist/validator/validator.js +27 -0
- package/dist/validator/validator.js.map +1 -1
- package/package.json +3 -2
- package/dist/cre/expandDecisions.d.ts +0 -13
- package/dist/cre/expandDecisions.js +0 -69
- package/dist/cre/expandDecisions.js.map +0 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { BranchCondition, BranchConditionAnd, BranchConditionOr, BranchConditionRef, BranchConditionCriterionRef, BranchConditionNot, BranchConditionLiteral, ReferenceName } from "./types";
|
|
2
|
-
import { type CriterionTable, type ExpandedSize, type ExpansionReason } from "./criterionExpansion";
|
|
3
2
|
export declare function visitBranchCondition<T>(c: BranchCondition, v: {
|
|
4
3
|
ref: (node: BranchConditionRef) => T;
|
|
5
4
|
and: (node: BranchConditionAnd, operands: T[]) => T;
|
|
@@ -9,20 +8,10 @@ export declare function visitBranchCondition<T>(c: BranchCondition, v: {
|
|
|
9
8
|
}): T;
|
|
10
9
|
export declare function branchConditionRefs(c: BranchCondition): BranchConditionRef[];
|
|
11
10
|
export declare function branchConditionConceptRefsStrict(c: BranchCondition, where: string): BranchConditionRef[];
|
|
12
|
-
export declare function branchConditionConceptRefsFollowingCriteria(c: BranchCondition, table: CriterionTable): BranchConditionRef[];
|
|
13
|
-
export declare function branchConditionConceptRefsExpanded(c: BranchCondition, table: CriterionTable, where: string): {
|
|
14
|
-
refs: BranchConditionRef[];
|
|
15
|
-
overflow?: {
|
|
16
|
-
status: ExpansionReason;
|
|
17
|
-
detail?: ExpandedSize["detail"];
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
11
|
export declare function containsNot(c: BranchCondition): boolean;
|
|
21
12
|
export declare function toNNF(c: BranchCondition): BranchCondition;
|
|
22
13
|
export declare function branchConditionDNF(c: BranchCondition): BranchConditionLiteral[][];
|
|
23
14
|
export declare function branchConditionArmCount(c: BranchCondition, cap?: number): number;
|
|
24
15
|
export declare function assertWellFormedBranchCondition(c: BranchCondition): void;
|
|
25
16
|
export declare function soleRef(c: BranchCondition): BranchConditionRef | null;
|
|
26
|
-
export declare function describeBranchCondition(c: BranchCondition, display: (r: ReferenceName) => string
|
|
27
|
-
markerAware?: boolean;
|
|
28
|
-
}): string;
|
|
17
|
+
export declare function describeBranchCondition(c: BranchCondition, display: (r: ReferenceName) => string): string;
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.visitBranchCondition = visitBranchCondition;
|
|
4
4
|
exports.branchConditionRefs = branchConditionRefs;
|
|
5
5
|
exports.branchConditionConceptRefsStrict = branchConditionConceptRefsStrict;
|
|
6
|
-
exports.branchConditionConceptRefsFollowingCriteria = branchConditionConceptRefsFollowingCriteria;
|
|
7
|
-
exports.branchConditionConceptRefsExpanded = branchConditionConceptRefsExpanded;
|
|
8
6
|
exports.containsNot = containsNot;
|
|
9
7
|
exports.toNNF = toNNF;
|
|
10
8
|
exports.branchConditionDNF = branchConditionDNF;
|
|
@@ -12,10 +10,8 @@ exports.branchConditionArmCount = branchConditionArmCount;
|
|
|
12
10
|
exports.assertWellFormedBranchCondition = assertWellFormedBranchCondition;
|
|
13
11
|
exports.soleRef = soleRef;
|
|
14
12
|
exports.describeBranchCondition = describeBranchCondition;
|
|
15
|
-
const types_1 = require("./types");
|
|
16
|
-
const criterionExpansion_1 = require("./criterionExpansion");
|
|
17
13
|
function unexpandedCriterion(node, where) {
|
|
18
|
-
throw new Error(`internal:
|
|
14
|
+
throw new Error(`internal: criterion reference "${String(node.ref)}" reached ${where}, a CONCEPT-ONLY seam — a criterion is not a concept ref (post-#236 it lowers to a referenced boolean define); a concept-only collector must route criteria explicitly`);
|
|
19
15
|
}
|
|
20
16
|
function visitBranchCondition(c, v) {
|
|
21
17
|
switch (c.type) {
|
|
@@ -65,44 +61,6 @@ function branchConditionConceptRefsStrict(c, where) {
|
|
|
65
61
|
walk(c);
|
|
66
62
|
return out;
|
|
67
63
|
}
|
|
68
|
-
function branchConditionConceptRefsFollowingCriteria(c, table) {
|
|
69
|
-
if ((0, criterionExpansion_1.containsCriterionRef)(c) && (0, criterionExpansion_1.expandedSize)(c, table).status !== "ok") {
|
|
70
|
-
return branchConditionRefs(c);
|
|
71
|
-
}
|
|
72
|
-
const out = [];
|
|
73
|
-
const active = new Set();
|
|
74
|
-
const walk = (n) => {
|
|
75
|
-
if (n.type === "BranchConditionRef") {
|
|
76
|
-
out.push(n);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (n.type === "BranchConditionCriterionRef") {
|
|
80
|
-
const name = (0, types_1.getRefName)(n.ref);
|
|
81
|
-
const crit = table.get(name);
|
|
82
|
-
if (!crit || active.has(name))
|
|
83
|
-
return;
|
|
84
|
-
active.add(name);
|
|
85
|
-
walk(crit.condition);
|
|
86
|
-
active.delete(name);
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (n.type === "BranchConditionNot") {
|
|
90
|
-
if (n.operand)
|
|
91
|
-
walk(n.operand);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (Array.isArray(n.operands))
|
|
95
|
-
n.operands.forEach(walk);
|
|
96
|
-
};
|
|
97
|
-
walk(c);
|
|
98
|
-
return out;
|
|
99
|
-
}
|
|
100
|
-
function branchConditionConceptRefsExpanded(c, table, where) {
|
|
101
|
-
const g = (0, criterionExpansion_1.expandGuardOrRecord)(c, table);
|
|
102
|
-
if (!g.ok)
|
|
103
|
-
return { refs: [], overflow: { status: g.status, detail: g.detail } };
|
|
104
|
-
return { refs: branchConditionConceptRefsStrict(g.cond, where) };
|
|
105
|
-
}
|
|
106
64
|
function containsNot(c) {
|
|
107
65
|
switch (c.type) {
|
|
108
66
|
case "BranchConditionNot":
|
|
@@ -116,23 +74,28 @@ function containsNot(c) {
|
|
|
116
74
|
}
|
|
117
75
|
}
|
|
118
76
|
function toNNF(c) {
|
|
119
|
-
if (!containsNot(c)
|
|
77
|
+
if (!containsNot(c))
|
|
120
78
|
return c;
|
|
121
79
|
const nnf = (n, negated) => {
|
|
122
|
-
const withMarker = (out) => n.sourcedFromCriterion ? { ...out, sourcedFromCriterion: n.sourcedFromCriterion } : out;
|
|
123
80
|
switch (n.type) {
|
|
124
81
|
case "BranchConditionCriterionRef":
|
|
125
|
-
|
|
82
|
+
if (!negated)
|
|
83
|
+
return n;
|
|
84
|
+
return {
|
|
85
|
+
type: "BranchConditionNot",
|
|
86
|
+
operand: { type: "BranchConditionCriterionRef", ref: n.ref, location: n.location },
|
|
87
|
+
location: n.location,
|
|
88
|
+
};
|
|
126
89
|
case "BranchConditionRef":
|
|
127
90
|
if (!negated)
|
|
128
|
-
return
|
|
129
|
-
return
|
|
91
|
+
return n;
|
|
92
|
+
return {
|
|
130
93
|
type: "BranchConditionNot",
|
|
131
94
|
operand: { type: "BranchConditionRef", ref: n.ref, location: n.location },
|
|
132
95
|
location: n.location,
|
|
133
|
-
}
|
|
96
|
+
};
|
|
134
97
|
case "BranchConditionNot":
|
|
135
|
-
return
|
|
98
|
+
return nnf(n.operand, !negated);
|
|
136
99
|
case "BranchConditionAnd":
|
|
137
100
|
case "BranchConditionOr": {
|
|
138
101
|
const flipTo = negated && n.type === "BranchConditionAnd"
|
|
@@ -140,11 +103,11 @@ function toNNF(c) {
|
|
|
140
103
|
: negated && n.type === "BranchConditionOr"
|
|
141
104
|
? "BranchConditionAnd"
|
|
142
105
|
: n.type;
|
|
143
|
-
return
|
|
106
|
+
return {
|
|
144
107
|
type: flipTo,
|
|
145
108
|
operands: n.operands.map((o) => nnf(o, negated)),
|
|
146
109
|
location: n.location,
|
|
147
|
-
}
|
|
110
|
+
};
|
|
148
111
|
}
|
|
149
112
|
}
|
|
150
113
|
};
|
|
@@ -156,13 +119,14 @@ function branchConditionDNF(c) {
|
|
|
156
119
|
case "BranchConditionRef":
|
|
157
120
|
return [[n]];
|
|
158
121
|
case "BranchConditionNot": {
|
|
159
|
-
if (n.operand.type
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
122
|
+
if (n.operand.type === "BranchConditionRef")
|
|
123
|
+
return [[n]];
|
|
124
|
+
if (n.operand.type === "BranchConditionCriterionRef")
|
|
125
|
+
return [[n]];
|
|
126
|
+
throw new Error(`internal: branchConditionDNF saw a non-normalized negation over ${n.operand.type} — toNNF must run first`);
|
|
163
127
|
}
|
|
164
128
|
case "BranchConditionCriterionRef":
|
|
165
|
-
return
|
|
129
|
+
return [[n]];
|
|
166
130
|
case "BranchConditionOr":
|
|
167
131
|
return n.operands.flatMap((o) => dnf(o));
|
|
168
132
|
case "BranchConditionAnd": {
|
|
@@ -189,7 +153,7 @@ function branchConditionArmCount(c, cap = 16) {
|
|
|
189
153
|
if (n.type === "BranchConditionNot")
|
|
190
154
|
return 1;
|
|
191
155
|
if (n.type === "BranchConditionCriterionRef")
|
|
192
|
-
return
|
|
156
|
+
return 1;
|
|
193
157
|
if (n.type === "BranchConditionOr") {
|
|
194
158
|
let sum = 0;
|
|
195
159
|
for (const o of n.operands) {
|
|
@@ -227,17 +191,12 @@ function assertWellFormedBranchCondition(c) {
|
|
|
227
191
|
function soleRef(c) {
|
|
228
192
|
return c.type === "BranchConditionRef" ? c : null;
|
|
229
193
|
}
|
|
230
|
-
function describeBranchCondition(c, display
|
|
231
|
-
const markerAware = opts.markerAware ?? false;
|
|
232
|
-
const isNameLeaf = (n) => markerAware && n.sourcedFromCriterion !== undefined;
|
|
194
|
+
function describeBranchCondition(c, display) {
|
|
233
195
|
const go = (n, parentOp) => {
|
|
234
|
-
if (isNameLeaf(n))
|
|
235
|
-
return display(n.sourcedFromCriterion.name);
|
|
236
196
|
if (n.type === "BranchConditionRef" || n.type === "BranchConditionCriterionRef")
|
|
237
197
|
return display(n.ref);
|
|
238
198
|
if (n.type === "BranchConditionNot") {
|
|
239
|
-
const compound =
|
|
240
|
-
(n.operand.type === "BranchConditionAnd" || n.operand.type === "BranchConditionOr");
|
|
199
|
+
const compound = n.operand.type === "BranchConditionAnd" || n.operand.type === "BranchConditionOr";
|
|
241
200
|
const inner = go(n.operand, null);
|
|
242
201
|
return `not ${compound ? `(${inner})` : inner}`;
|
|
243
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branchCondition.js","sourceRoot":"","sources":["../../src/ast/branchCondition.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"branchCondition.js","sourceRoot":"","sources":["../../src/ast/branchCondition.ts"],"names":[],"mappings":"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"}
|
package/dist/ast/builder.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
|
|
2
2
|
import { AbstractParseTreeVisitor } from "antlr4ts/tree/AbstractParseTreeVisitor";
|
|
3
|
-
import { CrlContext, DecisionStatementContext, CriterionStatementContext, DecisionBodyContext, BranchItemContext, BlockBodyContext, ActionItemContext, ActionStatementContext, RecommendStatementContext, UseStatementContext, TerminologyStatementContext, TerminologyValuesetContext, ActivityStatementContext, ConceptStatementContext, ParameterStatementContext, LibraryStatementContext, IncludeStatementContext,
|
|
3
|
+
import { CrlContext, 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
|
-
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, DefinedAsComposition, CompositionExpression, CompositionRef, CompositionGroup, DefinitionIsDefinition, NarrativeClause, NConceptRef, NWord, NDisjunction, NConjunction, Quantity } from "./types";
|
|
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
7
|
import type { CRL, LibraryDeclaration, Include } from "./types";
|
|
8
8
|
export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> implements CRLParserVisitor<ASTNode> {
|
|
9
9
|
private readonly errors;
|
|
@@ -39,16 +39,24 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
|
|
|
39
39
|
visitActivityWith(ctx: import("../grammar/generated/antlr/CRLParser").ActivityWithContext): ActivityWith;
|
|
40
40
|
visitActivityBecause(ctx: import("../grammar/generated/antlr/CRLParser").ActivityBecauseContext): ActivityBecause;
|
|
41
41
|
private parseConceptTypes;
|
|
42
|
+
private parseConceptShape;
|
|
43
|
+
private reportDuplicateLines;
|
|
44
|
+
private checkConceptBodyCardinality;
|
|
45
|
+
private checkRepresentationBodyCardinality;
|
|
42
46
|
private metaFrom;
|
|
43
47
|
private parseEvidence;
|
|
44
48
|
private parseConceptDefinition;
|
|
45
49
|
private buildCodedFrom;
|
|
50
|
+
private parseValueFrom;
|
|
46
51
|
private parseCode;
|
|
52
|
+
private parseValueElement;
|
|
47
53
|
private parseRepresentations;
|
|
48
54
|
visitParameterStatement(ctx: ParameterStatementContext): Parameter;
|
|
49
55
|
visitConceptStatement(ctx: ConceptStatementContext): Concept;
|
|
50
56
|
visitDefinedAsBareRef(ctx: DefinedAsBareRefContext): DefinedAsBareRef;
|
|
57
|
+
visitDefinedAsExists(ctx: DefinedAsExistsContext): DefinedAsExists;
|
|
51
58
|
visitDefinedAsComposition(ctx: DefinedAsCompositionContext): DefinedAsComposition;
|
|
59
|
+
visitDefinedAsBooleanComposition(ctx: DefinedAsBooleanCompositionContext): DefinedAsBooleanComposition;
|
|
52
60
|
visitCompositionExpression(ctx: CompositionExpressionContext): CompositionExpression;
|
|
53
61
|
visitSemOr(ctx: SemOrContext): CompositionExpression;
|
|
54
62
|
visitSemAnd(ctx: SemAndContext): CompositionExpression;
|
|
@@ -56,7 +64,9 @@ export declare class CRLAstBuilder extends AbstractParseTreeVisitor<ASTNode> imp
|
|
|
56
64
|
visitCompositionRef(ctx: CompositionRefContext): CompositionRef;
|
|
57
65
|
visitCompositionGroup(ctx: CompositionGroupContext): CompositionGroup;
|
|
58
66
|
visitDefinedAsBody(ctx: DefinedAsBodyContext): DefinedAsDefinition;
|
|
59
|
-
|
|
67
|
+
visitCountDefinition(ctx: CountDefinitionContext): ReductionDefinition;
|
|
68
|
+
visitNarrativeDefinition(ctx: NarrativeDefinitionContext): DefinitionIsDefinition | ReductionDefinition;
|
|
69
|
+
private buildReductionTarget;
|
|
60
70
|
visitNarrative(ctx: NarrativeContext): NarrativeClause;
|
|
61
71
|
visitNConceptRef(ctx: NConceptRefContext): NConceptRef;
|
|
62
72
|
visitNQuantity(ctx: NQuantityContext): Quantity;
|