Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


0.3.3 - 2025-10-13

Changed

  • Update Date, DateTime, and Time FHIR type aliases to support native Python date and time types. (#77)
  • Remove large number of empty lines between code blocks in autogenerated model class definition source code. (#78)
  • Update the internal resolve_structure_definition method to accept an optional version parameter, enabling version-specific resolution of StructureDefinitions. (#79)
  • Add internal functionality to load local FHIR definitions in CompositeStructureDefinitionRepository (#79)
  • Add an internal FHIR_version attribute to the FactoryConfig class for more precise version tracking during model construction (#79)
  • Improve test cases for content reference resolution to include valid URL references (#79)

Fixed

  • Enhance the _resolve_content_reference method to support cross-resource references by splitting the contentReference into resource URL and path (#79, fixes #65)
  • Resolve an obscure bug in the ResourceFactory._build_element_tree_structure method that lead to repeated calls to return erroneous results (#79)
  • Refine the import and add lazy module loading to fix circular import errors raised when importing certain modules or components (#80)
  • Remove unnecessary print/debug statements and redundant imports (#80)
  • Suppress (expected) warnings raised during the test suite (#80)

0.3.2 - 2025-10-09

Changed

  • Add an option install_dependencies to the load_package method (#73)

Fixed

  • Change the pyyaml dependency to allow newer versions (#74)
  • Update the load_package method to skip loading a dependency if it has already been loaded (#73)

0.3.1 - 2025-10-09

Fixed

  • Fix extraction of package.json while processing FHIR package dependencies (#72, fixes #71)

0.3.0 - 2025-10-07

Added

  • Implement complete FHIR Mapping Language support with lexer, parser, and execution engine (#30)

  • Implement missing FHIRPath math functions (#47)

  • Add a complete set of autogenerated Pydantic models for all FHIR canonical core resources across R4, R4B, and R5 releases (#55)

  • Implement new utility functions to dynamically import FHIR types (primitive, complex, and resource types) and enable type checking against canonical FHIR resources and generated profiles for improved (FHIRPath) type checking. (#55)

  • Implement missing logic for resolving ElementDefinition.contentReference references in FHIR structure definitions at model build-time (#55, fixes #52)

  • Ensure correct interpretation of FHIR cardinality and requiredness. Now all Fhircraft model fields are optional, but not nullable, and presence of data elements is delegated to FHIRPath invariants as intended by the specification. (#60)

  • Implement missing FHIRPath function aggregate (#62, closes #61)

  • Implement missing FHIRPath functions added in the FHIR specification (#62, closes #28)

  • Implement proper behavior of FHIRPath contextual variables $this, $index, and $total (#62)

  • Implement FHIRPath environmental variables and add default variables %resource, %context, and %rootResource to the public API evaluation methods (#62)

  • Improve robustness of ResourceFactory methods and other minor fixes (#64)

  • Correctly validate constrained values in ResourceFactory (#66)
  • Implement loading of package dependencies (#68)
  • Add unit tests and fix issues in code generator (#69)

Changed

  • Implement logic to download FHIR package dependencies when downloading/loading a package (#68)

  • Update documentation (#23)

  • Update the FHIRPath Element access operation to return the primitive extension of a primitive FHRI element if its primitive value is not set (#60).

  • Modified the string representation of the FHIRPath classes to represent the shorthand appropriate FHIRPath notation (#32)

  • Enhance FHIR type validation and FHIRPath type operators (#25)

  • Only show explicitly set values on FHIRBaseModel.__repr__ (#58)

  • Add docstrings to autogenerated model source code classes (#55).

  • Override the model_construct method in all FHIRBaseModel subclasses to include default values upon construction (#55).

  • Add Fhircraft metadata to generated source code including timestamp and release version (#24)

  • Improve factory logic to avoid duplicated model names and use of class decorator keywords (#35)

  • Updated behavior of the FHIRPath equivalence ~ operator to conform to additional FHIR specification constraints (#62, closes #29)

Fixed

  • Ensure the FHIRPath HtmlChecks function validates for valid HTML content (#62, closes #44)

  • Improve factory logic to avoid duplicated model names and use of class decorator keywords (#35)

  • Properly handle FHIR structure elements matching Python keywords (#22)

  • Avoid setting subclass properties on base classes during resource construction (#48, fixes #48)

  • Ensure proper validation of contained FHIR resources into appropriate resource models (#55, fixes #53).

  • Field defaults (other than None) are now properly added to generated source code (#54)

  • Import-time behavior issues across package modules leading to circular import errors (#54 and #69).

  • Ensure correct FHIR type resolution for the FHIRPath ofType, Is and As functions (#62, fixes #31)

  • Update the resource factory to use the correct method (load_from_files) for loading StructureDefinition from file paths, fixing issues with resource model construction (#64)

  • Fix validation of constrained values by ensuring proper handling of BaseModel instances when structure definition is of a different version than the resource's (#66)

Full Changelog: https://github.com/luisfabib/fhircraft/compare/0.2.0...0.3.0


0.2.0 - 2025-08-12

Added

  • FHIR StructureDefinition repository system for managing FHIR Structure Definitions from local, package, or online sources (#19)
  • Client for the FHIR Package Registry and integration with the new repository system (#20)

Changed

  • Improved and expanded the documentation structure and content (#18, #16, #15)
  • Comprehensive type safety and code quality improvements across the package (#17)

Fixed

  • Several bug fixes (#17)

Full Changelog: https://github.com/luisfabib/fhircraft/compare/0.1.1...0.2.0


0.1.1 - 2025-08-07

Added

  • Logic to load a JSON StructureDefinition from a file if a string path is provided to the factory method.
  • New custom warning class, FhirPathWarning, to distinguish (and silence) FHIRPath-related warnings.

Fixed

  • Corrected the search path of Jinja template leading to error when trying to generate code (#10)

Changed

  • Quality of life improvements (#12)
  • Prepare patch 0.1.1 (#13)

Full Changelog: https://github.com/luisfabib/fhircraft/compare/0.1.0...0.1.1


0.1.0 - 2024-08-20

Added

  • Initial release 🎉