UNPKG

@synanetics/fhir-fml-convert

Version:

Converts StructureMaps written in FML to JSON ($convert operation)

63 lines 2.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructureMapVisitorR4 = void 0; const structureMapDefinition_json_1 = __importDefault(require("./res/r4/structureMapDefinition.json")); const types_json_1 = __importDefault(require("./res/r4/types.json")); const StructureMapVisitor_1 = require("./StructureMapVisitor"); class StructureMapVisitorR4 extends StructureMapVisitor_1.StructureMapVisitor { constructor() { super(); this.fhirVersion = 'R4'; this.structureMapDefinition = structureMapDefinition_json_1.default; this.fhirTypes = types_json_1.default .entry .map((e) => ({ id: e.resource.id, kind: e.resource?.kind, type: e.resource?.type, snapshot: e.resource?.snapshot, })); } visitRuleDefinition(ctx) { const sources = ctx.ruleSources()?.accept(this) ?? []; const targets = ctx.ruleTargets()?.accept(this) ?? []; const dependent = ctx .dependent() ?.namedInvocation() .map((i) => ({ name: i.variableId().text, variable: i.paramList().param().map((p) => p.text), })); const rule = ctx .dependent() ?.rules() ?.ruleDefinition() ?.map((r) => r.accept(this)); const ruleDef = { name: this.getRuleName(ctx.ruleName(), sources[0]), source: sources, target: targets, rule, dependent, }; return ruleDef; } getDefaultValue(ctx) { return { key: 'defaultValueString', value: ctx.fhirPath().text, }; } visitRuleSources(ctx) { // @ts-ignore return ctx.ruleSource().map((src) => ({ ...this.getBaseRuleSource(src), logMessage: src.log()?.fhirPath().text, })); } } exports.StructureMapVisitorR4 = StructureMapVisitorR4; //# sourceMappingURL=StructureMapVisitorR4.js.map