--- type: "resource" title: "Transport" resource: "Transport" --- # Transport ## Introduction ## Scope and Usage **This resource is an _event_ resource from a FHIR workflow perspective - see [Workflow](workflow). It is the intent of the Orders and Observation Workgroup to align this resource with the workflow pattern for [_event_ resources](workflow#event).** The Transport resource captures the requested movement and movement history of persons and items in the healthcare spectrum. The Transport resource documents the movement of a person or item. Since it follows the event pattern, it can be used in the request of a transport event, but it can be used in conjunction with the Task resource to operationalize a movement event in a workflow. While the current use cases are focused on the lab and the movement of patients, this resource will be easily extensible to handle the movement of anything in healthcare. Sample use cases for the laboratory are as follows: - Movement of a specimen between distinct healthcare locations (clinic to lab, lab to lab, lab to biorepository) without the use of a third-party transport system (e.g. a courier) - Movement of a specimen between distinct healthcare locations (clinic to lab, lab to lab, lab to biorepository) with the use of a third-party transport system (e.g. a courier) - Accessing the current location (tracking) and the complete location history (audit) for a given specimen. Sample use cases involving patients include - Movement of a patient within a healthcare setting (changing floors of the hospital) - Movement of a patient between healthcare settings (moving a patient from one hospital to another) ## Background and Context With the emergence of IHE profiles on the movement of laboratory specimens ([SET](https://wiki.ihe.net/index.php/Specimen_Event_Tracking#:~:text=The%20Specimen%20Event%20Tracking%20(SET,future%20usage%2C%20and%20to%20final)) and the growing needs around the movement of patients (documentation, scheduling, real-time updates), there is a need to capture the data around the movement of a patient or item in the healthcare setting. While the Task resource captures some of the data generated around an event, the Transport resource is built to capture the documentation along with the request/fulfillment of a transport event. ## Boundaries and Relationships The Transport resource can be requested by a ServiceRequest or by a Task, as shown in the diagram below. Also, this resource is only for the documentation of the physical movement of material items (people, animals, things). To operationalize the movement of people and things, Task should be used. Provenance can be used to document the steps but that is for the resource aspect, not the actual movement history of the item. During the movement of a patient, the business status (change in the level of care/patient class) might change. To allow for the capture of the current business status of the patient, the reason element should be used. ![Diagram showing Transport resource event flow](transport-resource-event.png) ## StructureDefinition ### Elements (Simplified) - **[Transport](/transport-definitions#Transport)** [0..*]: - Delivery of item - **[Transport.identifier](/transport-definitions#Transport.identifier)** [0..*]: [Identifier](/Identifier) External identifier - **[Transport.instantiates](/transport-definitions#Transport.instantiates)** [0..1]: [canonical](/canonical) Formal definition of transport - **[Transport.basedOn](/transport-definitions#Transport.basedOn)** [0..*]: [Reference(Task](/Reference(Task), [ServiceRequest](/ServiceRequest), [DeviceRequest](/DeviceRequest), [MedicationRequest](/MedicationRequest), [RequestOrchestration](/RequestOrchestration), [SupplyRequest](/SupplyRequest), [VisionPrescription)](/VisionPrescription)) Request fulfilled by this transport - **[Transport.partOf](/transport-definitions#Transport.partOf)** [0..*]: Reference([Transport](/Transport)) Part of referenced event - **[Transport.status](/transport-definitions#Transport.status)** [0..1]: [code](/code) required:[transport-status](/valueset-transport-status) preparation | in-progress | not-done | suspended | stopped | on-hold | completed | entered-in-error | unknown - **[Transport.statusReason](/transport-definitions#Transport.statusReason)** [0..1]: [CodeableConcept](/CodeableConcept) example:[transport-status-reason](/valueset-transport-status-reason) Reason for current status - **[Transport.code](/transport-definitions#Transport.code)** [0..1]: [CodeableConcept](/CodeableConcept) example:[transport-code](/valueset-transport-code) Transport Type - **[Transport.description](/transport-definitions#Transport.description)** [0..1]: [markdown](/markdown) Human-readable explanation of transport - **[Transport.focus](/transport-definitions#Transport.focus)** [0..1]: Reference([Resource](/Resource)) What transport is acting on, when it is not the subject of record - **[Transport.subject](/transport-definitions#Transport.subject)** [0..1]: Reference([Resource](/Resource)) Beneficiary of the Transport (such as patient or subject) - **[Transport.encounter](/transport-definitions#Transport.encounter)** [0..1]: Reference([Encounter](/Encounter)) Healthcare event during which this transport originated - **[Transport.period](/transport-definitions#Transport.period)** [0..1]: [Period](/Period) When transport is occurring/occurred - **[Transport.authoredOn](/transport-definitions#Transport.authoredOn)** [0..1]: [dateTime](/dateTime) Transport Creation Date - **[Transport.lastModified](/transport-definitions#Transport.lastModified)** [0..1]: [dateTime](/dateTime) Transport Last Modified Date - **[Transport.performer](/transport-definitions#Transport.performer)** [0..*]: [Reference(Practitioner](/Reference(Practitioner), [PractitionerRole](/PractitionerRole), [Organization](/Organization), [CareTeam](/CareTeam), [HealthcareService](/HealthcareService), [Patient](/Patient), [Device](/Device), [RelatedPerson)](/RelatedPerson)) Who or what performs the transport - **[Transport.location](/transport-definitions#Transport.location)** [0..1]: Reference([Location](/Location)) Where transport occurs - **[Transport.insurance](/transport-definitions#Transport.insurance)** [0..*]: [Reference(Coverage](/Reference(Coverage), [ClaimResponse)](/ClaimResponse)) Associated insurance coverage - **[Transport.note](/transport-definitions#Transport.note)** [0..*]: [Annotation](/Annotation) Comments made about the transport - **[Transport.relevantHistory](/transport-definitions#Transport.relevantHistory)** [0..*]: Reference([Provenance](/Provenance)) Key events in history of the Transport - **[Transport.to](/transport-definitions#Transport.to)** [1..1]: Reference([Location](/Location)) Destination location - **[Transport.from](/transport-definitions#Transport.from)** [1..1]: Reference([Location](/Location)) Originating location - **[Transport.reason](/transport-definitions#Transport.reason)** [0..1]: [CodeableReference](/CodeableReference) example:[transport-reason](/valueset-transport-reason) Why transport is needed - **[Transport.priorTransport](/transport-definitions#Transport.priorTransport)** [0..1]: Reference([Transport](/Transport)) The most recent transport ## Mappings - [Transport Mappings](/transport-mappings) — 52 mapping entries ## Resource Packs ### list-Transport-packs.xml ```xml ``` ## Search Parameters - [identifier](/transport-search#identifier) — **token** — External identifier — `Transport.identifier` - [status](/transport-search#status) — **token** — in-progress | completed | entered-in-error — `Transport.status` - [patient](/transport-search#patient) — **reference** — Search by subject - a patient — `Transport.subject.where(resolve() is Patient)` - [subject](/transport-search#subject) — **reference** — Search for subject — `Transport.subject` [Full Search Parameters](/transport-search) ## Examples - [simpledelivery](/transport-example-simpledelivery) — transport-example — Simple delivery for resupply - [transport-example](/transport-example-transport-example) — transport-example - [transport-example-location-hospitalLab](/transport-example-transport-example-location-hospitalLab) — transport-example-location-hospitalLab - [transport-example-location-labA](/transport-example-transport-example-location-labA) — transport-example-location-labA - [transport-examples-header](/transport-example-transport-examples-header) — transport-examples-header [Full Examples](/transport-examples) ## Mapping Exceptions ### transport-event-mapping-exceptions.xml ### Divergent Elements - **Event.identifier** → **Transport.identifier** - summary | reason=Unknown | pattern=true - shortUnmatched | reason=Unknown | pattern=Business identifier for transport | resource=External identifier - definitionUnmatched | reason=Unknown | pattern=Business identifiers assigned to this transport by the performer and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server. | resource=Identifier for the transport event that is used to identify it across multiple disparate systems. - commentsUnmatched | reason=Unknown | pattern=Note: This is a business identifier, not a resource identifier (see [discussion](resource.html#identifiers)). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. | resource=This identifier is typically assigned by the dispenser, and may be used to reference the delivery when exchanging information about it with other systems. - requirementsUnmatched | reason=Unknown | pattern=Allows identification of the transport as it is known by various participating systems and in a way that remains consistent across servers. - **Event.basedOn** → **Transport.basedOn** - missingTypes | reason=Unknown | pattern=Reference(Request) - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Fulfills plan, proposal or order | resource=Request fulfilled by this transport - definitionUnmatched | reason=Unknown | pattern=A plan, proposal or order that is fulfilled in whole or in part by this transport. | resource=BasedOn refers to a higher-level authorization that triggered the creation of the transport. It references a "request" resource such as a ServiceRequest or Transport, which is distinct from the "request" resource the Transport is seeking to fulfill. This latter resource is referenced by FocusOn. For example, based on a ServiceRequest (= BasedOn), a transport is created to fulfill a procedureRequest ( = FocusOn ) to transport a specimen to the lab. - requirementsUnmatched | reason=Unknown | pattern=Allows tracing of authorization for the transport and tracking whether proposals/recommendations were acted upon. - **Event.partOf** → **Transport.partOf** - missingTypes | reason=Unknown | pattern=Reference(Event) - extraTypes | reason=Unknown - definitionUnmatched | reason=Unknown | pattern=A larger event of which this particular transport is a component or step. | resource=A larger event of which this particular event is a component or step. - commentsUnmatched | reason=Unknown | pattern=Not to be used to link an transport to an Encounter - use 'context' for that. | resource=Not to be used to link an event to an Encounter - use Event.context for that. [The allowed reference resources may be adjusted as appropriate for the event resource]. - **Event.status** → **Transport.status** - shortUnmatched | reason=Unknown | pattern=preparation | in-progress | not-done | suspended | aborted | completed | entered-in-error | unknown | resource=preparation | in-progress | not-done | suspended | stopped | on-hold | completed | entered-in-error | unknown - definitionUnmatched | reason=Unknown | pattern=The current state of the transport. | resource=A code specifying the state of the transport event. - commentsUnmatched | reason=Unknown | pattern=A nominal state-transition diagram can be found in the (Event pattern 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. - **Event.code** → **Transport.code** - shortUnmatched | reason=Unknown | pattern=What service was done | resource=Transport Type - definitionUnmatched | reason=Unknown | pattern=A code that identifies the specific service or action that was or is being performed. | resource=A name or code (or both) briefly describing what the transport involves. - **Event.subject** → **Transport.subject** - missingTypes | reason=Unknown | pattern=Reference(Patient, Group) - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Individual service was done for/to | resource=Beneficiary of the Transport (such as patient or subject) - definitionUnmatched | reason=Unknown | pattern=The individual or set of individuals the action is being or was performed on. | resource=The entity who benefits from the performance of the service specified in the transport (such as patient or subject). - requirementsUnmatched | reason=Unknown | pattern=Links the transport to the Patient context. May also affect access control. | resource=Used to track transports outstanding for a beneficiary. Do not use to track the transport owner or creator (see owner and creator respectively). This can also affect access control. - **Event.encounter** → **Transport.encounter** - shortUnmatched | reason=Unknown | pattern=Encounter the transport is part of | resource=Healthcare event during which this transport originated - definitionUnmatched | reason=Unknown | pattern=The Encounter during which this transport was created or to which the creation of this record is tightly associated. | resource=The healthcare event (e.g. a patient and healthcare provider interaction) during which this transport was created. - commentsUnmatched | reason=Unknown | pattern=This will typically be the encounter the transport was created during, but some transports may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter (e.g. pre-admission lab tests). - requirementsUnmatched | reason=Unknown | pattern=Links the transport to the Encounter context. May also affect access control. | resource=For some transports it may be important to know the link between the encounter the transport originated within. - **Event.occurrence[x]** → **Transport.period** - missingTypes | reason=Unknown | pattern=dateTime, Timing - shortUnmatched | reason=Unknown | pattern=When transport occurred/is occurring | resource=When transport is occurring/occurred - definitionUnmatched | reason=Unknown | pattern=The date, period or timing when the transport did occur or is occurring. | resource=The period when the transport event is occurring or did occur. - commentsUnmatched | reason=Unknown | pattern=This indicates when the activity actually occurred or is occurring, not when it was asked/requested/ordered to occur. For the latter, look at the occurence element of the Request this {{event}} is "basedOn". The status code allows differentiation of whether the timing reflects a historic event or an ongoing event. Ongoing events should not include an upper bound in the Period or Timing.bounds. . | resource=The status code allows differentiation of whether the timing reflects an ongoing event or historic one. Ongoing transports should not include an end in the Period. - **Event.performer.actor** → **Transport.performer** - extraTypes | reason=Unknown - shortUnmatched | reason=Unknown | pattern=Who performed transport | resource=Who or what performs the transport - definitionUnmatched | reason=Unknown | pattern=Indicates who or what performed the transport. | resource=Identifies the entity expected to perform the transport. - **Event.reason** → **Transport.reason** - summary | reason=Unknown | pattern=true - shortUnmatched | reason=Unknown | pattern=Why was transport performed? | resource=Why transport is needed - definitionUnmatched | reason=Unknown | pattern=Describes why the transport occurred in coded or textual form or Indicates another resource whose existence justifies this transport. | resource=A resource reference indicating why this transport needs to be performed. - commentsUnmatched | reason=Unknown | pattern=Textual reasons can be captured using reasonCode.text. | resource=Transports might be justified based on an Observation, a Condition, a past or planned procedure, etc. This should only be included if there is no focus or if it differs from the reason indicated on the focus. Use the CodeableConcept text element in `Transport.reasonCode` if the data is free (uncoded) text. - **Event.note** → **Transport.note** - shortUnmatched | reason=Unknown | pattern=Comments made about the event | resource=Comments made about the transport - definitionUnmatched | reason=Unknown | pattern=Comments made about the transport by the performer, subject or other participants. | resource=Free-text information captured about the transport as it progresses. ### Unmapped Elements - **Event.reported** — Unknown - **Event.relevantHistory** — Unknown - **Event.location** — Unknown - **Event.statusReason** — Unknown - **Event.performer.function** — Unknown - **Event.category** — Unknown - **Event.recorded** — Unknown - **Event.product** — Unknown - **Event.performer** — Unknown - **Event.researchStudy** — Unknown ### transport-fivews-mapping-exceptions.xml ### Unmapped Elements - **FiveWs.author** — Unknown - **FiveWs.cause** — Unknown - **FiveWs.version** — Unknown - **FiveWs.witness** — Unknown - **FiveWs.class** — Unknown - **FiveWs.init** — Unknown - **FiveWs.identifier** — Unknown - **FiveWs.source** — Unknown - **FiveWs.who** — Unknown - **FiveWs.grade** — Unknown - **FiveWs.status** — Unknown - **FiveWs.planned** — Unknown