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

Implementations on Foreign Types§

Source§

impl BundleTrait for Bundle

Implementors§