FHIR Extensions Pack
1.0.0 - Working Copy International flag

This page is part of the FHIR Core Extensions Registry (v1.0.0: Releases) based on FHIR v5.0.0. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

StructureMap: FML Conversion for OperationOutcome: R5 to R4B

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

FMLConversionforOperationOutcomeR5toR4B

/// url = 'http://hl7.org/fhir/StructureMap/OperationOutcome5to4B'
/// name = 'OperationOutcome5to4B'
/// title = 'FML Conversion for OperationOutcome: R5 to R4B'
/// status = 'active'

conceptmap "IssueSeverity" {
  prefix s = "http://hl7.org/fhir/issue-severity"
  prefix t = "http://hl7.org/fhir/4.3/issue-severity"

  s:fatal - t:fatal
  s:error - t:error
  s:warning - t:warning
  s:information - t:information
}

conceptmap "IssueType" {
  prefix s = "http://hl7.org/fhir/issue-type"
  prefix t = "http://hl7.org/fhir/4.3/issue-type"

  s:invalid - t:invalid
  s:structure - t:structure
  s:required - t:required
  s:value - t:value
  s:invariant - t:invariant
  s:security - t:security
  s:login - t:login
  s:unknown - t:unknown
  s:expired - t:expired
  s:forbidden - t:forbidden
  s:suppressed - t:suppressed
  s:processing - t:processing
  s:"not-supported" - t:"not-supported"
  s:duplicate - t:duplicate
  s:"multiple-matches" - t:"multiple-matches"
  s:"not-found" - t:"not-found"
  s:deleted - t:deleted
  s:"too-long" - t:"too-long"
  s:"code-invalid" - t:"code-invalid"
}

uses "http://hl7.org/fhir/StructureDefinition/OperationOutcome" alias OperationOutcomeR5 as source
uses "http://hl7.org/fhir/4.3/StructureDefinition/OperationOutcome" alias OperationOutcomeR4B as target

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

group OperationOutcome(source src : OperationOutcomeR5, target tgt : OperationOutcomeR4B) extends DomainResource <<type+>> {
  src.issue as s -> tgt.issue as t then OperationOutcomeIssue(s, t);
}

group OperationOutcomeIssue(source src, target tgt) extends BackboneElement {
  src.severity as v -> tgt.severity = translate(v, '#IssueSeverity', 'code');
  src.code as v -> tgt.code = translate(v, '#IssueType', 'code');
  src.details -> tgt.details;
  src.diagnostics -> tgt.diagnostics;
  src.location -> tgt.location;
  src.expression -> tgt.expression;
}