FHIR Extensions Pack
5.1.0 - 5.1.0 (April 2024) International flag

This page is part of the FHIR Core Extensions Registry (v5.1.0: Release 5.1) based on FHIR (HL7® FHIR® Standard) v5.0.0. This is the current published version. For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for MolecularSequence: R5 to R4

Official URL: http://hl7.org/fhir/StructureMap/MolecularSequence5to4 Version: 5.1.0
Standards status: Trial-use Maturity Level: 1 Computable Name: MolecularSequence5to4

FMLConversionforMolecularSequenceR5toR4

/// url = 'http://hl7.org/fhir/StructureMap/MolecularSequence5to4'
/// name = 'MolecularSequence5to4'
/// title = 'FML Conversion for MolecularSequence: R5 to R4'
/// status = 'active'

conceptmap "orientationType" {
  prefix s = "http://hl7.org/fhir/orientation-type"
  prefix t = "http://hl7.org/fhir/4.0/orientation-type"

  s:sense - t:sense
  s:antisense - t:antisense
}

conceptmap "sequenceType" {
  prefix s = "http://hl7.org/fhir/sequence-type"
  prefix t = "http://hl7.org/fhir/4.0/sequence-type"

  s:aa - t:aa
  s:dna - t:dna
  s:rna - t:rna
}

conceptmap "strandType" {
  prefix s = "http://hl7.org/fhir/strand-type"
  prefix t = "http://hl7.org/fhir/4.0/strand-type"

  s:watson - t:watson
  s:crick - t:crick
}

uses "http://hl7.org/fhir/StructureDefinition/MolecularSequence" alias MolecularSequenceR5 as source
uses "http://hl7.org/fhir/4.0/StructureDefinition/MolecularSequence" alias MolecularSequenceR4 as target

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

group MolecularSequence(source src : MolecularSequenceR5, target tgt : MolecularSequenceR4) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.type as v -> tgt.type = translate(v, '#sequenceType', 'code');
  src.subject -> tgt.patient;
  src.specimen -> tgt.specimen; // src.focus -> tgt.focus;
  src.device -> tgt.device;
  src.performer -> tgt.performer;
  src.relative as s -> tgt.referenceSeq as t then MolecularSequenceReferenceSeq(s, t); // src.literal -> tgt.literal;
  src.relative as s -> tgt.variant as t then MolecularSequenceVariant(s, t);
}

group MolecularSequenceReferenceSeq(source src, target tgt) extends BackboneElement {
  src.startingSequence as s -> tgt then {
    s.chromosome as s where code = 'LA21254-0' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '1',  tcc.display = 'chromosome 1';
    s.chromosome as s where code = 'LA21255-7' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '2',  tcc.display = 'chromosome 2';
    s.chromosome as s where code = 'LA21256-5' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '3',  tcc.display = 'chromosome 3';
    s.chromosome as s where code = 'LA21257-3' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '4',  tcc.display = 'chromosome 4';
    s.chromosome as s where code = 'LA21258-1' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '5',  tcc.display = 'chromosome 5';
    s.chromosome as s where code = 'LA21259-9' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '6',  tcc.display = 'chromosome 6';
    s.chromosome as s where code = 'LA21260-7' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '7',  tcc.display = 'chromosome 7';
    s.chromosome as s where code = 'LA21261-5' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '8',  tcc.display = 'chromosome 8';
    s.chromosome as s where code = 'LA21262-3' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '9',  tcc.display = 'chromosome 9';
    s.chromosome as s where code = 'LA21263-1' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '10',  tcc.display = 'chromosome 10';
    s.chromosome as s where code = 'LA21264-9' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '11',  tcc.display = 'chromosome 11';
    s.chromosome as s where code = 'LA21265-6' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '12',  tcc.display = 'chromosome 12';
    s.chromosome as s where code = 'LA21266-4' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '13',  tcc.display = 'chromosome 13';
    s.chromosome as s where code = 'LA21267-2' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '14',  tcc.display = 'chromosome 14';
    s.chromosome as s where code = 'LA21268-0' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '15',  tcc.display = 'chromosome 15';
    s.chromosome as s where code = 'LA21269-8' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '16',  tcc.display = 'chromosome 16';
    s.chromosome as s where code = 'LA21270-6' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '17',  tcc.display = 'chromosome 17';
    s.chromosome as s where code = 'LA21271-4' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '18',  tcc.display = 'chromosome 18';
    s.chromosome as s where code = 'LA21272-2' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '19',  tcc.display = 'chromosome 19';
    s.chromosome as s where code = 'LA21273-0' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '20',  tcc.display = 'chromosome 20';
    s.chromosome as s where code = 'LA21274-8' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '21',  tcc.display = 'chromosome 21';
    s.chromosome as s where code = 'LA21275-5' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = '22',  tcc.display = 'chromosome 22';
    s.chromosome as s where code = 'LA21276-3' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = 'X',  tcc.display = 'chromosome X';
    s.chromosome as s where code = 'LA21277-1' ->  tgt.chromosome = create('CodeableConcept') as tc,  tc.coding = create('Coding') as tcc,  tcc.system = 'http://terminology.hl7.org/CodeSystem/chromosome-human',  tcc.code = 'Y',  tcc.display = 'chromosome Y';
    s.sequence : CodeableConcept -> tgt.referenceSeqId;
    s.sequence : Reference -> tgt.referenceSeqPointer;
    s.sequence : string -> tgt.referenceSeqString;
    s.windowStart -> tgt.windowStart;
    s.windowEnd -> tgt.windowEnd;
    s.orientation as v -> tgt.orientation = translate(v, '#orientationType', 'code');
    s.strand as v -> tgt.strand = translate(v, '#strandType', 'code');
  };
}

group MolecularSequenceVariant(source src, target tgt) extends BackboneElement {
  src.edit as s -> tgt then {
    s.start -> tgt.start;
    s.end -> tgt.end;
    s.replacementSequence -> tgt.observedAllele;
    s.replacedSequence -> tgt.referenceAllele;
  };
}