StructureMap-Citation5to4B

Sourcehl7.fhir.uv.extensions.r4#1.0.0:FHIR Extensions Pack (v4.0.1)
resourceTypeStructureMap
idCitation5to4B
canonicalhttp://hl7.org/fhir/StructureMap/Citation5to4B
version1.0.0
statusdraft
publisherHL7 International / FHIR Infrastructure
nameCitation5to4B
titleFML Conversion for Citation: R5 to R4B
date2023-03-26T08:47:34+11:00
descriptionFMLConversionforCitationR5toR4B
jurisdictionsuv
Usages(none)

    
/// url = 
    
    'http://hl7.org/fhir/StructureMap/Citation5to4B'

    
/// name = 
    
    'Citation5to4B'

    
/// title = 
    
    'FML Conversion for Citation: R5 to R4B'

    
/// status = 
    
    'draft'


    conceptmap
     "
PublicationStatus    " {

      prefix 
s     = "
    http://hl7.org/fhir/publication-status
    "

      prefix 
t     = "
http://hl7.org/fhir/4.3/publication-status    "


  s    :
draft     -
 t    :
draft
  s    :
active     -
 t    :
active
  s    :
retired     -
 t    :
retired
  s    :
unknown     -
 t    :
unknown
    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/Citation
    " 
    alias 
CitationR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/Citation    " 
    alias 
CitationR4B     as 
    target


    imports
     "
http://hl7.org/fhir/StructureMap/*5to4B    "


    group 
Citation    (
    source
     src
     : 
CitationR5,     target
     tgt
     : 
CitationR4B    )
     extends 
DomainResource     <<type+>>
     {

  src.url    
 ->     
tgt.url    ;

  src.identifier    
 ->     
tgt.identifier    ;

  src.version    
 ->     
tgt.version    ;

  src.name    
 ->     
tgt.name    ;
     // 
    src.versionAlgorithm : string -> tgt.versionAlgorithm;

  src.title    
 ->     
tgt.title    ;

  src.status     as 
    v
    
 ->     
tgt.status =     translate
    (
    v
    , 
    '#PublicationStatus'
    , 
    'code'
    )
    ;

  src.experimental    
 ->     
tgt.experimental    ;

  src.date    
 ->     
tgt.date    ;

  src.publisher    
 ->     
tgt.publisher    ;

  src.contact    
 ->     
tgt.contact    ;

  src.description    
 ->     
tgt.description    ;

  src.useContext    
 ->     
tgt.useContext    ;

  src.jurisdiction    
 ->     
tgt.jurisdiction    ;

  src.purpose    
 ->     
tgt.purpose    ;

  src.copyright    
 ->     
tgt.copyright    ;

  src.approvalDate    
 ->     
tgt.approvalDate    ;
     // 
    src.copyrightLabel -> tgt.copyrightLabel;

  src.lastReviewDate    
 ->     
tgt.lastReviewDate    ;

  src.effectivePeriod    
 ->     
tgt.effectivePeriod    ;

  src.author    
 ->     
tgt.author    ;

  src.editor    
 ->     
tgt.editor    ;

  src.reviewer    
 ->     
tgt.reviewer    ;

  src.endorser    
 ->     
tgt.endorser    ;

  src.summary     as 
    s
    
 ->     
tgt.summary     as 
    t
     then 
CitationSummary    (
    s
    , 
    t
    )
    ;

  src.classification     as 
    s
    
 ->     
tgt.classification     as 
    t
     then 
CitationClassification    (
    s
    , 
    t
    )
    ;

  src.note    
 ->     
tgt.note    ;

  src.currentState    
 ->     
tgt.currentState    ;

  src.statusDate     as 
    s
    
 ->     
tgt.statusDate     as 
    t
     then 
CitationStatusDate    (
    s
    , 
    t
    )
    ;

  src.relatedArtifact     as 
    s
    
 ->     
tgt.relatesTo     as 
    t
     then
     {

    s.type     as 
    v
    
 ->     
 t.relationshipType =     create
    (
    'CodeableConcept'
    )
     as 
    t
    , 
 t.coding =     create
    (
    'Coding'
    )
     as 
    tc
    , 
 tc.system =     'http://terminology.hl7.org/CodeSystem/artifact-relationship-type'
    , 
 tc.code =     v.value
    ;

    s.classifier    
 ->     
t.targetClassifier    ;

    s.resourceReference    
 ->     
t.target    ;

      }
    ;

  src.citedArtifact     as 
    s
    
 ->     
tgt.citedArtifact     as 
    t
     then 
CitationCitedArtifact    (
    s
    , 
    t
    )
    ;

    }


    group 
CitationSummary    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.style    
 ->     
tgt.style    ;

  src.text    
 ->     
tgt.text    ;

    }


    group 
CitationClassification    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.classifier    
 ->     
tgt.classifier    ;

    }


    group 
CitationStatusDate    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.activity    
 ->     
tgt.activity    ;

  src.actual    
 ->     
tgt.actual    ;

  src.period    
 ->     
tgt.period    ;

    }


    group 
CitationCitedArtifact    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.identifier    
 ->     
tgt.identifier    ;

  src.relatedIdentifier    
 ->     
tgt.relatedIdentifier    ;

  src.dateAccessed    
 ->     
tgt.dateAccessed    ;

  src.version     as 
    s
    
 ->     
tgt.version     as 
    t
     then 
CitationCitedArtifactVersion    (
    s
    , 
    t
    )
    ;

  src.currentState    
 ->     
tgt.currentState    ;

  src.statusDate     as 
    s
    
 ->     
tgt.statusDate     as 
    t
     then 
CitationCitedArtifactStatusDate    (
    s
    , 
    t
    )
    ;

  src.title     as 
    s
    
 ->     
tgt.title     as 
    t
     then 
CitationCitedArtifactTitle    (
    s
    , 
    t
    )
    ;

  src.abstract     as 
    s
    
 ->     
tgt.abstract     as 
    t
     then 
CitationCitedArtifactAbstract    (
    s
    , 
    t
    )
    ;

  src.part     as 
    s
    
 ->     
tgt.part     as 
    t
     then 
CitationCitedArtifactPart    (
    s
    , 
    t
    )
    ;

  src.relatesTo     as 
    s
    
 ->     
tgt.relatesTo     as 
    t
     then 
CitationCitedArtifactRelatesTo    (
    s
    , 
    t
    )
    ;

  src.publicationForm     as 
    s
    
 ->     
tgt.publicationForm     as 
    t
     then 
CitationCitedArtifactPublicationForm    (
    s
    , 
    t
    )
    ;

  src.webLocation     as 
    s
    
 ->     
tgt.webLocation     as 
    t
     then 
CitationCitedArtifactWebLocation    (
    s
    , 
    t
    )
    ;

  src.classification     as 
    s
    
 ->     
tgt.classification     as 
    t
     then 
CitationCitedArtifactClassification    (
    s
    , 
    t
    )
    ;

  src.contributorship     as 
    s
    
 ->     
tgt.contributorship     as 
    t
     then 
CitationCitedArtifactContributorship    (
    s
    , 
    t
    )
    ;

  src.note    
 ->     
tgt.note    ;

    }


    group 
CitationCitedArtifactVersion    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.value    
 ->     
tgt.value    ;

  src.baseCitation    
 ->     
tgt.baseCitation    ;

    }


    group 
CitationCitedArtifactStatusDate    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.activity    
 ->     
tgt.activity    ;

  src.actual    
 ->     
tgt.actual    ;

  src.period    
 ->     
tgt.period    ;

    }


    group 
CitationCitedArtifactTitle    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.language    
 ->     
tgt.language    ;

  src.text    
 ->     
tgt.text    ;

    }


    group 
CitationCitedArtifactAbstract    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.language    
 ->     
tgt.language    ;

  src.text    
 ->     
tgt.text    ;

  src.copyright    
 ->     
tgt.copyright    ;

    }


    group 
CitationCitedArtifactPart    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.value    
 ->     
tgt.value    ;

  src.baseCitation    
 ->     
tgt.baseCitation    ;

    }


    group 
CitationCitedArtifactRelatesTo    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type     as 
    v
    
 ->     
 tgt.relationshipType =     create
    (
    'CodeableConcept'
    )
     as 
    t
    , 
 t.coding =     create
    (
    'Coding'
    )
     as 
    tc
    , 
 tc.system =     'http://terminology.hl7.org/CodeSystem/artifact-relationship-type'
    , 
 tc.code =     v.value
    ;
     // 
    src.type -> tgt.type;

  src.classifier    
 ->     
tgt.targetClassifier    ;

  src.resourceReference    
 ->     
tgt.target    ;

    }


    group 
CitationCitedArtifactPublicationForm    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.publishedIn     as 
    s
    
 ->     
tgt.publishedIn     as 
    t
     then 
CitationCitedArtifactPublicationFormPublishedIn    (
    s
    , 
    t
    )
    ;

  src.citedMedium     as 
    v
    
 ->     
 tgt.periodicRelease     as 
    t
    , 
 t.citedMedium =     v
    ;
     // 
    src.citedMedium -> tgt.citedMedium;

  src.volume     as 
    v
    
 ->     
 tgt.periodicRelease     as 
    t
    , 
 t.volume =     v
    ;

  src.issue     as 
    v
    
 ->     
 tgt.periodicRelease     as 
    t
    , 
 t.issue =     v
    ;

  src.publicationDateText     as 
    v
    
 ->     
 tgt.periodicRelease     as 
    t
    , 
 t.dateOfPublication     as 
    td
    , 
 td.text =     v
    ;

  src.publicationDateSeason     as 
    v
    
 ->     
 tgt.periodicRelease     as 
    t
    , 
 t.dateOfPublication     as 
    td
    , 
 td.season =     v
    ;

  src.articleDate    
 ->     
tgt.articleDate    ;

  src.lastRevisionDate    
 ->     
tgt.lastRevisionDate    ;

  src.language    
 ->     
tgt.language    ;

  src.accessionNumber    
 ->     
tgt.accessionNumber    ;

  src.pageString    
 ->     
tgt.pageString    ;

  src.firstPage    
 ->     
tgt.firstPage    ;

  src.lastPage    
 ->     
tgt.lastPage    ;

  src.pageCount    
 ->     
tgt.pageCount    ;

  src.copyright    
 ->     
tgt.copyright    ;

    }


    group 
CitationCitedArtifactPublicationFormPublishedIn    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.identifier    
 ->     
tgt.identifier    ;

  src.title    
 ->     
tgt.title    ;

  src.publisher    
 ->     
tgt.publisher    ;

  src.publisherLocation    
 ->     
tgt.publisherLocation    ;

    }


    group 
CitationCitedArtifactWebLocation    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.classifier    
 ->     
tgt.type    ;

  src.url    
 ->     
tgt.url    ;

    }


    group 
CitationCitedArtifactClassification    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.classifier    
 ->     
tgt.classifier    ;

    }


    group 
CitationCitedArtifactContributorship    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.complete    
 ->     
tgt.complete    ;

  src.entry     as 
    s
    
 ->     
tgt.entry     as 
    t
     then 
CitationCitedArtifactContributorshipEntry    (
    s
    , 
    t
    )
    ;

  src.summary     as 
    s
    
 ->     
tgt.summary     as 
    t
     then 
CitationCitedArtifactContributorshipSummary    (
    s
    , 
    t
    )
    ;

    }


    group 
CitationCitedArtifactContributorshipEntry    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.forenameInitials    
 ->     
tgt.initials    ;
     // 
    src.contributor -> tgt.contributor;

  src.contributionType    
 ->     
tgt.contributionType    ;
     // 
    src.affiliation -> tgt.affiliation;

  src.role    
 ->     
tgt.role    ;

  src.contributionInstance     as 
    s
    
 ->     
tgt.contributionInstance     as 
    t
     then 
CitationCitedArtifactContributorshipEntryContributionInstance    (
    s
    , 
    t
    )
    ;

  src.correspondingContact    
 ->     
tgt.correspondingContact    ;

  src.rankingOrder    
 ->     
tgt.listOrder    ;

    }


    group 
CitationCitedArtifactContributorshipEntryContributionInstance    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.time    
 ->     
tgt.time    ;

    }


    group 
CitationCitedArtifactContributorshipSummary    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.style    
 ->     
tgt.style    ;

  src.source    
 ->     
tgt.source    ;

  src.value    
 ->     
tgt.value    ;

    }


  

Produced 06 Apr 2023