Skip to main content

BundleTrait

Trait BundleTrait 

Source
pub trait BundleTrait {
    type Resource: ResourceTrait;

    // Required method
    fn entries(&self) -> Vec<&Self::Resource>;
}
Expand description

Trait for abstracting Bundle across FHIR versions.

This trait provides version-agnostic access to Bundle contents, specifically the collection of resources contained within bundle entries. Bundles serve as the input data source for ViewDefinition processing.

§Bundle Structure

FHIR Bundles contain:

  • Bundle metadata (type, id, etc.)
  • Array of bundle entries
  • Each entry optionally contains a resource

This trait focuses on extracting the resources for processing, filtering out entries that don’t contain resources.

§Associated Types

  • Resource: The resource type for this FHIR version

§Examples

use helios_sof::traits::{BundleTrait, ResourceTrait};

fn analyze_bundle<B: BundleTrait>(bundle: &B)
where
    B::Resource: ResourceTrait
{
    let resources = bundle.entries();
    println!("Bundle contains {} resources", resources.len());
     
    for resource in resources {
        println!("- {} resource", resource.resource_name());
    }
}

Required Associated Types§

Source

type Resource: ResourceTrait

The resource type for this FHIR version

Required Methods§

Source

fn entries(&self) -> Vec<&Self::Resource>

Returns references to all resources contained in this bundle’s entries

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl BundleTrait for Bundle

Implementors§