--- type: "resource" title: "ActivityDefinition" resource: "ActivityDefinition" --- # ActivityDefinition ## Introduction ## Scope and Usage **This resource is a _definition_ resource from a FHIR workflow perspective** - see [Workflow](workflow), specifically [Definition](workflow#definition). An ActivityDefinition is a shareable, consumable description of some activity to be performed. It may be used to specify actions to be taken as part of a workflow, order set, or protocol, or it may be used independently as part of a catalog of activities such as orderables. For more information on how activity definitions can be used to construct request resources, see the Applying an ActivityDefinition topic below. ## Boundaries and Relationships In general, an activity definition is simply a conceptual description of some specific action that should be taken. An instance of an ActivityDefinition does not indicate that any action has been performed (as an [event](workflow#event) resource does), nor does it indicate the actual _intent_ to carry out any particular action (as a [request](workflow#request) resource does). Instead, an activity definition provides a reusable template that can be used to construct specific _request_ resources such as [ServiceRequest](servicerequest) and [MedicationRequest](medicationrequest). Note that this is conceptually similar to the [Task](task) resource as well, with the distinction being that ActivityDefinition represents the description of a task in the abstract, while the Task resource is used to track a specific instance of a task as it moves through the steps of a workflow. ## Background and Context Provides additional detail on exactly how the resource is to be used ## Notes ### Applying an ActivityDefinition An ActivityDefinition resource provides a description, or template, of an action to performed. These actions can be purely text-based descriptions of the action to be performed, only interpretable by a human user, or they can be structured definitions with enough information to construct a resource to represent the request or activity directly. This process of converting the ActivityDefinition into a specific resource in a particular context is performed with the `$apply` operation. In the simplest case, the process maps the elements specified in the ActivityDefinition to the corresponding elements on a resource of the appropriate type, using the `kind` element of the definition to determine the type of resource to be created. More dynamic scenarios can be achieved in one of two ways, either by providing `dynamicValue` expressions, or by specifying a [StructureMap](structuremap) that transforms the definition into the appropriate request resource. Note that systems will likely vary widely in the degree of support they provide for the `$apply` operation. In particular, the fact that a system supports applying definitions of one category, does not imply that it supports applying definitions for all categories. For example, a service focused on medication order sets may have sophisticated support for MedicationRequest activities, but no support at all for the ServiceRequest activities. The following diagram illustrates the relationship between the PlanDefinition and ActivityDefinition resources, as well as a typical application to CarePlan, RequestOrchestration, and Request resources: ![relationship-between-action-and-activity-definition](action-and-activity-definition.png) To accommodate the variability in systems and use cases, this specification is not prescriptive about exactly how an ActivityDefinition is applied to produce target request resources. However, the approach depicted above provides a general framework for the process, and the following steps provide more detail on the potential approach: 1. Create the target resource of the type specified by the `kind` element and focused on the Patient in context 2. Set the `status` of the target resource to _draft_ 3. Set the `intent` of the target resource to _option_ 4. Apply the structural elements of the ActivityDefinition to the target resource such as `code`, `timing`, `doNotPerform`, `product`, `quantity`, `dosage`, and so on 5. Resolve the `participant` element based on the user in context 6. Resolve the `location` element based on the location in context 7. If the `transform` element is specified, apply the transform to the resource. Note that the referenced StructureMap may actually construct the resource, rather than taking an instance. See the StructureMap for more information 8. Apply any `dynamicValue` elements (in the order in which they appear in the ActivityDefinition resource) by evaluating the expression and setting the value of the appropriate element of the target resource (as specified by the `dynamicValue.path` element) Note that the parameters to the $apply operation are available within dynamicValue CQL and FHIRPath expressions as context variables, accessible by the name of the parameter prefixed with a percent (%) symbol. For example, to access the subject given to the apply, use the expression `%subject`. In addition, the subject element establishes the context for CQL expressions evaluated during the operation, as discussed in the [Evaluation Context](clinicalreasoning-topics-using-expressions#evaluation-context) discussion in the Using Expressions topic. Note that result of this operation is transient (i.e. none of the resources created by the operation are persisted in the server, they are all returned as contained resources in the result). The result effectively represents a proposed set of activities, and it is up to the caller to determine whether and how those activities are actually carried out. ### Event Resources The `kind` element may only specify Request resource types to facilitate considering user input as part of processing the result of any automated clinical reasoning processes. To support creation of event resources, such as Observations, RiskAssessments, and DetectedIssues, use a Task resource with the focus of the task set to the event resource to be created. ### Profiling ActivityDefinition Because the ActivityDefinition resource can be used to describe many different types of request resources, profiles of the resource will be useful in communicating additional constraints and expectations about how the resource should be used in a particular context. For example, a profile of ActivityDefinition may specify that it is intended to describe medication orders within an order set. Such a profile would indicate that the `quantity` element should not be used, but the `dosage` element must be. ### ActivityDefinition Structure Mapping The following sections provide FHIR Mapping Language snippets for mapping ActivityDefinition instances to each kind of Request resource that can be created. #### Appointment ` map "http://research.philips.com/fhir/r4/mapping/AdToAppointment" = "R3 Parameters of Activitydefinition.$apply to Appointment" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/Appointment" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.participant as participant then { doActor: for sbj as sbj make participant.actor=sbj doStatus: for sbj as sbj make participant.status ="needs-action" } } // "practitioner" : for src.parameter as p where name='practitioner' then{ // do: for p.value as prac make tgt.requester = prac // } "organization" : for src as src where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then{ do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.requester = org } } // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.encounter = enc // } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ServiceRequest as target // "refAd" : for src.url as vvv make tgt.basedOn = vvv // "ad.code" : for src.code as vvv make tgt.code = vvv // could be serviceCategory or specialty --> unclear // "intent" : for src make tgt.intent = "proposal" "ad.priority" : for src where priority='routine' then { prio: for src make tgt.priority = 9 } "ad.priority" : for src.priority as priority where priority='urgent' then { prio: for priority make tgt.priority = 7 } "ad.priority" : for src.priority as priority where priority='asap' then { prio: for priority make tgt.priority = 4 } "ad.priority" : for src.priority as priority where priority='stat' then { prio: for priority make tgt.priority = 1 } // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.timingP1" : for src.timing :Period as period make tgt.start = period.start "ad.timingP2" : for src.timing :Period as period make tgt.end = period.end "ad.timingD" : for src.timing :Duration as duration make tgt.minutesDuration = duration "ad.timingDT" : for src.timing :dateTime as dt make tgt.start = dt "ad.location" : for src.location as location make tgt.participant as participant then { doActor: for location make participant.actor = location doStatus: for location make participant.status = "needs-action" } // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() // "ad.bodysite" : for src.bodySite as vvv make tgt.bodySite = vvv // "ad.dosage" : for src as vvv check dosage.empty() // "intent" : for src make tgt.intent = "proposal" "status" : for src make tgt.status = "proposed" "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### AppointmentResponse ` map "http://research.philips.com/fhir/r4/mapping/AdToAppointmentResponse" = "R3 Parameters of Activitydefinition.$apply to AppointmentResponse" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/AppointmentResponse" as target group main input src: Parameters as source input tgt: ReferralRequest as target // "subject" : for src.parameter as p where name='subject' then { // do: for p.value as sbj make tgt.subject = sbj // } // // "practitioner" : for src.parameter as p where name='practitioner' then{ // do: for p.value as prac make tgt.requester = prac // } // // "organization" : for src as src where // parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() // then{ // do: for src.parameter as p where name='organization' then{ // do: for p.value as org make tgt.requester = org // } // } // // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.encounter = enc // } // unsure who the actor is. No default makes sense - leave empty. actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ServiceRequest as target // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "status" : for src make tgt.participantStatus = "needs-action" // "intent" : for src make tgt.intent = "proposal" // "ad.code" : for src.code as vvv make tgt.code = vvv // "ad.timing" : for src.timing as timing make tgt.start = timing // unsure how to map on start/end // "ad.location" : for src.location as vvv make tgt.locationReference = vvv // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() // "ad.bodysite" : for src.bodySite as vvv make tgt.bodySite = vvv // "ad.dosage" : for src as vvv check dosage.empty() endgroup ` #### CarePlan ` map "http://research.philips.com/fhir/r4/mapping/AdToCarePlan" = "R3 Parameters of Activitydefinition.$apply to CarePlan" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/CarePlan" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.author = prac } "organization" : for src as src where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then{ do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.author = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ServiceRequest as target "ad.code" : for src.code as vvv make tgt.category = vvv // "ad.priority" : for src.priority as prio make tgt.priority = vvv // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.timing" : for src.timing as timing make tgt.period = timing // "ad.location" : for src.location as location make tgt.location=location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() // "ad.bodysite" : for src.bodySite as vvv make tgt.bodySite = vvv // "ad.dosage" : for src as vvv check dosage.empty() "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "status" : for src make tgt.status = "draft" "intent" : for src make tgt.intent = "proposal" "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### Claim ` map "http://research.philips.com/fhir/r4/mapping/AdToClaim" = "R3 Parameters of Activitydefinition.$apply to Claim" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/Claim" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.patient = sbj } "practitioner1" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.enterer = prac } "organization" : for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.provider = org } // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.encounter = enc // } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: Claim as target "ad.code" : for src.code as vvv make tgt.type = vvv "ad.priority1" : for src where priority.exists() then { do: for src.priority as priority make tgt.priority as tgtprioCc then { doCoding: for priority make tgtprioCc.coding as tgtCoding then { system: for priority make tgtCoding.system = "http://hl7.org/fhir/ValueSet/request-priority" code: for priority make tgtCoding.code = priority } } } "ad.priority2" : for src where priority.exists().not() then { do: for src make tgt.priority as tgtprioCc then { doCoding: for src make tgtprioCc.coding as tgtCoding then { system: for src make tgtCoding.system = "http://hl7.org/fhir/ValueSet/request-priority" code: for src make tgtCoding.code = "normal" } } } // "ad.timing" : for src.timing as timing make tgt.period = timing // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.location" : for src.location as location make tgt.facility = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "status" : for src make tgt.status = "draft" "use" : for src make tgt.use = "claim" "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### CommunicationRequest ` map "http://research.philips.com/fhir/r4/mapping/AdToCommunicationRequest" = "R3 Parameters of Activitydefinition.$apply to CommunicationRequest" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/CommunicationRequest" as target group main input src: Parameters as source input tgt: ProcedureRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.requester = prac } "organization" : for src.parameter as p where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then { do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.requester = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ProcedureRequest as target "basedOn" : for src make tgt.basedOn = reference( src ) "status" : for src make tgt.status = "draft" "authoredOn" : for src make tgt.authoredOn = evaluate( src, now() ) "ad.code" : for src.code as vvv make tgt.reasonCode = vvv // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.timing" : for src.timing as vvv make tgt.occurrence = vvv // "ad.location" : for src as vvv check location.empty() // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() // "ad.bodysite" : for src as vvv check bodysite.empty() // "ad.dosage" : for src as vvv check dosage.empty() endgroup ` #### Contract ` map "http://research.philips.com/fhir/r4/mapping/AdToContract" = "R3 Parameters of Activitydefinition.$apply to Contract" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/Contract" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.author = prac } "organization" : for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.authority = org } // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.context = enc // } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: Contract as target "ad.code" : for src.code as code make tgt.scope = code // "ad.priority" : for src as priority make tgt.priority as tgtprioCc // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.timing" : for src.timing as timing make tgt.applies = timing "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv // "status" : for src make tgt.status = "draft" // "use" : for src make tgt.use = "claim" // "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### DeviceRequest ` map "http://research.philips.com/fhir/r4/mapping/AdToDeviceRequest" = "R3 Parameters of Activitydefinition.$apply to DeviceRequest" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/DeviceRequest" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.requester = prac } "organization" : for src as src where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then{ do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.requester = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: DeviceRequest as target "ad.code" : for src.code as code make tgt.code = code "ad.priority" : for src.priority as vvv make tgt.priority = vvv // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "intent" : for src make tgt.intent = "proposal" // "use" : for src make tgt.use = "claim" // "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### EnrollmentRequest ` map "http://research.philips.com/fhir/r4/mapping/AdToEnrollmentRequest" = "R3 Parameters of Activitydefinition.$apply to EnrollmentRequest" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/EnrollmentRequest" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.candidate = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.provider = prac } // "organization" : for src as src where // parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() // then{ // do: for src.parameter as p where name='organization' then{ // do: for p.value as org make tgt.requester = org // } // } // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.encounter = enc // } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: EnrollmentRequest as target // "ad.code" : for src.code as code make tgt.code = code // "ad.priority" : for src.priority as priority make tgt.priority as priority // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority // "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv // "intent" : for src make tgt.intent = "proposal" // "use" : for src make tgt.use = "claim" "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` #### ImmunizationRecommendation ` map "http://research.philips.com/fhir/r4/mapping/AdToImmunizationRecommendation" = "R3 Parameters of Activitydefinition.$apply to ImmunizationRecommendation" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/ImmunizationRecommendation" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.patient = sbj } // "practitioner" : for src.parameter as p where name='practitioner' then{ // do: for p.value as prac make tgt.provider = prac // } "organization" : for src as src where name='organization' then{ do: for p.value as organization make tgt.authority = organization } // "encounter" : for src.parameter as p where name='encounter' then { // do: for p.value as enc make tgt.encounter = enc // } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ImmunizationRecommendation as target // "ad.code" : for src.code as code make tgt.code = code // "ad.priority" : for src.priority as priority make tgt.priority as priority // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority // "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv // "intent" : for src make tgt.intent = "proposal" // "use" : for src make tgt.use = "claim" "created" : for src make tgt.date = evaluate( src, now() ) endgroup ` #### MedicationRequest ` map "http://research.philips.com/fhir/r4/mapping/AdToMedicationRequest" = "R3 Parameters of Activitydefinition.$apply to MedicationRequest" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/MedicationRequest" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ doReq: for p.value as prac make tgt.requester = prac doRec: for p.value as prac make tgt.recorder = prac } "organization" : for src as src where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then{ do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.requester = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: MedicationRequest as target "ad.code" : for src.code as code make tgt.reasonCode = code "ad.priority" : for src.priority as priority make tgt.priority = priority "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.doNotPerform as doNotPerform // "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location "ad.product" : for src.product as product make tgt.medication = product // "ad.quantity" : for src.quantity as quantity make tgt.quantity as tgt // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite "ad.dosage" : for src.dosage as dosage make tgt.dosageInstruction = dosage dispenseRequest: for src make tgt.dispenseRequest as dispenseRequest then { dr.q: for src.quantity as quantity make dispenseRequest.quantity = quantity dr.di: for src.timing : Duration as timing make dispenseRequest.dispenseInterval = timing dr.di: for src.timing : Period as timing make dispenseRequest.validityPeriod = timing } "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "intent" : for src make tgt.intent = "proposal" "status" : for src make tgt.status = "active" "created" : for src make tgt.authoredOn = evaluate( src, now() ) endgroup ` #### NutritionOrder ` map "http://research.philips.com/fhir/r4/mapping/AdToNutritionOrder" = "R3 Parameters of Activitydefinition.$apply to NutritionOrder" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/NutritionOrder" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.patient = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.orderer = prac } // "organization" : for src as src where // parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() // then{ // do: for src.parameter as p where name='organization' then{ // do: for p.value as org make tgt.requester = org // } // } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: NutritionOrder as target "ad.code1" : for src where doNotPerform then { prMod: for src.code as code make tgt.foodPreferenceModifier = code } "ad.code2" : for src where doNotPerform.not() then { prMod: for src.code as code make tgt.excludeFoodModifier = code } // "ad.priority" : for src.priority as priority make tgt.priority as priority // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority // "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "intent" : for src make tgt.intent = "proposal" "status" : for src make tgt.status = "active" "created" : for src make tgt.dateTime = evaluate( src, now() ) endgroup ` #### ServiceRequest ` map "http://research.philips.com/fhir/r4/mapping/AdToServiceRequest" = "R3 Parameters of Activitydefinition.$apply to ServiceRequest" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/ServiceRequest" as target group main input src: Parameters as source input tgt: ReferralRequest as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.subject = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.requester = prac } "organization" : for src as src where parameter.where( name='practitioner').exists().not() and parameter.where( name='organization').exists() then{ do: for src.parameter as p where name='organization' then{ do: for p.value as org make tgt.requester = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ServiceRequest as target "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "status" : for src make tgt.status = "draft" "intent" : for src make tgt.intent = "proposal" "ad.code" : for src.code as vvv make tgt.code = vvv "ad.timing" : for src.timing as vvv make tgt.occurrence = vvv "ad.location" : for src.location as vvv make tgt.locationReference = vvv // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() "ad.bodysite" : for src.bodySite as vvv make tgt.bodySite = vvv // "ad.dosage" : for src as vvv check dosage.empty() endgroup ` #### Task ` map "http://research.philips.com/fhir/r4/mapping/Task" = "R3 Parameters of Activitydefinition.$apply to Task" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/Task" as target group main input src: Parameters as source input tgt: Task as target "for" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.for = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.requester as requester then{ do: for prac make requester.agent = prac } } "organization" : for src.parameter as p where name='organization' then { do: for p.value as org make tgt.requester as requester then { do: for org make requester.onBehalfOf = org } } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: ProcedureRequest as target // "basedOn" : for src make tgt.basedOn = reference( src ) refAd : for src.url as can make tgt.instantiatesCanonical = can "status" : for src make tgt.status = "draft" "ad.code" : for src.code as vvv make tgt.code = vvv // "ad.timing" : for src as vvv check timing.empty() ==>restriction.period // "ad.location" : for src as vvv check location.empty() // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src as vvv check quantity.empty() // "ad.bodysite" : for src as vvv check bodysite.empty() // "ad.dosage" : for src as vvv check dosage.empty() // "ad.relatedart": for src.relatedArtifact as relatedArtifact make tgt.payload as payload then { // do: for relatedArtifact as relatedArtifact make payload.content as content then { // "content": for relatedArtifact as vvv make content = vvv // "display" : for relatedArtifact.display as vvv make content // "citation": for relatedArtifact as vvv make content = vvv // "url" : for relatedArtifact as vvv make content = vvv // "document": for relatedArtifact as vvv make content = vvv // "resource": for relatedArtifact as vvv make content = vvv // } // } endgroup ` #### VisionPrescription ` map "http://research.philips.com/fhir/r4/mapping/AdToVisionPrescription" = "R3 Parameters of Activitydefinition.$apply to VisionPrescription" uses "http://hl7.org/fhir/StructureDefinition/Parameters" as source uses "http://hl7.org/fhir/StructureDefinition/VisionPrescription" as target group main input src: Parameters as source input tgt: VisionPrescription as target "subject" : for src.parameter as p where name='subject' then { do: for p.value as sbj make tgt.patient = sbj } "practitioner" : for src.parameter as p where name='practitioner' then{ do: for p.value as prac make tgt.prescriber = prac } // "organization" : for src.parameter as p where name='organization' then{ // do: for p.value as org make tgt.requester =org // } "encounter" : for src.parameter as p where name='encounter' then { do: for p.value as enc make tgt.encounter = enc } actded: for src.parameter as p where name='source' then { do: for p.resource as ad then createActDef( ad, tgt ) } endgroup group createActDef input src: ActivityDefinition as source input tgt: VisionPrescription as target // "ad.code" : for src.code as code make tgt.item = code // "ad.priority" : for src.priority as priority make tgt.priority = priority // "ad.doNotPerform" : for src.doNotPerform as doNotPerform make tgt.priority as priority // "ad.timing" : for src.timing as timing make tgt.occurrence = timing // "ad.location" : for src.location as location make tgt.site = location // "ad.product" : for src as vvv check product.empty() // "ad.quantity" : for src.quantity as quantity make tgt.quantity = quantity // "ad.bodysite" : for src.bodySite as bodysite make tgt.bodySite = bodysite // "ad.dosage" : for src as vvv check dosage.empty() // "refAd" : for src.url as vvv make tgt.instantiatesCanonical = vvv "status" : for src make tgt.status = "draft" "created" : for src make tgt.created = evaluate( src, now() ) endgroup ` ## StructureDefinition ### Elements (Simplified) - **[ActivityDefinition](/activitydefinition-definitions#ActivityDefinition)** [0..*]: - The definition of a specific activity to be taken, independent of any particular patient or context - **[ActivityDefinition.url](/activitydefinition-definitions#ActivityDefinition.url)** [0..1]: [uri](/uri) Canonical identifier for this activity definition, represented as a URI (globally unique) - **[ActivityDefinition.identifier](/activitydefinition-definitions#ActivityDefinition.identifier)** [0..*]: [Identifier](/Identifier) Additional identifier for the activity definition - **[ActivityDefinition.version](/activitydefinition-definitions#ActivityDefinition.version)** [0..1]: [string](/string) Business version of the activity definition - **[ActivityDefinition.versionAlgorithm[x]](/activitydefinition-definitions#ActivityDefinition.versionAlgorithm%5Bx%5D)** [0..1]: [string](/string), [Coding](/Coding) extensible:[version-algorithm](/valueset-version-algorithm) How to compare versions - **[ActivityDefinition.name](/activitydefinition-definitions#ActivityDefinition.name)** [0..1]: [string](/string) Name for this activity definition (computer friendly) - **[ActivityDefinition.title](/activitydefinition-definitions#ActivityDefinition.title)** [0..1]: [string](/string) Name for this activity definition (human friendly) - **[ActivityDefinition.subtitle](/activitydefinition-definitions#ActivityDefinition.subtitle)** [0..1]: [string](/string) Subordinate title of the activity definition - **[ActivityDefinition.status](/activitydefinition-definitions#ActivityDefinition.status)** [1..1]: [code](/code) required:[publication-status](/valueset-publication-status) draft | active | retired | unknown - **[ActivityDefinition.experimental](/activitydefinition-definitions#ActivityDefinition.experimental)** [0..1]: [boolean](/boolean) For testing only - never for real usage - **[ActivityDefinition.subject[x]](/activitydefinition-definitions#ActivityDefinition.subject%5Bx%5D)** [0..1]: [CodeableConcept](/CodeableConcept), [Reference(Group](/Reference(Group), [MedicinalProductDefinition](/MedicinalProductDefinition), [SubstanceDefinition](/SubstanceDefinition), [AdministrableProductDefinition](/AdministrableProductDefinition), [ManufacturedItemDefinition](/ManufacturedItemDefinition), [PackagedProductDefinition)](/PackagedProductDefinition)), [canonical](/canonical) extensible:[participant-resource-types](/valueset-participant-resource-types) Type of individual the activity definition is intended for - **[ActivityDefinition.date](/activitydefinition-definitions#ActivityDefinition.date)** [0..1]: [dateTime](/dateTime) Date last changed - **[ActivityDefinition.publisher](/activitydefinition-definitions#ActivityDefinition.publisher)** [0..1]: [string](/string) Name of the publisher/steward (organization or individual) - **[ActivityDefinition.contact](/activitydefinition-definitions#ActivityDefinition.contact)** [0..*]: [ContactDetail](/ContactDetail) Contact details for the publisher - **[ActivityDefinition.description](/activitydefinition-definitions#ActivityDefinition.description)** [0..1]: [markdown](/markdown) Natural language description of the activity definition - **[ActivityDefinition.useContext](/activitydefinition-definitions#ActivityDefinition.useContext)** [0..*]: [UsageContext](/UsageContext) The context that the content is intended to support - **[ActivityDefinition.jurisdiction](/activitydefinition-definitions#ActivityDefinition.jurisdiction)** [0..*]: [CodeableConcept](/CodeableConcept) extensible:[jurisdiction](/valueset-jurisdiction) Jurisdiction of the authority that maintains the activity definition (if applicable) - **[ActivityDefinition.purpose](/activitydefinition-definitions#ActivityDefinition.purpose)** [0..1]: [markdown](/markdown) Why this activity definition is defined - **[ActivityDefinition.usage](/activitydefinition-definitions#ActivityDefinition.usage)** [0..1]: [markdown](/markdown) Describes the clinical usage of the activity definition - **[ActivityDefinition.copyright](/activitydefinition-definitions#ActivityDefinition.copyright)** [0..1]: [markdown](/markdown) Notice about intellectual property ownership, can include restrictions on use - **[ActivityDefinition.copyrightLabel](/activitydefinition-definitions#ActivityDefinition.copyrightLabel)** [0..1]: [string](/string) Copyright holder and year(s) - **[ActivityDefinition.approvalDate](/activitydefinition-definitions#ActivityDefinition.approvalDate)** [0..1]: [date](/date) When the activity definition was approved by publisher - **[ActivityDefinition.lastReviewDate](/activitydefinition-definitions#ActivityDefinition.lastReviewDate)** [0..1]: [date](/date) When the activity definition was last reviewed by the publisher - **[ActivityDefinition.effectivePeriod](/activitydefinition-definitions#ActivityDefinition.effectivePeriod)** [0..1]: [Period](/Period) When the activity definition is expected to be used - **[ActivityDefinition.topic](/activitydefinition-definitions#ActivityDefinition.topic)** [0..*]: [CodeableConcept](/CodeableConcept) example:[definition-topic](/valueset-definition-topic) E.g. Education, Treatment, Assessment, etc - **[ActivityDefinition.author](/activitydefinition-definitions#ActivityDefinition.author)** [0..*]: [ContactDetail](/ContactDetail) Who authored the content - **[ActivityDefinition.editor](/activitydefinition-definitions#ActivityDefinition.editor)** [0..*]: [ContactDetail](/ContactDetail) Who edited the content - **[ActivityDefinition.reviewer](/activitydefinition-definitions#ActivityDefinition.reviewer)** [0..*]: [ContactDetail](/ContactDetail) Who reviewed the content - **[ActivityDefinition.endorser](/activitydefinition-definitions#ActivityDefinition.endorser)** [0..*]: [ContactDetail](/ContactDetail) Who endorsed the content - **[ActivityDefinition.relatedArtifact](/activitydefinition-definitions#ActivityDefinition.relatedArtifact)** [0..*]: [RelatedArtifact](/RelatedArtifact) Additional documentation, citations, etc - **[ActivityDefinition.library](/activitydefinition-definitions#ActivityDefinition.library)** [0..*]: [canonical](/canonical) Logic used by the activity definition - **[ActivityDefinition.kind](/activitydefinition-definitions#ActivityDefinition.kind)** [0..1]: [code](/code) required:[request-resource-types](/valueset-request-resource-types) Kind of resource - **[ActivityDefinition.profile](/activitydefinition-definitions#ActivityDefinition.profile)** [0..1]: [canonical](/canonical) What profile the resource needs to conform to - **[ActivityDefinition.code](/activitydefinition-definitions#ActivityDefinition.code)** [0..1]: [CodeableConcept](/CodeableConcept) example:[procedure-code](/valueset-procedure-code) Detail type of activity - **[ActivityDefinition.intent](/activitydefinition-definitions#ActivityDefinition.intent)** [0..1]: [code](/code) required:[request-intent](/valueset-request-intent) proposal | solicit-offer | offer-response | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option - **[ActivityDefinition.priority](/activitydefinition-definitions#ActivityDefinition.priority)** [0..1]: [code](/code) required:[request-priority](/valueset-request-priority) routine | urgent | asap | stat - **[ActivityDefinition.doNotPerform](/activitydefinition-definitions#ActivityDefinition.doNotPerform)** [0..1]: [boolean](/boolean) True if the activity should not be performed - **[ActivityDefinition.timing[x]](/activitydefinition-definitions#ActivityDefinition.timing%5Bx%5D)** [0..1]: [Timing](/Timing), [Age](/Age), [Range](/Range), [Duration](/Duration), [RelativeTime](/RelativeTime) When activity is to occur - **[ActivityDefinition.asNeeded[x]](/activitydefinition-definitions#ActivityDefinition.asNeeded%5Bx%5D)** [0..1]: [boolean](/boolean), [CodeableConcept](/CodeableConcept) example:[medication-as-needed-reason](/valueset-medication-as-needed-reason) Preconditions for service - **[ActivityDefinition.location](/activitydefinition-definitions#ActivityDefinition.location)** [0..1]: [CodeableReference](/CodeableReference) Where it should happen - **[ActivityDefinition.participant](/activitydefinition-definitions#ActivityDefinition.participant)** [0..*]: [BackboneElement](/BackboneElement) Who should participate in the action - **[ActivityDefinition.participant.type](/activitydefinition-definitions#ActivityDefinition.participant.type)** [0..1]: [code](/code) required:[action-participant-type](/valueset-action-participant-type) careteam | device | group | healthcareservice | location | organization | patient | practitioner | practitionerrole | relatedperson - **[ActivityDefinition.participant.typeCanonical](/activitydefinition-definitions#ActivityDefinition.participant.typeCanonical)** [0..1]: [canonical](/canonical) Who or what can participate - **[ActivityDefinition.participant.typeReference](/activitydefinition-definitions#ActivityDefinition.participant.typeReference)** [0..1]: [Reference(BiologicallyDerivedProduct](/Reference(BiologicallyDerivedProduct), [CareTeam](/CareTeam), [Device](/Device), [Endpoint](/Endpoint), [HealthcareService](/HealthcareService), [Location](/Location), [Medication](/Medication), [MedicinalProductDefinition](/MedicinalProductDefinition), [Organization](/Organization), [Patient](/Patient), [Practitioner](/Practitioner), [PractitionerRole](/PractitionerRole), [RelatedPerson](/RelatedPerson), [Specimen](/Specimen), [Substance](/Substance), [SubstanceDefinition)](/SubstanceDefinition)) Who or what can participate - **[ActivityDefinition.participant.role](/activitydefinition-definitions#ActivityDefinition.participant.role)** [0..1]: [CodeableConcept](/CodeableConcept) example:[action-participant-role](/valueset-action-participant-role) E.g. Nurse, Surgeon, Parent, etc - **[ActivityDefinition.participant.function](/activitydefinition-definitions#ActivityDefinition.participant.function)** [0..1]: [CodeableConcept](/CodeableConcept) example:[action-participant-function](/valueset-action-participant-function) E.g. Author, Reviewer, Witness, etc - **[ActivityDefinition.product[x]](/activitydefinition-definitions#ActivityDefinition.product%5Bx%5D)** [0..1]: [Reference(Medication](/Reference(Medication), [MedicinalProductDefinition](/MedicinalProductDefinition), [Ingredient](/Ingredient), [SubstanceDefinition)](/SubstanceDefinition)), [CodeableConcept](/CodeableConcept) example:[medication-codes](/valueset-medication-codes) What's administered/supplied - **[ActivityDefinition.quantity](/activitydefinition-definitions#ActivityDefinition.quantity)** [0..1]: [Quantity](/Quantity)([SimpleQuantity](/SimpleQuantity)) How much is administered/consumed/supplied - **[ActivityDefinition.dosage](/activitydefinition-definitions#ActivityDefinition.dosage)** [0..*]: [Dosage](/Dosage) Detailed dosage instructions - **[ActivityDefinition.bodySite](/activitydefinition-definitions#ActivityDefinition.bodySite)** [0..*]: [CodeableConcept](/CodeableConcept) example:[body-site](/valueset-body-site) What part of body to perform on - **[ActivityDefinition.specimenRequirement](/activitydefinition-definitions#ActivityDefinition.specimenRequirement)** [0..*]: [canonical](/canonical) What specimens are required to perform this action - **[ActivityDefinition.observationRequirement](/activitydefinition-definitions#ActivityDefinition.observationRequirement)** [0..*]: [canonical](/canonical) What observations are required to perform this action - **[ActivityDefinition.observationResultRequirement](/activitydefinition-definitions#ActivityDefinition.observationResultRequirement)** [0..*]: [canonical](/canonical) What observations must be produced by this action - **[ActivityDefinition.transform](/activitydefinition-definitions#ActivityDefinition.transform)** [0..1]: [canonical](/canonical) Transform to apply the template - **[ActivityDefinition.dynamicValue](/activitydefinition-definitions#ActivityDefinition.dynamicValue)** [0..*]: [BackboneElement](/BackboneElement) Dynamic aspects of the definition - **[ActivityDefinition.dynamicValue.path](/activitydefinition-definitions#ActivityDefinition.dynamicValue.path)** [1..1]: [string](/string) The path to the element to be set dynamically - **[ActivityDefinition.dynamicValue.expression](/activitydefinition-definitions#ActivityDefinition.dynamicValue.expression)** [1..1]: [Expression](/Expression) An expression that provides the dynamic value for the customization ## Mappings - [ActivityDefinition Mappings](/activitydefinition-mappings) — 96 mapping entries ## Operations - [apply](/activitydefinition-operation-apply) — Apply — The apply operation applies a definition in a specific context - [data-requirements](/activitydefinition-operation-data-requirements) — Data Requirements — The data-requirements operation aggregates and returns the parameters and data requirements for the activity definition and all its dependencies as a single module definition library [Full Operations](/activitydefinition-operations) ## Resource Packs ### list-ActivityDefinition-packs.xml ```xml ``` ## Search Parameters - [composed-of](/activitydefinition-search#composed-of) — **reference** — What resource is being referenced — `ActivityDefinition.relatedArtifact.where(type='composed-of').resource` - [context](/activitydefinition-search#context) — **token** — A use context assigned to the activity definition — `(ActivityDefinition.useContext.value.ofType(CodeableConcept))` - [context-quantity](/activitydefinition-search#context-quantity) — **quantity** — A quantity- or range-valued use context assigned to the activity definition — `(ActivityDefinition.useContext.value.ofType(Quantity)) | (ActivityDefinition.useContext.value.ofType(Range))` - [context-type](/activitydefinition-search#context-type) — **token** — A type of use context assigned to the activity definition — `ActivityDefinition.useContext.code` - [context-type-quantity](/activitydefinition-search#context-type-quantity) — **composite** — A use context type and quantity- or range-based value assigned to the activity definition — `ActivityDefinition.useContext` - [context-type-value](/activitydefinition-search#context-type-value) — **composite** — A use context type and value assigned to the activity definition — `ActivityDefinition.useContext` - [date](/activitydefinition-search#date) — **date** — The activity definition publication date — `ActivityDefinition.date` - [depends-on](/activitydefinition-search#depends-on) — **reference** — What resource is being referenced — `ActivityDefinition.relatedArtifact.where(type='depends-on').resource | ActivityDefinition.library` - [derived-from](/activitydefinition-search#derived-from) — **reference** — What resource is being referenced — `ActivityDefinition.relatedArtifact.where(type='derived-from').resource` - [description](/activitydefinition-search#description) — **string** — The description of the activity definition — `ActivityDefinition.description` - [effective](/activitydefinition-search#effective) — **date** — The time during which the activity definition is intended to be in use — `ActivityDefinition.effectivePeriod` - [identifier](/activitydefinition-search#identifier) — **token** — External identifier for the activity definition — `ActivityDefinition.identifier` - [jurisdiction](/activitydefinition-search#jurisdiction) — **token** — Jurisdiction of the authority that maintains the the activity definition — `ActivityDefinition.jurisdiction` - [kind](/activitydefinition-search#kind) — **token** — The kind of activity definition — `ActivityDefinition.kind` - [name](/activitydefinition-search#name) — **string** — Computationally friendly name of the activity definition — `ActivityDefinition.name` - [predecessor](/activitydefinition-search#predecessor) — **reference** — What resource is being referenced — `ActivityDefinition.relatedArtifact.where(type='predecessor').resource` - [publisher](/activitydefinition-search#publisher) — **string** — Name of the publisher of the activity definition — `ActivityDefinition.publisher` - [status](/activitydefinition-search#status) — **token** — The current status of the activity definition — `ActivityDefinition.status` - [subject-code](/activitydefinition-search#subject-code) — **token** — The subject of the ActivityDefinition when expressed as a code — `ActivityDefinition.subject as CodeableConcept` - [subject-reference](/activitydefinition-search#subject-reference) — **reference** — The subject of the ActivityDefinition when expressed as a reference — `ActivityDefinition.subject as Reference` - [subject-canonical](/activitydefinition-search#subject-canonical) — **reference** — The subject of the ActivityDefinition when expressed as a canonical — `ActivityDefinition.subject as canonical` - [successor](/activitydefinition-search#successor) — **reference** — What resource is being referenced — `ActivityDefinition.relatedArtifact.where(type='successor').resource` - [title](/activitydefinition-search#title) — **string** — The human-friendly name of the activity definition — `ActivityDefinition.title` - [topic](/activitydefinition-search#topic) — **token** — Topics associated with the module — `ActivityDefinition.topic` - [url](/activitydefinition-search#url) — **uri** — The uri that identifies the activity definition — `ActivityDefinition.url` - [version](/activitydefinition-search#version) — **token** — The business version of the activity definition — `ActivityDefinition.version` - [kind](/activitydefinition-search#kind) — **token** — The kind of activity definition — `ActivityDefinition.kind` - [experimental](/activitydefinition-search#experimental) — **token** — Whether the ActivityDefinition is experimental — `ActivityDefinition.experimental` [Full Search Parameters](/activitydefinition-search) ## Examples - [activitydefinition-example](/activitydefinition-example-activitydefinition-example) — activitydefinition-example - [activitydefinition-example-alteplase-dosing](/activitydefinition-example-activitydefinition-example-alteplase-dosing) — activitydefinition-example-alteplase-dosing - [activitydefinition-examples-header](/activitydefinition-example-activitydefinition-examples-header) — activitydefinition-examples-header - [administer-zika-virus-exposure-assessment](/activitydefinition-example-administer-zika-virus-exposure-assessment) — activitydefinition-administer-zika-virus-exposure-assessment — Definition for administering a Zika Virus Exposure assessment - [citalopramPrescription](/activitydefinition-example-citalopramPrescription) — activitydefinition-medicationorder-example — Activity definition to prescribe citalopram to a patient - [example-alteplase-dosing](/activitydefinition-example-example-alteplase-dosing) — activitydefinition-example-alteplase-dosing — Alteplase Dosing for Stroke to be used by an EvidenceVariable resource - [heart-valve-replacement](/activitydefinition-example-heart-valve-replacement) — activitydefinition-servicerequest-example — Definition for heart valve replacement service request - [provide-mosquito-prevention-advice](/activitydefinition-example-provide-mosquito-prevention-advice) — activitydefinition-provide-mosquito-prevention-advice — Definition for providing mosquito prevention advice - [referralPrimaryCareMentalHealth-initial](/activitydefinition-example-referralPrimaryCareMentalHealth-initial) — activitydefinition-predecessor-example — Example of a predecessor/successor relationship - [referralPrimaryCareMentalHealthEx](/activitydefinition-example-referralPrimaryCareMentalHealthEx) — activitydefinition-example — Activity definition to refer a patient to a mental health integrated care program - [serum-dengue-virus-igm](/activitydefinition-example-serum-dengue-virus-igm) — activitydefinition-order-serum-dengue-virus-igm — Definition for ordering a Serum Dengue Virus IgM Antibody Diagnostic - [serum-zika-dengue-virus-igm](/activitydefinition-example-serum-zika-dengue-virus-igm) — activitydefinition-order-serum-zika-dengue-virus-igm — Definition for ordering a Serum Zika and Dengue Virus IgM Antibody Diagnostic [Full Examples](/activitydefinition-examples) ## Mapping Exceptions ### activitydefinition-definition-mapping-exceptions.xml ### Divergent Elements - **Definition.url** → **ActivityDefinition.url** - shortUnmatched | reason=Unknown | pattern=Canonical identifier for this activity definition, represented as an absolute URI (globally unique) | resource=Canonical identifier for this activity definition, represented as a URI (globally unique) - commentsUnmatched | reason=Unknown | pattern=Can be a `urn:uuid:` or a `urn:oid:` but real `http/s:` addresses are preferred. Multiple instances may share the same URL if they have a distinct version. The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in [Technical and Business Versions](resource.html#versions). In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the [meta.source](resource.html#meta) element to indicate where the current master source of the resource can be found. | resource=Can be a urn:uuid: or a urn:oid: but real http: addresses are preferred. Multiple instances may share the same URL if they have a distinct version. The determination of when to create a new version of a resource (same url, new version) vs. defining a new artifact is up to the author. Considerations for making this decision are found in [Technical and Business Versions](resource.html#versions). In some cases, the resource can no longer be found at the stated url, but the url itself cannot change. Implementations can use the [meta.source](resource.html#meta) element to indicate where the current master source of the resource can be found. - **Definition.identifier** → **ActivityDefinition.identifier** - shortUnmatched | reason=Unknown | pattern=Business identifier for activity definition | resource=Additional identifier for the activity definition - commentsUnmatched | reason=Unknown | pattern=Typically, this is used for identifiers that can go in an HL7 V3 II (instance identifier) data type, and can then identify this activity definition outside of FHIR, where it is not possible to use the logical URI. - requirementsUnmatched | reason=Unknown | pattern=Allows externally provided and/or usable business identifiers to be easily associated with the activity definition. | resource=Allows externally provided and/or usable business identifiers to be easily associated with the module. - **Definition.version** → **ActivityDefinition.version** - commentsUnmatched | reason=Unknown | pattern=There may be different activity definitions that have the same url but different versions. The version can be appended to the url in a reference to allow a reference to a particular business version of the activity definition with the format. The version SHOULD NOT contain a '#' - see [Business Version](resource.html#bv-format). | resource=There may be different activity definition instances that have the same identifier but different versions. The version can be appended to the url in a reference to allow a reference to a particular business version of the activity definition with the format [url]|[version]. The version SHOULD NOT contain a '#' - see [Business Version](resource.html#bv-format). - **Definition.name** → **ActivityDefinition.name** - commentsUnmatched | reason=Unknown | pattern=The name is not expected to be globally unique. The name should be a simple alphanumeric type no-whitespace name to ensure that it is machine-processing friendly. | resource=The name is not expected to be globally unique. The name should be a simple alphanumeric type name to ensure that it is machine-processing friendly. - requirementsUnmatched | reason=Unknown | pattern=Supports code generation. | resource=Support human navigation and code generation. - **Definition.status** → **ActivityDefinition.status** - definitionUnmatched | reason=Unknown | pattern=The current state of this activity definition. | resource=The status of this activity definition. Enables tracking the life-cycle of the content. - commentsUnmatched | reason=Unknown | pattern=A nominal state-transition diagram can be found in the] documentation Unknown does not represent 'other' - one of the defined statuses must apply. Unknown is used when the authoring system is not sure what the current status is. | resource=Allows filtering of activity definitions that are appropriate for use versus not. See guidance around (not) making local changes to elements [here](canonicalresource.html#localization). - requirementsUnmatched | reason=Unknown | pattern=Enables tracking the lifecycle of the content and filtering of activity definitions that are appropriate for use versus not. - **Definition.subject** → **ActivityDefinition.subject[x]** - missingTypes | reason=Unknown | pattern=CodeableReference(Group) - extraTypes | reason=Unknown - summary | reason=Unknown | pattern=true - bindingStrength | reason=Unknown | pattern=example - shortUnmatched | reason=Unknown | pattern=Type of individual the defined service is for | resource=Type of individual the activity definition is intended for - definitionUnmatched | reason=Unknown | pattern=A code or group definition that describes the intended subject of instantiations of this definition. | resource=A code, group definition, or canonical reference that describes or identifies the intended subject of the activity being defined. Canonical references are allowed to support the definition of protocols for drug and substance quality specifications, and is allowed to reference a MedicinalProductDefinition, SubstanceDefinition, AdministrableProductDefinition, ManufacturedItemDefinition, or PackagedProductDefinition resource. - requirementsUnmatched | reason=Unknown | pattern=Many protocols, order sets and guidelines are intended for use only with specific types of patients or subjects. - **Definition.description** → **ActivityDefinition.description** - commentsUnmatched | reason=Unknown | pattern=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the activity definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context. | resource=This description can be used to capture details such as comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the activity definition as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the activity definition is presumed to be the predominant language in the place the activity definition was created). - **Definition.useContext** → **ActivityDefinition.useContext** - definitionUnmatched | reason=Unknown | pattern=The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate activity definitions. | resource=The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate activity definition instances. - commentsUnmatched | reason=Unknown | pattern=When multiple useContexts are specified, there is no expectation that all or even any of the contexts apply. | resource=When multiple useContexts are specified, there is no expectation that all or any of the contexts apply. - **Definition.jurisdiction** → **ActivityDefinition.jurisdiction** - shortUnmatched | reason=Unknown | pattern=Intended jurisdiction for activity definition (if applicable) | resource=Jurisdiction of the authority that maintains the activity definition (if applicable) - definitionUnmatched | reason=Unknown | pattern=A legal or geographic region in which the activity definition is intended to be used. | resource=A legal or geographic region in which the authority that maintains the resource is operating. In general, the jurisdiction is also found in the useContext. The useContext may reference additional jurisdictions because the defining jurisdiction does not necessarily limit the jurisdictions of use. - commentsUnmatched | reason=Unknown | pattern=It may be possible for the activity definition to be used in jurisdictions other than those for which it was originally designed or intended DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.). | resource=It may be possible for the activity definition to be used in jurisdictions other than those for which it was originally designed or intended. DEPRECATION NOTE: For consistency, implementations are encouraged to migrate to using the new 'jurisdiction' code in the useContext element. (I.e. useContext.code indicating http://terminology.hl7.org/CodeSystem/usage-context-type#jurisdiction and useContext.valueCodeableConcept indicating the jurisdiction.) - **Definition.copyright** → **ActivityDefinition.copyright** - requirementsUnmatched | reason=Unknown | pattern=Consumers of the activity definition must be able to determine any legal restrictions on the use of the artifact and/or its content. | resource=Consumers must be able to determine any legal restrictions on the use of the activity definition and/or its content. - **Definition.effectivePeriod** → **ActivityDefinition.effectivePeriod** - commentsUnmatched | reason=Unknown | pattern=The effective period for a activity definition determines when the content is applicable for usage and is independent of publication and review dates. For example, a measure intended to be used for the year 2016 might be published in 2015. | resource=The effective period for an activity definition determines when the content is applicable for usage and is independent of publication and review dates. For example, a activity intended to be used for the year 2016 might be published in 2015. See guidance around (not) making local changes to elements [here](canonicalresource.html#localization). ### Unmapped Elements - **Definition.derivedFromCanonical** — Unknown - **Definition.product** — Unknown - **Definition.code** — Unknown - **Definition.derivedFromUri** — Unknown - **Definition.performerType** — Unknown - **Definition.partOf** — Unknown - **Definition.topic** — Unknown ### activitydefinition-fivews-mapping-exceptions.xml ### Unmapped Elements - **FiveWs.what** — Unknown - **FiveWs.author** — Unknown - **FiveWs.actor** — Unknown - **FiveWs.cause** — Unknown - **FiveWs.where** — Unknown - **FiveWs.context** — Unknown - **FiveWs.init** — Unknown - **FiveWs.source** — Unknown - **FiveWs.who** — Unknown - **FiveWs.grade** — Unknown - **FiveWs.planned** — Unknown - **FiveWs.done** — Unknown - **FiveWs.subject** — Unknown