Base FHIR Models
These classes provide base for constructing Fhircraft-compatible Pydantic FHIR models.
Base64BinaryBase
Path: fhircraft.fhir.resources.base.Base64BinaryBase
Base64BinaryBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR base64Binary types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
BooleanBase
Path: fhircraft.fhir.resources.base.BooleanBase
BooleanBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR boolean types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
bool | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
CanonicalBase
Path: fhircraft.fhir.resources.base.CanonicalBase
CanonicalBase(__value: Any | None = None, **data)
CodeBase
Path: fhircraft.fhir.resources.base.CodeBase
CodeBase(__value: Any | None = None, **data)
Bases: StringBase
A release-independent base metaclass for FHIR code types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
DateBase
Path: fhircraft.fhir.resources.base.DateBase
DateBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR date types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
DateTimeBase
Path: fhircraft.fhir.resources.base.DateTimeBase
DateTimeBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR dateTime types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
DecimalBase
Path: fhircraft.fhir.resources.base.DecimalBase
DecimalBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR decimal types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
float | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
FHIRBaseModel
Path: fhircraft.fhir.resources.base.FHIRBaseModel
Bases: BaseModel, FHIRPathMixin
Base class for representation of FHIR resources as Pydantic objects.
Expands the Pydantic BaseModel class with FHIR-specific methods.
Methods:
| Name | Description |
|---|---|
model_post_init |
Initialize model and set up parent tracking. |
model_dump_xml |
Serialize the FHIR resource to XML format according to FHIR specification. |
model_construct |
Constructs a model without running validation, with an option to set default values for fields that have them defined. |
model_validate |
Override model_validate to provide default kwargs for FHIR resources. |
model_validate_json |
Override model_validate_json to provide default kwargs for FHIR resources. |
model_validate_xml |
Deserialize FHIR XML data into a model instance. |
model_copy |
Override model_copy to reset parent context on copied instance. |
model_construct_with_slices |
Constructs a model with sliced elements by creating empty slice instances based on the specified number of slice copies. |
get_sliced_elements |
Get the sliced elements from the model fields and their extension fields. |
clean_unusued_slice_instances |
Cleans up unused or incomplete slice instances within the given FHIR resource by iterating through the |
model_post_init
model_post_init(context: Any) -> None
model_dump_xml
model_dump_xml(*, indent: int | None = None, ensure_ascii: bool = True, include: IncEx | None = None, exclude: IncEx | None = None, exclude_unset: bool = False, exclude_none: bool = False, exclude_defaults: bool = False) -> str
Serialize the FHIR resource to XML format according to FHIR specification.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
indent
|
int | None
|
Indentation to use in the XML output. If None is passed, the output will be compact. |
None
|
ensure_ascii
|
bool
|
Whether to escape non-ASCII characters. |
True
|
include
|
IncEx | None
|
Fields to include in the output |
None
|
exclude
|
IncEx | None
|
Fields to exclude from the output |
None
|
exclude_unset
|
bool
|
Whether to exclude fields that were not explicitly set |
False
|
exclude_none
|
bool
|
Whether to exclude fields with None values |
False
|
exclude_defaults
|
bool
|
Whether to exclude fields with default values |
False
|
Returns:
| Type | Description |
|---|---|
str
|
A string containing the XML representation of the FHIR resource |
Source code in fhircraft/fhir/resources/base.py
model_construct
classmethod
model_construct(set_defaults=True, *args, **kwargs) -> Self
Constructs a model without running validation, with an option to set default values for fields that have them defined.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
set_defaults
|
bool
|
Optional, if |
True
|
Returns:
| Name | Type | Description |
|---|---|---|
instance |
Self
|
An instance of the model. |
Source code in fhircraft/fhir/resources/base.py
model_validate
classmethod
model_validate(obj, *, strict=None, from_attributes=None, context=None, extra: ExtraValues | None = None, by_alias: bool | None = None, by_name: bool | None = None) -> Self
Override model_validate to provide default kwargs for FHIR resources.
Source code in fhircraft/fhir/resources/base.py
model_validate_json
classmethod
model_validate_json(json_data: str | bytes | bytearray, *, strict: bool | None = False, context: Any = None, extra: ExtraValues | None = None, by_alias: bool | None = None, by_name: bool | None = None) -> Self
Override model_validate_json to provide default kwargs for FHIR resources.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
json_data
|
str | bytes | bytearray
|
JSON string to deserialize |
required |
strict
|
bool | None
|
Whether to validate strictly |
False
|
context
|
Any
|
Additional context for validation |
None
|
extra
|
ExtraValues | None
|
Extra parameters |
None
|
Source code in fhircraft/fhir/resources/base.py
model_validate_xml
classmethod
Deserialize FHIR XML data into a model instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
xml_data
|
str
|
XML string to deserialize |
required |
strict
|
bool | None
|
Whether to validate strictly |
None
|
context
|
Any
|
Additional context for validation |
None
|
Returns:
| Type | Description |
|---|---|
Self
|
An instance of the model populated from the XML data |
Source code in fhircraft/fhir/resources/base.py
model_copy
Override model_copy to reset parent context on copied instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
update
|
Mapping[str, Any] | None
|
Optional dict of field updates to apply to the copy |
None
|
deep
|
bool
|
Whether to perform a deep copy |
False
|
Returns:
| Type | Description |
|---|---|
Self
|
A copied instance with reset parent context |
Source code in fhircraft/fhir/resources/base.py
model_construct_with_slices
classmethod
Constructs a model with sliced elements by creating empty slice instances based on the specified number of slice copies. The method iterates over the sliced elements of the class, generates slice resources, and sets them in the resource collection.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
slice_copies
|
int
|
Optional, an integer specifying the number of copies for each slice (default is 9). |
9
|
Returns:
| Name | Type | Description |
|---|---|---|
instance |
Self
|
An instance of the model with the sliced elements constructed. |
Source code in fhircraft/fhir/resources/base.py
get_sliced_elements
classmethod
get_sliced_elements() -> dict[str, list[type[FHIRSliceModel]]]
Get the sliced elements from the model fields and their extension fields.
Sliced elements are filtered based on being instances of FHIRSliceModel.
Returns:
| Name | Type | Description |
|---|---|---|
slices |
dict
|
A dictionary with field names as keys and corresponding sliced elements as values. |
Source code in fhircraft/fhir/resources/base.py
clean_unusued_slice_instances
classmethod
Cleans up unused or incomplete slice instances within the given FHIR resource by iterating through the sliced elements of the class, identifying valid elements, and updating the resource with only the valid slices.
Source code in fhircraft/fhir/resources/base.py
FHIRList
Path: fhircraft.fhir.resources.base.FHIRList
Bases: list
Custom list wrapper that maintains parent context on mutations.
This list automatically propagates _parent, _root_resource, _resource, and _index context to FHIRBaseModel items when they are added via append, extend, insert, or setitem.
root and resource are accepted for backwards-compatibility but
are no longer stored; they are resolved lazily via _parent on items.
Methods:
| Name | Description |
|---|---|
append |
Append item and propagate context. |
extend |
Extend list and propagate context to new items. |
insert |
Insert item and propagate context. |
Source code in fhircraft/fhir/resources/base.py
append
Append item and propagate context.
extend
Extend list and propagate context to new items.
Source code in fhircraft/fhir/resources/base.py
insert
Insert item and propagate context.
Source code in fhircraft/fhir/resources/base.py
FHIRPrimitiveModel
Path: fhircraft.fhir.resources.base.FHIRPrimitiveModel
FHIRPrimitiveModel(__value: Any | None = None, **data)
Bases: FHIRBaseModel
Base class for FHIR primitive types.
FHIR primitives are represented as Pydantic models with a single value field that holds the actual primitive value.
This design allows us to attach extensions to primitive values while still treating them as simple types in most contexts.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Any | None
|
The actual value |
None
|
Source code in fhircraft/fhir/resources/base.py
FHIRSliceModel
Path: fhircraft.fhir.resources.base.FHIRSliceModel
Bases: FHIRBaseModel
Base class for representation of FHIR profiled slices as Pydantic objects.
Expands the FHIRBaseModel class with slice-specific methods.
Attributes:
| Name | Type | Description |
|---|---|---|
is_FHIR_complete |
Validates if the FHIR model is complete by attempting to validate the model dump. |
|
has_been_modified |
Checks if the FHIRSliceModel instance has been modified by comparing it with a new instance constructed with slices. |
is_FHIR_complete
property
Validates if the FHIR model is complete by attempting to validate the model dump.
Returns True if the model is complete, False otherwise.
FhirBaseModelKind
Path: fhircraft.fhir.resources.base.FhirBaseModelKind
IdBase
Path: fhircraft.fhir.resources.base.IdBase
IdBase(__value: Any | None = None, **data)
Bases: StringBase
A release-independent base metaclass for FHIR id types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
InstantBase
Path: fhircraft.fhir.resources.base.InstantBase
InstantBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR instant types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
Integer64Base
Path: fhircraft.fhir.resources.base.Integer64Base
Integer64Base(__value: Any | None = None, **data)
Bases: IntegerBase
A release-independent base metaclass for FHIR integer64 types (R5)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
IntegerBase
Path: fhircraft.fhir.resources.base.IntegerBase
IntegerBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR integer types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
MarkdownBase
Path: fhircraft.fhir.resources.base.MarkdownBase
MarkdownBase(__value: Any | None = None, **data)
Bases: StringBase
A release-independent base metaclass for FHIR markdown types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
OidBase
Path: fhircraft.fhir.resources.base.OidBase
OidBase(__value: Any | None = None, **data)
PositiveIntBase
Path: fhircraft.fhir.resources.base.PositiveIntBase
PositiveIntBase(__value: Any | None = None, **data)
Bases: IntegerBase
A release-independent base metaclass for FHIR positiveInt types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
StringBase
Path: fhircraft.fhir.resources.base.StringBase
StringBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR string types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
TimeBase
Path: fhircraft.fhir.resources.base.TimeBase
TimeBase(__value: Any | None = None, **data)
Bases: FHIRPrimitiveModel
A release-independent base metaclass for FHIR time types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
UnsignedIntBase
Path: fhircraft.fhir.resources.base.UnsignedIntBase
UnsignedIntBase(__value: Any | None = None, **data)
Bases: IntegerBase
A release-independent base metaclass for FHIR unsignedInt types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
int | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
UriBase
Path: fhircraft.fhir.resources.base.UriBase
UriBase(__value: Any | None = None, **data)
Bases: StringBase
A release-independent base metaclass for FHIR uri types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|
Source code in fhircraft/fhir/resources/base.py
UrlBase
Path: fhircraft.fhir.resources.base.UrlBase
UrlBase(__value: Any | None = None, **data)
UuidBase
Path: fhircraft.fhir.resources.base.UuidBase
UuidBase(__value: Any | None = None, **data)
XhtmlBase
Path: fhircraft.fhir.resources.base.XhtmlBase
XhtmlBase(__value: Any | None = None, **data)
Bases: StringBase
A release-independent base metaclass for FHIR xhtml types
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | None
|
|
None
|