StructureMap-Device4to5

Sourcehl7.fhir.uv.extensions.r4#1.0.0:FHIR Extensions Pack (v4.0.1)
resourceTypeStructureMap
idDevice4to5
canonicalhttp://hl7.org/fhir/StructureMap/Device4to5
version1.0.0
statusactive
publisherHL7 International / FHIR Infrastructure
nameDevice4to5
titleFML Conversion for Device: R4 to R5
date2023-03-26T08:47:34+11:00
descriptionFMLConversionforDeviceR4toR5
jurisdictionsuv
Usages(none)

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

    
/// name = 
    
    'Device4to5'

    
/// title = 
    
    'FML Conversion for Device: R4 to R5'

    
/// status = 
    
    'active'


    conceptmap
     "
DeviceNameType    " {

      prefix 
s     = "
http://hl7.org/fhir/4.0/device-nametype    "

      prefix 
t     = "
    http://hl7.org/fhir/device-nametype
    "


  s    :
"udi-label-name"     -
 t    :
    "
registered-name    "

  s    :
"user-friendly-name"     -
 t    :
    "
user-friendly-name    "

  s    :
"patient-reported-name"     -
 t    :
    "
patient-reported-name    "

  s    :
"manufacturer-name"     -
 t    :
    "
registered-name    "

  s    :
"model-name"     -
 t    :
    "
registered-name    "

  s    :
other     -
 t    :
    "
registered-name    "

    }


    conceptmap
     "
FHIRDeviceStatus    " {

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

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


  s    :
active     -
 t    :
active
  s    :
inactive     -
 t    :
inactive
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

    }


    conceptmap
     "
UDIEntryType    " {

      prefix 
s     = "
http://hl7.org/fhir/4.0/udi-entry-type    "

      prefix 
t     = "
    http://hl7.org/fhir/udi-entry-type
    "


  s    :
barcode     -
 t    :
barcode
  s    :
rfid     -
 t    :
rfid
  s    :
manual     -
 t    :
manual
  s    :
card     -
 t    :
card
  s    :
"self-reported"     -
 t    :
    "
self-reported    "

  s    :
unknown     -
 t    :
unknown
    }


    uses
     "
http://hl7.org/fhir/4.0/StructureDefinition/Device    " 
    alias 
DeviceR4     as 
    source

    uses
     "
    http://hl7.org/fhir/StructureDefinition/Device
    " 
    alias 
DeviceR5     as 
    target


    imports
     "
http://hl7.org/fhir/StructureMap/*4to5    "


    group 
Device    (
    source
     src
     : 
DeviceR4,     target
     tgt
     : 
DeviceR5    )
     extends 
DomainResource     <<type+>>
     {

  src.identifier    
 ->     
tgt.identifier    ;

  src.definition    
 ->     
tgt.definition    ;
     // 
    src.displayName -> tgt.displayName;

  src.udiCarrier     as 
    s
    
 ->     
tgt.udiCarrier     as 
    t
     then 
DeviceUdiCarrier    (
    s
    , 
    t
    )
    ;

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

  src.manufacturer    
 ->     
tgt.manufacturer    ;
     // 
    src.availabilityStatus -> tgt.availabilityStatus;

  src.manufactureDate    
 ->     
tgt.manufactureDate    ;

  src.expirationDate    
 ->     
tgt.expirationDate    ;

  src.lotNumber    
 ->     
tgt.lotNumber    ;

  src.serialNumber    
 ->     
tgt.serialNumber    ;

  src.deviceName     as 
    s
    
 ->     
tgt.name     as 
    t
     then 
DeviceName    (
    s
    , 
    t
    )
    ;

  src.modelNumber    
 ->     
tgt.modelNumber    ;

  src.partNumber    
 ->     
tgt.partNumber    ;

  src.type    
 ->     
tgt.type    ;
     // 
    src.category -> tgt.category;

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

  src.property     as 
    s
    
 ->     
tgt.property     as 
    t
     then 
DeviceProperty    (
    s
    , 
    t
    )
    ;
     // 
    src.conformsTo as s -> tgt.conformsTo as t then DeviceConformsTo(s,t);

  src.owner    
 ->     
tgt.owner    ;
     // 
    src.mode -> tgt.mode;

  src.contact    
 ->     
tgt.contact    ;

  src.location    
 ->     
tgt.location    ;

  src.url    
 ->     
tgt.url    ;

  src.note    
 ->     
tgt.note    ;
     // 
    src.endpoint -> tgt.endpoint;

  src.safety    
 ->     
tgt.safety    ;

  src.parent    
 ->     
tgt.parent    ;

    }


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

  src.deviceIdentifier    
 ->     
tgt.deviceIdentifier    ;

  src.issuer    
 ->     
tgt.issuer    ;

  src.jurisdiction    
 ->     
tgt.jurisdiction    ;

  src.carrierAIDC    
 ->     
tgt.carrierAIDC    ;

  src.carrierHRF    
 ->     
tgt.carrierHRF    ;

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

    }


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

  src.name    
 ->     
tgt.value    ;

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

    }


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

  src.type    
 ->     
tgt.type    ;

  src.component    
 ->     
tgt.component    ;

  src.value    
 ->     
tgt.value    ;
     // 
    src.installDate -> tgt.installDate;

    }


    // 
    group DeviceConformsTo(source src, target tgt) extends BackboneElement {

    // src.category -> tgt.category;

    // src.specification -> tgt.specification;

    // src.version -> tgt.version;

    // 
    }

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

  src.type    
 ->     
tgt.type    ;

  src.valueQuantity     : 
Quantity    
 ->     
tgt.value    ;

  src.valueCode     : 
CodeableConcept    
 ->     
tgt.value    ;

    }


  

Produced 06 Apr 2023