@smile-digital-health/crl 1.1.0 → 1.2.1

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 (84) hide show
  1. package/README.md +2 -2
  2. package/dist/ast/builder.js +31 -23
  3. package/dist/ast/builder.js.map +1 -1
  4. package/dist/ast/tests/activity-structure.test.d.ts +1 -0
  5. package/dist/ast/tests/activity-structure.test.js +63 -0
  6. package/dist/ast/tests/activity-structure.test.js.map +1 -0
  7. package/dist/ast/tests/builder.test.d.ts +1 -0
  8. package/dist/ast/tests/builder.test.js +588 -0
  9. package/dist/ast/tests/builder.test.js.map +1 -0
  10. package/dist/ast/tests/concept-structure.test.d.ts +1 -0
  11. package/dist/ast/tests/concept-structure.test.js +127 -0
  12. package/dist/ast/tests/concept-structure.test.js.map +1 -0
  13. package/dist/ast/tests/decision-structure.test.d.ts +1 -0
  14. package/dist/ast/tests/decision-structure.test.js +267 -0
  15. package/dist/ast/tests/decision-structure.test.js.map +1 -0
  16. package/dist/ast/tests/index.test.d.ts +5 -0
  17. package/dist/ast/tests/index.test.js +8 -0
  18. package/dist/ast/tests/index.test.js.map +1 -0
  19. package/dist/ast/tests/parseInput.d.ts +2 -0
  20. package/dist/ast/tests/parseInput.js +16 -0
  21. package/dist/ast/tests/parseInput.js.map +1 -0
  22. package/dist/ast/tests/terminology-structure.test.d.ts +1 -0
  23. package/dist/ast/tests/terminology-structure.test.js +36 -0
  24. package/dist/ast/tests/terminology-structure.test.js.map +1 -0
  25. package/dist/ast/types.d.ts +2 -2
  26. package/dist/cli/run-ast.js +1 -1
  27. package/dist/cli/run-ast.js.map +1 -1
  28. package/dist/cli/run-lexer.js +1 -1
  29. package/dist/cli/run-lexer.js.map +1 -1
  30. package/dist/cli/run-parser.js +1 -1
  31. package/dist/cli/run-parser.js.map +1 -1
  32. package/dist/cli/run-transformer-fsh-to-crl.js +1 -1
  33. package/dist/cli/run-transformer-fsh-to-crl.js.map +1 -1
  34. package/dist/cli/run-validator.js +1 -1
  35. package/dist/cli/run-validator.js.map +1 -1
  36. package/dist/grammar/generated/antlr/CRLLexer.js +1 -0
  37. package/dist/grammar/generated/antlr/CRLLexer.js.map +1 -1
  38. package/dist/grammar/generated/antlr/CRLParser.d.ts +3 -2
  39. package/dist/grammar/generated/antlr/CRLParser.js +254 -230
  40. package/dist/grammar/generated/antlr/CRLParser.js.map +1 -1
  41. package/dist/grammar/generated/types/conceptTypes.json +1 -0
  42. package/dist/lexer/tests/basic-tokens.test.d.ts +1 -0
  43. package/dist/lexer/tests/basic-tokens.test.js +483 -0
  44. package/dist/lexer/tests/basic-tokens.test.js.map +1 -0
  45. package/dist/lexer/tests/comments.test.d.ts +1 -0
  46. package/dist/lexer/tests/comments.test.js +166 -0
  47. package/dist/lexer/tests/comments.test.js.map +1 -0
  48. package/dist/lexer/tests/error-handling.test.d.ts +1 -0
  49. package/dist/lexer/tests/error-handling.test.js +218 -0
  50. package/dist/lexer/tests/error-handling.test.js.map +1 -0
  51. package/dist/lexer/tests/error-listener.test.d.ts +1 -0
  52. package/dist/lexer/tests/error-listener.test.js +147 -0
  53. package/dist/lexer/tests/error-listener.test.js.map +1 -0
  54. package/dist/lexer/tests/fhir-types.helpers.d.ts +3 -0
  55. package/dist/lexer/tests/fhir-types.helpers.js +16 -0
  56. package/dist/lexer/tests/fhir-types.helpers.js.map +1 -0
  57. package/dist/lexer/tests/fhir-types.test.d.ts +1 -0
  58. package/dist/lexer/tests/fhir-types.test.js +112 -0
  59. package/dist/lexer/tests/fhir-types.test.js.map +1 -0
  60. package/dist/lexer/tests/helpers.d.ts +12 -0
  61. package/dist/lexer/tests/helpers.js +41 -0
  62. package/dist/lexer/tests/helpers.js.map +1 -0
  63. package/dist/lexer/tests/index.test.d.ts +13 -0
  64. package/dist/lexer/tests/index.test.js +35 -0
  65. package/dist/lexer/tests/index.test.js.map +1 -0
  66. package/dist/lexer/tests/integration.test.d.ts +1 -0
  67. package/dist/lexer/tests/integration.test.js +470 -0
  68. package/dist/lexer/tests/integration.test.js.map +1 -0
  69. package/dist/lexer/tests/lexer-test-utils.d.ts +3 -0
  70. package/dist/lexer/tests/lexer-test-utils.js +19 -0
  71. package/dist/lexer/tests/lexer-test-utils.js.map +1 -0
  72. package/dist/lexer/tests/structures.test.d.ts +1 -0
  73. package/dist/lexer/tests/structures.test.js +251 -0
  74. package/dist/lexer/tests/structures.test.js.map +1 -0
  75. package/dist/lexer/tests/whitespace.test.d.ts +1 -0
  76. package/dist/lexer/tests/whitespace.test.js +203 -0
  77. package/dist/lexer/tests/whitespace.test.js.map +1 -0
  78. package/dist/parser/tests/createParser.test.d.ts +1 -0
  79. package/dist/parser/tests/createParser.test.js +30 -0
  80. package/dist/parser/tests/createParser.test.js.map +1 -0
  81. package/dist/parser/tests/index.test.d.ts +1 -0
  82. package/dist/parser/tests/index.test.js +4 -0
  83. package/dist/parser/tests/index.test.js.map +1 -0
  84. package/package.json +9 -14
package/README.md CHANGED
@@ -71,7 +71,7 @@ tar -ztvf <package-name>.tgz
71
71
  ### Language Features
72
72
 
73
73
  * Decision blocks with nested conditions
74
- * Concept definitions with type and value specifications
74
+ * Concept definitions with type and optional value specifications
75
75
  * Activity statements with perform types
76
76
  * Terminology statements with valueset, system/code, and unknown definitions
77
77
  * FHIR resource type support
@@ -304,7 +304,7 @@ The comparison includes:
304
304
 
305
305
  ### FSH-to-CRL Example Data
306
306
 
307
- The example FSH files and CRL outputs in `src/examples/fsh/who/smart-example-immz/` and `src/examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
307
+ The example FSH files and CRL outputs in `examples/fsh/who/smart-example-immz/` and `examples/crl/who/smart-example-immz/` are derived from the [WHO SMART Guidelines - Example IG for Measles Immunization](https://github.com/WorldHealthOrganization/smart-example-immz).
308
308
 
309
309
  - **Source repository:** [WorldHealthOrganization/smart-example-immz](https://github.com/WorldHealthOrganization/smart-example-immz)
310
310
  - **License:** [CC BY-IGO 3.0](https://github.com/WorldHealthOrganization/smart-example-immz/blob/main/LICENSE.md)
@@ -261,9 +261,9 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
261
261
  parseConceptTypes(bodyCtx, ctx) {
262
262
  const typeLine = bodyCtx.typeLine?.();
263
263
  const valueTypeLine = bodyCtx.valueTypeLine?.();
264
- if (!typeLine || !valueTypeLine) {
264
+ if (!typeLine) {
265
265
  this.reportError("AstError", ctx, {
266
- message: "ConceptStatement: missing type or valueType line",
266
+ message: "ConceptStatement: missing type line",
267
267
  });
268
268
  return null;
269
269
  }
@@ -274,36 +274,44 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
274
274
  catch {
275
275
  conceptTypeToken = undefined;
276
276
  }
277
- try {
278
- valueTypeToken = valueTypeLine.CONCEPT_VALUE_TYPE();
279
- }
280
- catch {
281
- valueTypeToken = undefined;
277
+ if (valueTypeLine) {
278
+ try {
279
+ valueTypeToken = valueTypeLine.CONCEPT_VALUE_TYPE();
280
+ }
281
+ catch {
282
+ valueTypeToken = undefined;
283
+ }
282
284
  }
283
- if (!conceptTypeToken || !valueTypeToken) {
285
+ if (!conceptTypeToken) {
284
286
  this.reportError("AstError", ctx, {
285
- message: "ConceptStatement: missing CONCEPT_TYPE or CONCEPT_VALUE_TYPE token",
287
+ message: "ConceptStatement: missing CONCEPT_TYPE token",
286
288
  });
287
289
  return null;
288
290
  }
289
- return {
291
+ const result = {
290
292
  conceptType: conceptTypeToken.text,
291
- valueType: valueTypeToken.text,
292
293
  };
294
+ if (valueTypeToken) {
295
+ result.valueType = valueTypeToken.text;
296
+ }
297
+ return result;
293
298
  }
294
299
  parseMeta(bodyCtx) {
295
- const metaCtx = bodyCtx.metaLine?.();
296
- const backtickCtx = metaCtx?.backtickString?.();
297
- if (backtickCtx?.text !== undefined) {
298
- return backtickCtx.text.slice(1, -1);
299
- }
300
- else if (backtickCtx?.BACKTICK_STRING) {
301
- const token = backtickCtx.BACKTICK_STRING();
302
- if (token?.text !== undefined) {
303
- return token.text.slice(1, -1);
300
+ const metaLines = bodyCtx.metaLine?.() ?? [];
301
+ const metas = [];
302
+ for (const metaCtx of metaLines) {
303
+ const backtickCtx = metaCtx?.backtickString?.();
304
+ if (backtickCtx?.text !== undefined) {
305
+ metas.push(backtickCtx.text.slice(1, -1));
306
+ }
307
+ else if (backtickCtx?.BACKTICK_STRING) {
308
+ const token = backtickCtx.BACKTICK_STRING();
309
+ if (token?.text !== undefined) {
310
+ metas.push(token.text.slice(1, -1));
311
+ }
304
312
  }
305
313
  }
306
- return undefined;
314
+ return metas;
307
315
  }
308
316
  parseEvidence(bodyCtx) {
309
317
  if (bodyCtx.evidenceLine?.()) {
@@ -380,8 +388,8 @@ class CRLAstBuilder extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor
380
388
  type: "Concept",
381
389
  name,
382
390
  conceptType,
383
- valueType,
384
- ...(meta ? { meta } : {}),
391
+ ...(valueType ? { valueType } : {}),
392
+ ...(meta.length > 0 ? { meta } : {}),
385
393
  ...(evidence ? { evidence } : {}),
386
394
  definition,
387
395
  location: getLocation(ctx),
@@ -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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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const parseInput_1 = require("./parseInput");
4
+ describe("Activity Structure", () => {
5
+ it("should correctly structure activity with type", () => {
6
+ const input = 'activity "Vaccinate":\n- request CPGImmunizationRequest.';
7
+ const result = (0, parseInput_1.parseInput)(input);
8
+ const activity = result.statements[0];
9
+ expect(activity.type).toBe("Activity");
10
+ expect(activity.name).toBe("Vaccinate");
11
+ expect(activity.body.request.activityType).toBe("CPGImmunizationRequest");
12
+ });
13
+ it("should correctly structure activity with type and terminology", () => {
14
+ const input = 'activity "Indicate":\n- request CPGProposeDiagnosisTask\n- with "Colonoscopy".';
15
+ const result = (0, parseInput_1.parseInput)(input);
16
+ const activity = result.statements[0];
17
+ expect(activity.type).toBe("Activity");
18
+ expect(activity.name).toBe("Indicate");
19
+ expect(activity.body.request.activityType).toBe("CPGProposeDiagnosisTask");
20
+ expect(activity.body.withClause?.terminologyReference).toBe("Colonoscopy");
21
+ });
22
+ it("should correctly structure activity with type and free text", () => {
23
+ const input = 'activity "another thing":\n- request CPGCommunicationRequest\n- with `The message`.';
24
+ const result = (0, parseInput_1.parseInput)(input);
25
+ const activity = result.statements[0];
26
+ expect(activity.type).toBe("Activity");
27
+ expect(activity.name).toBe("another thing");
28
+ expect(activity.body.request.activityType).toBe("CPGCommunicationRequest");
29
+ expect(activity.body.withClause?.activityTypeValue).toBe("The message");
30
+ });
31
+ it("should correctly structure activity with type and terminology or free text", () => {
32
+ const input1 = 'activity "Indicate":\n- request CPGProposeDiagnosisTask\n- with "Colonoscopy".';
33
+ const input2 = 'activity "Notify":\n- request CPGCommunicationRequest\n- with `A notification message`.';
34
+ const result1 = (0, parseInput_1.parseInput)(input1);
35
+ const result2 = (0, parseInput_1.parseInput)(input2);
36
+ const activity1 = result1.statements[0];
37
+ const activity2 = result2.statements[0];
38
+ expect(activity1.body.withClause?.terminologyReference).toBe("Colonoscopy");
39
+ expect(activity1.body.withClause?.activityTypeValue).toBeUndefined();
40
+ expect(activity2.body.withClause?.activityTypeValue).toBe("A notification message");
41
+ expect(activity2.body.withClause?.terminologyReference).toBeUndefined();
42
+ });
43
+ it("should correctly structure activity with empty free text", () => {
44
+ const input = 'activity "Empty Free Text":\n- request CPGCommunicationRequest\n- with ``.';
45
+ const result = (0, parseInput_1.parseInput)(input);
46
+ const activity = result.statements[0];
47
+ expect(activity.type).toBe("Activity");
48
+ expect(activity.name).toBe("Empty Free Text");
49
+ expect(activity.body.request.activityType).toBe("CPGCommunicationRequest");
50
+ expect(activity.body.withClause?.activityTypeValue).toBeUndefined();
51
+ expect(activity.body.withClause?.terminologyReference).toBeUndefined();
52
+ });
53
+ it("should correctly structure activity with do not perform", () => {
54
+ const input = 'activity "Contraindicated":\n- request do not perform CPGImmunizationRequest.';
55
+ const result = (0, parseInput_1.parseInput)(input);
56
+ const activity = result.statements[0];
57
+ expect(activity.type).toBe("Activity");
58
+ expect(activity.name).toBe("Contraindicated");
59
+ expect(activity.body.request.activityType).toBe("CPGImmunizationRequest");
60
+ expect(activity.body.request.doNotPerform).toBe(true);
61
+ });
62
+ });
63
+ //# sourceMappingURL=activity-structure.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-structure.test.js","sourceRoot":"","sources":["../../../src/ast/tests/activity-structure.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};