/// url = 'http://hl7.org/fhir/StructureMap/ElementDefinition3to4' /// name = 'ElementDefinition3to4' /// title = 'ElementDefinition Transforms: R3 to R4' /// status = 'active' uses "http://hl7.org/fhir/3.0/ElementDefinition" alias ElementDefinitionR3 as source uses "http://hl7.org/fhir/4.0/ElementDefinition" alias ElementDefinition as target imports "http://hl7.org/fhir/StructureMap/*3to4" group ElementDefinition(source src : ElementDefinitionR3, target tgt : ElementDefinition) extends BackboneElement <<type+>> { src.path -> tgt.path; src.representation -> tgt.representation; src.sliceName -> tgt.sliceName; src.label -> tgt.label; src.code -> tgt.code; src.slicing as vs0 -> tgt.slicing as vt0 then slicing(vs0, vt0); src.short -> tgt.short; src.definition -> tgt.definition; src.comment -> tgt.comment; src.requirements -> tgt.requirements; src.alias -> tgt.alias; src.min -> tgt.min; src.max -> tgt.max; src.base as vs0 -> tgt.base as vt0 then base(vs0, vt0); src.type as vs0 -> tgt.type as vt0 then type(vs0, vt0); src.contentReference -> tgt.contentReference; src.defaultValue : base64Binary as vs -> tgt.defaultValue = create('base64Binary') as vt then base64Binary(vs, vt); src.defaultValue : boolean as vs -> tgt.defaultValue = create('boolean') as vt then boolean(vs, vt); src.defaultValue : code as vs -> tgt.defaultValue = create('code') as vt then code(vs, vt); src.defaultValue : date as vs -> tgt.defaultValue = create('date') as vt then date(vs, vt); src.defaultValue : dateTime as vs -> tgt.defaultValue = create('dateTime') as vt then dateTime(vs, vt); src.defaultValue : decimal as vs -> tgt.defaultValue = create('decimal') as vt then decimal(vs, vt); src.defaultValue : id as vs -> tgt.defaultValue = create('id') as vt then id(vs, vt); src.defaultValue : instant as vs -> tgt.defaultValue = create('instant') as vt then instant(vs, vt); src.defaultValue : integer as vs -> tgt.defaultValue = create('integer') as vt then integer(vs, vt); src.defaultValue : markdown as vs -> tgt.defaultValue = create('markdown') as vt then markdown(vs, vt); src.defaultValue : oid as vs -> tgt.defaultValue = create('oid') as vt then oid(vs, vt); src.defaultValue : positiveInt as vs -> tgt.defaultValue = create('positiveInt') as vt then positiveInt(vs, vt); src.defaultValue : string as vs -> tgt.defaultValue = create('string') as vt then string(vs, vt); src.defaultValue : time as vs -> tgt.defaultValue = create('time') as vt then time(vs, vt); src.defaultValue : unsignedInt as vs -> tgt.defaultValue = create('unsignedInt') as vt then unsignedInt(vs, vt); src.defaultValue : uri as vs -> tgt.defaultValue = create('uri') as vt then uri(vs, vt); src.defaultValue : Address as vs -> tgt.defaultValue = create('Address') as vt then Address(vs, vt); src.defaultValue : Age as vs -> tgt.defaultValue = create('Age') as vt then Age(vs, vt); src.defaultValue : Annotation as vs -> tgt.defaultValue = create('Annotation') as vt then Annotation(vs, vt); src.defaultValue : Attachment as vs -> tgt.defaultValue = create('Attachment') as vt then Attachment(vs, vt); src.defaultValue : CodeableConcept as vs -> tgt.defaultValue = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.defaultValue : Coding as vs -> tgt.defaultValue = create('Coding') as vt then Coding(vs, vt); src.defaultValue : ContactPoint as vs -> tgt.defaultValue = create('ContactPoint') as vt then ContactPoint(vs, vt); src.defaultValue : Count as vs -> tgt.defaultValue = create('Count') as vt then Count(vs, vt); src.defaultValue : Distance as vs -> tgt.defaultValue = create('Distance') as vt then Distance(vs, vt); src.defaultValue : Duration as vs -> tgt.defaultValue = create('Duration') as vt then Duration(vs, vt); src.defaultValue : HumanName as vs -> tgt.defaultValue = create('HumanName') as vt then HumanName(vs, vt); src.defaultValue : Identifier as vs -> tgt.defaultValue = create('Identifier') as vt then Identifier(vs, vt); src.defaultValue : Money as vs -> tgt.defaultValue = create('Money') as vt then Money(vs, vt); src.defaultValue : Period as vs -> tgt.defaultValue = create('Period') as vt then Period(vs, vt); src.defaultValue : Quantity as vs -> tgt.defaultValue = create('Quantity') as vt then Quantity(vs, vt); src.defaultValue : Range as vs -> tgt.defaultValue = create('Range') as vt then Range(vs, vt); src.defaultValue : Ratio as vs -> tgt.defaultValue = create('Ratio') as vt then Ratio(vs, vt); src.defaultValue : Reference as vs -> tgt.defaultValue = create('Reference') as vt then Reference(vs, vt); src.defaultValue : SampledData as vs -> tgt.defaultValue = create('SampledData') as vt then SampledData(vs, vt); src.defaultValue : Signature as vs -> tgt.defaultValue = create('Signature') as vt then Signature(vs, vt); src.defaultValue : Timing as vs -> tgt.defaultValue = create('Timing') as vt then Timing(vs, vt); src.meaningWhenMissing -> tgt.meaningWhenMissing; src.orderMeaning -> tgt.orderMeaning; src.fixed : base64Binary as vs -> tgt.fixed = create('base64Binary') as vt then base64Binary(vs, vt); src.fixed : boolean as vs -> tgt.fixed = create('boolean') as vt then boolean(vs, vt); src.fixed : code as vs -> tgt.fixed = create('code') as vt then code(vs, vt); src.fixed : date as vs -> tgt.fixed = create('date') as vt then date(vs, vt); src.fixed : dateTime as vs -> tgt.fixed = create('dateTime') as vt then dateTime(vs, vt); src.fixed : decimal as vs -> tgt.fixed = create('decimal') as vt then decimal(vs, vt); src.fixed : id as vs -> tgt.fixed = create('id') as vt then id(vs, vt); src.fixed : instant as vs -> tgt.fixed = create('instant') as vt then instant(vs, vt); src.fixed : integer as vs -> tgt.fixed = create('integer') as vt then integer(vs, vt); src.fixed : markdown as vs -> tgt.fixed = create('markdown') as vt then markdown(vs, vt); src.fixed : oid as vs -> tgt.fixed = create('oid') as vt then oid(vs, vt); src.fixed : positiveInt as vs -> tgt.fixed = create('positiveInt') as vt then positiveInt(vs, vt); src.fixed : string as vs -> tgt.fixed = create('string') as vt then string(vs, vt); src.fixed : time as vs -> tgt.fixed = create('time') as vt then time(vs, vt); src.fixed : unsignedInt as vs -> tgt.fixed = create('unsignedInt') as vt then unsignedInt(vs, vt); src.fixed : uri as vs -> tgt.fixed = create('uri') as vt then uri(vs, vt); src.fixed : Address as vs -> tgt.fixed = create('Address') as vt then Address(vs, vt); src.fixed : Age as vs -> tgt.fixed = create('Age') as vt then Age(vs, vt); src.fixed : Annotation as vs -> tgt.fixed = create('Annotation') as vt then Annotation(vs, vt); src.fixed : Attachment as vs -> tgt.fixed = create('Attachment') as vt then Attachment(vs, vt); src.fixed : CodeableConcept as vs -> tgt.fixed = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.fixed : Coding as vs -> tgt.fixed = create('Coding') as vt then Coding(vs, vt); src.fixed : ContactPoint as vs -> tgt.fixed = create('ContactPoint') as vt then ContactPoint(vs, vt); src.fixed : Count as vs -> tgt.fixed = create('Count') as vt then Count(vs, vt); src.fixed : Distance as vs -> tgt.fixed = create('Distance') as vt then Distance(vs, vt); src.fixed : Duration as vs -> tgt.fixed = create('Duration') as vt then Duration(vs, vt); src.fixed : HumanName as vs -> tgt.fixed = create('HumanName') as vt then HumanName(vs, vt); src.fixed : Identifier as vs -> tgt.fixed = create('Identifier') as vt then Identifier(vs, vt); src.fixed : Money as vs -> tgt.fixed = create('Money') as vt then Money(vs, vt); src.fixed : Period as vs -> tgt.fixed = create('Period') as vt then Period(vs, vt); src.fixed : Quantity as vs -> tgt.fixed = create('Quantity') as vt then Quantity(vs, vt); src.fixed : Range as vs -> tgt.fixed = create('Range') as vt then Range(vs, vt); src.fixed : Ratio as vs -> tgt.fixed = create('Ratio') as vt then Ratio(vs, vt); src.fixed : Reference as vs -> tgt.fixed = create('Reference') as vt then Reference(vs, vt); src.fixed : SampledData as vs -> tgt.fixed = create('SampledData') as vt then SampledData(vs, vt); src.fixed : Signature as vs -> tgt.fixed = create('Signature') as vt then Signature(vs, vt); src.fixed : Timing as vs -> tgt.fixed = create('Timing') as vt then Timing(vs, vt); src.pattern : base64Binary as vs -> tgt.pattern = create('base64Binary') as vt then base64Binary(vs, vt); src.pattern : boolean as vs -> tgt.pattern = create('boolean') as vt then boolean(vs, vt); src.pattern : code as vs -> tgt.pattern = create('code') as vt then code(vs, vt); src.pattern : date as vs -> tgt.pattern = create('date') as vt then date(vs, vt); src.pattern : dateTime as vs -> tgt.pattern = create('dateTime') as vt then dateTime(vs, vt); src.pattern : decimal as vs -> tgt.pattern = create('decimal') as vt then decimal(vs, vt); src.pattern : id as vs -> tgt.pattern = create('id') as vt then id(vs, vt); src.pattern : instant as vs -> tgt.pattern = create('instant') as vt then instant(vs, vt); src.pattern : integer as vs -> tgt.pattern = create('integer') as vt then integer(vs, vt); src.pattern : markdown as vs -> tgt.pattern = create('markdown') as vt then markdown(vs, vt); src.pattern : oid as vs -> tgt.pattern = create('oid') as vt then oid(vs, vt); src.pattern : positiveInt as vs -> tgt.pattern = create('positiveInt') as vt then positiveInt(vs, vt); src.pattern : string as vs -> tgt.pattern = create('string') as vt then string(vs, vt); src.pattern : time as vs -> tgt.pattern = create('time') as vt then time(vs, vt); src.pattern : unsignedInt as vs -> tgt.pattern = create('unsignedInt') as vt then unsignedInt(vs, vt); src.pattern : uri as vs -> tgt.pattern = create('uri') as vt then uri(vs, vt); src.pattern : Address as vs -> tgt.pattern = create('Address') as vt then Address(vs, vt); src.pattern : Age as vs -> tgt.pattern = create('Age') as vt then Age(vs, vt); src.pattern : Annotation as vs -> tgt.pattern = create('Annotation') as vt then Annotation(vs, vt); src.pattern : Attachment as vs -> tgt.pattern = create('Attachment') as vt then Attachment(vs, vt); src.pattern : CodeableConcept as vs -> tgt.pattern = create('CodeableConcept') as vt then CodeableConcept(vs, vt); src.pattern : Coding as vs -> tgt.pattern = create('Coding') as vt then Coding(vs, vt); src.pattern : ContactPoint as vs -> tgt.pattern = create('ContactPoint') as vt then ContactPoint(vs, vt); src.pattern : Count as vs -> tgt.pattern = create('Count') as vt then Count(vs, vt); src.pattern : Distance as vs -> tgt.pattern = create('Distance') as vt then Distance(vs, vt); src.pattern : Duration as vs -> tgt.pattern = create('Duration') as vt then Duration(vs, vt); src.pattern : HumanName as vs -> tgt.pattern = create('HumanName') as vt then HumanName(vs, vt); src.pattern : Identifier as vs -> tgt.pattern = create('Identifier') as vt then Identifier(vs, vt); src.pattern : Money as vs -> tgt.pattern = create('Money') as vt then Money(vs, vt); src.pattern : Period as vs -> tgt.pattern = create('Period') as vt then Period(vs, vt); src.pattern : Quantity as vs -> tgt.pattern = create('Quantity') as vt then Quantity(vs, vt); src.pattern : Range as vs -> tgt.pattern = create('Range') as vt then Range(vs, vt); src.pattern : Ratio as vs -> tgt.pattern = create('Ratio') as vt then Ratio(vs, vt); src.pattern : Reference as vs -> tgt.pattern = create('Reference') as vt then Reference(vs, vt); src.pattern : SampledData as vs -> tgt.pattern = create('SampledData') as vt then SampledData(vs, vt); src.pattern : Signature as vs -> tgt.pattern = create('Signature') as vt then Signature(vs, vt); src.pattern : Timing as vs -> tgt.pattern = create('Timing') as vt then Timing(vs, vt); src.example as vs0 -> tgt.example as vt0 then { vs0.label -> vt0.label; vs0.value : base64Binary as vs -> vt0.value = create('base64Binary') as vt then base64Binary(vs, vt); vs0.value : boolean as vs -> vt0.value = create('boolean') as vt then boolean(vs, vt); vs0.value : code as vs -> vt0.value = create('code') as vt then code(vs, vt); vs0.value : date as vs -> vt0.value = create('date') as vt then date(vs, vt); vs0.value : dateTime as vs -> vt0.value = create('dateTime') as vt then dateTime(vs, vt); vs0.value : decimal as vs -> vt0.value = create('decimal') as vt then decimal(vs, vt); vs0.value : id as vs -> vt0.value = create('id') as vt then id(vs, vt); vs0.value : instant as vs -> vt0.value = create('instant') as vt then instant(vs, vt); vs0.value : integer as vs -> vt0.value = create('integer') as vt then integer(vs, vt); vs0.value : markdown as vs -> vt0.value = create('markdown') as vt then markdown(vs, vt); vs0.value : oid as vs -> vt0.value = create('oid') as vt then oid(vs, vt); vs0.value : positiveInt as vs -> vt0.value = create('positiveInt') as vt then positiveInt(vs, vt); vs0.value : string as vs -> vt0.value = create('string') as vt then string(vs, vt); vs0.value : time as vs -> vt0.value = create('time') as vt then time(vs, vt); vs0.value : unsignedInt as vs -> vt0.value = create('unsignedInt') as vt then unsignedInt(vs, vt); vs0.value : uri as vs -> vt0.value = create('uri') as vt then uri(vs, vt); vs0.value : Address as vs -> vt0.value = create('Address') as vt then Address(vs, vt); vs0.value : Age as vs -> vt0.value = create('Age') as vt then Age(vs, vt); vs0.value : Annotation as vs -> vt0.value = create('Annotation') as vt then Annotation(vs, vt); vs0.value : Attachment as vs -> vt0.value = create('Attachment') as vt then Attachment(vs, vt); vs0.value : CodeableConcept as vs -> vt0.value = create('CodeableConcept') as vt then CodeableConcept(vs, vt); vs0.value : Coding as vs -> vt0.value = create('Coding') as vt then Coding(vs, vt); vs0.value : ContactPoint as vs -> vt0.value = create('ContactPoint') as vt then ContactPoint(vs, vt); vs0.value : Count as vs -> vt0.value = create('Count') as vt then Count(vs, vt); vs0.value : Distance as vs -> vt0.value = create('Distance') as vt then Distance(vs, vt); vs0.value : Duration as vs -> vt0.value = create('Duration') as vt then Duration(vs, vt); vs0.value : HumanName as vs -> vt0.value = create('HumanName') as vt then HumanName(vs, vt); vs0.value : Identifier as vs -> vt0.value = create('Identifier') as vt then Identifier(vs, vt); vs0.value : Money as vs -> vt0.value = create('Money') as vt then Money(vs, vt); vs0.value : Period as vs -> vt0.value = create('Period') as vt then Period(vs, vt); vs0.value : Quantity as vs -> vt0.value = create('Quantity') as vt then Quantity(vs, vt); vs0.value : Range as vs -> vt0.value = create('Range') as vt then Range(vs, vt); vs0.value : Ratio as vs -> vt0.value = create('Ratio') as vt then Ratio(vs, vt); vs0.value : Reference as vs -> vt0.value = create('Reference') as vt then Reference(vs, vt); vs0.value : SampledData as vs -> vt0.value = create('SampledData') as vt then SampledData(vs, vt); vs0.value : Signature as vs -> vt0.value = create('Signature') as vt then Signature(vs, vt); vs0.value : Timing as vs -> vt0.value = create('Timing') as vt then Timing(vs, vt); }; src.minValue : date as vs -> tgt.minValue = create('date') as vt then date(vs, vt); src.minValue : dateTime as vs -> tgt.minValue = create('dateTime') as vt then dateTime(vs, vt); src.minValue : instant as vs -> tgt.minValue = create('instant') as vt then instant(vs, vt); src.minValue : time as vs -> tgt.minValue = create('time') as vt then time(vs, vt); src.minValue : decimal as vs -> tgt.minValue = create('decimal') as vt then decimal(vs, vt); src.minValue : integer as vs -> tgt.minValue = create('integer') as vt then integer(vs, vt); src.minValue : positiveInt as vs -> tgt.minValue = create('positiveInt') as vt then positiveInt(vs, vt); src.minValue : unsignedInt as vs -> tgt.minValue = create('unsignedInt') as vt then unsignedInt(vs, vt); src.minValue : Quantity as vs -> tgt.minValue = create('Quantity') as vt then Quantity(vs, vt); src.maxValue : date as vs -> tgt.maxValue = create('date') as vt then date(vs, vt); src.maxValue : dateTime as vs -> tgt.maxValue = create('dateTime') as vt then dateTime(vs, vt); src.maxValue : instant as vs -> tgt.maxValue = create('instant') as vt then instant(vs, vt); src.maxValue : time as vs -> tgt.maxValue = create('time') as vt then time(vs, vt); src.maxValue : decimal as vs -> tgt.maxValue = create('decimal') as vt then decimal(vs, vt); src.maxValue : integer as vs -> tgt.maxValue = create('integer') as vt then integer(vs, vt); src.maxValue : positiveInt as vs -> tgt.maxValue = create('positiveInt') as vt then positiveInt(vs, vt); src.maxValue : unsignedInt as vs -> tgt.maxValue = create('unsignedInt') as vt then unsignedInt(vs, vt); src.maxValue : Quantity as vs -> tgt.maxValue = create('Quantity') as vt then Quantity(vs, vt); src.maxLength -> tgt.maxLength; src.condition -> tgt.condition; src.constraint as vs0 -> tgt.constraint as vt0 then { vs0.key -> vt0.key; vs0.requirements -> vt0.requirements; vs0.severity -> vt0.severity; vs0.human -> vt0.human; vs0.expression -> vt0.expression; vs0.xpath -> vt0.xpath; vs0.source -> vt0.source; }; src.mustSupport -> tgt.mustSupport; src.isModifier -> tgt.isModifier; src.isSummary -> tgt.isSummary; src.binding as vs0 -> tgt.binding as vt0 then binding(vs0, vt0) "ElementDefinition-binding"; src.mapping as vs0 -> tgt.mapping as vt0 then { vs0.identity -> vt0.identity; vs0.language -> vt0.language; vs0.map -> vt0.map; vs0.comment -> vt0.comment; }; } group slicing(source src, target tgt) extends Element { src.discriminator as vs0 -> tgt.discriminator as vt0 then discriminator(vs0, vt0); src.description -> tgt.description; src.ordered -> tgt.ordered; src.rules -> tgt.rules; } group discriminator(source src, target tgt) extends Element { src.type -> tgt.type; src.path -> tgt.path; } group binding(source src, target tgt) extends Element { src.strength -> tgt.strength; src.description -> tgt.description; src.valueSet : uri as vs0 -> tgt.valueSet as vt0 then uri2Canonical(vs0, vt0) "binding-valueSetU"; src.valueSet : Reference as vs0 -> tgt.valueSet as vt0 then Reference2Canonical(vs0, vt0) "binding-valueSetR"; } group base(source src, target tgt) extends Element { src.path -> tgt.path; src.min -> tgt.min; src.max -> tgt.max; } group type(source src, target tgt) extends Element { src.code -> tgt.code; src.profile -> tgt.profile; src.targetProfile -> tgt.targetProfile; src.aggregation -> tgt.aggregation; src.versioning -> tgt.versioning; }