UNPKG

@synanetics/fhir-fml-convert

Version:

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

60 lines 2.13 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.StructureMapVisitorSTU3 = void 0; const structureMapDefinition_json_1 = __importDefault(require("./res/stu3/structureMapDefinition.json")); const types_json_1 = __importDefault(require("./res/stu3/types.json")); const StructureMapVisitor_1 = require("./StructureMapVisitor"); class StructureMapVisitorSTU3 extends StructureMapVisitor_1.StructureMapVisitor { constructor() { super(); this.fhirVersion = 'STU3'; 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)); } } exports.StructureMapVisitorSTU3 = StructureMapVisitorSTU3; //# sourceMappingURL=StructureMapVisitorSTU3.js.map