Release 4
This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU ). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Structured Documents Work Group Maturity Level : N/A Standards Status : Informative Security Category : Not Classified Compartments : Device , Encounter , Patient , Practitioner , RelatedPerson

R3 : R4 Conversion maps for DocumentManifest.

Functional status for this map: 2 tests of which 2 fail to execute . ( see documentation)

map "http://hl7.org/fhir/StructureMap/DocumentManifest3to4" = "R3 to R4 Conversions for DocumentManifest"
uses "http://hl7.org/fhir/3.0/StructureDefinition/DocumentManifest" alias DocumentManifestR3 as source
uses "http://hl7.org/fhir/StructureDefinition/DocumentManifest" alias DocumentManifest as target
imports "http://hl7.org/fhir/StructureMap/*3to4"
group DocumentManifest(source src : DocumentManifestR3, target tgt : DocumentManifest) extends DomainResource <<type+>> {
  src.masterIdentifier -> tgt.masterIdentifier;
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.type -> tgt.type;
  src.subject -> tgt.subject;
  src.created -> tgt.created;
  src.author as s -> tgt.agent as t then DocumentManifestAgent(s, t);

  src.author -> tgt.author;

  src.recipient -> tgt.recipient;
  src.source -> tgt.source;
  src.description -> tgt.description;
  src.content as s -> tgt.content as t then content(s, t);
  src.related as s -> tgt.related as t then DocumentManifestRelated(s, t);
}
group DocumentManifestAgent(source src, target tgt) extends BackboneElement {
  src ->  tgt.type as cc,  cc.coding as c,  c.system = 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType',  c.code = 'AUT' "author";
  src -> tgt.who as vt0 then Reference(src, vt0) "who";
}

group content(source src, target tgt) extends Element {
  src.p : Attachment as s ->  tgt.extension as ext,  ext.url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-DocumentManifest.content.p_Attachment',  ext.value = s;
  src.p : Reference as s then Reference(s, tgt);
}
group DocumentManifestRelated(source src, target tgt) extends BackboneElement {
  src.identifier -> tgt.identifier;
  src.ref -> tgt.ref;
}
map "http://hl7.org/fhir/StructureMap/DocumentManifest4to3" = "R4 to R3 Conversion for DocumentManifest"
uses "http://hl7.org/fhir/StructureDefinition/DocumentManifest" alias DocumentManifest as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/DocumentManifest" alias DocumentManifestR3 as target
imports "http://hl7.org/fhir/StructureMap/*4to3"
group DocumentManifest(source src : DocumentManifestR3, target tgt : DocumentManifest) extends DomainResource <<type+>> {

group DocumentManifest(source src : DocumentManifest, target tgt : DocumentManifestR3) extends DomainResource <<type+>> {

  src.masterIdentifier -> tgt.masterIdentifier;
  src.identifier -> tgt.identifier;
  src.status -> tgt.status;
  src.type -> tgt.type;
  src.subject -> tgt.subject;
  src.created -> tgt.created;
  src.agent as s where type.coding.where((system = 'http://terminology.hl7.org/CodeSystem/v3-ParticipationType') and (code = 'AUT')).exists() -> tgt.author as t then DocumentManifestAgent(s, t);

  src.author -> tgt.author;

  src.recipient -> tgt.recipient;
  src.source -> tgt.source;
  src.description -> tgt.description;
  src.content as s -> tgt.content as t then content(s, t);
  src.related as s -> tgt.related as t then DocumentManifestRelated(s, t);
}
group DocumentManifestAgent(source src, target tgt) extends BackboneElement {
  src.who as vs0 then Reference(vs0, tgt);
}

group content(source src, target tgt) extends Element {
  src.extension as s where url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-DocumentManifest.content.p_Attachment' then contentAttachment(s, tgt);
  src where extension.where(url = 'http://hl7.org/fhir/3.0/StructureDefinition/extension-DocumentManifest.content.p_Attachment').empty() -> tgt.p = create('Reference') as p then Reference(src, p) "attachment";
}
group contentAttachment(source src, target tgt) extends Element {
  src.value : Attachment as s -> tgt.p = create('Attachment') as t then Attachment(s, t);
}
group DocumentManifestRelated(source src, target tgt) extends BackboneElement {
  src.identifier -> tgt.identifier;
  src.ref -> tgt.ref;
}
<p>No validation errors - all conversions are clean</p>