@smile-digital-health/crl 0.7.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.
Files changed (107) hide show
  1. package/README.md +502 -0
  2. package/dist/ast/builder.d.ts +45 -0
  3. package/dist/ast/builder.js +389 -0
  4. package/dist/ast/builder.js.map +1 -0
  5. package/dist/ast/types.d.ts +223 -0
  6. package/dist/ast/types.js +73 -0
  7. package/dist/ast/types.js.map +1 -0
  8. package/dist/ast/utils.d.ts +14 -0
  9. package/dist/ast/utils.js +65 -0
  10. package/dist/ast/utils.js.map +1 -0
  11. package/dist/cli/run-ast.d.ts +1 -0
  12. package/dist/cli/run-ast.js +24 -0
  13. package/dist/cli/run-ast.js.map +1 -0
  14. package/dist/cli/run-lexer.d.ts +1 -0
  15. package/dist/cli/run-lexer.js +41 -0
  16. package/dist/cli/run-lexer.js.map +1 -0
  17. package/dist/cli/run-parser.d.ts +1 -0
  18. package/dist/cli/run-parser.js +33 -0
  19. package/dist/cli/run-parser.js.map +1 -0
  20. package/dist/cli/run-transformer-fsh-to-crl.d.ts +1 -0
  21. package/dist/cli/run-transformer-fsh-to-crl.js +20 -0
  22. package/dist/cli/run-transformer-fsh-to-crl.js.map +1 -0
  23. package/dist/cli/run-validator.d.ts +1 -0
  24. package/dist/cli/run-validator.js +37 -0
  25. package/dist/cli/run-validator.js.map +1 -0
  26. package/dist/grammar/activityTypes.d.ts +2 -0
  27. package/dist/grammar/activityTypes.js +9 -0
  28. package/dist/grammar/activityTypes.js.map +1 -0
  29. package/dist/grammar/conceptTypes.d.ts +2 -0
  30. package/dist/grammar/conceptTypes.js +9 -0
  31. package/dist/grammar/conceptTypes.js.map +1 -0
  32. package/dist/grammar/conceptValueTypes.d.ts +2 -0
  33. package/dist/grammar/conceptValueTypes.js +9 -0
  34. package/dist/grammar/conceptValueTypes.js.map +1 -0
  35. package/dist/grammar/generated/antlr/CRLLexer.d.ts +84 -0
  36. package/dist/grammar/generated/antlr/CRLLexer.js +505 -0
  37. package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -0
  38. package/dist/grammar/generated/antlr/CRLParser.d.ts +653 -0
  39. package/dist/grammar/generated/antlr/CRLParser.js +3466 -0
  40. package/dist/grammar/generated/antlr/CRLParser.js.map +1 -0
  41. package/dist/grammar/generated/antlr/CRLParserListener.d.ts +162 -0
  42. package/dist/grammar/generated/antlr/CRLParserListener.js +3 -0
  43. package/dist/grammar/generated/antlr/CRLParserListener.js.map +1 -0
  44. package/dist/grammar/generated/antlr/CRLParserVisitor.d.ts +109 -0
  45. package/dist/grammar/generated/antlr/CRLParserVisitor.js +3 -0
  46. package/dist/grammar/generated/antlr/CRLParserVisitor.js.map +1 -0
  47. package/dist/grammar/generated/types/activityTypes.json +16 -0
  48. package/dist/grammar/generated/types/conceptTypes.json +26 -0
  49. package/dist/grammar/generated/types/conceptValueTypes.json +14 -0
  50. package/dist/index.d.ts +18 -0
  51. package/dist/index.js +147 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/lexer/CRLLexerErrorListener.d.ts +16 -0
  54. package/dist/lexer/CRLLexerErrorListener.js +168 -0
  55. package/dist/lexer/CRLLexerErrorListener.js.map +1 -0
  56. package/dist/lexer/createLexer.d.ts +6 -0
  57. package/dist/lexer/createLexer.js +14 -0
  58. package/dist/lexer/createLexer.js.map +1 -0
  59. package/dist/lexer/index.d.ts +1 -0
  60. package/dist/lexer/index.js +6 -0
  61. package/dist/lexer/index.js.map +1 -0
  62. package/dist/parser/CustomParserErrorListener.d.ts +8 -0
  63. package/dist/parser/CustomParserErrorListener.js +37 -0
  64. package/dist/parser/CustomParserErrorListener.js.map +1 -0
  65. package/dist/parser/createParser.d.ts +7 -0
  66. package/dist/parser/createParser.js +17 -0
  67. package/dist/parser/createParser.js.map +1 -0
  68. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.d.ts +41 -0
  69. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.js +229 -0
  70. package/dist/transformer/fsh-to-crl/mapping/activityDefinition.js.map +1 -0
  71. package/dist/transformer/fsh-to-crl/mapping/concept.d.ts +1 -0
  72. package/dist/transformer/fsh-to-crl/mapping/concept.js +14 -0
  73. package/dist/transformer/fsh-to-crl/mapping/concept.js.map +1 -0
  74. package/dist/transformer/fsh-to-crl/mapping/planDefinition.d.ts +14 -0
  75. package/dist/transformer/fsh-to-crl/mapping/planDefinition.js +235 -0
  76. package/dist/transformer/fsh-to-crl/mapping/planDefinition.js.map +1 -0
  77. package/dist/transformer/fsh-to-crl/mapping/terminology.d.ts +1 -0
  78. package/dist/transformer/fsh-to-crl/mapping/terminology.js +10 -0
  79. package/dist/transformer/fsh-to-crl/mapping/terminology.js.map +1 -0
  80. package/dist/transformer/fsh-to-crl/transformer.d.ts +1 -0
  81. package/dist/transformer/fsh-to-crl/transformer.js +172 -0
  82. package/dist/transformer/fsh-to-crl/transformer.js.map +1 -0
  83. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.d.ts +11 -0
  84. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.js +23 -0
  85. package/dist/transformer/fsh-to-crl/utils/activityDeduplication.js.map +1 -0
  86. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.d.ts +12 -0
  87. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.js +73 -0
  88. package/dist/transformer/fsh-to-crl/utils/fshPathFunctions.js.map +1 -0
  89. package/dist/types/errors.d.ts +8 -0
  90. package/dist/types/errors.js +3 -0
  91. package/dist/types/errors.js.map +1 -0
  92. package/dist/validator/actionUniquenessValidator.d.ts +20 -0
  93. package/dist/validator/actionUniquenessValidator.js +280 -0
  94. package/dist/validator/actionUniquenessValidator.js.map +1 -0
  95. package/dist/validator/cycleDetector.d.ts +13 -0
  96. package/dist/validator/cycleDetector.js +79 -0
  97. package/dist/validator/cycleDetector.js.map +1 -0
  98. package/dist/validator/nameUniquenessValidator.d.ts +5 -0
  99. package/dist/validator/nameUniquenessValidator.js +87 -0
  100. package/dist/validator/nameUniquenessValidator.js.map +1 -0
  101. package/dist/validator/unusedDeclarationsValidator.d.ts +21 -0
  102. package/dist/validator/unusedDeclarationsValidator.js +190 -0
  103. package/dist/validator/unusedDeclarationsValidator.js.map +1 -0
  104. package/dist/validator/validator.d.ts +27 -0
  105. package/dist/validator/validator.js +30 -0
  106. package/dist/validator/validator.js.map +1 -0
  107. package/package.json +92 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ACTIVITY_DEFINITION_URLS = void 0;
4
+ exports.getActivityPerformClause = getActivityPerformClause;
5
+ exports.getNextActivityId = getNextActivityId;
6
+ exports.emitActivityBlock = emitActivityBlock;
7
+ const fshPathFunctions_1 = require("../utils/fshPathFunctions");
8
+ exports.ACTIVITY_DEFINITION_URLS = [
9
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-communicationactivity",
10
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-collectinformationactivity",
11
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-enrollmentactivity",
12
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-generatereportactivityn",
13
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-medicationrequestactivity",
14
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-dispensemedicationactivity",
15
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-administermedicationactivity",
16
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-documentmedicationactivity",
17
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-immunizationactivity",
18
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-servicerequestactivity",
19
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-proposediagnosisactivity",
20
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recorddetectedissueactivity",
21
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recordinferenceactivity",
22
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-reportflagactivity",
23
+ ];
24
+ function formatActivityValue(value) {
25
+ if (!value) {
26
+ return "";
27
+ }
28
+ return value.length > 80 ? `\n of ${value}` : ` of ${value}`;
29
+ }
30
+ function getActivityPerformClause(activityDef) {
31
+ let kind = undefined;
32
+ let doNotPerform = false;
33
+ if (activityDef && Array.isArray(activityDef.rules)) {
34
+ const kindRule = activityDef.rules.find((r) => r.path === "kind");
35
+ if (kindRule) {
36
+ if (typeof kindRule.value === "string") {
37
+ kind = "CPG" + kindRule.value.replace(/#/g, "");
38
+ }
39
+ else if (kindRule.value && typeof kindRule.value === "object" && "code" in kindRule.value) {
40
+ kind = "CPG" + String(kindRule.value.code).replace(/#/g, "");
41
+ }
42
+ }
43
+ const doNotPerformRule = activityDef.rules.find((r) => r.path === "doNotPerform");
44
+ if (doNotPerformRule && doNotPerformRule.value === true) {
45
+ doNotPerform = true;
46
+ }
47
+ if (!kindRule) {
48
+ }
49
+ }
50
+ let activityValue = undefined;
51
+ let value = undefined;
52
+ let terminology = undefined;
53
+ if (activityDef && Array.isArray(activityDef.rules)) {
54
+ const pccRule = activityDef.rules.find((r) => r.path === "medicationCodeableConcept");
55
+ if (pccRule) {
56
+ if (typeof pccRule.value === "object" &&
57
+ pccRule.value !== null &&
58
+ "display" in pccRule.value &&
59
+ typeof pccRule.value.display === "string") {
60
+ activityValue = `"${pccRule.value.display}"`;
61
+ value = pccRule.value.display;
62
+ const system = "system" in pccRule.value && typeof pccRule.value.system === "string"
63
+ ? pccRule.value.system
64
+ : "";
65
+ const code = "code" in pccRule.value && typeof pccRule.value.code === "string"
66
+ ? pccRule.value.code
67
+ : "";
68
+ const displayStr = pccRule.value.display;
69
+ if (displayStr && code && system) {
70
+ terminology = { identifier: displayStr, code, system };
71
+ }
72
+ }
73
+ else if (typeof pccRule.value === "object" &&
74
+ pccRule.value !== null &&
75
+ "code" in pccRule.value &&
76
+ typeof pccRule.value.code === "string") {
77
+ activityValue = `"${pccRule.value.code}"`;
78
+ value = pccRule.value.code;
79
+ }
80
+ else if (typeof pccRule.value === "string") {
81
+ const match = /^.*?"(.*?)"$/.exec(pccRule.value);
82
+ if (match) {
83
+ activityValue = `"${match[1]}"`;
84
+ value = match[1];
85
+ }
86
+ }
87
+ }
88
+ if (!activityValue) {
89
+ const dvRules = activityDef.rules.filter((r) => r.path.startsWith("dynamicValue"));
90
+ for (const rule of dvRules) {
91
+ if (rule.path.endsWith(".path") && rule.value === "code.coding") {
92
+ const prefix = rule.path.replace(/\.path$/, "");
93
+ const descRule = activityDef.rules.find((r) => r.path === `${prefix}.expression.description`);
94
+ const exprRule = activityDef.rules.find((r) => r.path === `${prefix}.expression.expression`);
95
+ if (descRule && typeof descRule.value === "string") {
96
+ activityValue = `"${descRule.value}"`;
97
+ value = descRule.value;
98
+ }
99
+ if (exprRule && typeof exprRule.value === "string") {
100
+ const codeStr = (0, fshPathFunctions_1.extractCodeExpression)(exprRule.value);
101
+ let system = "", code = "";
102
+ const sysMatch = /system "([^"]+)"/.exec(codeStr);
103
+ const codeMatch = /code "([^"]+)"/.exec(codeStr);
104
+ if (sysMatch)
105
+ system = sysMatch[1];
106
+ if (codeMatch)
107
+ code = codeMatch[1];
108
+ if (descRule && typeof descRule.value === "string" && code) {
109
+ terminology = { identifier: descRule.value, code, system };
110
+ }
111
+ }
112
+ }
113
+ }
114
+ }
115
+ }
116
+ if (!kind && !activityValue) {
117
+ return { clauseString: "", value };
118
+ }
119
+ const clauseString = `\n ${doNotPerform ? "do not perform" : "perform"} ${kind}${formatActivityValue(activityValue)}`;
120
+ return { clauseString, value, terminology };
121
+ }
122
+ let activityIdCounter = 0;
123
+ function getNextActivityId() {
124
+ return `activity_${++activityIdCounter}`;
125
+ }
126
+ function emitActivityBlock(node, canonicalValueStr, allInstances, activities, indent, hasPlanDef, doReferences) {
127
+ const referenced = allInstances.find((inst) => inst.name === canonicalValueStr);
128
+ const doIdentifier = node.title ? (0, fshPathFunctions_1.toIdentifier)(node.title) : "UnnamedActivity";
129
+ let activityDescription = node.description ? node.description : undefined;
130
+ if (referenced?.rules) {
131
+ const descRule = referenced.rules.find((r) => r.path === "Description");
132
+ activityDescription = descRule ? descRule.value : undefined;
133
+ }
134
+ let hasActivityDef = false;
135
+ let activityDefInstance = null;
136
+ let useIdentifier = "";
137
+ if (canonicalValueStr) {
138
+ if (referenced && exports.ACTIVITY_DEFINITION_URLS.includes(referenced.instanceOf ?? "")) {
139
+ hasActivityDef = true;
140
+ activityDefInstance = referenced;
141
+ }
142
+ if (hasPlanDef && referenced?.title) {
143
+ useIdentifier = (0, fshPathFunctions_1.toIdentifier)(referenced.title);
144
+ }
145
+ else if (hasPlanDef && canonicalValueStr) {
146
+ useIdentifier = (0, fshPathFunctions_1.toIdentifier)(canonicalValueStr);
147
+ }
148
+ }
149
+ let rationale = undefined;
150
+ if (Array.isArray(node.extension)) {
151
+ const rationaleExt = node.extension.find((ext) => ext.url === "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-rationale" &&
152
+ typeof ext.valueMarkdown === "string" &&
153
+ ext.valueMarkdown.trim() !== "");
154
+ if (rationaleExt) {
155
+ rationale = `\n because \`${rationaleExt.valueMarkdown.replace(/`/g, "`")}\``;
156
+ }
157
+ }
158
+ let output = "";
159
+ if (hasPlanDef && hasActivityDef) {
160
+ output += `:\n`;
161
+ output += `${indent} use ${useIdentifier}.\n`;
162
+ const activityId = getNextActivityId();
163
+ const placeholder = `<<ACTIVITY_REF:${activityId}>>`;
164
+ output += `${indent} do ${placeholder}.\n`;
165
+ output += `${indent}done\n`;
166
+ if (activityDefInstance) {
167
+ const { clauseString, value, terminology } = getActivityPerformClause(activityDefInstance);
168
+ activities.push({
169
+ id: activityId,
170
+ name: doIdentifier,
171
+ value,
172
+ original: `activity ${doIdentifier}${clauseString}${rationale ?? ""}.\n\n`,
173
+ ...(terminology ? { terminology } : {}),
174
+ });
175
+ doReferences.push({ id: activityId, placeholder });
176
+ }
177
+ else {
178
+ activities.push({
179
+ id: activityId,
180
+ name: doIdentifier,
181
+ value: undefined,
182
+ original: `activity ${doIdentifier} // TODO: activity details${rationale ?? ""}.\n\n`,
183
+ });
184
+ doReferences.push({ id: activityId, placeholder });
185
+ }
186
+ }
187
+ else if (hasPlanDef) {
188
+ output += ` use ${useIdentifier}.\n`;
189
+ }
190
+ else if (hasActivityDef) {
191
+ const activityId = getNextActivityId();
192
+ const placeholder = `<<ACTIVITY_REF:${activityId}>>`;
193
+ output += ` do ${placeholder}.\n`;
194
+ if (activityDefInstance) {
195
+ const { clauseString, value, terminology } = getActivityPerformClause(activityDefInstance);
196
+ activities.push({
197
+ id: activityId,
198
+ name: doIdentifier,
199
+ value,
200
+ original: `activity ${doIdentifier}${clauseString}${rationale ?? ""}.\n\n`,
201
+ ...(terminology ? { terminology } : {}),
202
+ });
203
+ doReferences.push({ id: activityId, placeholder });
204
+ }
205
+ else {
206
+ activities.push({
207
+ id: activityId,
208
+ name: doIdentifier,
209
+ value: undefined,
210
+ original: `activity ${doIdentifier} // TODO: activity details${rationale ?? ""}.\n\n`,
211
+ });
212
+ doReferences.push({ id: activityId, placeholder });
213
+ }
214
+ }
215
+ else {
216
+ const activityId = getNextActivityId();
217
+ const placeholder = `<<ACTIVITY_REF:${activityId}>>`;
218
+ output += ` do ${placeholder}.\n`;
219
+ activities.push({
220
+ id: activityId,
221
+ name: doIdentifier,
222
+ value: activityDescription,
223
+ original: `activity ${doIdentifier}\n perform CPGCommunicationRequest${formatActivityValue("`" + (activityDescription ?? "TODO: fill in message.") + "`")}${rationale ?? ""}.\n\n`,
224
+ });
225
+ doReferences.push({ id: activityId, placeholder });
226
+ }
227
+ return output;
228
+ }
229
+ //# sourceMappingURL=activityDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityDefinition.js","sourceRoot":"","sources":["../../../../src/transformer/fsh-to-crl/mapping/activityDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function mapConcept(identifiers: string[]): string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapConcept = mapConcept;
4
+ const fshPathFunctions_1 = require("../utils/fshPathFunctions");
5
+ function mapConcept(identifiers) {
6
+ return identifiers
7
+ .map((id) => `concept ${(0, fshPathFunctions_1.toIdentifier)(id)}:
8
+ has type Observation.
9
+ has valuetype boolean.
10
+ coded by ${(0, fshPathFunctions_1.toIdentifier)(id)}.
11
+ done\n`)
12
+ .join("\n");
13
+ }
14
+ //# sourceMappingURL=concept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concept.js","sourceRoot":"","sources":["../../../../src/transformer/fsh-to-crl/mapping/concept.ts"],"names":[],"mappings":";;AAMA,gCAWC;AAjBD,gEAAyD;AAMzD,SAAgB,UAAU,CAAC,WAAqB;IAC9C,OAAO,WAAW;SACf,GAAG,CACF,CAAC,EAAE,EAAE,EAAE,CACL,WAAW,IAAA,+BAAY,EAAC,EAAE,CAAC;;;eAGpB,IAAA,+BAAY,EAAC,EAAE,CAAC;OACxB,CACF;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ActivityDef } from "./activityDefinition";
2
+ export declare function mapPlanDefinitionToDecision(instance: unknown, allInstances: ActivityDef[]): {
3
+ decision: string;
4
+ activities: {
5
+ id: string;
6
+ name: string;
7
+ value: string | undefined;
8
+ original: string;
9
+ }[];
10
+ doReferences: {
11
+ id: string;
12
+ placeholder: string;
13
+ }[];
14
+ };
@@ -0,0 +1,235 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapPlanDefinitionToDecision = mapPlanDefinitionToDecision;
4
+ const PLAN_DEFINITION_URLS = [
5
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-strategydefinition",
6
+ "http://hl7.org/fhir/uv/cpg/StructureDefinition/cpg-recommendationdefinition",
7
+ ];
8
+ const fshPathFunctions_1 = require("../utils/fshPathFunctions");
9
+ const activityDefinition_1 = require("./activityDefinition");
10
+ function emitWhenBlocksRecursive(nodes, activities, allInstances, instance, indent = " ", doReferences) {
11
+ let output = "";
12
+ const groups = {};
13
+ for (const node of nodes) {
14
+ const cond = node.conditionExpression ?? "";
15
+ if (!groups[cond])
16
+ groups[cond] = [];
17
+ groups[cond].push(node);
18
+ }
19
+ for (const cond in groups) {
20
+ const group = groups[cond];
21
+ if (cond === "") {
22
+ for (const node of group) {
23
+ if (node.title) {
24
+ output += `${indent}// ${node.title}\n`;
25
+ }
26
+ }
27
+ }
28
+ if (group.length === 1 && group[0].children.length > 0) {
29
+ const node = group[0];
30
+ output += `${indent}when "${cond}" then:\n`;
31
+ output += emitWhenBlocksRecursive(node.children, activities, allInstances, instance, indent + " ", doReferences);
32
+ output += `${indent}done\n`;
33
+ continue;
34
+ }
35
+ if (group.length > 1) {
36
+ output += `${indent}when "${cond}" then:\n`;
37
+ for (const node of group) {
38
+ let canonicalValueStr = undefined;
39
+ if (node.definitionCanonical) {
40
+ if (typeof node.definitionCanonical === "string") {
41
+ if (node.definitionCanonical.startsWith("Canonical(")) {
42
+ canonicalValueStr = node.definitionCanonical.replace(/^Canonical\((.*)\)$/, "$1");
43
+ }
44
+ else {
45
+ canonicalValueStr = node.definitionCanonical;
46
+ }
47
+ }
48
+ else if (typeof node.definitionCanonical === "object" &&
49
+ "entityName" in node.definitionCanonical) {
50
+ canonicalValueStr = node.definitionCanonical.entityName;
51
+ }
52
+ }
53
+ let hasPlanDef = false;
54
+ if (canonicalValueStr) {
55
+ const referenced = allInstances.find((inst) => typeof inst === "object" &&
56
+ inst !== null &&
57
+ "name" in inst &&
58
+ typeof inst.name === "string" &&
59
+ inst.name === canonicalValueStr &&
60
+ "instanceOf" in inst &&
61
+ typeof inst.instanceOf === "string");
62
+ if (referenced &&
63
+ typeof referenced === "object" &&
64
+ referenced !== null &&
65
+ "instanceOf" in referenced &&
66
+ PLAN_DEFINITION_URLS.includes(referenced.instanceOf)) {
67
+ hasPlanDef = true;
68
+ }
69
+ }
70
+ const actionLine = (0, activityDefinition_1.emitActivityBlock)(node, canonicalValueStr, allInstances, activities, indent + " ", hasPlanDef, doReferences).trim();
71
+ if (actionLine.length > 0) {
72
+ output += `${indent} ${actionLine}\n`;
73
+ }
74
+ }
75
+ output += `${indent}done\n`;
76
+ }
77
+ else if (group.length === 1 && group[0].children.length === 0) {
78
+ const node = group[0];
79
+ let canonicalValueStr = undefined;
80
+ if (node.definitionCanonical) {
81
+ if (typeof node.definitionCanonical === "string") {
82
+ if (node.definitionCanonical.startsWith("Canonical(")) {
83
+ canonicalValueStr = node.definitionCanonical.replace(/^Canonical\((.*)\)$/, "$1");
84
+ }
85
+ else {
86
+ canonicalValueStr = node.definitionCanonical;
87
+ }
88
+ }
89
+ else if (typeof node.definitionCanonical === "object" &&
90
+ "entityName" in node.definitionCanonical) {
91
+ canonicalValueStr = node.definitionCanonical.entityName;
92
+ }
93
+ }
94
+ let hasPlanDef = false;
95
+ if (canonicalValueStr) {
96
+ const referenced = allInstances.find((inst) => typeof inst === "object" &&
97
+ inst !== null &&
98
+ "name" in inst &&
99
+ typeof inst.name === "string" &&
100
+ inst.name === canonicalValueStr &&
101
+ "instanceOf" in inst &&
102
+ typeof inst.instanceOf === "string");
103
+ if (referenced &&
104
+ typeof referenced === "object" &&
105
+ referenced !== null &&
106
+ "instanceOf" in referenced &&
107
+ PLAN_DEFINITION_URLS.includes(referenced.instanceOf)) {
108
+ hasPlanDef = true;
109
+ }
110
+ }
111
+ output += `${indent}when "${cond}" then`;
112
+ let actionLine = (0, activityDefinition_1.emitActivityBlock)(node, canonicalValueStr, allInstances, activities, "", hasPlanDef, doReferences).trim();
113
+ if (actionLine.startsWith(":"))
114
+ actionLine = actionLine.slice(1).trim();
115
+ output += ` ${actionLine}\n`;
116
+ }
117
+ }
118
+ return output;
119
+ }
120
+ function parseActions(rules, basePath = "action") {
121
+ const nodes = [];
122
+ let currentNode = null;
123
+ let currentExtensions = [];
124
+ let currentExtension = null;
125
+ for (let i = 0; i < rules.length; i++) {
126
+ const rule = rules[i];
127
+ if (rule.path === `${basePath}[+]`) {
128
+ if (currentNode) {
129
+ if (currentExtensions.length > 0)
130
+ currentNode.extension = currentExtensions.filter((ext) => ext.url !== undefined && ext.url !== null && ext.url !== "");
131
+ nodes.push(currentNode);
132
+ }
133
+ currentNode = { children: [] };
134
+ currentExtensions = [];
135
+ currentExtension = null;
136
+ }
137
+ else if (typeof rule.path === "string" && rule.path.startsWith(`${basePath}[=]`)) {
138
+ if (!currentNode)
139
+ continue;
140
+ const subPath = rule.path.slice(`${basePath}[=]`.length);
141
+ if (subPath.startsWith(".action[+]")) {
142
+ const childBase = `${basePath}[=].action`;
143
+ const childRules = [];
144
+ let j = i;
145
+ while (j < rules.length &&
146
+ typeof rules[j].path === "string" &&
147
+ rules[j].path.startsWith(childBase)) {
148
+ childRules.push(rules[j]);
149
+ j++;
150
+ }
151
+ currentNode.children = parseActions(childRules, childBase);
152
+ i = j - 1;
153
+ }
154
+ else if (subPath.startsWith(".action[=]")) {
155
+ continue;
156
+ }
157
+ else if (subPath === ".extension[+]") {
158
+ currentExtension = { url: "" };
159
+ currentExtensions.push(currentExtension);
160
+ }
161
+ else if (subPath.startsWith(".extension[=]")) {
162
+ if (!currentExtension) {
163
+ currentExtension = { url: "" };
164
+ currentExtensions.push(currentExtension);
165
+ }
166
+ if (subPath.endsWith(".url"))
167
+ currentExtension.url = rule.value;
168
+ if (subPath.endsWith(".valueMarkdown"))
169
+ currentExtension.valueMarkdown = rule.value;
170
+ }
171
+ else {
172
+ if (subPath === ".title")
173
+ currentNode.title = rule.value;
174
+ if (subPath === ".description")
175
+ currentNode.description = rule.value;
176
+ if (subPath.endsWith(".condition[=].expression.expression"))
177
+ currentNode.conditionExpression = rule.value;
178
+ if (subPath === ".definitionCanonical")
179
+ currentNode.definitionCanonical = rule.value;
180
+ }
181
+ }
182
+ }
183
+ if (currentNode) {
184
+ if (currentExtensions.length > 0) {
185
+ currentNode.extension = currentExtensions.filter((ext) => ext.url !== undefined && ext.url !== null && ext.url !== "");
186
+ }
187
+ nodes.push(currentNode);
188
+ }
189
+ return nodes;
190
+ }
191
+ function mapPlanDefinitionToDecision(instance, allInstances) {
192
+ if (typeof instance !== "object" ||
193
+ instance === null ||
194
+ !("instanceOf" in instance) ||
195
+ !PLAN_DEFINITION_URLS.includes(instance.instanceOf)) {
196
+ return { decision: "", activities: [], doReferences: [] };
197
+ }
198
+ let description = instance.description;
199
+ const rules = instance.rules || [];
200
+ if (!description) {
201
+ const descriptionRule = rules.find((r) => r.path === "Description");
202
+ description = descriptionRule ? descriptionRule.value : undefined;
203
+ }
204
+ const title = instance.title ??
205
+ rules.find((r) => r.path === "Title")?.value;
206
+ const plandefTitle = title ? (0, fshPathFunctions_1.toIdentifier)(title) : "[UnnamedPlanDefinition]";
207
+ const plandefDescription = description ? (0, fshPathFunctions_1.toString)(description) : "";
208
+ const citationRule = rules.find((r) => r.path === "relatedArtifact[=].citation");
209
+ let citation = citationRule ? (0, fshPathFunctions_1.toString)(citationRule.value) : "";
210
+ if (citation.startsWith('"') && citation.endsWith('"')) {
211
+ citation = citation.slice(1, -1);
212
+ }
213
+ let output = "";
214
+ if (instance.name) {
215
+ output += `// Instance: ${instance.name}\n`;
216
+ }
217
+ if (plandefDescription) {
218
+ let desc = plandefDescription;
219
+ if (desc.startsWith('"') && desc.endsWith('"')) {
220
+ desc = desc.slice(1, -1);
221
+ }
222
+ output += `// Description: ${desc}\n`;
223
+ }
224
+ if (citation) {
225
+ output += `// Provenance: ${citation}\n`;
226
+ }
227
+ output += `decision ${plandefTitle}:\n`;
228
+ const actionTree = parseActions(rules);
229
+ const activities = [];
230
+ const doReferences = [];
231
+ output += emitWhenBlocksRecursive(actionTree, activities, allInstances, instance, " ", doReferences);
232
+ output += "done\n\n";
233
+ return { decision: output, activities, doReferences };
234
+ }
235
+ //# sourceMappingURL=planDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planDefinition.js","sourceRoot":"","sources":["../../../../src/transformer/fsh-to-crl/mapping/planDefinition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function mapTerminology(identifiers: string[]): string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapTerminology = mapTerminology;
4
+ const fshPathFunctions_1 = require("../utils/fshPathFunctions");
5
+ function mapTerminology(identifiers) {
6
+ return identifiers
7
+ .map((id) => `terminology ${(0, fshPathFunctions_1.toIdentifier)(id)} system \`http://sdh.com/cqis/kalm\` code ${(0, fshPathFunctions_1.toCode)(id)}.`)
8
+ .join("\n");
9
+ }
10
+ //# sourceMappingURL=terminology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminology.js","sourceRoot":"","sources":["../../../../src/transformer/fsh-to-crl/mapping/terminology.ts"],"names":[],"mappings":";;AAMA,wCAOC;AAbD,gEAAiE;AAMjE,SAAgB,cAAc,CAAC,WAAqB;IAClD,OAAO,WAAW;SACf,GAAG,CACF,CAAC,EAAE,EAAE,EAAE,CACL,eAAe,IAAA,+BAAY,EAAC,EAAE,CAAC,6CAA6C,IAAA,yBAAM,EAAC,EAAE,CAAC,GAAG,CAC5F;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function transformFSHToCRL(fshProjectDir: string): string;