0.2.0 - ci-build

OKTonFHIR - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

StructureMap: OktMessageServiceRequest (Experimental)

Official URL: http://hl7.no/fhir/ig/okt/StructureMap/OktMessage-ServiceRequest Version: 0.2.0
Draft as of 2025-11-14 Computable Name: OktMessageServiceRequest

Map OktMessage to ServiceRequest

map "http://hl7.no/fhir/ig/okt/StructureMap/OktMessage-ServiceRequest" = "OktMessageServiceRequest"

// Map OktMessage to ServiceRequest

uses "http://hl7.no/fhir/ig/okt/StructureDefinition/OktMessage" alias NhnOktMessage as source
uses "http://hl7.org/fhir/StructureDefinition/ServiceRequest" alias FhirServiceRequest as target

group OktMessageToServiceRequest(source source : NhnOktMessage, target target : FhirServiceRequest) <<types>> {
  source -> target.occurrence = create('Period') as occurrencePeriod then {
    source.startDate as startDate -> occurrencePeriod.start = startDate "setStart";
    source.endDate as endDate -> occurrencePeriod.end = endDate "setEnd";
  } "mapOccurrencePeriod";
  source.serviceDescription as serviceDescription ->  target.note = create('Annotation') as noteVariable,  noteVariable.text = serviceDescription "mapServiceDescription";
  source.stayType as stayType -> target.category = cc('http://hl7.no/fhir/ig/okt/CodeSystem/OktStayTypeCs', stayType) as categoryVariable "mapStayType";
  source.weeklyExtent as weeklyExtent ->  target.quantity = create('Ratio') as quantityVariable,  quantityVariable.numerator = create('Quantity') as numeratorVariable,  numeratorVariable.value = weeklyExtent,  numeratorVariable.unit = 'h',  numeratorVariable.system = 'http://unitsofmeasure.org',  numeratorVariable.code = 'h',  quantityVariable.denominator = create('Quantity') as denominatorVariable,  denominatorVariable.value = '1',  denominatorVariable.unit = 'wk',  denominatorVariable.system = 'http://unitsofmeasure.org',  denominatorVariable.code = 'wk' "mapWeeklyExtent";
}