openehr-rm 0.0.128

openEHR RM Reference Model, generated from BMM: generations v1_1 (RM 1.1.0) and v1_2 (RM 1.2.0, current)
Documentation
// @generated by openehr-codegen from BMM (`INSTRUCTION`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0

//! The openEHR `INSTRUCTION` spec class, generated from the vendored BMM
//! meta-model.

use crate::v1_2::common::archetyped::archetyped::Archetyped;
use crate::v1_2::common::archetyped::feeder_audit::FeederAudit;
use crate::v1_2::common::archetyped::link::Link;
use crate::v1_2::common::generic::participation::Participation;
use crate::v1_2::common::generic::party_proxy::PartyProxy;
use crate::v1_2::composition::content::entry::activity::Activity;
use crate::v1_2::data_structures::item_structure::item_structure::ItemStructure;
use crate::v1_2::data_types::encapsulated::dv_parsable::DvParsable;
use crate::v1_2::data_types::quantity::date_time::dv_date_time::DvDateTime;
use crate::v1_2::data_types::text::code_phrase::CodePhrase;
use crate::v1_2::data_types::text::dv_text::DvText;
use openehr_base::v1_3::base_types::identification::object_ref::ObjectRef;
use openehr_base::v1_3::base_types::identification::uid_based_id::UidBasedId;

/// Used to specify actions in the future.
///
/// Enables simple and complex specifications to be expressed, including in a fully-computable workflow form. Used for any actionable statement such as medication and therapeutic orders, monitoring, recall and review. Enough details must be provided for the specification to be directly executed by an actor, either human or machine.
///
/// Not to be used for plan items which are only specified in general terms.
#[doc(alias = "INSTRUCTION")]
#[derive(Debug, Clone, PartialEq)]
pub struct Instruction {
    // inherited: LOCATABLE
    /// Runtime name of this fragment, used to build runtime paths.
    ///
    /// This is the term provided via a clinical application or batch process to name this EHR construct: its retention in the EHR faithfully preserves the original label by which this entry was known to end users.
    pub name: DvText,
    /// Design-time archetype identifier of this node taken from its generating archetype; used to build archetype paths.
    ///
    /// Always in the form of an at-code, e.g.  `at0005`. This value enables a 'standardised' name for this node to be generated, by referring to the generating archetype local terminology.
    ///
    /// At an archetype root point, the value of this attribute is always the stringified form of the `_archetype_id_` found in the `_archetype_details_` object.
    pub archetype_node_id: String,
    /// Optional globally unique object identifier for root points of archetyped structures.
    pub uid: Option<UidBasedId>,
    /// Links to other archetyped structures (data whose root object inherits from `ARCHETYPED`, such as `ENTRY`, `SECTION` and so on). Links may be to structures in other compositions.
    pub links: Option<openehr_base::containers::NonEmptyVec<Link>>,
    /// Details of archetyping used on this node.
    pub archetype_details: Option<Archetyped>,
    /// Audit trail from non-openEHR system of original commit of information forming the content of this node, or from a conversion gateway which has synthesised this node.
    pub feeder_audit: Option<FeederAudit>,

    // inherited: ENTRY
    /// Mandatory indicator of the localised language in which this Entry is written. Coded from openEHR Code Set  languages .
    pub language: CodePhrase,
    /// Name of character set in which text values in this Entry are encoded. Coded from openEHR Code Set  character sets.
    pub encoding: CodePhrase,
    /// Other participations at `ENTRY` level.
    pub other_participations: Option<openehr_base::containers::NonEmptyVec<Participation>>,
    /// Identifier of externally held workflow engine data for this workflow execution, for this subject of care.
    pub workflow_id: Option<ObjectRef>,
    /// Id of human subject of this `ENTRY`, e.g.:
    ///
    /// * organ donor
    /// * foetus
    /// * a family member
    /// * another clinically relevant person.
    pub subject: PartyProxy,
    /// Optional identification of provider of the information in this `ENTRY`, which might be:
    ///
    /// * the patient
    /// * a patient agent, e.g. parent, guardian
    /// * the clinician
    /// * a device or software
    ///
    /// Generally only used when the recorder needs to make it explicit. Otherwise, Composition composer and other participants are assumed.
    pub provider: Option<PartyProxy>,

    // inherited: CARE_ENTRY
    /// Description of the method (i.e. how) the information in this entry was arrived at.
    ///
    /// For `OBSERVATIONs`, this is a description of the method or instrument used. For `EVALUATIONs`, how the evaluation was arrived at. For `INSTRUCTIONs`, how to execute the Instruction. This may take the form of references to guidelines, including manually followed and executable; knowledge references such as a paper in Medline; clinical reasons within a larger care process.
    pub protocol: Option<ItemStructure>,
    /// Optional external identifier of guideline creating this Entry if relevant.
    pub guideline_id: Option<ObjectRef>,
    /// Mandatory human-readable version of what the Instruction is about.
    pub narrative: DvText,
    /// Optional expiry date/time to assist determination of when an Instruction can be assumed to have expired.
    ///
    /// This helps prevent false listing of Instructions as Active when they clearly must have been terminated in some way or other.
    pub expiry_time: Option<DvDateTime>,
    /// Optional workflow engine executable expression of the Instruction.
    pub wf_definition: Option<DvParsable>,
    /// List of all activities in Instruction.
    pub activities: Option<openehr_base::containers::NonEmptyVec<Activity>>,
}