Crate octofhir_fhir_model

Crate octofhir_fhir_model 

Source
Expand description

Core FHIR model abstractions and ModelProvider trait

This crate provides the foundational types and traits for FHIR model integration with FHIRPath engines. It serves as an intermediate dependency to break circular dependencies between FHIRPath implementations and FHIR schema libraries.

§Architecture

The crate is designed around the ModelProvider trait, which abstracts access to FHIR model information including:

  • Type reflection and metadata
  • Structure definitions and conformance validation
  • Constraint definitions and evaluation
  • Reference resolution capabilities

§Example

use octofhir_fhir_model::{TypeInfo, EmptyModelProvider, ModelProvider};

// Create type info for a FHIR type
let type_info = TypeInfo::system_type("Patient".to_string(), true);
println!("Patient type: {:?}", type_info);

// Use empty model provider for testing
let provider = EmptyModelProvider::default();
println!("Provider: {:?}", provider);

Re-exports§

pub use error::ModelError;
pub use error::Result;
pub use evaluation::EvaluationResult;
pub use evaluation::IntoEvaluationResult;
pub use evaluation::TypeInfoResult;
pub use evaluation::convert_value_to_evaluation_result;
pub use evaluator::CompiledExpression;
pub use evaluator::ErrorSeverity;
pub use evaluator::FhirPathConstraint;
pub use evaluator::FhirPathEvaluator;
pub use evaluator::FhirPathEvaluatorFactory;
pub use evaluator::ValidationError;
pub use evaluator::ValidationProvider;
pub use evaluator::ValidationResult;
pub use evaluator::ValidationWarning;
pub use evaluator::Variables;
pub use fhir_traits::BackboneElement;
pub use fhir_traits::ChoiceElement;
pub use fhir_traits::FhirPrimitive;
pub use fhir_traits::FhirReference;
pub use fhir_traits::FhirResourceMetadata;
pub use fhir_traits::ToFhirJson;
pub use provider::ElementInfo;
pub use provider::EmptyModelProvider;
pub use provider::FhirVersion;
pub use provider::LiteModelProvider;
pub use provider::ModelProvider;
pub use provider::TypeInfo;
pub use terminology::ConnectionStatus;
pub use terminology::EquivalenceLevel;
pub use terminology::ExpansionParameter;
pub use terminology::ExpansionParameters;
pub use terminology::NoOpTerminologyProvider;
pub use terminology::TerminologyProvider;
pub use terminology::TranslationResult;
pub use terminology::TranslationTarget;
pub use terminology::ValueSetConcept;
pub use terminology::ValueSetExpansion;

Modules§

error
Error types for FHIR model operations
evaluation
FHIRPath evaluation support types and traits
evaluator
FHIRPath evaluator trait for dependency injection
fhir_traits
FHIR-specific traits for enhanced FHIRPath support
provider
ModelProvider trait for FHIR model access
terminology
Simple terminology service abstractions for FHIR validation

Constants§

CRATE_NAME
Crate name
VERSION
Version information for this crate