diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/address.py b/fhircraft/fhir/resources/datatypes/R4/complex/address.py
index a43c35ea..c7639076 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/address.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/address.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -99,40 +99,34 @@ class Address(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "country",
- "postalCode",
- "state",
- "district",
- "city",
- "line",
- "text",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "country",
+ "postalCode",
+ "state",
+ "district",
+ "city",
+ "line",
+ "text",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/annotation.py b/fhircraft/fhir/resources/datatypes/R4/complex/annotation.py
index f9027684..41efc527 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/annotation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/annotation.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -40,26 +40,27 @@ class Annotation(Element):
alias="_text",
)
- @field_validator(
- *("text", "time", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "time",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/attachment.py b/fhircraft/fhir/resources/datatypes/R4/complex/attachment.py
index 680e999a..8984c3a9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/attachment.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/attachment.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -85,38 +85,32 @@ class Attachment(Element):
alias="_creation",
)
- @field_validator(
- *(
- "creation",
- "title",
- "hash",
- "size",
- "url",
- "data",
- "language",
- "contentType",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "creation",
+ "title",
+ "hash",
+ "size",
+ "url",
+ "data",
+ "language",
+ "contentType",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/backbone_element.py b/fhircraft/fhir/resources/datatypes/R4/complex/backbone_element.py
index 262b40ac..4acc4d71 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/backbone_element.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/backbone_element.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -13,6 +13,7 @@ class BackboneElement(Element):
"""
Base for elements defined inside a resource
"""
+
_fhir_release = "R4"
modifierExtension: Optional[List[Extension]] = Field(
@@ -20,28 +21,28 @@ class BackboneElement(Element):
default=None,
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/codeable_concept.py b/fhircraft/fhir/resources/datatypes/R4/complex/codeable_concept.py
index 01281795..5e09035b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/codeable_concept.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/codeable_concept.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,26 +26,27 @@ class CodeableConcept(Element):
alias="_text",
)
- @field_validator(
- *("text", "coding", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "coding",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/coding.py b/fhircraft/fhir/resources/datatypes/R4/complex/coding.py
index 11070c8a..21a458e1 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/coding.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/coding.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Coding(Element):
alias="_userSelected",
)
- @field_validator(
- *(
- "userSelected",
- "display",
- "code",
- "version",
- "system",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "userSelected",
+ "display",
+ "code",
+ "version",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/contact_detail.py b/fhircraft/fhir/resources/datatypes/R4/complex/contact_detail.py
index b4ad428c..ceeb41d8 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/contact_detail.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/contact_detail.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,26 +26,27 @@ class ContactDetail(Element):
default=None,
)
- @field_validator(
- *("telecom", "name", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "telecom",
+ "name",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/contact_point.py b/fhircraft/fhir/resources/datatypes/R4/complex/contact_point.py
index f42baba2..404d0294 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/contact_point.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/contact_point.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -53,35 +53,29 @@ class ContactPoint(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "rank",
- "use",
- "value",
- "system",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "rank",
+ "use",
+ "value",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/contributor.py b/fhircraft/fhir/resources/datatypes/R4/complex/contributor.py
index 52923fee..1c2b3664 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/contributor.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/contributor.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -35,28 +35,29 @@ class Contributor(Element):
default=None,
)
- @field_validator(
- *("contact", "name", "type", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "name",
+ "type",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/data_requirement.py b/fhircraft/fhir/resources/datatypes/R4/complex/data_requirement.py
index 2cb04e97..4ed040bf 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/data_requirement.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/data_requirement.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -73,61 +73,53 @@ class DataRequirement(Element):
default=None,
)
- @field_validator(
- *(
- "sort",
- "limit",
- "dateFilter",
- "codeFilter",
- "mustSupport",
- "profile",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sort",
+ "limit",
+ "dateFilter",
+ "codeFilter",
+ "mustSupport",
+ "profile",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("codeFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-1",
severity="error",
)
- @field_validator(*("dateFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dateFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/domain_resource.py b/fhircraft/fhir/resources/datatypes/R4/complex/domain_resource.py
index 2415d1e4..25b7a762 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/domain_resource.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -16,6 +16,7 @@ class DomainResource(Resource):
"""
A resource with narrative, extensions, and contained resources
"""
+
_fhir_release = "R4"
text: Optional[Narrative] = Field(
@@ -35,37 +36,32 @@ class DomainResource(Resource):
default=None,
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/dosage.py b/fhircraft/fhir/resources/datatypes/R4/complex/dosage.py
index e1f4a532..9b99818e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/dosage.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/dosage.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -91,45 +91,40 @@ class Dosage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "maxDosePerLifetime",
- "maxDosePerAdministration",
- "maxDosePerPeriod",
- "doseAndRate",
- "method",
- "route",
- "site",
- "timing",
- "patientInstruction",
- "additionalInstruction",
- "text",
- "sequence",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDosePerLifetime",
+ "maxDosePerAdministration",
+ "maxDosePerPeriod",
+ "doseAndRate",
+ "method",
+ "route",
+ "site",
+ "timing",
+ "patientInstruction",
+ "additionalInstruction",
+ "text",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/element.py b/fhircraft/fhir/resources/datatypes/R4/complex/element.py
index b29e097c..d62f910f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/element.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/element.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -14,6 +14,7 @@ class Element(FHIRBaseModel):
"""
Base for all elements
"""
+
_fhir_release = "R4"
id: Optional[String] = Field(
@@ -30,24 +31,22 @@ class Element(FHIRBaseModel):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/element_definition.py b/fhircraft/fhir/resources/datatypes/R4/complex/element_definition.py
index ea2e2481..867db6a7 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/element_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/element_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
from fhircraft.fhir.resources.validators import (
get_type_choice_value_by_base,
@@ -70,14 +70,16 @@ class ElementDefinitionSlicingDiscriminator(Element):
alias="_path",
)
- @field_validator(
- *("path", "type", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "path",
+ "type",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -122,25 +124,20 @@ class ElementDefinitionSlicing(Element):
alias="_rules",
)
- @field_validator(
- *(
- "rules",
- "ordered",
- "description",
- "discriminator",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rules",
+ "ordered",
+ "description",
+ "discriminator",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,16 +178,18 @@ class ElementDefinitionBase(Element):
alias="_max",
)
- @field_validator(
- *("max", "min", "path", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "path",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -249,27 +248,22 @@ class ElementDefinitionType(Element):
alias="_versioning",
)
- @field_validator(
- *(
- "versioning",
- "aggregation",
- "targetProfile",
- "profile",
- "code",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versioning",
+ "aggregation",
+ "targetProfile",
+ "profile",
+ "code",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -594,12 +588,14 @@ def value(self):
base="value",
)
- @field_validator(*("label", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "label",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -737,31 +733,26 @@ class ElementDefinitionConstraint(Element):
alias="_source",
)
- @field_validator(
- *(
- "source",
- "xpath",
- "expression",
- "human",
- "severity",
- "requirements",
- "key",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "xpath",
+ "expression",
+ "human",
+ "severity",
+ "requirements",
+ "key",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -802,16 +793,18 @@ class ElementDefinitionBinding(Element):
alias="_valueSet",
)
- @field_validator(
- *("valueSet", "description", "strength", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "description",
+ "strength",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -861,25 +854,20 @@ class ElementDefinitionMapping(Element):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "map",
- "language",
- "identity",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "map",
+ "language",
+ "identity",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2186,176 +2174,165 @@ def maxValue(self):
base="maxValue",
)
- @field_validator(
- *(
- "mapping",
- "binding",
- "isSummary",
- "isModifierReason",
- "isModifier",
- "mustSupport",
- "constraint",
- "condition",
- "maxLength",
- "example",
- "orderMeaning",
- "meaningWhenMissing",
- "type",
- "contentReference",
- "base",
- "max",
- "min",
- "alias",
- "requirements",
- "comment",
- "definition",
- "short",
- "slicing",
- "code",
- "label",
- "sliceIsConstraining",
- "sliceName",
- "representation",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mapping",
+ "binding",
+ "isSummary",
+ "isModifierReason",
+ "isModifier",
+ "mustSupport",
+ "constraint",
+ "condition",
+ "maxLength",
+ "example",
+ "orderMeaning",
+ "meaningWhenMissing",
+ "type",
+ "contentReference",
+ "base",
+ "max",
+ "min",
+ "alias",
+ "requirements",
+ "comment",
+ "definition",
+ "short",
+ "slicing",
+ "code",
+ "label",
+ "sliceIsConstraining",
+ "sliceName",
+ "representation",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("slicing",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("slicing",),
expression="discriminator.exists() or description.exists()",
human="If there are no discriminators, there must be a definition",
key="eld-1",
severity="error",
)
- @field_validator(*("max",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_3_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("max",),
expression="empty() or ($this = '*') or (toInteger() >= 0)",
human='Max SHALL be a number or "*"',
key="eld-3",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_4_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="aggregation.empty() or (code = 'Reference') or (code = 'canonical')",
human="Aggregation may only be specified if one of the allowed types for the element is a reference",
key="eld-4",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_17_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_17_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="(code='Reference' or code = 'canonical') or targetProfile.empty()",
human="targetProfile is only allowed if the type is Reference or canonical",
key="eld-17",
severity="error",
)
- @field_validator(*("constraint",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_21_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_21_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("constraint",),
expression="expression.exists()",
human="Constraints should have an expression or else validators will not be able to enforce them",
key="eld-21",
severity="warning",
)
- @field_validator(*("binding",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_12_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("binding",),
expression="valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:'))",
human="ValueSet SHALL start with http:// or https:// or urn:",
key="eld-12",
@@ -2689,7 +2666,7 @@ def FHIR_eld_15_constraint_model_validator(self):
def FHIR_eld_16_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\\\/\\\\-_\\\\[\\\\]\\\\@]+$')",
+ expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\/\\-_\\[\\]\\@]+$')",
human='sliceName must be composed of proper tokens separated by "/"',
key="eld-16",
severity="error",
@@ -2709,7 +2686,7 @@ def FHIR_eld_18_constraint_model_validator(self):
def FHIR_eld_19_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\.[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\[x\\\\])?(\\\\:[^\\\\s\\\\.]+)?)*')",
+ expression="path.matches('[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\.[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\[x\\])?(\\:[^\\s\\.]+)?)*')",
human="Element names cannot include some special characters",
key="eld-19",
severity="error",
@@ -2719,7 +2696,7 @@ def FHIR_eld_19_constraint_model_validator(self):
def FHIR_eld_20_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('[A-Za-z][A-Za-z0-9]*(\\\\.[a-z][A-Za-z0-9]*(\\\\[x])?)*')",
+ expression="path.matches('[A-Za-z][A-Za-z0-9]*(\\.[a-z][A-Za-z0-9]*(\\[x])?)*')",
human="Element names should be simple alphanumerics with a max of 64 characters, or code generation tools may be broken",
key="eld-20",
severity="warning",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/expression.py b/fhircraft/fhir/resources/datatypes/R4/complex/expression.py
index 86736dab..3f268218 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/expression.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/expression.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -59,35 +59,29 @@ class Expression(Element):
alias="_reference",
)
- @field_validator(
- *(
- "reference",
- "expression",
- "language",
- "name",
- "description",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "expression",
+ "language",
+ "name",
+ "description",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/extension.py b/fhircraft/fhir/resources/datatypes/R4/complex/extension.py
index d7382335..997338d5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/extension.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/extension.py
@@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -258,24 +258,22 @@ class Extension(Element):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/human_name.py b/fhircraft/fhir/resources/datatypes/R4/complex/human_name.py
index d78f52ea..efb5cb92 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/human_name.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/human_name.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -73,37 +73,31 @@ class HumanName(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "suffix",
- "prefix",
- "given",
- "family",
- "text",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "suffix",
+ "prefix",
+ "given",
+ "family",
+ "text",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/identifier.py b/fhircraft/fhir/resources/datatypes/R4/complex/identifier.py
index 6558ec5a..62b8fc3f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/identifier.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/identifier.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -56,36 +56,30 @@ class Identifier(Element):
default=None,
)
- @field_validator(
- *(
- "assigner",
- "period",
- "value",
- "system",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assigner",
+ "period",
+ "value",
+ "system",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/marketing_status.py b/fhircraft/fhir/resources/datatypes/R4/complex/marketing_status.py
index f109f476..aa329d23 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/marketing_status.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/marketing_status.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -42,38 +42,33 @@ class MarketingStatus(BackboneElement):
alias="_restoreDate",
)
- @field_validator(
- *(
- "restoreDate",
- "dateRange",
- "status",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "restoreDate",
+ "dateRange",
+ "status",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/meta.py b/fhircraft/fhir/resources/datatypes/R4/complex/meta.py
index 1e26b1a5..c2c7c4b9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/meta.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/meta.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -59,36 +59,30 @@ class Meta(Element):
default=None,
)
- @field_validator(
- *(
- "tag",
- "security",
- "profile",
- "source",
- "lastUpdated",
- "versionId",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "tag",
+ "security",
+ "profile",
+ "source",
+ "lastUpdated",
+ "versionId",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/money.py b/fhircraft/fhir/resources/datatypes/R4/complex/money.py
index b1fea360..046d0e1d 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/money.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/money.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -32,28 +32,27 @@ class Money(Element):
alias="_currency",
)
- @field_validator(
- *("currency", "value", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "currency",
+ "value",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/narrative.py b/fhircraft/fhir/resources/datatypes/R4/complex/narrative.py
index 8dff7784..dcaee1f5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/narrative.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/narrative.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -27,50 +27,49 @@ class Narrative(Element):
default=None,
)
- @field_validator(
- *("div", "status", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "div",
+ "status",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained style attributes",
key="txt-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL have some non-whitespace content",
key="txt-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/parameter_definition.py b/fhircraft/fhir/resources/datatypes/R4/complex/parameter_definition.py
index e639c3f9..619f3e72 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/parameter_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/parameter_definition.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -77,37 +77,31 @@ class ParameterDefinition(Element):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "documentation",
- "max",
- "min",
- "use",
- "name",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "use",
+ "name",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/period.py b/fhircraft/fhir/resources/datatypes/R4/complex/period.py
index cf9c844e..cf536a61 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/period.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/period.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -32,26 +32,27 @@ class Period(Element):
alias="_end",
)
- @field_validator(
- *("end", "start", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/population.py b/fhircraft/fhir/resources/datatypes/R4/complex/population.py
index 576190f9..960ccd56 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/population.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/population.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -36,36 +36,31 @@ class Population(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "physiologicalCondition",
- "race",
- "gender",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "physiologicalCondition",
+ "race",
+ "gender",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/prod_characteristic.py b/fhircraft/fhir/resources/datatypes/R4/complex/prod_characteristic.py
index 797722a1..2f8b25cc 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/prod_characteristic.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/prod_characteristic.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -77,44 +77,39 @@ class ProdCharacteristic(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "scoring",
- "image",
- "imprint",
- "color",
- "shape",
- "externalDiameter",
- "nominalVolume",
- "weight",
- "depth",
- "width",
- "height",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scoring",
+ "image",
+ "imprint",
+ "color",
+ "shape",
+ "externalDiameter",
+ "nominalVolume",
+ "weight",
+ "depth",
+ "width",
+ "height",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/product_shelf_life.py b/fhircraft/fhir/resources/datatypes/R4/complex/product_shelf_life.py
index 6d1b2526..d6973d40 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/product_shelf_life.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/product_shelf_life.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -33,37 +33,32 @@ class ProductShelfLife(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specialPrecautionsForStorage",
- "period",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialPrecautionsForStorage",
+ "period",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/quantity.py b/fhircraft/fhir/resources/datatypes/R4/complex/quantity.py
index a6f24088..9eb2acf6 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/quantity.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/quantity.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Quantity(Element):
alias="_code",
)
- @field_validator(
- *(
- "code",
- "system",
- "unit",
- "comparator",
- "value",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "system",
+ "unit",
+ "comparator",
+ "value",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/range.py b/fhircraft/fhir/resources/datatypes/R4/complex/range.py
index 42dfb377..8c3bca7d 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/range.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/range.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -23,24 +23,26 @@ class Range(Element):
default=None,
)
- @field_validator(*("high", "low", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "high",
+ "low",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/ratio.py b/fhircraft/fhir/resources/datatypes/R4/complex/ratio.py
index a74e1efe..98be69d5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/ratio.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/ratio.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -23,28 +23,26 @@ class Ratio(Element):
default=None,
)
- @field_validator(
- *("denominator", "numerator", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "denominator",
+ "numerator",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/reference.py b/fhircraft/fhir/resources/datatypes/R4/complex/reference.py
index df5cf0ba..cbab89d0 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/reference.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/reference.py
@@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -48,34 +48,28 @@ class Reference(Element):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "identifier",
- "type",
- "reference",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "identifier",
+ "type",
+ "reference",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/related_artifact.py b/fhircraft/fhir/resources/datatypes/R4/complex/related_artifact.py
index 90548d57..a8c55203 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/related_artifact.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/related_artifact.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -73,37 +73,31 @@ class RelatedArtifact(Element):
alias="_resource",
)
- @field_validator(
- *(
- "resource",
- "document",
- "url",
- "citation",
- "display",
- "label",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "document",
+ "url",
+ "citation",
+ "display",
+ "label",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/resource.py b/fhircraft/fhir/resources/datatypes/R4/complex/resource.py
index 465de397..a50ab3ca 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/resource.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -14,6 +14,7 @@ class Resource(FHIRBaseModel):
"""
Base Resource
"""
+
_fhir_release = "R4"
id: Optional[String] = Field(
@@ -48,14 +49,15 @@ class Resource(FHIRBaseModel):
alias="_language",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/sampled_data.py b/fhircraft/fhir/resources/datatypes/R4/complex/sampled_data.py
index 4cef145d..85d089e8 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/sampled_data.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/sampled_data.py
@@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -73,37 +73,31 @@ class SampledData(Element):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "dimensions",
- "upperLimit",
- "lowerLimit",
- "factor",
- "period",
- "origin",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "dimensions",
+ "upperLimit",
+ "lowerLimit",
+ "factor",
+ "period",
+ "origin",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/signature.py b/fhircraft/fhir/resources/datatypes/R4/complex/signature.py
index 7eb03775..df864439 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/signature.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/signature.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -64,37 +64,31 @@ class Signature(Element):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "sigFormat",
- "targetFormat",
- "onBehalfOf",
- "who",
- "when",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "sigFormat",
+ "targetFormat",
+ "onBehalfOf",
+ "who",
+ "when",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/substance_amount.py b/fhircraft/fhir/resources/datatypes/R4/complex/substance_amount.py
index 833267d8..1c601bc2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/substance_amount.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/substance_amount.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -47,36 +47,31 @@ class SubstanceAmount(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "referenceRange",
- "amountText",
- "amountType",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceRange",
+ "amountText",
+ "amountType",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/timing.py b/fhircraft/fhir/resources/datatypes/R4/complex/timing.py
index c7a3fd61..fa38e937 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/timing.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/timing.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -33,144 +33,130 @@ class Timing(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "repeat",
- "event",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "repeat",
+ "event",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.empty() or durationUnit.exists()",
human="if there's a duration, there needs to be duration units",
key="tim-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.empty() or periodUnit.exists()",
human="if there's a period, there needs to be period units",
key="tim-2",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.exists() implies duration >= 0",
human="duration SHALL be a non-negative value",
key="tim-4",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.exists() implies period >= 0",
human="period SHALL be a non-negative value",
key="tim-5",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="periodMax.empty() or period.exists()",
human="If there's a periodMax, there must be a period",
key="tim-6",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="durationMax.empty() or duration.exists()",
human="If there's a durationMax, there must be a duration",
key="tim-7",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="countMax.empty() or count.exists()",
human="If there's a countMax, there must be a count",
key="tim-8",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))",
human="If there's an offset, there must be a when (and not C, CM, CD, CV)",
key="tim-9",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="timeOfDay.empty() or when.empty()",
human="If there's a timeOfDay, there cannot be a when, or vice versa",
key="tim-10",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/trigger_definition.py b/fhircraft/fhir/resources/datatypes/R4/complex/trigger_definition.py
index b483728b..6c7b4ac4 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/trigger_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/trigger_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -60,34 +60,28 @@ class TriggerDefinition(Element):
default=None,
)
- @field_validator(
- *(
- "condition",
- "data",
- "name",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "data",
+ "name",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/usage_context.py b/fhircraft/fhir/resources/datatypes/R4/complex/usage_context.py
index dfad7f6d..18e97257 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/usage_context.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/usage_context.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -39,24 +39,25 @@ class UsageContext(Element):
default=None,
)
- @field_validator(*("code", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/complex/xhtml.py b/fhircraft/fhir/resources/datatypes/R4/complex/xhtml.py
index 6a9c78f3..9a1a1d62 100644
--- a/fhircraft/fhir/resources/datatypes/R4/complex/xhtml.py
+++ b/fhircraft/fhir/resources/datatypes/R4/complex/xhtml.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -23,24 +23,22 @@ class xhtml(Element):
alias="_value",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/account.py b/fhircraft/fhir/resources/datatypes/R4/core/account.py
index 3efe3769..c9c0257e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/account.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/account.py
@@ -4,7 +4,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
# Standard modules
from typing import Optional, Literal
@@ -56,23 +56,18 @@ class AccountCoverage(BackboneElement):
alias="_priority",
)
- @field_validator(
- *(
- "priority",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priority",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -103,26 +98,21 @@ class AccountGuarantor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onHold",
- "party",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onHold",
+ "party",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -248,48 +238,43 @@ class Account(DomainResource):
default="Account",
)
- @field_validator(
- *(
- "partOf",
- "guarantor",
- "description",
- "owner",
- "coverage",
- "servicePeriod",
- "subject",
- "name",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partOf",
+ "guarantor",
+ "description",
+ "owner",
+ "coverage",
+ "servicePeriod",
+ "subject",
+ "name",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/activity_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/activity_definition.py
index d70dd2c2..efc9e5f3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/activity_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/activity_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,23 +72,18 @@ class ActivityDefinitionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -115,23 +110,18 @@ class ActivityDefinitionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -546,80 +536,75 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "dynamicValue",
- "transform",
- "observationResultRequirement",
- "observationRequirement",
- "specimenRequirement",
- "bodySite",
- "dosage",
- "quantity",
- "participant",
- "location",
- "doNotPerform",
- "priority",
- "intent",
- "code",
- "profile",
- "kind",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dynamicValue",
+ "transform",
+ "observationResultRequirement",
+ "observationRequirement",
+ "specimenRequirement",
+ "bodySite",
+ "dosage",
+ "quantity",
+ "participant",
+ "location",
+ "doNotPerform",
+ "priority",
+ "intent",
+ "code",
+ "profile",
+ "kind",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/adverse_event.py b/fhircraft/fhir/resources/datatypes/R4/core/adverse_event.py
index e7d3a00e..b270aaa0 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/adverse_event.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/adverse_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,29 +60,24 @@ class AdverseEventSuspectEntityCausality(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "method",
- "author",
- "productRelatedness",
- "assessment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "method",
+ "author",
+ "productRelatedness",
+ "assessment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -104,23 +99,18 @@ class AdverseEventSuspectEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "causality",
- "instance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "causality",
+ "instance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -287,57 +277,52 @@ class AdverseEvent(DomainResource):
default="AdverseEvent",
)
- @field_validator(
- *(
- "study",
- "referenceDocument",
- "subjectMedicalHistory",
- "suspectEntity",
- "contributor",
- "recorder",
- "outcome",
- "severity",
- "seriousness",
- "location",
- "resultingCondition",
- "recordedDate",
- "detected",
- "date",
- "encounter",
- "subject",
- "event",
- "category",
- "actuality",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "study",
+ "referenceDocument",
+ "subjectMedicalHistory",
+ "suspectEntity",
+ "contributor",
+ "recorder",
+ "outcome",
+ "severity",
+ "seriousness",
+ "location",
+ "resultingCondition",
+ "recordedDate",
+ "detected",
+ "date",
+ "encounter",
+ "subject",
+ "event",
+ "category",
+ "actuality",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/allergy_intolerance.py b/fhircraft/fhir/resources/datatypes/R4/core/allergy_intolerance.py
index f9ca9316..afb0b0ff 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/allergy_intolerance.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/allergy_intolerance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,38 +86,33 @@ class AllergyIntoleranceReaction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "exposureRoute",
- "severity",
- "onset",
- "description",
- "manifestation",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "exposureRoute",
+ "severity",
+ "onset",
+ "description",
+ "manifestation",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -306,52 +301,47 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "reaction",
- "note",
- "lastOccurrence",
- "asserter",
- "recorder",
- "recordedDate",
- "encounter",
- "patient",
- "code",
- "criticality",
- "category",
- "type",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reaction",
+ "note",
+ "lastOccurrence",
+ "asserter",
+ "recorder",
+ "recordedDate",
+ "encounter",
+ "patient",
+ "code",
+ "criticality",
+ "category",
+ "type",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/appointment.py b/fhircraft/fhir/resources/datatypes/R4/core/appointment.py
index bbfbe2fd..9ce63020 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/appointment.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/appointment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -78,32 +78,27 @@ class AppointmentParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "required",
- "actor",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "required",
+ "actor",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,71 +298,65 @@ class Appointment(DomainResource):
default="Appointment",
)
- @field_validator(
- *(
- "requestedPeriod",
- "participant",
- "basedOn",
- "patientInstruction",
- "comment",
- "created",
- "slot",
- "minutesDuration",
- "end",
- "start",
- "supportingInformation",
- "description",
- "priority",
- "reasonReference",
- "reasonCode",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "cancelationReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requestedPeriod",
+ "participant",
+ "basedOn",
+ "patientInstruction",
+ "comment",
+ "created",
+ "slot",
+ "minutesDuration",
+ "end",
+ "start",
+ "supportingInformation",
+ "description",
+ "priority",
+ "reasonReference",
+ "reasonCode",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "cancelationReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_app_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_app_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="type.exists() or actor.exists()",
human="Either the type or actor on the participant SHALL be specified",
key="app-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/appointment_response.py b/fhircraft/fhir/resources/datatypes/R4/core/appointment_response.py
index 48537546..93d1452c 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/appointment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/appointment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -143,45 +143,40 @@ class AppointmentResponse(DomainResource):
default="AppointmentResponse",
)
- @field_validator(
- *(
- "comment",
- "participantStatus",
- "actor",
- "participantType",
- "end",
- "start",
- "appointment",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "participantStatus",
+ "actor",
+ "participantType",
+ "end",
+ "start",
+ "appointment",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/audit_event.py b/fhircraft/fhir/resources/datatypes/R4/core/audit_event.py
index 565e0f73..4388f27b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/audit_event.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/audit_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class AuditEventAgentNetwork(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "address",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "address",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,50 +154,45 @@ class AuditEventAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "purposeOfUse",
- "network",
- "media",
- "policy",
- "location",
- "requestor",
- "name",
- "altId",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "purposeOfUse",
+ "network",
+ "media",
+ "policy",
+ "location",
+ "requestor",
+ "name",
+ "altId",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -233,26 +223,21 @@ class AuditEventSource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "observer",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "observer",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -300,14 +285,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -381,44 +367,39 @@ class AuditEventEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "query",
- "description",
- "name",
- "securityLabel",
- "lifecycle",
- "role",
- "type",
- "what",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "query",
+ "description",
+ "name",
+ "securityLabel",
+ "lifecycle",
+ "role",
+ "type",
+ "what",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -549,60 +530,54 @@ class AuditEvent(DomainResource):
default="AuditEvent",
)
- @field_validator(
- *(
- "entity",
- "source",
- "agent",
- "purposeOfEvent",
- "outcomeDesc",
- "outcome",
- "recorded",
- "period",
- "action",
- "subtype",
- "type",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entity",
+ "source",
+ "agent",
+ "purposeOfEvent",
+ "outcomeDesc",
+ "outcome",
+ "recorded",
+ "period",
+ "action",
+ "subtype",
+ "type",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("entity",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sev_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sev_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entity",),
expression="name.empty() or query.empty()",
human="Either a name or a query (NOT both)",
key="sev-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/basic.py b/fhircraft/fhir/resources/datatypes/R4/core/basic.py
index cc477109..06e19967 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/basic.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/basic.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -116,42 +116,37 @@ class Basic(DomainResource):
default="Basic",
)
- @field_validator(
- *(
- "author",
- "created",
- "subject",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "created",
+ "subject",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/binary.py b/fhircraft/fhir/resources/datatypes/R4/core/binary.py
index 8834fb95..d7061543 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/binary.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/binary.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -24,7 +24,12 @@
Base64Binary,
)
-from fhircraft.fhir.resources.datatypes.R4.complex import Element, Meta, Reference, Resource
+from fhircraft.fhir.resources.datatypes.R4.complex import (
+ Element,
+ Meta,
+ Reference,
+ Resource,
+)
class Binary(Resource):
@@ -43,7 +48,9 @@ class Binary(Resource):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Binary"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Binary"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -90,23 +97,18 @@ class Binary(Resource):
default="Binary",
)
- @field_validator(
- *(
- "data",
- "securityContext",
- "contentType",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "securityContext",
+ "contentType",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/biologically_derived_product.py b/fhircraft/fhir/resources/datatypes/R4/core/biologically_derived_product.py
index cb1f10e6..2e544d29 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/biologically_derived_product.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/biologically_derived_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -75,23 +75,18 @@ def collected(self):
base="collected",
)
- @field_validator(
- *(
- "source",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,26 +146,21 @@ def time(self):
base="time",
)
- @field_validator(
- *(
- "additive",
- "procedure",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additive",
+ "procedure",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -222,16 +212,15 @@ def time(self):
base="time",
)
- @field_validator(
- *("description", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,29 +274,24 @@ class BiologicallyDerivedProductStorage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "duration",
- "scale",
- "temperature",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "duration",
+ "scale",
+ "temperature",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -436,48 +420,43 @@ class BiologicallyDerivedProduct(DomainResource):
default="BiologicallyDerivedProduct",
)
- @field_validator(
- *(
- "storage",
- "manipulation",
- "processing",
- "collection",
- "parent",
- "quantity",
- "request",
- "status",
- "productCode",
- "productCategory",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "storage",
+ "manipulation",
+ "processing",
+ "collection",
+ "parent",
+ "quantity",
+ "request",
+ "status",
+ "productCode",
+ "productCategory",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/body_structure.py b/fhircraft/fhir/resources/datatypes/R4/core/body_structure.py
index c306cd5e..7311691c 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/body_structure.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/body_structure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -134,45 +134,40 @@ class BodyStructure(DomainResource):
default="BodyStructure",
)
- @field_validator(
- *(
- "patient",
- "image",
- "description",
- "locationQualifier",
- "location",
- "morphology",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patient",
+ "image",
+ "description",
+ "locationQualifier",
+ "location",
+ "morphology",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/bundle.py b/fhircraft/fhir/resources/datatypes/R4/core/bundle.py
index c4a60621..ff37f274 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/bundle.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/bundle.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -63,23 +63,18 @@ class BundleLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class BundleEntryLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,23 +149,18 @@ class BundleEntrySearch(BackboneElement):
alias="_score",
)
- @field_validator(
- *(
- "score",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "score",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -243,35 +228,30 @@ class BundleEntryRequest(BackboneElement):
alias="_ifNoneExist",
)
- @field_validator(
- *(
- "ifNoneExist",
- "ifMatch",
- "ifModifiedSince",
- "ifNoneMatch",
- "url",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ifNoneExist",
+ "ifMatch",
+ "ifModifiedSince",
+ "ifNoneMatch",
+ "url",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,29 +305,24 @@ class BundleEntryResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "lastModified",
- "etag",
- "location",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lastModified",
+ "etag",
+ "location",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,32 +365,27 @@ class BundleEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "search",
- "fullUrl",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "search",
+ "fullUrl",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -509,51 +479,44 @@ class Bundle(Resource):
default="Bundle",
)
- @field_validator(
- *(
- "signature",
- "entry",
- "link",
- "total",
- "timestamp",
- "type",
- "identifier",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entry",
+ "link",
+ "total",
+ "timestamp",
+ "type",
+ "identifier",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="resource.exists() or request.exists() or response.exists()",
human="must be a resource unless there's a request or response",
key="bdl-5",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="fullUrl.contains('/_history/').not()",
human="fullUrl cannot be a version specific reference",
key="bdl-8",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/capability_statement.py b/fhircraft/fhir/resources/datatypes/R4/core/capability_statement.py
index 75c62251..895a652f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/capability_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/capability_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -78,26 +78,21 @@ class CapabilityStatementSoftware(BackboneElement):
alias="_releaseDate",
)
- @field_validator(
- *(
- "releaseDate",
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "releaseDate",
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -133,26 +128,21 @@ class CapabilityStatementImplementation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "custodian",
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "custodian",
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -188,26 +178,21 @@ class CapabilityStatementRestSecurity(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "service",
- "cors",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "service",
+ "cors",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -239,23 +224,18 @@ class CapabilityStatementRestResourceInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,29 +285,24 @@ class CapabilityStatementRestResourceSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -368,26 +343,21 @@ class CapabilityStatementRestResourceOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -539,68 +509,63 @@ class CapabilityStatementRestResource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "operation",
- "searchParam",
- "searchRevInclude",
- "searchInclude",
- "referencePolicy",
- "conditionalDelete",
- "conditionalUpdate",
- "conditionalRead",
- "conditionalCreate",
- "updateCreate",
- "readHistory",
- "versioning",
- "interaction",
- "documentation",
- "supportedProfile",
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "searchParam",
+ "searchRevInclude",
+ "searchInclude",
+ "referencePolicy",
+ "conditionalDelete",
+ "conditionalUpdate",
+ "conditionalRead",
+ "conditionalCreate",
+ "updateCreate",
+ "readHistory",
+ "versioning",
+ "interaction",
+ "documentation",
+ "supportedProfile",
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -632,23 +597,18 @@ class CapabilityStatementRestInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -698,29 +658,24 @@ class CapabilityStatementRestSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -761,26 +716,21 @@ class CapabilityStatementRestOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -841,53 +791,47 @@ class CapabilityStatementRest(BackboneElement):
alias="_compartment",
)
- @field_validator(
- *(
- "compartment",
- "operation",
- "searchParam",
- "interaction",
- "resource",
- "security",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "compartment",
+ "operation",
+ "searchParam",
+ "interaction",
+ "resource",
+ "security",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("resource",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("resource",),
expression="searchParam.select(name).isDistinct()",
human="Search parameter names must be unique in the context of a resource.",
key="cpb-12",
@@ -914,23 +858,18 @@ class CapabilityStatementMessagingEndpoint(BackboneElement):
alias="_address",
)
- @field_validator(
- *(
- "address",
- "protocol",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "protocol",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -962,23 +901,18 @@ class CapabilityStatementMessagingSupportedMessage(BackboneElement):
alias="_definition",
)
- @field_validator(
- *(
- "definition",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1013,36 +947,31 @@ class CapabilityStatementMessaging(BackboneElement):
default=None,
alias="_documentation",
)
- supportedMessage: Optional[ListType[CapabilityStatementMessagingSupportedMessage]] = (
- Field(
- description="Messages supported by this system",
- default=None,
- )
+ supportedMessage: Optional[
+ ListType[CapabilityStatementMessagingSupportedMessage]
+ ] = Field(
+ description="Messages supported by this system",
+ default=None,
)
- @field_validator(
- *(
- "supportedMessage",
- "documentation",
- "reliableCache",
- "endpoint",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportedMessage",
+ "documentation",
+ "reliableCache",
+ "endpoint",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1083,26 +1012,21 @@ class CapabilityStatementDocument(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1363,75 +1287,69 @@ class CapabilityStatement(DomainResource):
default="CapabilityStatement",
)
- @field_validator(
- *(
- "document",
- "messaging",
- "rest",
- "implementationGuide",
- "patchFormat",
- "format",
- "fhirVersion",
- "implementation",
- "software",
- "imports",
- "instantiates",
- "kind",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "document",
+ "messaging",
+ "rest",
+ "implementationGuide",
+ "patchFormat",
+ "format",
+ "fhirVersion",
+ "implementation",
+ "software",
+ "imports",
+ "instantiates",
+ "kind",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("rest",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("rest",),
expression="resource.select(type).isDistinct()",
human="A given resource can only be described once per RESTful mode.",
key="cpb-9",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/care_plan.py b/fhircraft/fhir/resources/datatypes/R4/core/care_plan.py
index 5e3f289d..acc48bbc 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/care_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/care_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -179,62 +179,57 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "description",
- "quantity",
- "dailyAmount",
- "performer",
- "location",
- "doNotPerform",
- "statusReason",
- "status",
- "goal",
- "reasonReference",
- "reasonCode",
- "code",
- "instantiatesUri",
- "instantiatesCanonical",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "quantity",
+ "dailyAmount",
+ "performer",
+ "location",
+ "doNotPerform",
+ "statusReason",
+ "status",
+ "goal",
+ "reasonReference",
+ "reasonCode",
+ "code",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -286,32 +281,27 @@ class CarePlanActivity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "reference",
- "progress",
- "outcomeReference",
- "outcomeCodeableConcept",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "reference",
+ "progress",
+ "outcomeReference",
+ "outcomeCodeableConcept",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -505,72 +495,66 @@ class CarePlan(DomainResource):
default="CarePlan",
)
- @field_validator(
- *(
- "note",
- "activity",
- "goal",
- "supportingInfo",
- "addresses",
- "careTeam",
- "contributor",
- "author",
- "created",
- "period",
- "encounter",
- "subject",
- "description",
- "title",
- "category",
- "intent",
- "status",
- "partOf",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "activity",
+ "goal",
+ "supportingInfo",
+ "addresses",
+ "careTeam",
+ "contributor",
+ "author",
+ "created",
+ "period",
+ "encounter",
+ "subject",
+ "description",
+ "title",
+ "category",
+ "intent",
+ "status",
+ "partOf",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("activity",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpl_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpl_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("activity",),
expression="detail.empty() or reference.empty()",
human="Provide a reference or detail, not both",
key="cpl-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/care_team.py b/fhircraft/fhir/resources/datatypes/R4/core/care_team.py
index 0adb503f..d12ab1c3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/care_team.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/care_team.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,29 +58,24 @@ class CareTeamParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onBehalfOf",
- "member",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onBehalfOf",
+ "member",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -209,62 +204,56 @@ class CareTeam(DomainResource):
default="CareTeam",
)
- @field_validator(
- *(
- "note",
- "telecom",
- "managingOrganization",
- "reasonReference",
- "reasonCode",
- "participant",
- "period",
- "encounter",
- "subject",
- "name",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "telecom",
+ "managingOrganization",
+ "reasonReference",
+ "reasonCode",
+ "participant",
+ "period",
+ "encounter",
+ "subject",
+ "name",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ctm_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ctm_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))",
human="CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner",
key="ctm-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/catalog_entry.py b/fhircraft/fhir/resources/datatypes/R4/core/catalog_entry.py
index 170a29d4..6a94d033 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/catalog_entry.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/catalog_entry.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class CatalogEntryRelatedEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "relationtype",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "relationtype",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -214,50 +209,45 @@ class CatalogEntry(DomainResource):
default="CatalogEntry",
)
- @field_validator(
- *(
- "relatedEntry",
- "additionalClassification",
- "additionalCharacteristic",
- "lastUpdated",
- "validTo",
- "validityPeriod",
- "status",
- "classification",
- "additionalIdentifier",
- "referencedItem",
- "orderable",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedEntry",
+ "additionalClassification",
+ "additionalCharacteristic",
+ "lastUpdated",
+ "validTo",
+ "validityPeriod",
+ "status",
+ "classification",
+ "additionalIdentifier",
+ "referencedItem",
+ "orderable",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/charge_item.py b/fhircraft/fhir/resources/datatypes/R4/core/charge_item.py
index c36e0cf0..005146af 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/charge_item.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/charge_item.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class ChargeItemPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -307,61 +302,56 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "supportingInformation",
- "note",
- "account",
- "service",
- "reason",
- "enteredDate",
- "enterer",
- "overrideReason",
- "priceOverride",
- "factorOverride",
- "bodysite",
- "quantity",
- "costCenter",
- "requestingOrganization",
- "performingOrganization",
- "performer",
- "context",
- "subject",
- "code",
- "partOf",
- "status",
- "definitionCanonical",
- "definitionUri",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "note",
+ "account",
+ "service",
+ "reason",
+ "enteredDate",
+ "enterer",
+ "overrideReason",
+ "priceOverride",
+ "factorOverride",
+ "bodysite",
+ "quantity",
+ "costCenter",
+ "requestingOrganization",
+ "performingOrganization",
+ "performer",
+ "context",
+ "subject",
+ "code",
+ "partOf",
+ "status",
+ "definitionCanonical",
+ "definitionUri",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/charge_item_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/charge_item_definition.py
index 10de77bf..486b3f6a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/charge_item_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/charge_item_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,26 +80,21 @@ class ChargeItemDefinitionApplicability(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "language",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "language",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,26 +135,21 @@ class ChargeItemDefinitionPropertyGroupApplicability(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "language",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "language",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -199,29 +189,24 @@ class ChargeItemDefinitionPropertyGroupPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -234,36 +219,31 @@ class ChargeItemDefinitionPropertyGroup(BackboneElement):
Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.
"""
- applicability: Optional[ListType[ChargeItemDefinitionPropertyGroupApplicability]] = (
- Field(
- description="Conditions under which the priceComponent is applicable",
- default=None,
- )
+ applicability: Optional[
+ ListType[ChargeItemDefinitionPropertyGroupApplicability]
+ ] = Field(
+ description="Conditions under which the priceComponent is applicable",
+ default=None,
)
- priceComponent: Optional[ListType[ChargeItemDefinitionPropertyGroupPriceComponent]] = (
- Field(
- description="Components of total line item price",
- default=None,
- )
+ priceComponent: Optional[
+ ListType[ChargeItemDefinitionPropertyGroupPriceComponent]
+ ] = Field(
+ description="Components of total line item price",
+ default=None,
)
- @field_validator(
- *(
- "priceComponent",
- "applicability",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "applicability",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -492,60 +472,55 @@ class ChargeItemDefinition(DomainResource):
default="ChargeItemDefinition",
)
- @field_validator(
- *(
- "propertyGroup",
- "applicability",
- "instance",
- "code",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "partOf",
- "derivedFromUri",
- "title",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "propertyGroup",
+ "applicability",
+ "instance",
+ "code",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "partOf",
+ "derivedFromUri",
+ "title",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/claim.py b/fhircraft/fhir/resources/datatypes/R4/core/claim.py
index 69a43cff..0a0b1426 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/claim.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/claim.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class ClaimRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class ClaimPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -166,32 +156,27 @@ class ClaimCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualification",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualification",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -283,29 +268,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -373,29 +353,24 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "packageCode",
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageCode",
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -459,29 +434,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -552,38 +522,33 @@ class ClaimInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "preAuthRef",
- "businessArrangement",
- "coverage",
- "identifier",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "preAuthRef",
+ "businessArrangement",
+ "coverage",
+ "identifier",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -625,23 +590,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -718,50 +678,45 @@ class ClaimItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -833,53 +788,48 @@ class ClaimItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1038,74 +988,69 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "encounter",
- "subSite",
- "bodySite",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "encounter",
+ "subSite",
+ "bodySite",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1313,64 +1258,59 @@ class Claim(DomainResource):
default="Claim",
)
- @field_validator(
- *(
- "total",
- "item",
- "accident",
- "insurance",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "facility",
- "referral",
- "payee",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "total",
+ "item",
+ "accident",
+ "insurance",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "facility",
+ "referral",
+ "payee",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/claim_response.py b/fhircraft/fhir/resources/datatypes/R4/core/claim_response.py
index 35edae37..0611a439 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/claim_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/claim_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,29 +74,24 @@ class ClaimResponseItemAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -131,29 +126,24 @@ class ClaimResponseItemDetailAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -189,26 +179,21 @@ class ClaimResponseItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "subDetailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "subDetailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -248,29 +233,24 @@ class ClaimResponseItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "detailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "detailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -310,29 +290,24 @@ class ClaimResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -388,41 +363,36 @@ class ClaimResponseAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -482,44 +452,39 @@ class ClaimResponseAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -661,65 +626,60 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "subSite",
- "bodySite",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "provider",
- "subdetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "subSite",
+ "bodySite",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "provider",
+ "subdetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -759,23 +719,18 @@ class ClaimResponseTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -818,35 +773,30 @@ class ClaimResponsePayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -891,29 +841,24 @@ class ClaimResponseProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -962,32 +907,27 @@ class ClaimResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "businessArrangement",
- "coverage",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1032,29 +972,24 @@ class ClaimResponseError(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1259,64 +1194,59 @@ class ClaimResponse(DomainResource):
default="ClaimResponse",
)
- @field_validator(
- *(
- "error",
- "insurance",
- "communicationRequest",
- "processNote",
- "form",
- "formCode",
- "fundsReserve",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "payeeType",
- "preAuthPeriod",
- "preAuthRef",
- "disposition",
- "outcome",
- "request",
- "requestor",
- "insurer",
- "created",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "insurance",
+ "communicationRequest",
+ "processNote",
+ "form",
+ "formCode",
+ "fundsReserve",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "payeeType",
+ "preAuthPeriod",
+ "preAuthRef",
+ "disposition",
+ "outcome",
+ "request",
+ "requestor",
+ "insurer",
+ "created",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/clinical_impression.py b/fhircraft/fhir/resources/datatypes/R4/core/clinical_impression.py
index 691ea310..a0b28fdc 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/clinical_impression.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/clinical_impression.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -49,23 +49,18 @@ class ClinicalImpressionInvestigation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,26 +91,21 @@ class ClinicalImpressionFinding(BackboneElement):
alias="_basis",
)
- @field_validator(
- *(
- "basis",
- "itemReference",
- "itemCodeableConcept",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "basis",
+ "itemReference",
+ "itemCodeableConcept",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,56 +293,51 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "note",
- "supportingInfo",
- "prognosisReference",
- "prognosisCodeableConcept",
- "finding",
- "summary",
- "protocol",
- "investigation",
- "problem",
- "previous",
- "assessor",
- "date",
- "encounter",
- "subject",
- "description",
- "code",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "supportingInfo",
+ "prognosisReference",
+ "prognosisCodeableConcept",
+ "finding",
+ "summary",
+ "protocol",
+ "investigation",
+ "problem",
+ "previous",
+ "assessor",
+ "date",
+ "encounter",
+ "subject",
+ "description",
+ "code",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/code_system.py b/fhircraft/fhir/resources/datatypes/R4/core/code_system.py
index dc59e121..d1aef956 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/code_system.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/code_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,29 +88,24 @@ class CodeSystemFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "operator",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "operator",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -160,29 +155,24 @@ class CodeSystemProperty(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "description",
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "description",
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -218,26 +208,21 @@ class CodeSystemConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,14 +310,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -394,35 +380,30 @@ class CodeSystemConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "concept",
- "property_",
- "designation",
- "definition",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "designation",
+ "definition",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -688,63 +669,58 @@ class CodeSystem(DomainResource):
default="CodeSystem",
)
- @field_validator(
- *(
- "concept",
- "property_",
- "filter",
- "count",
- "supplements",
- "content",
- "versionNeeded",
- "compositional",
- "hierarchyMeaning",
- "valueSet",
- "caseSensitive",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "filter",
+ "count",
+ "supplements",
+ "content",
+ "versionNeeded",
+ "compositional",
+ "hierarchyMeaning",
+ "valueSet",
+ "caseSensitive",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/communication.py b/fhircraft/fhir/resources/datatypes/R4/core/communication.py
index 270eab74..e7c548ec 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/communication.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/communication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -262,60 +262,55 @@ class Communication(DomainResource):
default="Communication",
)
- @field_validator(
- *(
- "note",
- "payload",
- "reasonReference",
- "reasonCode",
- "sender",
- "recipient",
- "received",
- "sent",
- "encounter",
- "about",
- "topic",
- "subject",
- "medium",
- "priority",
- "category",
- "statusReason",
- "status",
- "inResponseTo",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "payload",
+ "reasonReference",
+ "reasonCode",
+ "sender",
+ "recipient",
+ "received",
+ "sent",
+ "encounter",
+ "about",
+ "topic",
+ "subject",
+ "medium",
+ "priority",
+ "category",
+ "statusReason",
+ "status",
+ "inResponseTo",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/communication_request.py b/fhircraft/fhir/resources/datatypes/R4/core/communication_request.py
index c365bf91..1f473c86 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/communication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/communication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -265,58 +265,53 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "reasonReference",
- "reasonCode",
- "sender",
- "recipient",
- "requester",
- "authoredOn",
- "payload",
- "encounter",
- "about",
- "subject",
- "medium",
- "doNotPerform",
- "priority",
- "category",
- "statusReason",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "sender",
+ "recipient",
+ "requester",
+ "authoredOn",
+ "payload",
+ "encounter",
+ "about",
+ "subject",
+ "medium",
+ "doNotPerform",
+ "priority",
+ "category",
+ "statusReason",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/compartment_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/compartment_definition.py
index 3c8d711e..fc0e109e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/compartment_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/compartment_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class CompartmentDefinitionResource(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "param",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "param",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -269,51 +264,46 @@ class CompartmentDefinition(DomainResource):
default="CompartmentDefinition",
)
- @field_validator(
- *(
- "resource",
- "search",
- "code",
- "purpose",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "search",
+ "code",
+ "purpose",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/composition.py b/fhircraft/fhir/resources/datatypes/R4/core/composition.py
index a5fdf031..544c6477 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/composition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/composition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,26 +62,21 @@ class CompositionAttester(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "time",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "time",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -119,14 +114,15 @@ def target(self):
base="target",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,26 +157,21 @@ class CompositionEvent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "period",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "period",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -244,47 +235,42 @@ class CompositionSection(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "section",
- "emptyReason",
- "entry",
- "orderedBy",
- "mode",
- "text",
- "focus",
- "author",
- "code",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "emptyReason",
+ "entry",
+ "orderedBy",
+ "mode",
+ "text",
+ "focus",
+ "author",
+ "code",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -431,76 +417,69 @@ class Composition(DomainResource):
default="Composition",
)
- @field_validator(
- *(
- "section",
- "event",
- "relatesTo",
- "custodian",
- "attester",
- "confidentiality",
- "title",
- "author",
- "date",
- "encounter",
- "subject",
- "category",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "event",
+ "relatesTo",
+ "custodian",
+ "attester",
+ "confidentiality",
+ "title",
+ "author",
+ "date",
+ "encounter",
+ "subject",
+ "category",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="text.exists() or entry.exists() or section.exists()",
human="A section must contain at least one of text, entries, or sub-sections",
key="cmp-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="emptyReason.empty() or entry.empty()",
human="A section can only have an emptyReason if it is empty",
key="cmp-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/concept_map.py b/fhircraft/fhir/resources/datatypes/R4/core/concept_map.py
index 6395f948..e64e484e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/concept_map.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/concept_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,29 +84,24 @@ class ConceptMapGroupElementTargetDependsOn(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "value",
- "system",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "value",
+ "system",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,29 +151,24 @@ class ConceptMapGroupElementTargetProduct(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "value",
- "system",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "value",
+ "system",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,35 +226,30 @@ class ConceptMapGroupElementTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "product",
- "dependsOn",
- "comment",
- "equivalence",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "product",
+ "dependsOn",
+ "comment",
+ "equivalence",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -300,38 +285,32 @@ class ConceptMapGroupElement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="comment.exists() or equivalence.empty() or ((equivalence != 'narrower') and (equivalence != 'inexact'))",
human="If the map is narrower or inexact, there SHALL be some comments",
key="cmd-1",
@@ -381,29 +360,24 @@ class ConceptMapGroupUnmapped(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "display",
- "code",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "display",
+ "code",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -461,59 +435,52 @@ class ConceptMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "unmapped",
- "element",
- "targetVersion",
- "target",
- "sourceVersion",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "unmapped",
+ "element",
+ "targetVersion",
+ "target",
+ "sourceVersion",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'fixed') implies code.exists()",
human="If the mode is 'fixed', a code must be provided",
key="cmd-2",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'other-map') implies url.exists()",
human="If the mode is 'other-map', a url must be provided",
key="cmd-3",
@@ -749,53 +716,48 @@ def target(self):
base="target",
)
- @field_validator(
- *(
- "group",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/condition.py b/fhircraft/fhir/resources/datatypes/R4/core/condition.py
index 7247ce33..dbeeb487 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/condition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/condition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,26 +55,21 @@ class ConditionStage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "assessment",
- "summary",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "assessment",
+ "summary",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class ConditionEvidence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,76 +308,69 @@ def abatement(self):
base="abatement",
)
- @field_validator(
- *(
- "note",
- "evidence",
- "stage",
- "asserter",
- "recorder",
- "recordedDate",
- "encounter",
- "subject",
- "bodySite",
- "code",
- "severity",
- "category",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "evidence",
+ "stage",
+ "asserter",
+ "recorder",
+ "recordedDate",
+ "encounter",
+ "subject",
+ "bodySite",
+ "code",
+ "severity",
+ "category",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("stage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_con_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_con_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("stage",),
expression="summary.exists() or assessment.exists()",
human="Stage SHALL have summary or assessment",
key="con-1",
severity="error",
)
- @field_validator(*("evidence",), mode="after", check_fields=None)
- @classmethod
- def FHIR_con_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_con_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("evidence",),
expression="code.exists() or detail.exists()",
human="evidence SHALL have code or details",
key="con-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/consent.py b/fhircraft/fhir/resources/datatypes/R4/core/consent.py
index ed2522e2..e5282e57 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/consent.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/consent.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class ConsentPolicy(BackboneElement):
alias="_uri",
)
- @field_validator(
- *(
- "uri",
- "authority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uri",
+ "authority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -118,26 +113,21 @@ class ConsentVerification(BackboneElement):
alias="_verificationDate",
)
- @field_validator(
- *(
- "verificationDate",
- "verifiedWith",
- "verified",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "verificationDate",
+ "verifiedWith",
+ "verified",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,23 +149,18 @@ class ConsentProvisionActor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,23 +187,18 @@ class ConsentProvisionData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "meaning",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "meaning",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,50 +261,45 @@ class ConsentProvision(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "provision",
- "data",
- "dataPeriod",
- "code",
- "class_",
- "purpose",
- "securityLabel",
- "action",
- "actor",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "data",
+ "dataPeriod",
+ "code",
+ "class_",
+ "purpose",
+ "securityLabel",
+ "action",
+ "actor",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -464,49 +439,44 @@ def source(self):
base="source",
)
- @field_validator(
- *(
- "provision",
- "verification",
- "policyRule",
- "policy",
- "organization",
- "performer",
- "dateTime",
- "patient",
- "category",
- "scope",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "verification",
+ "policyRule",
+ "policy",
+ "organization",
+ "performer",
+ "dateTime",
+ "patient",
+ "category",
+ "scope",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/contract.py b/fhircraft/fhir/resources/datatypes/R4/core/contract.py
index 47684afe..d4ab0515 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/contract.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/contract.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,35 +98,30 @@ class ContractContentDefinition(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "publicationStatus",
- "publicationDate",
- "publisher",
- "subType",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "publicationStatus",
+ "publicationDate",
+ "publisher",
+ "subType",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,29 +156,24 @@ class ContractTermSecurityLabel(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "control",
- "category",
- "classification",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "control",
+ "category",
+ "classification",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,23 +195,18 @@ class ContractTermOfferParty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -414,47 +399,42 @@ class ContractTermOffer(BackboneElement):
alias="_securityLabelNumber",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "text",
- "answer",
- "decisionMode",
- "decision",
- "type",
- "topic",
- "party",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "text",
+ "answer",
+ "decisionMode",
+ "decision",
+ "type",
+ "topic",
+ "party",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -485,26 +465,21 @@ class ContractTermAssetContext(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "code",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "code",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -744,56 +719,51 @@ def entity(self):
base="entity",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "recipient",
- "responsible",
- "paymentDate",
- "payment",
- "net",
- "points",
- "factor",
- "unitPrice",
- "quantity",
- "effectiveTime",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "recipient",
+ "responsible",
+ "paymentDate",
+ "payment",
+ "net",
+ "points",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "effectiveTime",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -896,62 +866,57 @@ class ContractTermAsset(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valuedItem",
- "securityLabelNumber",
- "answer",
- "linkId",
- "text",
- "usePeriod",
- "period",
- "periodType",
- "condition",
- "context",
- "relationship",
- "subtype",
- "typeReference",
- "type",
- "scope",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valuedItem",
+ "securityLabelNumber",
+ "answer",
+ "linkId",
+ "text",
+ "usePeriod",
+ "period",
+ "periodType",
+ "condition",
+ "context",
+ "relationship",
+ "subtype",
+ "typeReference",
+ "type",
+ "scope",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -973,23 +938,18 @@ class ContractTermActionSubject(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1147,77 +1107,72 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "note",
- "reasonLinkId",
- "reason",
- "reasonReference",
- "reasonCode",
- "performerLinkId",
- "performer",
- "performerRole",
- "performerType",
- "requesterLinkId",
- "requester",
- "contextLinkId",
- "context",
- "status",
- "linkId",
- "intent",
- "subject",
- "type",
- "doNotPerform",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "note",
+ "reasonLinkId",
+ "reason",
+ "reasonReference",
+ "reasonCode",
+ "performerLinkId",
+ "performer",
+ "performerRole",
+ "performerType",
+ "requesterLinkId",
+ "requester",
+ "contextLinkId",
+ "context",
+ "status",
+ "linkId",
+ "intent",
+ "subject",
+ "type",
+ "doNotPerform",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1309,50 +1264,45 @@ def topic(self):
base="topic",
)
- @field_validator(
- *(
- "group",
- "action",
- "asset",
- "offer",
- "securityLabel",
- "text",
- "subType",
- "type",
- "applies",
- "issued",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "action",
+ "asset",
+ "offer",
+ "securityLabel",
+ "text",
+ "subType",
+ "type",
+ "applies",
+ "issued",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1387,26 +1337,21 @@ class ContractSigner(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "signature",
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1765,68 +1710,63 @@ def legallyBinding(self):
base="legallyBinding",
)
- @field_validator(
- *(
- "rule",
- "legal",
- "friendly",
- "signer",
- "relevantHistory",
- "supportingInfo",
- "term",
- "contentDefinition",
- "subType",
- "type",
- "scope",
- "author",
- "alias",
- "subtitle",
- "title",
- "name",
- "site",
- "domain",
- "authority",
- "subject",
- "expirationType",
- "applies",
- "issued",
- "contentDerivative",
- "instantiatesUri",
- "instantiatesCanonical",
- "legalState",
- "status",
- "version",
- "url",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "legal",
+ "friendly",
+ "signer",
+ "relevantHistory",
+ "supportingInfo",
+ "term",
+ "contentDefinition",
+ "subType",
+ "type",
+ "scope",
+ "author",
+ "alias",
+ "subtitle",
+ "title",
+ "name",
+ "site",
+ "domain",
+ "authority",
+ "subject",
+ "expirationType",
+ "applies",
+ "issued",
+ "contentDerivative",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "legalState",
+ "status",
+ "version",
+ "url",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/coverage.py b/fhircraft/fhir/resources/datatypes/R4/core/coverage.py
index 42051732..8e5ddd52 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/coverage.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/coverage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,26 +70,21 @@ class CoverageClass(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class CoverageCostToBeneficiaryException(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,23 +154,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "exception",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exception",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -354,54 +339,49 @@ class Coverage(DomainResource):
default="Coverage",
)
- @field_validator(
- *(
- "contract",
- "subrogation",
- "costToBeneficiary",
- "network",
- "order",
- "class_",
- "payor",
- "period",
- "relationship",
- "dependent",
- "beneficiary",
- "subscriberId",
- "subscriber",
- "policyHolder",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contract",
+ "subrogation",
+ "costToBeneficiary",
+ "network",
+ "order",
+ "class_",
+ "payor",
+ "period",
+ "relationship",
+ "dependent",
+ "beneficiary",
+ "subscriberId",
+ "subscriber",
+ "policyHolder",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_request.py b/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_request.py
index c7889857..82912eed 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class CoverageEligibilityRequestSupportingInfo(BackboneElement):
alias="_appliesToAll",
)
- @field_validator(
- *(
- "appliesToAll",
- "information",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "appliesToAll",
+ "information",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -127,26 +122,21 @@ class CoverageEligibilityRequestInsurance(BackboneElement):
alias="_businessArrangement",
)
- @field_validator(
- *(
- "businessArrangement",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,47 +226,42 @@ class CoverageEligibilityRequestItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "diagnosis",
- "facility",
- "unitPrice",
- "quantity",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "supportingInfoSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "diagnosis",
+ "facility",
+ "unitPrice",
+ "quantity",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "supportingInfoSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -408,9 +393,11 @@ class CoverageEligibilityRequest(DomainResource):
description="Servicing facility",
default=None,
)
- supportingInfo: Optional[ListType[CoverageEligibilityRequestSupportingInfo]] = Field(
- description="Supporting information",
- default=None,
+ supportingInfo: Optional[ListType[CoverageEligibilityRequestSupportingInfo]] = (
+ Field(
+ description="Supporting information",
+ default=None,
+ )
)
insurance: Optional[ListType[CoverageEligibilityRequestInsurance]] = Field(
description="Patient insurance information",
@@ -432,50 +419,45 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "item",
- "insurance",
- "supportingInfo",
- "facility",
- "insurer",
- "provider",
- "enterer",
- "created",
- "patient",
- "purpose",
- "priority",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "insurance",
+ "supportingInfo",
+ "facility",
+ "insurer",
+ "provider",
+ "enterer",
+ "created",
+ "patient",
+ "purpose",
+ "priority",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_response.py b/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_response.py
index dbafff1b..a256d6e2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/coverage_eligibility_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -111,14 +111,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,9 +205,11 @@ class CoverageEligibilityResponseInsuranceItem(BackboneElement):
description="Annual or lifetime",
default=None,
)
- benefit: Optional[ListType[CoverageEligibilityResponseInsuranceItemBenefit]] = Field(
- description="Benefit Summary",
- default=None,
+ benefit: Optional[ListType[CoverageEligibilityResponseInsuranceItemBenefit]] = (
+ Field(
+ description="Benefit Summary",
+ default=None,
+ )
)
authorizationRequired: Optional[Boolean] = Field(
description="Authorization required flag",
@@ -231,59 +234,54 @@ class CoverageEligibilityResponseInsuranceItem(BackboneElement):
alias="_authorizationUrl",
)
- @field_validator(
- *(
- "authorizationUrl",
- "authorizationSupporting",
- "authorizationRequired",
- "benefit",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorizationUrl",
+ "authorizationSupporting",
+ "authorizationRequired",
+ "benefit",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,41 +316,35 @@ class CoverageEligibilityResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "benefitPeriod",
- "inforce",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "benefitPeriod",
+ "inforce",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ces_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ces_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="category.exists() xor productOrService.exists()",
human="SHALL contain a category or a billcode but not both.",
key="ces-1",
@@ -370,14 +362,15 @@ class CoverageEligibilityResponseError(BackboneElement):
default=None,
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -552,51 +545,46 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "error",
- "form",
- "preAuthRef",
- "insurance",
- "insurer",
- "disposition",
- "outcome",
- "request",
- "requestor",
- "created",
- "patient",
- "purpose",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "form",
+ "preAuthRef",
+ "insurance",
+ "insurer",
+ "disposition",
+ "outcome",
+ "request",
+ "requestor",
+ "created",
+ "patient",
+ "purpose",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/detected_issue.py b/fhircraft/fhir/resources/datatypes/R4/core/detected_issue.py
index 877aee7f..4c8f8abe 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/detected_issue.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/detected_issue.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -48,23 +48,18 @@ class DetectedIssueEvidence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -95,26 +90,21 @@ class DetectedIssueMitigation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "author",
- "date",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "date",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -265,48 +255,43 @@ def identified(self):
base="identified",
)
- @field_validator(
- *(
- "mitigation",
- "reference",
- "detail",
- "evidence",
- "implicated",
- "author",
- "patient",
- "severity",
- "code",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mitigation",
+ "reference",
+ "detail",
+ "evidence",
+ "implicated",
+ "author",
+ "patient",
+ "severity",
+ "code",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/device.py b/fhircraft/fhir/resources/datatypes/R4/core/device.py
index 51ebd94c..f82877b9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/device.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/device.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -102,35 +102,30 @@ class DeviceUdiCarrier(BackboneElement):
alias="_entryType",
)
- @field_validator(
- *(
- "entryType",
- "carrierHRF",
- "carrierAIDC",
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entryType",
+ "carrierHRF",
+ "carrierAIDC",
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,23 +157,18 @@ class DeviceDeviceName(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,23 +195,18 @@ class DeviceSpecialization(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "systemType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "systemType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -252,26 +237,21 @@ class DeviceVersion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "component",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "component",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -297,26 +277,21 @@ class DeviceProperty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueCode",
- "valueQuantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueCode",
+ "valueQuantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -537,63 +512,58 @@ class Device(DomainResource):
default="Device",
)
- @field_validator(
- *(
- "parent",
- "safety",
- "note",
- "url",
- "location",
- "contact",
- "owner",
- "patient",
- "property_",
- "version",
- "specialization",
- "type",
- "partNumber",
- "modelNumber",
- "deviceName",
- "serialNumber",
- "lotNumber",
- "expirationDate",
- "manufactureDate",
- "manufacturer",
- "distinctIdentifier",
- "statusReason",
- "status",
- "udiCarrier",
- "definition",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parent",
+ "safety",
+ "note",
+ "url",
+ "location",
+ "contact",
+ "owner",
+ "patient",
+ "property_",
+ "version",
+ "specialization",
+ "type",
+ "partNumber",
+ "modelNumber",
+ "deviceName",
+ "serialNumber",
+ "lotNumber",
+ "expirationDate",
+ "manufactureDate",
+ "manufacturer",
+ "distinctIdentifier",
+ "statusReason",
+ "status",
+ "udiCarrier",
+ "definition",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/device_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/device_definition.py
index f32af510..4ba210bc 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/device_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/device_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -71,26 +71,21 @@ class DeviceDefinitionUdiDeviceIdentifier(BackboneElement):
alias="_jurisdiction",
)
- @field_validator(
- *(
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -122,23 +117,18 @@ class DeviceDefinitionDeviceName(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -170,23 +160,18 @@ class DeviceDefinitionSpecialization(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "systemType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "systemType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,23 +193,18 @@ class DeviceDefinitionCapability(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "description",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -250,26 +230,21 @@ class DeviceDefinitionProperty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueCode",
- "valueQuantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueCode",
+ "valueQuantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,26 +280,21 @@ class DeviceDefinitionMaterial(BackboneElement):
alias="_allergenicIndicator",
)
- @field_validator(
- *(
- "allergenicIndicator",
- "alternate",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allergenicIndicator",
+ "alternate",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,9 +360,11 @@ class DeviceDefinition(DomainResource):
description="Instance identifier",
default=None,
)
- udiDeviceIdentifier: Optional[ListType[DeviceDefinitionUdiDeviceIdentifier]] = Field(
- description="Unique Device Identifier (UDI) Barcode string",
- default=None,
+ udiDeviceIdentifier: Optional[ListType[DeviceDefinitionUdiDeviceIdentifier]] = (
+ Field(
+ description="Unique Device Identifier (UDI) Barcode string",
+ default=None,
+ )
)
manufacturerString: Optional[String] = Field(
description="Name of device manufacturer",
@@ -515,58 +487,53 @@ def manufacturer(self):
base="manufacturer",
)
- @field_validator(
- *(
- "material",
- "parentDevice",
- "quantity",
- "note",
- "onlineInformation",
- "url",
- "contact",
- "owner",
- "property_",
- "capability",
- "languageCode",
- "physicalCharacteristics",
- "shelfLifeStorage",
- "safety",
- "version",
- "specialization",
- "type",
- "modelNumber",
- "deviceName",
- "udiDeviceIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "material",
+ "parentDevice",
+ "quantity",
+ "note",
+ "onlineInformation",
+ "url",
+ "contact",
+ "owner",
+ "property_",
+ "capability",
+ "languageCode",
+ "physicalCharacteristics",
+ "shelfLifeStorage",
+ "safety",
+ "version",
+ "specialization",
+ "type",
+ "modelNumber",
+ "deviceName",
+ "udiDeviceIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/device_metric.py b/fhircraft/fhir/resources/datatypes/R4/core/device_metric.py
index e6ec5643..a8bed71f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/device_metric.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/device_metric.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class DeviceMetricCalibration(BackboneElement):
alias="_time",
)
- @field_validator(
- *(
- "time",
- "state",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "time",
+ "state",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,47 +203,42 @@ class DeviceMetric(DomainResource):
default="DeviceMetric",
)
- @field_validator(
- *(
- "calibration",
- "measurementPeriod",
- "category",
- "color",
- "operationalStatus",
- "parent",
- "source",
- "unit",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "calibration",
+ "measurementPeriod",
+ "category",
+ "color",
+ "operationalStatus",
+ "parent",
+ "source",
+ "unit",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/device_request.py b/fhircraft/fhir/resources/datatypes/R4/core/device_request.py
index 009c2b33..230359db 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/device_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/device_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,14 +83,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -323,59 +324,54 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "relevantHistory",
- "note",
- "supportingInfo",
- "insurance",
- "reasonReference",
- "reasonCode",
- "performer",
- "performerType",
- "requester",
- "authoredOn",
- "encounter",
- "subject",
- "parameter",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "priorRequest",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "note",
+ "supportingInfo",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "performerType",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "parameter",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "priorRequest",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/device_use_statement.py b/fhircraft/fhir/resources/datatypes/R4/core/device_use_statement.py
index 81eeefa9..4559da66 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/device_use_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/device_use_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -176,49 +176,44 @@ def timing(self):
base="timing",
)
- @field_validator(
- *(
- "note",
- "bodySite",
- "reasonReference",
- "reasonCode",
- "device",
- "source",
- "recordedOn",
- "derivedFrom",
- "subject",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "bodySite",
+ "reasonReference",
+ "reasonCode",
+ "device",
+ "source",
+ "recordedOn",
+ "derivedFrom",
+ "subject",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/diagnostic_report.py b/fhircraft/fhir/resources/datatypes/R4/core/diagnostic_report.py
index 57c22090..62228f2e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/diagnostic_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/diagnostic_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,23 +60,18 @@ class DiagnosticReportMedia(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "link",
- "comment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "comment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,54 +241,49 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "presentedForm",
- "conclusionCode",
- "conclusion",
- "media",
- "imagingStudy",
- "result",
- "specimen",
- "resultsInterpreter",
- "performer",
- "issued",
- "encounter",
- "subject",
- "code",
- "category",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "presentedForm",
+ "conclusionCode",
+ "conclusion",
+ "media",
+ "imagingStudy",
+ "result",
+ "specimen",
+ "resultsInterpreter",
+ "performer",
+ "issued",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/document_manifest.py b/fhircraft/fhir/resources/datatypes/R4/core/document_manifest.py
index 1f7955a7..751fc92d 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/document_manifest.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/document_manifest.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -47,23 +47,18 @@ class DocumentManifestRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "ref",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ref",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -198,49 +193,44 @@ class DocumentManifest(DomainResource):
default="DocumentManifest",
)
- @field_validator(
- *(
- "related",
- "content",
- "description",
- "source",
- "recipient",
- "author",
- "created",
- "subject",
- "type",
- "status",
- "identifier",
- "masterIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "related",
+ "content",
+ "description",
+ "source",
+ "recipient",
+ "author",
+ "created",
+ "subject",
+ "type",
+ "status",
+ "identifier",
+ "masterIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/document_reference.py b/fhircraft/fhir/resources/datatypes/R4/core/document_reference.py
index 68088029..d14319c4 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/document_reference.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/document_reference.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class DocumentReferenceRelatesTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -93,23 +88,18 @@ class DocumentReferenceContent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "format",
- "attachment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "format",
+ "attachment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,38 +141,33 @@ class DocumentReferenceContext(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "related",
- "sourcePatientInfo",
- "practiceSetting",
- "facilityType",
- "period",
- "event",
- "encounter",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "related",
+ "sourcePatientInfo",
+ "practiceSetting",
+ "facilityType",
+ "period",
+ "event",
+ "encounter",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -333,53 +318,48 @@ class DocumentReference(DomainResource):
default="DocumentReference",
)
- @field_validator(
- *(
- "context",
- "content",
- "securityLabel",
- "description",
- "relatesTo",
- "custodian",
- "authenticator",
- "author",
- "date",
- "subject",
- "category",
- "type",
- "docStatus",
- "status",
- "identifier",
- "masterIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "context",
+ "content",
+ "securityLabel",
+ "description",
+ "relatesTo",
+ "custodian",
+ "authenticator",
+ "author",
+ "date",
+ "subject",
+ "category",
+ "type",
+ "docStatus",
+ "status",
+ "identifier",
+ "masterIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/domain_resource.py b/fhircraft/fhir/resources/datatypes/R4/core/domain_resource.py
index 5014abc1..ad23788f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/domain_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,37 +87,32 @@ class DomainResource(Resource):
default="DomainResource",
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/effect_evidence_synthesis.py b/fhircraft/fhir/resources/datatypes/R4/core/effect_evidence_synthesis.py
index b5de903b..7f9c085a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/effect_evidence_synthesis.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/effect_evidence_synthesis.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,26 +80,21 @@ class EffectEvidenceSynthesisSampleSize(BackboneElement):
alias="_numberOfParticipants",
)
- @field_validator(
- *(
- "numberOfParticipants",
- "numberOfStudies",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "numberOfParticipants",
+ "numberOfStudies",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -139,29 +134,24 @@ class EffectEvidenceSynthesisResultsByExposure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "riskEvidenceSynthesis",
- "variantState",
- "exposureState",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "riskEvidenceSynthesis",
+ "variantState",
+ "exposureState",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,29 +196,24 @@ class EffectEvidenceSynthesisEffectEstimatePrecisionEstimate(BackboneElement):
alias="_to",
)
- @field_validator(
- *(
- "to",
- "from_",
- "level",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "to",
+ "from_",
+ "level",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -278,35 +263,30 @@ class EffectEvidenceSynthesisEffectEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "precisionEstimate",
- "unitOfMeasure",
- "value",
- "variantState",
- "type",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "precisionEstimate",
+ "unitOfMeasure",
+ "value",
+ "variantState",
+ "type",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,26 +312,21 @@ class EffectEvidenceSynthesisCertaintyCertaintySubcomponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "rating",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "rating",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -379,26 +354,21 @@ class EffectEvidenceSynthesisCertainty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "certaintySubcomponent",
- "note",
- "rating",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certaintySubcomponent",
+ "note",
+ "rating",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -635,9 +605,11 @@ class EffectEvidenceSynthesis(DomainResource):
description="What sample size was involved?",
default=None,
)
- resultsByExposure: Optional[ListType[EffectEvidenceSynthesisResultsByExposure]] = Field(
- description="What was the result per exposure?",
- default=None,
+ resultsByExposure: Optional[ListType[EffectEvidenceSynthesisResultsByExposure]] = (
+ Field(
+ description="What was the result per exposure?",
+ default=None,
+ )
)
effectEstimate: Optional[ListType[EffectEvidenceSynthesisEffectEstimate]] = Field(
description="What was the estimated effect",
@@ -652,70 +624,65 @@ class EffectEvidenceSynthesis(DomainResource):
default="EffectEvidenceSynthesis",
)
- @field_validator(
- *(
- "certainty",
- "effectEstimate",
- "resultsByExposure",
- "sampleSize",
- "outcome",
- "exposureAlternative",
- "exposure",
- "population",
- "studyType",
- "synthesisType",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "note",
- "description",
- "contact",
- "publisher",
- "date",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certainty",
+ "effectEstimate",
+ "resultsByExposure",
+ "sampleSize",
+ "outcome",
+ "exposureAlternative",
+ "exposure",
+ "population",
+ "studyType",
+ "synthesisType",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "note",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/encounter.py b/fhircraft/fhir/resources/datatypes/R4/core/encounter.py
index 84da944c..271b1ff5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/encounter.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/encounter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class EncounterStatusHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -93,23 +88,18 @@ class EncounterClassHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "class_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "class_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -135,26 +125,21 @@ class EncounterParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "individual",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "individual",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -185,26 +170,21 @@ class EncounterDiagnosis(BackboneElement):
alias="_rank",
)
- @field_validator(
- *(
- "rank",
- "use",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rank",
+ "use",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -254,44 +234,39 @@ class EncounterHospitalization(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dischargeDisposition",
- "destination",
- "specialArrangement",
- "specialCourtesy",
- "dietPreference",
- "reAdmission",
- "admitSource",
- "origin",
- "preAdmissionIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dischargeDisposition",
+ "destination",
+ "specialArrangement",
+ "specialCourtesy",
+ "dietPreference",
+ "reAdmission",
+ "admitSource",
+ "origin",
+ "preAdmissionIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -326,29 +301,24 @@ class EncounterLocation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "physicalType",
- "status",
- "location",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "physicalType",
+ "status",
+ "location",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -512,60 +482,55 @@ class Encounter(DomainResource):
default="Encounter",
)
- @field_validator(
- *(
- "partOf",
- "serviceProvider",
- "location",
- "hospitalization",
- "account",
- "diagnosis",
- "reasonReference",
- "reasonCode",
- "length",
- "period",
- "appointment",
- "participant",
- "basedOn",
- "episodeOfCare",
- "subject",
- "priority",
- "serviceType",
- "type",
- "classHistory",
- "class_",
- "statusHistory",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partOf",
+ "serviceProvider",
+ "location",
+ "hospitalization",
+ "account",
+ "diagnosis",
+ "reasonReference",
+ "reasonCode",
+ "length",
+ "period",
+ "appointment",
+ "participant",
+ "basedOn",
+ "episodeOfCare",
+ "subject",
+ "priority",
+ "serviceType",
+ "type",
+ "classHistory",
+ "class_",
+ "statusHistory",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/endpoint.py b/fhircraft/fhir/resources/datatypes/R4/core/endpoint.py
index 1347861b..53d95311 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/endpoint.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/endpoint.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -163,48 +163,43 @@ class Endpoint(DomainResource):
default="Endpoint",
)
- @field_validator(
- *(
- "header",
- "address",
- "payloadMimeType",
- "payloadType",
- "period",
- "contact",
- "managingOrganization",
- "name",
- "connectionType",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "header",
+ "address",
+ "payloadMimeType",
+ "payloadType",
+ "period",
+ "contact",
+ "managingOrganization",
+ "name",
+ "connectionType",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/enrollment_request.py b/fhircraft/fhir/resources/datatypes/R4/core/enrollment_request.py
index f08b143b..d21e763a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/enrollment_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/enrollment_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -128,44 +128,39 @@ class EnrollmentRequest(DomainResource):
default="EnrollmentRequest",
)
- @field_validator(
- *(
- "coverage",
- "candidate",
- "provider",
- "insurer",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "coverage",
+ "candidate",
+ "provider",
+ "insurer",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/enrollment_response.py b/fhircraft/fhir/resources/datatypes/R4/core/enrollment_response.py
index c983ce6c..92ba0049 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/enrollment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/enrollment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -142,45 +142,40 @@ class EnrollmentResponse(DomainResource):
default="EnrollmentResponse",
)
- @field_validator(
- *(
- "requestProvider",
- "organization",
- "created",
- "disposition",
- "outcome",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requestProvider",
+ "organization",
+ "created",
+ "disposition",
+ "outcome",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/episode_of_care.py b/fhircraft/fhir/resources/datatypes/R4/core/episode_of_care.py
index 0ee188d6..aa22a1d9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/episode_of_care.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/episode_of_care.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -53,23 +53,18 @@ class EpisodeOfCareStatusHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -100,26 +95,21 @@ class EpisodeOfCareDiagnosis(BackboneElement):
alias="_rank",
)
- @field_validator(
- *(
- "rank",
- "role",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rank",
+ "role",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -239,49 +229,44 @@ class EpisodeOfCare(DomainResource):
default="EpisodeOfCare",
)
- @field_validator(
- *(
- "account",
- "team",
- "careManager",
- "referralRequest",
- "period",
- "managingOrganization",
- "patient",
- "diagnosis",
- "type",
- "statusHistory",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "account",
+ "team",
+ "careManager",
+ "referralRequest",
+ "period",
+ "managingOrganization",
+ "patient",
+ "diagnosis",
+ "type",
+ "statusHistory",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/event_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/event_definition.py
index 447f7d85..3cd1a141 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/event_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/event_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -302,64 +302,59 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "trigger",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "trigger",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/evidence.py b/fhircraft/fhir/resources/datatypes/R4/core/evidence.py
index 91cd5efe..b91aa0fa 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/evidence.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/evidence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -280,65 +280,60 @@ class Evidence(DomainResource):
default="Evidence",
)
- @field_validator(
- *(
- "outcome",
- "exposureVariant",
- "exposureBackground",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "note",
- "description",
- "contact",
- "publisher",
- "date",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcome",
+ "exposureVariant",
+ "exposureBackground",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "note",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/evidence_variable.py b/fhircraft/fhir/resources/datatypes/R4/core/evidence_variable.py
index 00d787ec..f15589fb 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/evidence_variable.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/evidence_variable.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -157,32 +157,27 @@ def participantEffective(self):
base="participantEffective",
)
- @field_validator(
- *(
- "groupMeasure",
- "timeFromStart",
- "exclude",
- "usageContext",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupMeasure",
+ "timeFromStart",
+ "exclude",
+ "usageContext",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -452,64 +447,59 @@ class EvidenceVariable(DomainResource):
default="EvidenceVariable",
)
- @field_validator(
- *(
- "characteristic",
- "type",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "note",
- "description",
- "contact",
- "publisher",
- "date",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "type",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "note",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/example_scenario.py b/fhircraft/fhir/resources/datatypes/R4/core/example_scenario.py
index 0a4526e0..93d48c52 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/example_scenario.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/example_scenario.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,29 +84,24 @@ class ExampleScenarioActor(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "name",
- "type",
- "actorId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "name",
+ "type",
+ "actorId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -138,23 +133,18 @@ class ExampleScenarioInstanceVersion(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "versionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "versionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,23 +176,18 @@ class ExampleScenarioInstanceContainedInstance(BackboneElement):
alias="_versionId",
)
- @field_validator(
- *(
- "versionId",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionId",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -255,40 +240,37 @@ class ExampleScenarioInstance(BackboneElement):
description="A specific version of the resource",
default=None,
)
- containedInstance: Optional[ListType[ExampleScenarioInstanceContainedInstance]] = Field(
- description="Resources contained in the instance",
- default=None,
- )
-
- @field_validator(
- *(
- "containedInstance",
- "version",
- "description",
- "name",
- "resourceType",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
+ containedInstance: Optional[ListType[ExampleScenarioInstanceContainedInstance]] = (
+ Field(
+ description="Resources contained in the instance",
+ default=None,
+ )
)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "containedInstance",
+ "version",
+ "description",
+ "name",
+ "resourceType",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -320,23 +302,18 @@ class ExampleScenarioProcessStepOperationRequest(BackboneElement):
alias="_versionId",
)
- @field_validator(
- *(
- "versionId",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionId",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -430,47 +407,42 @@ class ExampleScenarioProcessStepOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "receiverActive",
- "initiatorActive",
- "description",
- "receiver",
- "initiator",
- "name",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "receiverActive",
+ "initiatorActive",
+ "description",
+ "receiver",
+ "initiator",
+ "name",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -506,26 +478,21 @@ class ExampleScenarioProcessStepAlternative(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -560,29 +527,24 @@ class ExampleScenarioProcessStep(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "alternative",
- "operation",
- "pause",
- "process",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "alternative",
+ "operation",
+ "pause",
+ "process",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -636,32 +598,27 @@ class ExampleScenarioProcess(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "postConditions",
- "preConditions",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "postConditions",
+ "preConditions",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -846,54 +803,49 @@ class ExampleScenario(DomainResource):
default="ExampleScenario",
)
- @field_validator(
- *(
- "workflow",
- "process",
- "instance",
- "actor",
- "purpose",
- "copyright",
- "jurisdiction",
- "useContext",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "workflow",
+ "process",
+ "instance",
+ "actor",
+ "purpose",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/explanation_of_benefit.py b/fhircraft/fhir/resources/datatypes/R4/core/explanation_of_benefit.py
index f2307cd5..6d66c39d 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/explanation_of_benefit.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/explanation_of_benefit.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class ExplanationOfBenefitRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -108,23 +103,18 @@ class ExplanationOfBenefitPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -168,32 +158,27 @@ class ExplanationOfBenefitCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualification",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualification",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,29 +270,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,29 +355,24 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "packageCode",
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageCode",
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -461,29 +436,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -528,26 +498,21 @@ class ExplanationOfBenefitInsurance(BackboneElement):
alias="_preAuthRef",
)
- @field_validator(
- *(
- "preAuthRef",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthRef",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -589,23 +554,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -649,29 +609,24 @@ class ExplanationOfBenefitItemAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -706,29 +661,24 @@ class ExplanationOfBenefitItemDetailAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -809,56 +759,51 @@ class ExplanationOfBenefitItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -934,68 +879,65 @@ class ExplanationOfBenefitItemDetail(BackboneElement):
default=None,
alias="_noteNumber",
)
- adjudication: Optional[ListType[ExplanationOfBenefitItemDetailAdjudication]] = Field(
- description="Detail level adjudication details",
- default=None,
+ adjudication: Optional[ListType[ExplanationOfBenefitItemDetailAdjudication]] = (
+ Field(
+ description="Detail level adjudication details",
+ default=None,
+ )
)
subDetail: Optional[ListType[ExplanationOfBenefitItemDetailSubDetail]] = Field(
description="Additional items",
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1167,80 +1109,75 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "encounter",
- "subSite",
- "bodySite",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "encounter",
+ "subSite",
+ "bodySite",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1314,41 +1251,36 @@ class ExplanationOfBenefitAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1408,44 +1340,39 @@ class ExplanationOfBenefitAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1587,65 +1514,60 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "subSite",
- "bodySite",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "provider",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "subSite",
+ "bodySite",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "provider",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1685,23 +1607,18 @@ class ExplanationOfBenefitTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1744,35 +1661,30 @@ class ExplanationOfBenefitPayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1817,29 +1729,24 @@ class ExplanationOfBenefitProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1906,14 +1813,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1992,41 +1900,36 @@ class ExplanationOfBenefitBenefitBalance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "financial",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "financial",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2300,80 +2203,75 @@ class ExplanationOfBenefit(DomainResource):
default="ExplanationOfBenefit",
)
- @field_validator(
- *(
- "benefitBalance",
- "benefitPeriod",
- "processNote",
- "form",
- "formCode",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "accident",
- "insurance",
- "precedence",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "preAuthRefPeriod",
- "preAuthRef",
- "disposition",
- "outcome",
- "claimResponse",
- "claim",
- "facility",
- "referral",
- "payee",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "fundsReserveRequested",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefitBalance",
+ "benefitPeriod",
+ "processNote",
+ "form",
+ "formCode",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "accident",
+ "insurance",
+ "precedence",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "preAuthRefPeriod",
+ "preAuthRef",
+ "disposition",
+ "outcome",
+ "claimResponse",
+ "claim",
+ "facility",
+ "referral",
+ "payee",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "fundsReserveRequested",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/family_member_history.py b/fhircraft/fhir/resources/datatypes/R4/core/family_member_history.py
index f8516e49..099f20b0 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/family_member_history.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/family_member_history.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -100,29 +100,24 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "note",
- "contributedToDeath",
- "outcome",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributedToDeath",
+ "outcome",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -383,52 +378,47 @@ def deceased(self):
base="deceased",
)
- @field_validator(
- *(
- "condition",
- "note",
- "reasonReference",
- "reasonCode",
- "estimatedAge",
- "sex",
- "relationship",
- "name",
- "date",
- "patient",
- "dataAbsentReason",
- "status",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "estimatedAge",
+ "sex",
+ "relationship",
+ "name",
+ "date",
+ "patient",
+ "dataAbsentReason",
+ "status",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/flag.py b/fhircraft/fhir/resources/datatypes/R4/core/flag.py
index d0589d6f..9beb125b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/flag.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/flag.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -129,45 +129,40 @@ class Flag(DomainResource):
default="Flag",
)
- @field_validator(
- *(
- "author",
- "encounter",
- "period",
- "subject",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "encounter",
+ "period",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/goal.py b/fhircraft/fhir/resources/datatypes/R4/core/goal.py
index b7f8229b..f8cb3f0c 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/goal.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/goal.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -125,14 +125,15 @@ def due(self):
base="due",
)
- @field_validator(
- *("measure", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measure",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -320,64 +321,58 @@ def start(self):
base="start",
)
- @field_validator(
- *(
- "outcomeReference",
- "outcomeCode",
- "note",
- "addresses",
- "expressedBy",
- "statusReason",
- "statusDate",
- "target",
- "subject",
- "description",
- "priority",
- "category",
- "achievementStatus",
- "lifecycleStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcomeReference",
+ "outcomeCode",
+ "note",
+ "addresses",
+ "expressedBy",
+ "statusReason",
+ "statusDate",
+ "target",
+ "subject",
+ "description",
+ "priority",
+ "category",
+ "achievementStatus",
+ "lifecycleStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_gol_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_gol_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="(detail.exists() and measure.exists()) or detail.exists().not()",
human="Goal.target.measure is required if Goal.target.detail is populated",
key="gol-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/graph_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/graph_definition.py
index 9d6365d6..04df00c5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/graph_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/graph_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -93,32 +93,27 @@ class GraphDefinitionLinkTargetCompartment(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "expression",
- "rule",
- "code",
- "use",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "expression",
+ "rule",
+ "code",
+ "use",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -167,32 +162,27 @@ class GraphDefinitionLinkTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "link",
- "compartment",
- "profile",
- "params",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "compartment",
+ "profile",
+ "params",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -255,35 +245,30 @@ class GraphDefinitionLink(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "description",
- "max",
- "min",
- "sliceName",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "description",
+ "max",
+ "min",
+ "sliceName",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -465,52 +450,47 @@ class GraphDefinition(DomainResource):
default="GraphDefinition",
)
- @field_validator(
- *(
- "link",
- "profile",
- "start",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "profile",
+ "start",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/group.py b/fhircraft/fhir/resources/datatypes/R4/core/group.py
index 8e47ea0e..de26f9f4 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/group.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/group.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -97,26 +97,21 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "period",
- "exclude",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "exclude",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,26 +151,21 @@ class GroupMember(BackboneElement):
alias="_inactive",
)
- @field_validator(
- *(
- "inactive",
- "period",
- "entity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "inactive",
+ "period",
+ "entity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -307,47 +297,42 @@ class Group(DomainResource):
default="Group",
)
- @field_validator(
- *(
- "member",
- "characteristic",
- "managingEntity",
- "quantity",
- "name",
- "code",
- "actual",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "member",
+ "characteristic",
+ "managingEntity",
+ "quantity",
+ "name",
+ "code",
+ "actual",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/guidance_response.py b/fhircraft/fhir/resources/datatypes/R4/core/guidance_response.py
index 411a684e..16a834c1 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/guidance_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/guidance_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -194,51 +194,46 @@ def module(self):
base="module",
)
- @field_validator(
- *(
- "dataRequirement",
- "result",
- "outputParameters",
- "evaluationMessage",
- "note",
- "reasonReference",
- "reasonCode",
- "performer",
- "occurrenceDateTime",
- "encounter",
- "subject",
- "status",
- "identifier",
- "requestIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dataRequirement",
+ "result",
+ "outputParameters",
+ "evaluationMessage",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "occurrenceDateTime",
+ "encounter",
+ "subject",
+ "status",
+ "identifier",
+ "requestIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/healthcare_service.py b/fhircraft/fhir/resources/datatypes/R4/core/healthcare_service.py
index 18d0c461..8a42c7a8 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/healthcare_service.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/healthcare_service.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,23 +62,18 @@ class HealthcareServiceEligibility(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,29 +123,24 @@ class HealthcareServiceAvailableTime(BackboneElement):
alias="_availableEndTime",
)
- @field_validator(
- *(
- "availableEndTime",
- "availableStartTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "availableEndTime",
+ "availableStartTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,23 +167,18 @@ class HealthcareServiceNotAvailable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "during",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "during",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -386,61 +371,56 @@ class HealthcareService(DomainResource):
default="HealthcareService",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "notAvailable",
- "availableTime",
- "appointmentRequired",
- "referralMethod",
- "communication",
- "characteristic",
- "program",
- "eligibility",
- "serviceProvisionCode",
- "coverageArea",
- "telecom",
- "photo",
- "extraDetails",
- "comment",
- "name",
- "location",
- "specialty",
- "type",
- "category",
- "providedBy",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "notAvailable",
+ "availableTime",
+ "appointmentRequired",
+ "referralMethod",
+ "communication",
+ "characteristic",
+ "program",
+ "eligibility",
+ "serviceProvisionCode",
+ "coverageArea",
+ "telecom",
+ "photo",
+ "extraDetails",
+ "comment",
+ "name",
+ "location",
+ "specialty",
+ "type",
+ "category",
+ "providedBy",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/imaging_study.py b/fhircraft/fhir/resources/datatypes/R4/core/imaging_study.py
index b067e73e..bf654a4c 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/imaging_study.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/imaging_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class ImagingStudySeriesPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -117,29 +112,24 @@ class ImagingStudySeriesInstance(BackboneElement):
alias="_title",
)
- @field_validator(
- *(
- "title",
- "number",
- "sopClass",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "title",
+ "number",
+ "sopClass",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -226,53 +216,48 @@ class ImagingStudySeries(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "instance",
- "performer",
- "started",
- "specimen",
- "laterality",
- "bodySite",
- "endpoint",
- "numberOfInstances",
- "description",
- "modality",
- "number",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instance",
+ "performer",
+ "started",
+ "specimen",
+ "laterality",
+ "bodySite",
+ "endpoint",
+ "numberOfInstances",
+ "description",
+ "modality",
+ "number",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -444,57 +429,52 @@ class ImagingStudy(DomainResource):
default="ImagingStudy",
)
- @field_validator(
- *(
- "series",
- "description",
- "note",
- "reasonReference",
- "reasonCode",
- "location",
- "procedureCode",
- "procedureReference",
- "numberOfInstances",
- "numberOfSeries",
- "endpoint",
- "interpreter",
- "referrer",
- "basedOn",
- "started",
- "encounter",
- "subject",
- "modality",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "series",
+ "description",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "procedureCode",
+ "procedureReference",
+ "numberOfInstances",
+ "numberOfSeries",
+ "endpoint",
+ "interpreter",
+ "referrer",
+ "basedOn",
+ "started",
+ "encounter",
+ "subject",
+ "modality",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/immunization.py b/fhircraft/fhir/resources/datatypes/R4/core/immunization.py
index ed7a3086..24e68c0f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/immunization.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/immunization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class ImmunizationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -123,29 +118,24 @@ class ImmunizationEducation(BackboneElement):
alias="_presentationDate",
)
- @field_validator(
- *(
- "presentationDate",
- "publicationDate",
- "reference",
- "documentType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "presentationDate",
+ "publicationDate",
+ "reference",
+ "documentType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,26 +171,21 @@ class ImmunizationReaction(BackboneElement):
alias="_reported",
)
- @field_validator(
- *(
- "reported",
- "detail",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reported",
+ "detail",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,26 +266,21 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "targetDisease",
- "authority",
- "series",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetDisease",
+ "authority",
+ "series",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -548,76 +528,70 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "protocolApplied",
- "reaction",
- "fundingSource",
- "programEligibility",
- "education",
- "subpotentReason",
- "isSubpotent",
- "reasonReference",
- "reasonCode",
- "note",
- "performer",
- "doseQuantity",
- "route",
- "site",
- "expirationDate",
- "lotNumber",
- "manufacturer",
- "location",
- "reportOrigin",
- "primarySource",
- "recorded",
- "encounter",
- "patient",
- "vaccineCode",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "protocolApplied",
+ "reaction",
+ "fundingSource",
+ "programEligibility",
+ "education",
+ "subpotentReason",
+ "isSubpotent",
+ "reasonReference",
+ "reasonCode",
+ "note",
+ "performer",
+ "doseQuantity",
+ "route",
+ "site",
+ "expirationDate",
+ "lotNumber",
+ "manufacturer",
+ "location",
+ "reportOrigin",
+ "primarySource",
+ "recorded",
+ "encounter",
+ "patient",
+ "vaccineCode",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("education",), mode="after", check_fields=None)
- @classmethod
- def FHIR_imm_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_imm_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("education",),
expression="documentType.exists() or reference.exists()",
human="One of documentType or reference SHALL be present",
key="imm-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/immunization_evaluation.py b/fhircraft/fhir/resources/datatypes/R4/core/immunization_evaluation.py
index d3ab60dd..3d999c1e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/immunization_evaluation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/immunization_evaluation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -211,48 +211,43 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "series",
- "description",
- "doseStatusReason",
- "doseStatus",
- "immunizationEvent",
- "targetDisease",
- "authority",
- "date",
- "patient",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "series",
+ "description",
+ "doseStatusReason",
+ "doseStatus",
+ "immunizationEvent",
+ "targetDisease",
+ "authority",
+ "date",
+ "patient",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/immunization_recommendation.py b/fhircraft/fhir/resources/datatypes/R4/core/immunization_recommendation.py
index 2c1f354b..f36ef2ac 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/immunization_recommendation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/immunization_recommendation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class ImmunizationRecommendationRecommendationDateCriterion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -190,47 +185,42 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "supportingPatientInformation",
- "supportingImmunization",
- "series",
- "description",
- "dateCriterion",
- "forecastReason",
- "forecastStatus",
- "contraindicatedVaccineCode",
- "targetDisease",
- "vaccineCode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingPatientInformation",
+ "supportingImmunization",
+ "series",
+ "description",
+ "dateCriterion",
+ "forecastReason",
+ "forecastStatus",
+ "contraindicatedVaccineCode",
+ "targetDisease",
+ "vaccineCode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -333,63 +323,59 @@ class ImmunizationRecommendation(DomainResource):
description="Who is responsible for protocol",
default=None,
)
- recommendation: Optional[ListType[ImmunizationRecommendationRecommendation]] = Field(
- description="Vaccine administration recommendations",
- default=None,
+ recommendation: Optional[ListType[ImmunizationRecommendationRecommendation]] = (
+ Field(
+ description="Vaccine administration recommendations",
+ default=None,
+ )
)
resourceType: Literal["ImmunizationRecommendation"] = Field(
description=None,
default="ImmunizationRecommendation",
)
- @field_validator(
- *(
- "recommendation",
- "authority",
- "date",
- "patient",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recommendation",
+ "authority",
+ "date",
+ "patient",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("recommendation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_imr_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_imr_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("recommendation",),
expression="vaccineCode.exists() or targetDisease.exists()",
human="One of vaccineCode or targetDisease SHALL be present",
key="imr-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/implementation_guide.py b/fhircraft/fhir/resources/datatypes/R4/core/implementation_guide.py
index 3325aaa8..e952c232 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/implementation_guide.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/implementation_guide.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -77,26 +77,21 @@ class ImplementationGuideDependsOn(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "packageId",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "packageId",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,23 +123,18 @@ class ImplementationGuideGlobal(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -176,23 +166,18 @@ class ImplementationGuideDefinitionGrouping(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -271,32 +256,27 @@ def example(self):
base="example",
)
- @field_validator(
- *(
- "groupingId",
- "description",
- "name",
- "fhirVersion",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupingId",
+ "description",
+ "name",
+ "fhirVersion",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -361,26 +341,21 @@ def name(self):
base="name",
)
- @field_validator(
- *(
- "page",
- "generation",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "page",
+ "generation",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -421,23 +396,18 @@ class ImplementationGuideDefinitionParameter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -478,26 +448,21 @@ class ImplementationGuideDefinitionTemplate(BackboneElement):
alias="_scope",
)
- @field_validator(
- *(
- "scope",
- "source",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scope",
+ "source",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -531,32 +496,27 @@ class ImplementationGuideDefinition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "template",
- "parameter",
- "page",
- "resource",
- "grouping",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "template",
+ "parameter",
+ "page",
+ "resource",
+ "grouping",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -608,23 +568,18 @@ def example(self):
base="example",
)
- @field_validator(
- *(
- "relativePath",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relativePath",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -674,26 +629,21 @@ class ImplementationGuideManifestPage(BackboneElement):
alias="_anchor",
)
- @field_validator(
- *(
- "anchor",
- "title",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "anchor",
+ "title",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -742,32 +692,27 @@ class ImplementationGuideManifest(BackboneElement):
alias="_other",
)
- @field_validator(
- *(
- "other",
- "image",
- "page",
- "resource",
- "rendering",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "other",
+ "image",
+ "page",
+ "resource",
+ "rendering",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -979,69 +924,63 @@ class ImplementationGuide(DomainResource):
default="ImplementationGuide",
)
- @field_validator(
- *(
- "manifest",
- "definition",
- "global_",
- "dependsOn",
- "fhirVersion",
- "license",
- "packageId",
- "copyright",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manifest",
+ "definition",
+ "global_",
+ "dependsOn",
+ "fhirVersion",
+ "license",
+ "packageId",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("definition",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ig_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ig_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("definition",),
expression="resource.groupingId.all(%context.grouping.id contains $this)",
human="If a resource has a groupingId, it must refer to a grouping defined in the Implementation Guide",
key="ig-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/insurance_plan.py b/fhircraft/fhir/resources/datatypes/R4/core/insurance_plan.py
index c2c71e6b..c6e721b2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/insurance_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/insurance_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,29 +61,24 @@ class InsurancePlanContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "address",
- "telecom",
- "name",
- "purpose",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "telecom",
+ "name",
+ "purpose",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -105,23 +100,18 @@ class InsurancePlanCoverageBenefitLimit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -152,26 +142,21 @@ class InsurancePlanCoverageBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "limit",
- "requirement",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "limit",
+ "requirement",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -197,26 +182,21 @@ class InsurancePlanCoverage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "network",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "network",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -256,29 +236,24 @@ class InsurancePlanPlanGeneralCost(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "cost",
- "groupSize",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "cost",
+ "groupSize",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -308,29 +283,24 @@ class InsurancePlanPlanSpecificCostBenefitCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "qualifiers",
- "applicability",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "qualifiers",
+ "applicability",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -352,23 +322,18 @@ class InsurancePlanPlanSpecificCostBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "cost",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cost",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,23 +355,18 @@ class InsurancePlanPlanSpecificCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -444,35 +404,30 @@ class InsurancePlanPlan(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specificCost",
- "generalCost",
- "network",
- "coverageArea",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specificCost",
+ "generalCost",
+ "network",
+ "coverageArea",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -610,51 +565,46 @@ class InsurancePlan(DomainResource):
default="InsurancePlan",
)
- @field_validator(
- *(
- "plan",
- "coverage",
- "network",
- "endpoint",
- "contact",
- "coverageArea",
- "administeredBy",
- "ownedBy",
- "period",
- "alias",
- "name",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "plan",
+ "coverage",
+ "network",
+ "endpoint",
+ "contact",
+ "coverageArea",
+ "administeredBy",
+ "ownedBy",
+ "period",
+ "alias",
+ "name",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/invoice.py b/fhircraft/fhir/resources/datatypes/R4/core/invoice.py
index 4e55bdd2..06486a28 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/invoice.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/invoice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class InvoiceParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -113,29 +108,24 @@ class InvoiceLineItemPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,23 +167,18 @@ def chargeItem(self):
base="chargeItem",
)
- @field_validator(
- *(
- "priceComponent",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -242,29 +227,24 @@ class InvoiceTotalPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -415,53 +395,48 @@ class Invoice(DomainResource):
default="Invoice",
)
- @field_validator(
- *(
- "note",
- "paymentTerms",
- "totalGross",
- "totalNet",
- "totalPriceComponent",
- "lineItem",
- "account",
- "issuer",
- "participant",
- "date",
- "recipient",
- "subject",
- "type",
- "cancelledReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "paymentTerms",
+ "totalGross",
+ "totalNet",
+ "totalPriceComponent",
+ "lineItem",
+ "account",
+ "issuer",
+ "participant",
+ "date",
+ "recipient",
+ "subject",
+ "type",
+ "cancelledReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/library.py b/fhircraft/fhir/resources/datatypes/R4/core/library.py
index 5cb5e175..a86e7498 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/library.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/library.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -316,67 +316,62 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "content",
- "dataRequirement",
- "parameter",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "type",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "dataRequirement",
+ "parameter",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "type",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/linkage.py b/fhircraft/fhir/resources/datatypes/R4/core/linkage.py
index 907f419c..5d9a9f0a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/linkage.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/linkage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -50,23 +50,18 @@ class LinkageItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,40 +145,35 @@ class Linkage(DomainResource):
default="Linkage",
)
- @field_validator(
- *(
- "item",
- "author",
- "active",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "author",
+ "active",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/list.py b/fhircraft/fhir/resources/datatypes/R4/core/list.py
index abcf34e4..63fe80ef 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/list.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/list.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -76,29 +76,24 @@ class ListEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "date",
- "deleted",
- "flag",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "date",
+ "deleted",
+ "flag",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,50 +232,45 @@ class List(DomainResource):
default="List",
)
- @field_validator(
- *(
- "emptyReason",
- "entry",
- "note",
- "orderedBy",
- "source",
- "date",
- "encounter",
- "subject",
- "code",
- "title",
- "mode",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "emptyReason",
+ "entry",
+ "note",
+ "orderedBy",
+ "source",
+ "date",
+ "encounter",
+ "subject",
+ "code",
+ "title",
+ "mode",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/location.py b/fhircraft/fhir/resources/datatypes/R4/core/location.py
index 40d49df0..f43b65c1 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/location.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/location.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -76,26 +76,21 @@ class LocationPosition(BackboneElement):
alias="_altitude",
)
- @field_validator(
- *(
- "altitude",
- "latitude",
- "longitude",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "altitude",
+ "latitude",
+ "longitude",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -145,29 +140,24 @@ class LocationHoursOfOperation(BackboneElement):
alias="_closingTime",
)
- @field_validator(
- *(
- "closingTime",
- "openingTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "closingTime",
+ "openingTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,54 +322,49 @@ class Location(DomainResource):
default="Location",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "hoursOfOperation",
- "partOf",
- "managingOrganization",
- "position",
- "physicalType",
- "address",
- "telecom",
- "type",
- "mode",
- "description",
- "alias",
- "name",
- "operationalStatus",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "hoursOfOperation",
+ "partOf",
+ "managingOrganization",
+ "position",
+ "physicalType",
+ "address",
+ "telecom",
+ "type",
+ "mode",
+ "description",
+ "alias",
+ "name",
+ "operationalStatus",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/measure.py b/fhircraft/fhir/resources/datatypes/R4/core/measure.py
index 379992c4..9d57a72a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/measure.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/measure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,26 +70,21 @@ class MeasureGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -120,26 +115,21 @@ class MeasureGroupStratifierComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,29 +164,24 @@ class MeasureGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "component",
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -231,29 +216,24 @@ class MeasureGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratifier",
- "population",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "population",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -288,29 +268,24 @@ class MeasureSupplementalData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "usage",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "usage",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -667,77 +642,72 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "supplementalData",
- "group",
- "guidance",
- "definition",
- "improvementNotation",
- "clinicalRecommendationStatement",
- "rationale",
- "rateAggregation",
- "riskAdjustment",
- "type",
- "compositeScoring",
- "scoring",
- "disclaimer",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supplementalData",
+ "group",
+ "guidance",
+ "definition",
+ "improvementNotation",
+ "clinicalRecommendationStatement",
+ "rationale",
+ "rateAggregation",
+ "riskAdjustment",
+ "type",
+ "compositeScoring",
+ "scoring",
+ "disclaimer",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/measure_report.py b/fhircraft/fhir/resources/datatypes/R4/core/measure_report.py
index ec65d56f..f3c1f9ba 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/measure_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/measure_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class MeasureReportGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjectResults",
- "count",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjectResults",
+ "count",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class MeasureReportGroupStratifierStratumComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -153,26 +143,21 @@ class MeasureReportGroupStratifierStratumPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjectResults",
- "count",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjectResults",
+ "count",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -193,38 +178,35 @@ class MeasureReportGroupStratifierStratum(BackboneElement):
description="Stratifier component values",
default=None,
)
- population: Optional[ListType[MeasureReportGroupStratifierStratumPopulation]] = Field(
- description="Population results in this stratum",
- default=None,
+ population: Optional[ListType[MeasureReportGroupStratifierStratumPopulation]] = (
+ Field(
+ description="Population results in this stratum",
+ default=None,
+ )
)
measureScore: Optional[Quantity] = Field(
description="What score this stratum achieved",
default=None,
)
- @field_validator(
- *(
- "measureScore",
- "population",
- "component",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measureScore",
+ "population",
+ "component",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,23 +228,18 @@ class MeasureReportGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratum",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratum",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -292,29 +269,24 @@ class MeasureReportGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratifier",
- "measureScore",
- "population",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "measureScore",
+ "population",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -445,48 +417,43 @@ class MeasureReport(DomainResource):
default="MeasureReport",
)
- @field_validator(
- *(
- "evaluatedResource",
- "group",
- "improvementNotation",
- "period",
- "reporter",
- "date",
- "subject",
- "measure",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "evaluatedResource",
+ "group",
+ "improvementNotation",
+ "period",
+ "reporter",
+ "date",
+ "subject",
+ "measure",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/media.py b/fhircraft/fhir/resources/datatypes/R4/core/media.py
index 717ee51a..57c0d1f1 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/media.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/media.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -241,58 +241,53 @@ def created(self):
base="created",
)
- @field_validator(
- *(
- "note",
- "content",
- "duration",
- "frames",
- "width",
- "height",
- "device",
- "deviceName",
- "bodySite",
- "reasonCode",
- "operator",
- "issued",
- "encounter",
- "subject",
- "view",
- "modality",
- "type",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "content",
+ "duration",
+ "frames",
+ "width",
+ "height",
+ "device",
+ "deviceName",
+ "bodySite",
+ "reasonCode",
+ "operator",
+ "issued",
+ "encounter",
+ "subject",
+ "view",
+ "modality",
+ "type",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication.py b/fhircraft/fhir/resources/datatypes/R4/core/medication.py
index 2e204da0..a2f228c3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,23 +74,18 @@ def item(self):
base="item",
)
- @field_validator(
- *(
- "strength",
- "isActive",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "isActive",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -131,23 +126,18 @@ class MedicationBatch(BackboneElement):
alias="_expirationDate",
)
- @field_validator(
- *(
- "expirationDate",
- "lotNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expirationDate",
+ "lotNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -251,45 +241,40 @@ class Medication(DomainResource):
default="Medication",
)
- @field_validator(
- *(
- "batch",
- "ingredient",
- "amount",
- "form",
- "manufacturer",
- "status",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "batch",
+ "ingredient",
+ "amount",
+ "form",
+ "manufacturer",
+ "status",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication_administration.py b/fhircraft/fhir/resources/datatypes/R4/core/medication_administration.py
index 54ec30ea..f379b126 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication_administration.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication_administration.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class MedicationAdministrationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -121,32 +116,27 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "dose",
- "method",
- "route",
- "site",
- "text",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dose",
+ "method",
+ "route",
+ "site",
+ "text",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -335,66 +325,60 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "eventHistory",
- "dosage",
- "note",
- "device",
- "request",
- "reasonReference",
- "reasonCode",
- "performer",
- "supportingInformation",
- "context",
- "subject",
- "category",
- "statusReason",
- "status",
- "partOf",
- "instantiates",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "dosage",
+ "note",
+ "device",
+ "request",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "supportingInformation",
+ "context",
+ "subject",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "instantiates",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("dosage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mad_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mad_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dosage",),
expression="dose.exists() or rate.exists()",
human="SHALL have at least one of dosage.dose or dosage.rate[x]",
key="mad-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication_dispense.py b/fhircraft/fhir/resources/datatypes/R4/core/medication_dispense.py
index 21473603..3480b86e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication_dispense.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication_dispense.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class MedicationDispensePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,29 +102,24 @@ class MedicationDispenseSubstitution(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "responsibleParty",
- "reason",
- "type",
- "wasSubstituted",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "responsibleParty",
+ "reason",
+ "type",
+ "wasSubstituted",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -329,59 +319,54 @@ def medication(self):
base="medication",
)
- @field_validator(
- *(
- "eventHistory",
- "detectedIssue",
- "substitution",
- "dosageInstruction",
- "note",
- "receiver",
- "destination",
- "whenHandedOver",
- "whenPrepared",
- "daysSupply",
- "quantity",
- "type",
- "authorizingPrescription",
- "location",
- "performer",
- "supportingInformation",
- "context",
- "subject",
- "category",
- "status",
- "partOf",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "detectedIssue",
+ "substitution",
+ "dosageInstruction",
+ "note",
+ "receiver",
+ "destination",
+ "whenHandedOver",
+ "whenPrepared",
+ "daysSupply",
+ "quantity",
+ "type",
+ "authorizingPrescription",
+ "location",
+ "performer",
+ "supportingInformation",
+ "context",
+ "subject",
+ "category",
+ "status",
+ "partOf",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication_knowledge.py b/fhircraft/fhir/resources/datatypes/R4/core/medication_knowledge.py
index bf81d5ab..a639ec32 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication_knowledge.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication_knowledge.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class MedicationKnowledgeRelatedMedicationKnowledge(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class MedicationKnowledgeMonograph(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,23 +144,18 @@ def item(self):
base="item",
)
- @field_validator(
- *(
- "strength",
- "isActive",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "isActive",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,26 +195,21 @@ class MedicationKnowledgeCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "cost",
- "source",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cost",
+ "source",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -256,23 +236,18 @@ class MedicationKnowledgeMonitoringProgram(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -294,23 +269,18 @@ class MedicationKnowledgeAdministrationGuidelinesDosage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dosage",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosage",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -350,14 +320,15 @@ def characteristic(self):
base="characteristic",
)
- @field_validator(
- *("value", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -379,9 +350,11 @@ class MedicationKnowledgeAdministrationGuidelines(BackboneElement):
Guidelines for the administration of the medication.
"""
- dosage: Optional[ListType[MedicationKnowledgeAdministrationGuidelinesDosage]] = Field(
- description="Dosage for the medication for the specific guidelines",
- default=None,
+ dosage: Optional[ListType[MedicationKnowledgeAdministrationGuidelinesDosage]] = (
+ Field(
+ description="Dosage for the medication for the specific guidelines",
+ default=None,
+ )
)
indicationCodeableConcept: Optional[CodeableConcept] = Field(
description="Indication for use that apply to the specific administration guidelines",
@@ -405,23 +378,18 @@ def indication(self):
base="indication",
)
- @field_validator(
- *(
- "patientCharacteristics",
- "dosage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patientCharacteristics",
+ "dosage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -452,23 +420,18 @@ class MedicationKnowledgeMedicineClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "classification",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "classification",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -490,23 +453,18 @@ class MedicationKnowledgePackaging(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -557,14 +515,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -600,23 +559,18 @@ class MedicationKnowledgeRegulatorySubstitution(BackboneElement):
alias="_allowed",
)
- @field_validator(
- *(
- "allowed",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allowed",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -634,14 +588,15 @@ class MedicationKnowledgeRegulatorySchedule(BackboneElement):
default=None,
)
- @field_validator(
- *("schedule", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "schedule",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -663,23 +618,18 @@ class MedicationKnowledgeRegulatoryMaxDispense(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -709,29 +659,24 @@ class MedicationKnowledgeRegulatory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "maxDispense",
- "schedule",
- "substitution",
- "regulatoryAuthority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDispense",
+ "schedule",
+ "substitution",
+ "regulatoryAuthority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -757,26 +702,21 @@ class MedicationKnowledgeKinetics(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "halfLifePeriod",
- "lethalDose50",
- "areaUnderCurve",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "halfLifePeriod",
+ "lethalDose50",
+ "areaUnderCurve",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -931,9 +871,11 @@ class MedicationKnowledge(DomainResource):
description="Details about packaged medications",
default=None,
)
- drugCharacteristic: Optional[ListType[MedicationKnowledgeDrugCharacteristic]] = Field(
- description="Specifies descriptive properties of the medicine",
- default=None,
+ drugCharacteristic: Optional[ListType[MedicationKnowledgeDrugCharacteristic]] = (
+ Field(
+ description="Specifies descriptive properties of the medicine",
+ default=None,
+ )
)
contraindication: Optional[ListType[Reference]] = Field(
description="Potential clinical issue with or between medication(s)",
@@ -952,59 +894,54 @@ class MedicationKnowledge(DomainResource):
default="MedicationKnowledge",
)
- @field_validator(
- *(
- "kinetics",
- "regulatory",
- "contraindication",
- "drugCharacteristic",
- "packaging",
- "medicineClassification",
- "administrationGuidelines",
- "monitoringProgram",
- "cost",
- "intendedRoute",
- "preparationInstruction",
- "ingredient",
- "monograph",
- "productType",
- "associatedMedication",
- "relatedMedicationKnowledge",
- "synonym",
- "amount",
- "doseForm",
- "manufacturer",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "kinetics",
+ "regulatory",
+ "contraindication",
+ "drugCharacteristic",
+ "packaging",
+ "medicineClassification",
+ "administrationGuidelines",
+ "monitoringProgram",
+ "cost",
+ "intendedRoute",
+ "preparationInstruction",
+ "ingredient",
+ "monograph",
+ "productType",
+ "associatedMedication",
+ "relatedMedicationKnowledge",
+ "synonym",
+ "amount",
+ "doseForm",
+ "manufacturer",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication_request.py b/fhircraft/fhir/resources/datatypes/R4/core/medication_request.py
index aee6f36c..a0cac565 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,23 +60,18 @@ class MedicationRequestDispenseRequestInitialFill(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "duration",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "duration",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -123,38 +118,33 @@ class MedicationRequestDispenseRequest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "performer",
- "expectedSupplyDuration",
- "quantity",
- "numberOfRepeatsAllowed",
- "validityPeriod",
- "dispenseInterval",
- "initialFill",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "performer",
+ "expectedSupplyDuration",
+ "quantity",
+ "numberOfRepeatsAllowed",
+ "validityPeriod",
+ "dispenseInterval",
+ "initialFill",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,14 +182,15 @@ def allowed(self):
base="allowed",
)
- @field_validator(
- *("reason", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -465,67 +456,62 @@ def medication(self):
base="medication",
)
- @field_validator(
- *(
- "eventHistory",
- "detectedIssue",
- "priorPrescription",
- "substitution",
- "dispenseRequest",
- "dosageInstruction",
- "note",
- "insurance",
- "courseOfTherapyType",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "reasonReference",
- "reasonCode",
- "recorder",
- "performerType",
- "performer",
- "requester",
- "authoredOn",
- "supportingInformation",
- "encounter",
- "subject",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "detectedIssue",
+ "priorPrescription",
+ "substitution",
+ "dispenseRequest",
+ "dosageInstruction",
+ "note",
+ "insurance",
+ "courseOfTherapyType",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "reasonReference",
+ "reasonCode",
+ "recorder",
+ "performerType",
+ "performer",
+ "requester",
+ "authoredOn",
+ "supportingInformation",
+ "encounter",
+ "subject",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medication_statement.py b/fhircraft/fhir/resources/datatypes/R4/core/medication_statement.py
index 3e7fa381..dde1def6 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medication_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medication_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -201,52 +201,47 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "dosage",
- "note",
- "reasonReference",
- "reasonCode",
- "derivedFrom",
- "informationSource",
- "dateAsserted",
- "context",
- "subject",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosage",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "derivedFrom",
+ "informationSource",
+ "dateAsserted",
+ "context",
+ "subject",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product.py
index 244f50b2..8e053cb2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -54,23 +54,18 @@ class MedicinalProductNameNamePart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "part",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "part",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,26 +91,21 @@ class MedicinalProductNameCountryLanguage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -146,26 +136,21 @@ class MedicinalProductName(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "countryLanguage",
- "namePart",
- "productName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "countryLanguage",
+ "namePart",
+ "productName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,35 +193,30 @@ class MedicinalProductManufacturingBusinessOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "regulator",
- "manufacturer",
- "confidentialityIndicator",
- "effectiveDate",
- "authorisationReferenceNumber",
- "operationType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "regulator",
+ "manufacturer",
+ "confidentialityIndicator",
+ "effectiveDate",
+ "authorisationReferenceNumber",
+ "operationType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -294,35 +274,30 @@ def indication(self):
base="indication",
)
- @field_validator(
- *(
- "species",
- "date",
- "status",
- "intendedUse",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "species",
+ "date",
+ "status",
+ "intendedUse",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -485,57 +460,52 @@ class MedicinalProduct(DomainResource):
default="MedicinalProduct",
)
- @field_validator(
- *(
- "specialDesignation",
- "manufacturingBusinessOperation",
- "crossReference",
- "name",
- "clinicalTrial",
- "contact",
- "masterFile",
- "attachedDocument",
- "packagedMedicinalProduct",
- "pharmaceuticalProduct",
- "marketingStatus",
- "productClassification",
- "paediatricUseIndicator",
- "specialMeasures",
- "additionalMonitoringIndicator",
- "legalStatusOfSupply",
- "combinedPharmaceuticalDoseForm",
- "domain",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialDesignation",
+ "manufacturingBusinessOperation",
+ "crossReference",
+ "name",
+ "clinicalTrial",
+ "contact",
+ "masterFile",
+ "attachedDocument",
+ "packagedMedicinalProduct",
+ "pharmaceuticalProduct",
+ "marketingStatus",
+ "productClassification",
+ "paediatricUseIndicator",
+ "specialMeasures",
+ "additionalMonitoringIndicator",
+ "legalStatusOfSupply",
+ "combinedPharmaceuticalDoseForm",
+ "domain",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_authorization.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_authorization.py
index 13be4037..23b455b5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_authorization.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_authorization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,32 +60,27 @@ class MedicinalProductAuthorizationJurisdictionalAuthorization(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "validityPeriod",
- "legalStatusOfSupply",
- "jurisdiction",
- "country",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "validityPeriod",
+ "legalStatusOfSupply",
+ "jurisdiction",
+ "country",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -131,26 +126,21 @@ def date(self):
base="date",
)
- @field_validator(
- *(
- "application",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "application",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -314,53 +304,48 @@ class MedicinalProductAuthorization(DomainResource):
default="MedicinalProductAuthorization",
)
- @field_validator(
- *(
- "procedure",
- "regulator",
- "holder",
- "jurisdictionalAuthorization",
- "legalBasis",
- "internationalBirthDate",
- "dateOfFirstAuthorization",
- "dataExclusivityPeriod",
- "validityPeriod",
- "restoreDate",
- "statusDate",
- "status",
- "jurisdiction",
- "country",
- "subject",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "procedure",
+ "regulator",
+ "holder",
+ "jurisdictionalAuthorization",
+ "legalBasis",
+ "internationalBirthDate",
+ "dateOfFirstAuthorization",
+ "dataExclusivityPeriod",
+ "validityPeriod",
+ "restoreDate",
+ "statusDate",
+ "status",
+ "jurisdiction",
+ "country",
+ "subject",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_contraindication.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_contraindication.py
index efc44f15..26168745 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_contraindication.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_contraindication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,16 +58,15 @@ def medication(self):
base="medication",
)
- @field_validator(
- *("therapyRelationshipType", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "therapyRelationshipType",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -160,9 +159,11 @@ class MedicinalProductContraindication(DomainResource):
description="Information about the use of the medicinal product in relation to other therapies as part of the indication",
default=None,
)
- otherTherapy: Optional[ListType[MedicinalProductContraindicationOtherTherapy]] = Field(
- description="Information about the use of the medicinal product in relation to other therapies described as part of the indication",
- default=None,
+ otherTherapy: Optional[ListType[MedicinalProductContraindicationOtherTherapy]] = (
+ Field(
+ description="Information about the use of the medicinal product in relation to other therapies described as part of the indication",
+ default=None,
+ )
)
population: Optional[ListType[Population]] = Field(
description="The population group to which this applies",
@@ -173,44 +174,39 @@ class MedicinalProductContraindication(DomainResource):
default="MedicinalProductContraindication",
)
- @field_validator(
- *(
- "population",
- "otherTherapy",
- "therapeuticIndication",
- "comorbidity",
- "diseaseStatus",
- "disease",
- "subject",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "population",
+ "otherTherapy",
+ "therapeuticIndication",
+ "comorbidity",
+ "diseaseStatus",
+ "disease",
+ "subject",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_indication.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_indication.py
index 5c0cde4c..d8cf9480 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_indication.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_indication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,16 +59,15 @@ def medication(self):
base="medication",
)
- @field_validator(
- *("therapyRelationshipType", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "therapyRelationshipType",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -182,46 +181,41 @@ class MedicinalProductIndication(DomainResource):
default="MedicinalProductIndication",
)
- @field_validator(
- *(
- "population",
- "undesirableEffect",
- "otherTherapy",
- "duration",
- "intendedEffect",
- "comorbidity",
- "diseaseStatus",
- "diseaseSymptomProcedure",
- "subject",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "population",
+ "undesirableEffect",
+ "otherTherapy",
+ "duration",
+ "intendedEffect",
+ "comorbidity",
+ "diseaseStatus",
+ "diseaseSymptomProcedure",
+ "subject",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_ingredient.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_ingredient.py
index 1591ad7d..dde009b5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_ingredient.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_ingredient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,32 +67,27 @@ class MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength(
default=None,
)
- @field_validator(
- *(
- "country",
- "measurementPoint",
- "strengthLowLimit",
- "strength",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "country",
+ "measurementPoint",
+ "strengthLowLimit",
+ "strength",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -141,38 +136,33 @@ class MedicinalProductIngredientSpecifiedSubstanceStrength(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "referenceStrength",
- "country",
- "measurementPoint",
- "concentrationLowLimit",
- "concentration",
- "presentationLowLimit",
- "presentation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceStrength",
+ "country",
+ "measurementPoint",
+ "concentrationLowLimit",
+ "concentration",
+ "presentationLowLimit",
+ "presentation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -197,36 +187,31 @@ class MedicinalProductIngredientSpecifiedSubstance(BackboneElement):
description="Confidentiality level of the specified substance as the ingredient",
default=None,
)
- strength: Optional[ListType[MedicinalProductIngredientSpecifiedSubstanceStrength]] = (
- Field(
- description="Quantity of the substance or specified substance present in the manufactured item or pharmaceutical product",
- default=None,
- )
+ strength: Optional[
+ ListType[MedicinalProductIngredientSpecifiedSubstanceStrength]
+ ] = Field(
+ description="Quantity of the substance or specified substance present in the manufactured item or pharmaceutical product",
+ default=None,
)
- @field_validator(
- *(
- "strength",
- "confidentiality",
- "group",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "confidentiality",
+ "group",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -267,32 +252,27 @@ class MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength(
default=None,
)
- @field_validator(
- *(
- "country",
- "measurementPoint",
- "strengthLowLimit",
- "strength",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "country",
+ "measurementPoint",
+ "strengthLowLimit",
+ "strength",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -341,38 +321,33 @@ class MedicinalProductIngredientSubstanceStrength(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "referenceStrength",
- "country",
- "measurementPoint",
- "concentrationLowLimit",
- "concentration",
- "presentationLowLimit",
- "presentation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceStrength",
+ "country",
+ "measurementPoint",
+ "concentrationLowLimit",
+ "concentration",
+ "presentationLowLimit",
+ "presentation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -394,23 +369,18 @@ class MedicinalProductIngredientSubstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "strength",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -495,11 +465,11 @@ class MedicinalProductIngredient(DomainResource):
description="Manufacturer of this Ingredient",
default=None,
)
- specifiedSubstance: Optional[ListType[MedicinalProductIngredientSpecifiedSubstance]] = (
- Field(
- description="A specified substance that comprises this ingredient",
- default=None,
- )
+ specifiedSubstance: Optional[
+ ListType[MedicinalProductIngredientSpecifiedSubstance]
+ ] = Field(
+ description="A specified substance that comprises this ingredient",
+ default=None,
)
substance: Optional[MedicinalProductIngredientSubstance] = Field(
description="The ingredient substance",
@@ -510,43 +480,38 @@ class MedicinalProductIngredient(DomainResource):
default="MedicinalProductIngredient",
)
- @field_validator(
- *(
- "substance",
- "specifiedSubstance",
- "manufacturer",
- "allergenicIndicator",
- "role",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "substance",
+ "specifiedSubstance",
+ "manufacturer",
+ "allergenicIndicator",
+ "role",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_interaction.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_interaction.py
index aa2e72de..985c8d47 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_interaction.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_interaction.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -157,44 +157,39 @@ class MedicinalProductInteraction(DomainResource):
default="MedicinalProductInteraction",
)
- @field_validator(
- *(
- "management",
- "incidence",
- "effect",
- "type",
- "interactant",
- "description",
- "subject",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "management",
+ "incidence",
+ "effect",
+ "type",
+ "interactant",
+ "description",
+ "subject",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_manufactured.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_manufactured.py
index e66c0779..2af5b016 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_manufactured.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_manufactured.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -122,44 +122,39 @@ class MedicinalProductManufactured(DomainResource):
default="MedicinalProductManufactured",
)
- @field_validator(
- *(
- "otherCharacteristics",
- "physicalCharacteristics",
- "ingredient",
- "manufacturer",
- "quantity",
- "unitOfPresentation",
- "manufacturedDoseForm",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherCharacteristics",
+ "physicalCharacteristics",
+ "ingredient",
+ "manufacturer",
+ "quantity",
+ "unitOfPresentation",
+ "manufacturedDoseForm",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_packaged.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_packaged.py
index adfb4353..c28c60df 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_packaged.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_packaged.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class MedicinalProductPackagedBatchIdentifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "immediatePackaging",
- "outerPackaging",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "immediatePackaging",
+ "outerPackaging",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -129,53 +124,48 @@ class MedicinalProductPackagedPackageItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manufacturer",
- "shelfLifeStorage",
- "otherCharacteristics",
- "physicalCharacteristics",
- "packageItem",
- "manufacturedItem",
- "device",
- "alternateMaterial",
- "material",
- "quantity",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manufacturer",
+ "shelfLifeStorage",
+ "otherCharacteristics",
+ "physicalCharacteristics",
+ "packageItem",
+ "manufacturedItem",
+ "device",
+ "alternateMaterial",
+ "material",
+ "quantity",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -270,9 +260,11 @@ class MedicinalProductPackaged(DomainResource):
description="Manufacturer of this Package Item",
default=None,
)
- batchIdentifier: Optional[ListType[MedicinalProductPackagedBatchIdentifier]] = Field(
- description="Batch numbering",
- default=None,
+ batchIdentifier: Optional[ListType[MedicinalProductPackagedBatchIdentifier]] = (
+ Field(
+ description="Batch numbering",
+ default=None,
+ )
)
packageItem: Optional[ListType[MedicinalProductPackagedPackageItem]] = Field(
description="A packaging item, as a contained for medicine, possibly with other packaging items within",
@@ -283,46 +275,41 @@ class MedicinalProductPackaged(DomainResource):
default="MedicinalProductPackaged",
)
- @field_validator(
- *(
- "packageItem",
- "batchIdentifier",
- "manufacturer",
- "marketingAuthorization",
- "marketingStatus",
- "legalStatusOfSupply",
- "description",
- "subject",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageItem",
+ "batchIdentifier",
+ "manufacturer",
+ "marketingAuthorization",
+ "marketingStatus",
+ "legalStatusOfSupply",
+ "description",
+ "subject",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_pharmaceutical.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_pharmaceutical.py
index 95bedf0f..8f1c2adf 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_pharmaceutical.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_pharmaceutical.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -50,23 +50,18 @@ class MedicinalProductPharmaceuticalCharacteristics(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "status",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -99,26 +94,21 @@ class MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawal
alias="_supportingInformation",
)
- @field_validator(
- *(
- "supportingInformation",
- "value",
- "tissue",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "value",
+ "tissue",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -144,23 +134,18 @@ class MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies(BackboneE
default=None,
)
- @field_validator(
- *(
- "withdrawalPeriod",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "withdrawalPeriod",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,38 +189,33 @@ class MedicinalProductPharmaceuticalRouteOfAdministration(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "targetSpecies",
- "maxTreatmentPeriod",
- "maxDosePerTreatmentPeriod",
- "maxDosePerDay",
- "maxSingleDose",
- "firstDose",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetSpecies",
+ "maxTreatmentPeriod",
+ "maxDosePerTreatmentPeriod",
+ "maxDosePerDay",
+ "maxSingleDose",
+ "firstDose",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -319,11 +299,11 @@ class MedicinalProductPharmaceutical(DomainResource):
description="Accompanying device",
default=None,
)
- characteristics: Optional[ListType[MedicinalProductPharmaceuticalCharacteristics]] = (
- Field(
- description="Characteristics e.g. a products onset of action",
- default=None,
- )
+ characteristics: Optional[
+ ListType[MedicinalProductPharmaceuticalCharacteristics]
+ ] = Field(
+ description="Characteristics e.g. a products onset of action",
+ default=None,
)
routeOfAdministration: Optional[
ListType[MedicinalProductPharmaceuticalRouteOfAdministration]
@@ -336,44 +316,39 @@ class MedicinalProductPharmaceutical(DomainResource):
default="MedicinalProductPharmaceutical",
)
- @field_validator(
- *(
- "routeOfAdministration",
- "characteristics",
- "device",
- "ingredient",
- "unitOfPresentation",
- "administrableDoseForm",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "routeOfAdministration",
+ "characteristics",
+ "device",
+ "ingredient",
+ "unitOfPresentation",
+ "administrableDoseForm",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_undesirable_effect.py b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_undesirable_effect.py
index 57b33211..effbba44 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_undesirable_effect.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/medicinal_product_undesirable_effect.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -113,42 +113,37 @@ class MedicinalProductUndesirableEffect(DomainResource):
default="MedicinalProductUndesirableEffect",
)
- @field_validator(
- *(
- "population",
- "frequencyOfOccurrence",
- "classification",
- "symptomConditionEffect",
- "subject",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "population",
+ "frequencyOfOccurrence",
+ "classification",
+ "symptomConditionEffect",
+ "subject",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/message_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/message_definition.py
index 5fe1e7b5..b1e63267 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/message_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/message_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,29 +86,24 @@ class MessageDefinitionFocus(BackboneElement):
alias="_max",
)
- @field_validator(
- *(
- "max",
- "min",
- "profile",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "profile",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,23 +135,18 @@ class MessageDefinitionAllowedResponse(BackboneElement):
alias="_situation",
)
- @field_validator(
- *(
- "situation",
- "message",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "situation",
+ "message",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -420,72 +410,66 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "graph",
- "allowedResponse",
- "responseRequired",
- "focus",
- "category",
- "parent",
- "base",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "graph",
+ "allowedResponse",
+ "responseRequired",
+ "focus",
+ "category",
+ "parent",
+ "base",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("focus",), mode="after", check_fields=None)
- @classmethod
- def FHIR_md_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_md_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("focus",),
expression="max='*' or (max.toInteger() > 0)",
human="Max must be postive int or *",
key="md-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/message_header.py b/fhircraft/fhir/resources/datatypes/R4/core/message_header.py
index c3ba11b2..f6532466 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/message_header.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/message_header.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -73,29 +73,24 @@ class MessageHeaderDestination(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "receiver",
- "endpoint",
- "target",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "endpoint",
+ "target",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -149,32 +144,27 @@ class MessageHeaderSource(BackboneElement):
alias="_endpoint",
)
- @field_validator(
- *(
- "endpoint",
- "contact",
- "version",
- "software",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "contact",
+ "version",
+ "software",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,26 +200,21 @@ class MessageHeaderResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "details",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "details",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -361,47 +346,42 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "definition",
- "focus",
- "response",
- "reason",
- "responsible",
- "source",
- "author",
- "enterer",
- "sender",
- "destination",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "focus",
+ "response",
+ "reason",
+ "responsible",
+ "source",
+ "author",
+ "enterer",
+ "sender",
+ "destination",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/metadata_resource.py b/fhircraft/fhir/resources/datatypes/R4/core/metadata_resource.py
index 9f7a4798..df4d9c30 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/metadata_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/metadata_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -42,7 +42,8 @@ class MetadataResource(FHIRBaseModel):
"""
Common Ancestor declaration for conformance and knowledge artifact resources.
"""
- _fhir_release="R4"
+
+ _fhir_release = "R4"
id: Optional[String] = Field(
description="Logical id of this artifact",
@@ -191,49 +192,44 @@ class MetadataResource(FHIRBaseModel):
default="MetadataResource",
)
- @field_validator(
- *(
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/molecular_sequence.py b/fhircraft/fhir/resources/datatypes/R4/core/molecular_sequence.py
index 7d49061b..9fa39211 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/molecular_sequence.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/molecular_sequence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -113,44 +113,39 @@ class MolecularSequenceReferenceSeq(BackboneElement):
alias="_windowEnd",
)
- @field_validator(
- *(
- "windowEnd",
- "windowStart",
- "strand",
- "referenceSeqString",
- "referenceSeqPointer",
- "referenceSeqId",
- "orientation",
- "genomeBuild",
- "chromosome",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "windowEnd",
+ "windowStart",
+ "strand",
+ "referenceSeqString",
+ "referenceSeqPointer",
+ "referenceSeqId",
+ "orientation",
+ "genomeBuild",
+ "chromosome",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,35 +208,30 @@ class MolecularSequenceVariant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "variantPointer",
- "cigar",
- "referenceAllele",
- "observedAllele",
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "variantPointer",
+ "cigar",
+ "referenceAllele",
+ "observedAllele",
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,38 +308,33 @@ class MolecularSequenceQualityRoc(BackboneElement):
alias="_fMeasure",
)
- @field_validator(
- *(
- "fMeasure",
- "sensitivity",
- "precision",
- "numFN",
- "numFP",
- "numTP",
- "score",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "fMeasure",
+ "sensitivity",
+ "precision",
+ "numFN",
+ "numFP",
+ "numTP",
+ "score",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -478,62 +463,57 @@ class MolecularSequenceQuality(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "roc",
- "fScore",
- "recall",
- "precision",
- "gtFP",
- "queryFP",
- "truthFN",
- "queryTP",
- "truthTP",
- "method",
- "score",
- "end",
- "start",
- "standardSequence",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "roc",
+ "fScore",
+ "recall",
+ "precision",
+ "gtFP",
+ "queryFP",
+ "truthFN",
+ "queryTP",
+ "truthTP",
+ "method",
+ "score",
+ "end",
+ "start",
+ "standardSequence",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -601,35 +581,30 @@ class MolecularSequenceRepository(BackboneElement):
alias="_readsetId",
)
- @field_validator(
- *(
- "readsetId",
- "variantsetId",
- "datasetId",
- "name",
- "url",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "readsetId",
+ "variantsetId",
+ "datasetId",
+ "name",
+ "url",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -661,23 +636,18 @@ class MolecularSequenceStructureVariantOuter(BackboneElement):
alias="_end",
)
- @field_validator(
- *(
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -709,23 +679,18 @@ class MolecularSequenceStructureVariantInner(BackboneElement):
alias="_end",
)
- @field_validator(
- *(
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -769,32 +734,27 @@ class MolecularSequenceStructureVariant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "inner",
- "outer",
- "length",
- "exact",
- "variantType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "inner",
+ "outer",
+ "length",
+ "exact",
+ "variantType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -945,77 +905,70 @@ class MolecularSequence(DomainResource):
default="MolecularSequence",
)
- @field_validator(
- *(
- "structureVariant",
- "pointer",
- "repository",
- "readCoverage",
- "quality",
- "observedSeq",
- "variant",
- "referenceSeq",
- "quantity",
- "performer",
- "device",
- "specimen",
- "patient",
- "coordinateSystem",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "structureVariant",
+ "pointer",
+ "repository",
+ "readCoverage",
+ "quality",
+ "observedSeq",
+ "variant",
+ "referenceSeq",
+ "quantity",
+ "performer",
+ "device",
+ "specimen",
+ "patient",
+ "coordinateSystem",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("referenceSeq",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceSeq",),
expression="(chromosome.empty() and genomeBuild.empty()) or (chromosome.exists() and genomeBuild.exists())",
human="GenomeBuild and chromosome must be both contained if either one of them is contained",
key="msq-5",
severity="error",
)
- @field_validator(*("referenceSeq",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceSeq",),
expression="(genomeBuild.count()+referenceSeqId.count()+ referenceSeqPointer.count()+ referenceSeqString.count()) = 1",
human="Have and only have one of the following elements in referenceSeq : 1. genomeBuild ; 2 referenceSeqId; 3. referenceSeqPointer; 4. referenceSeqString;",
key="msq-6",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/naming_system.py b/fhircraft/fhir/resources/datatypes/R4/core/naming_system.py
index 1c736021..ad059c1b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/naming_system.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/naming_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,32 +87,27 @@ class NamingSystemUniqueId(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "comment",
- "preferred",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "comment",
+ "preferred",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -271,50 +266,45 @@ class NamingSystem(DomainResource):
default="NamingSystem",
)
- @field_validator(
- *(
- "uniqueId",
- "usage",
- "jurisdiction",
- "useContext",
- "description",
- "type",
- "responsible",
- "contact",
- "publisher",
- "date",
- "kind",
- "status",
- "name",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uniqueId",
+ "usage",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "type",
+ "responsible",
+ "contact",
+ "publisher",
+ "date",
+ "kind",
+ "status",
+ "name",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/nutrition_order.py b/fhircraft/fhir/resources/datatypes/R4/core/nutrition_order.py
index 905e8e2c..b5c0d89a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/nutrition_order.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/nutrition_order.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class NutritionOrderOralDietNutrient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -95,23 +90,18 @@ class NutritionOrderOralDietTexture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "foodType",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "foodType",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,35 +144,30 @@ class NutritionOrderOralDiet(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "fluidConsistencyType",
- "texture",
- "nutrient",
- "schedule",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "fluidConsistencyType",
+ "texture",
+ "nutrient",
+ "schedule",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -226,32 +211,27 @@ class NutritionOrderSupplement(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "quantity",
- "schedule",
- "productName",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "quantity",
+ "schedule",
+ "productName",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -288,23 +268,18 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "quantity",
- "schedule",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "schedule",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -360,9 +335,11 @@ class NutritionOrderEnteralFormula(BackboneElement):
description="How the formula should enter the patient\u0027s gastrointestinal tract",
default=None,
)
- administration: Optional[ListType[NutritionOrderEnteralFormulaAdministration]] = Field(
- description="Formula feeding instruction as structured data",
- default=None,
+ administration: Optional[ListType[NutritionOrderEnteralFormulaAdministration]] = (
+ Field(
+ description="Formula feeding instruction as structured data",
+ default=None,
+ )
)
maxVolumeToDeliver: Optional[Quantity] = Field(
description="Upper limit on formula volume per unit of time",
@@ -378,44 +355,39 @@ class NutritionOrderEnteralFormula(BackboneElement):
alias="_administrationInstruction",
)
- @field_validator(
- *(
- "administrationInstruction",
- "maxVolumeToDeliver",
- "administration",
- "routeofAdministration",
- "caloricDensity",
- "additiveProductName",
- "additiveType",
- "baseFormulaProductName",
- "baseFormulaType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "administrationInstruction",
+ "maxVolumeToDeliver",
+ "administration",
+ "routeofAdministration",
+ "caloricDensity",
+ "additiveProductName",
+ "additiveType",
+ "baseFormulaProductName",
+ "baseFormulaType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -580,54 +552,49 @@ class NutritionOrder(DomainResource):
default="NutritionOrder",
)
- @field_validator(
- *(
- "note",
- "enteralFormula",
- "supplement",
- "oralDiet",
- "excludeFoodModifier",
- "foodPreferenceModifier",
- "allergyIntolerance",
- "orderer",
- "dateTime",
- "encounter",
- "patient",
- "intent",
- "status",
- "instantiates",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "enteralFormula",
+ "supplement",
+ "oralDiet",
+ "excludeFoodModifier",
+ "foodPreferenceModifier",
+ "allergyIntolerance",
+ "orderer",
+ "dateTime",
+ "encounter",
+ "patient",
+ "intent",
+ "status",
+ "instantiates",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/observation.py b/fhircraft/fhir/resources/datatypes/R4/core/observation.py
index 2135ec67..ab5b0fc6 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/observation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/observation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,35 +84,30 @@ class ObservationReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -155,35 +150,30 @@ class ObservationComponentReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -289,29 +279,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "referenceRange",
- "interpretation",
- "dataAbsentReason",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceRange",
+ "interpretation",
+ "dataAbsentReason",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -606,71 +591,65 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "component",
- "derivedFrom",
- "hasMember",
- "referenceRange",
- "device",
- "specimen",
- "method",
- "bodySite",
- "note",
- "interpretation",
- "dataAbsentReason",
- "performer",
- "issued",
- "encounter",
- "focus",
- "subject",
- "code",
- "category",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "derivedFrom",
+ "hasMember",
+ "referenceRange",
+ "device",
+ "specimen",
+ "method",
+ "bodySite",
+ "note",
+ "interpretation",
+ "dataAbsentReason",
+ "performer",
+ "issued",
+ "encounter",
+ "focus",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("referenceRange",), mode="after", check_fields=None)
- @classmethod
- def FHIR_obs_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_obs_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceRange",),
expression="low.exists() or high.exists() or text.exists()",
human="Must have at least a low or a high or text",
key="obs-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/observation_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/observation_definition.py
index 5448e61e..34722ab4 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/observation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/observation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -73,29 +73,24 @@ class ObservationDefinitionQuantitativeDetails(BackboneElement):
alias="_decimalPrecision",
)
- @field_validator(
- *(
- "decimalPrecision",
- "conversionFactor",
- "unit",
- "customaryUnit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "decimalPrecision",
+ "conversionFactor",
+ "unit",
+ "customaryUnit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,41 +151,36 @@ class ObservationDefinitionQualifiedInterval(BackboneElement):
alias="_condition",
)
- @field_validator(
- *(
- "condition",
- "gestationalAge",
- "age",
- "gender",
- "appliesTo",
- "context",
- "range",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "gestationalAge",
+ "age",
+ "gender",
+ "appliesTo",
+ "context",
+ "range",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -299,9 +289,11 @@ class ObservationDefinition(DomainResource):
description="Characteristics of quantitative results",
default=None,
)
- qualifiedInterval: Optional[ListType[ObservationDefinitionQualifiedInterval]] = Field(
- description="Qualified range for continuous and ordinal observation results",
- default=None,
+ qualifiedInterval: Optional[ListType[ObservationDefinitionQualifiedInterval]] = (
+ Field(
+ description="Qualified range for continuous and ordinal observation results",
+ default=None,
+ )
)
validCodedValueSet: Optional[Reference] = Field(
description="Value set of valid coded values for the observations conforming to this ObservationDefinition",
@@ -324,50 +316,45 @@ class ObservationDefinition(DomainResource):
default="ObservationDefinition",
)
- @field_validator(
- *(
- "criticalCodedValueSet",
- "abnormalCodedValueSet",
- "normalCodedValueSet",
- "validCodedValueSet",
- "qualifiedInterval",
- "quantitativeDetails",
- "preferredReportName",
- "method",
- "multipleResultsAllowed",
- "permittedDataType",
- "identifier",
- "code",
- "category",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criticalCodedValueSet",
+ "abnormalCodedValueSet",
+ "normalCodedValueSet",
+ "validCodedValueSet",
+ "qualifiedInterval",
+ "quantitativeDetails",
+ "preferredReportName",
+ "method",
+ "multipleResultsAllowed",
+ "permittedDataType",
+ "identifier",
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/operation_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/operation_definition.py
index 51270d95..5b06ddb9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/operation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/operation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class OperationDefinitionParameterBinding(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "strength",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "strength",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,23 +109,18 @@ class OperationDefinitionParameterReferencedFrom(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,59 +209,56 @@ class OperationDefinitionParameter(BackboneElement):
description="ValueSet details if this is coded",
default=None,
)
- referencedFrom: Optional[ListType[OperationDefinitionParameterReferencedFrom]] = Field(
- description="References to this parameter",
- default=None,
+ referencedFrom: Optional[ListType[OperationDefinitionParameterReferencedFrom]] = (
+ Field(
+ description="References to this parameter",
+ default=None,
+ )
)
part: Optional[ListType["OperationDefinitionParameter"]] = Field(
description="Parts of a nested Parameter",
default=None,
)
- @field_validator(
- *(
- "part",
- "referencedFrom",
- "binding",
- "searchType",
- "targetProfile",
- "type",
- "documentation",
- "max",
- "min",
- "use",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "referencedFrom",
+ "binding",
+ "searchType",
+ "targetProfile",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "use",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,23 +290,18 @@ class OperationDefinitionOverload(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "parameterName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "parameterName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -595,99 +577,91 @@ class OperationDefinition(DomainResource):
default="OperationDefinition",
)
- @field_validator(
- *(
- "overload",
- "parameter",
- "outputProfile",
- "inputProfile",
- "instance",
- "type",
- "system",
- "resource",
- "base",
- "comment",
- "code",
- "affectsState",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "kind",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "overload",
+ "parameter",
+ "outputProfile",
+ "inputProfile",
+ "instance",
+ "type",
+ "system",
+ "resource",
+ "base",
+ "comment",
+ "code",
+ "affectsState",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "kind",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="type.exists() or part.exists()",
human="Either a type must be provided, or parts",
key="opd-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="searchType.exists() implies type = 'string'",
human="A search type can only be specified for parameters of type string",
key="opd-2",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="targetProfile.exists() implies (type = 'Reference' or type = 'canonical')",
human="A targetProfile can only be specified for parameters of type Reference or Canonical",
key="opd-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/operation_outcome.py b/fhircraft/fhir/resources/datatypes/R4/core/operation_outcome.py
index 3e1fd977..adb7d56a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/operation_outcome.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/operation_outcome.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,35 +86,30 @@ class OperationOutcomeIssue(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "location",
- "diagnostics",
- "details",
- "code",
- "severity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "location",
+ "diagnostics",
+ "details",
+ "code",
+ "severity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -185,38 +180,33 @@ class OperationOutcome(DomainResource):
default="OperationOutcome",
)
- @field_validator(
- *(
- "issue",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issue",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/organization.py b/fhircraft/fhir/resources/datatypes/R4/core/organization.py
index 95ddcaf7..35809061 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/organization.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/organization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,29 +58,24 @@ class OrganizationContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "address",
- "telecom",
- "name",
- "purpose",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "telecom",
+ "name",
+ "purpose",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,71 +197,64 @@ class Organization(DomainResource):
default="Organization",
)
- @field_validator(
- *(
- "endpoint",
- "contact",
- "partOf",
- "address",
- "telecom",
- "alias",
- "name",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "contact",
+ "partOf",
+ "address",
+ "telecom",
+ "alias",
+ "name",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("telecom",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("telecom",),
expression="where(use = 'home').empty()",
human="The telecom of an organization can never be of use 'home'",
key="org-3",
severity="error",
)
- @field_validator(*("address",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("address",),
expression="where(use = 'home').empty()",
human="An address of an organization can never be of use 'home'",
key="org-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/organization_affiliation.py b/fhircraft/fhir/resources/datatypes/R4/core/organization_affiliation.py
index b4b34be7..30e1913c 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/organization_affiliation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/organization_affiliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -146,49 +146,44 @@ class OrganizationAffiliation(DomainResource):
default="OrganizationAffiliation",
)
- @field_validator(
- *(
- "endpoint",
- "telecom",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "network",
- "participatingOrganization",
- "organization",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "telecom",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "network",
+ "participatingOrganization",
+ "organization",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/parameters.py b/fhircraft/fhir/resources/datatypes/R4/core/parameters.py
index f42ebcf0..c7e56523 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/parameters.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/parameters.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -406,23 +406,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "part",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -537,28 +532,27 @@ class Parameters(Resource):
default="Parameters",
)
- @field_validator(
- *("parameter", "language", "implicitRules", "meta"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="(part.exists() and value.empty() and resource.empty()) or (part.empty() and (value.exists() xor resource.exists()))",
human="A parameter must have one and only one of (value, resource, part)",
key="inv-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/patient.py b/fhircraft/fhir/resources/datatypes/R4/core/patient.py
index da26cafd..d691bf5b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/patient.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/patient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,38 +85,33 @@ class PatientContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "organization",
- "gender",
- "address",
- "telecom",
- "name",
- "relationship",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "organization",
+ "gender",
+ "address",
+ "telecom",
+ "name",
+ "relationship",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -143,23 +138,18 @@ class PatientCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,23 +176,18 @@ class PatientLink(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "other",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "other",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,63 +375,57 @@ def multipleBirth(self):
base="multipleBirth",
)
- @field_validator(
- *(
- "link",
- "managingOrganization",
- "generalPractitioner",
- "communication",
- "contact",
- "photo",
- "maritalStatus",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "managingOrganization",
+ "generalPractitioner",
+ "communication",
+ "contact",
+ "photo",
+ "maritalStatus",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pat_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pat_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="name.exists() or telecom.exists() or address.exists() or organization.exists()",
human="SHALL at least contain a contact's details or a reference to an organization",
key="pat-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/payment_notice.py b/fhircraft/fhir/resources/datatypes/R4/core/payment_notice.py
index 1f3175ca..e821e837 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/payment_notice.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/payment_notice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -161,49 +161,44 @@ class PaymentNotice(DomainResource):
default="PaymentNotice",
)
- @field_validator(
- *(
- "paymentStatus",
- "amount",
- "recipient",
- "payee",
- "paymentDate",
- "payment",
- "provider",
- "created",
- "response",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "paymentStatus",
+ "amount",
+ "recipient",
+ "payee",
+ "paymentDate",
+ "payment",
+ "provider",
+ "created",
+ "response",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/payment_reconciliation.py b/fhircraft/fhir/resources/datatypes/R4/core/payment_reconciliation.py
index 1b58bbdf..0317d569 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/payment_reconciliation.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/payment_reconciliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -92,47 +92,42 @@ class PaymentReconciliationDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "payee",
- "responsible",
- "date",
- "response",
- "submitter",
- "request",
- "type",
- "predecessor",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "payee",
+ "responsible",
+ "date",
+ "response",
+ "submitter",
+ "request",
+ "type",
+ "predecessor",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,23 +159,18 @@ class PaymentReconciliationProcessNote(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,52 +322,47 @@ class PaymentReconciliation(DomainResource):
default="PaymentReconciliation",
)
- @field_validator(
- *(
- "processNote",
- "formCode",
- "detail",
- "paymentIdentifier",
- "paymentAmount",
- "paymentDate",
- "disposition",
- "outcome",
- "requestor",
- "request",
- "paymentIssuer",
- "created",
- "period",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "processNote",
+ "formCode",
+ "detail",
+ "paymentIdentifier",
+ "paymentAmount",
+ "paymentDate",
+ "disposition",
+ "outcome",
+ "requestor",
+ "request",
+ "paymentIssuer",
+ "created",
+ "period",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/person.py b/fhircraft/fhir/resources/datatypes/R4/core/person.py
index 378498c8..bc2e13e9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/person.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class PersonLink(BackboneElement):
alias="_assurance",
)
- @field_validator(
- *(
- "assurance",
- "target",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assurance",
+ "target",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -199,47 +194,42 @@ class Person(DomainResource):
default="Person",
)
- @field_validator(
- *(
- "link",
- "active",
- "managingOrganization",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "active",
+ "managingOrganization",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/plan_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/plan_definition.py
index e7636f9f..4970751a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/plan_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/plan_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,23 +88,18 @@ def detail(self):
base="detail",
)
- @field_validator(
- *(
- "due",
- "measure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "due",
+ "measure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -155,38 +150,33 @@ class PlanDefinitionGoal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "documentation",
- "addresses",
- "start",
- "priority",
- "description",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "documentation",
+ "addresses",
+ "start",
+ "priority",
+ "description",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,23 +203,18 @@ class PlanDefinitionActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -276,23 +261,18 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "relationship",
- "actionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relationship",
+ "actionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -328,23 +308,18 @@ class PlanDefinitionActionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -371,23 +346,18 @@ class PlanDefinitionActionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -633,89 +603,84 @@ def definition(self):
base="definition",
)
- @field_validator(
- *(
- "action",
- "dynamicValue",
- "transform",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "relatedAction",
- "output",
- "input",
- "condition",
- "trigger",
- "goalId",
- "documentation",
- "reason",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "dynamicValue",
+ "transform",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "relatedAction",
+ "output",
+ "input",
+ "condition",
+ "trigger",
+ "goalId",
+ "documentation",
+ "reason",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1024,67 +989,62 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "action",
- "goal",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "type",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "goal",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "type",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/practitioner.py b/fhircraft/fhir/resources/datatypes/R4/core/practitioner.py
index 8a0ed53d..74a554f9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/practitioner.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/practitioner.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,29 +66,24 @@ class PractitionerQualification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "issuer",
- "period",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issuer",
+ "period",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,47 +205,42 @@ class Practitioner(DomainResource):
default="Practitioner",
)
- @field_validator(
- *(
- "communication",
- "qualification",
- "photo",
- "birthDate",
- "gender",
- "address",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "qualification",
+ "photo",
+ "birthDate",
+ "gender",
+ "address",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/practitioner_role.py b/fhircraft/fhir/resources/datatypes/R4/core/practitioner_role.py
index dc271896..b3bf92f1 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/practitioner_role.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/practitioner_role.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,29 +83,24 @@ class PractitionerRoleAvailableTime(BackboneElement):
alias="_availableEndTime",
)
- @field_validator(
- *(
- "availableEndTime",
- "availableStartTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "availableEndTime",
+ "availableStartTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,23 +127,18 @@ class PractitionerRoleNotAvailable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "during",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "during",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,51 +271,46 @@ class PractitionerRole(DomainResource):
default="PractitionerRole",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "notAvailable",
- "availableTime",
- "telecom",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "organization",
- "practitioner",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "notAvailable",
+ "availableTime",
+ "telecom",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "organization",
+ "practitioner",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/procedure.py b/fhircraft/fhir/resources/datatypes/R4/core/procedure.py
index f700839e..26434dd4 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/procedure.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/procedure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,26 +61,21 @@ class ProcedurePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -102,23 +97,18 @@ class ProcedureFocalDevice(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manipulated",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manipulated",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -345,64 +335,59 @@ def performed(self):
base="performed",
)
- @field_validator(
- *(
- "usedCode",
- "usedReference",
- "focalDevice",
- "note",
- "followUp",
- "complicationDetail",
- "complication",
- "report",
- "outcome",
- "bodySite",
- "reasonReference",
- "reasonCode",
- "location",
- "performer",
- "asserter",
- "recorder",
- "encounter",
- "subject",
- "code",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "usedCode",
+ "usedReference",
+ "focalDevice",
+ "note",
+ "followUp",
+ "complicationDetail",
+ "complication",
+ "report",
+ "outcome",
+ "bodySite",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "performer",
+ "asserter",
+ "recorder",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/provenance.py b/fhircraft/fhir/resources/datatypes/R4/core/provenance.py
index 86242591..4613815f 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/provenance.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/provenance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,29 +62,24 @@ class ProvenanceAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,29 +109,24 @@ class ProvenanceEntityAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -167,26 +157,21 @@ class ProvenanceEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "agent",
- "what",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "agent",
+ "what",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -319,46 +304,41 @@ def occurred(self):
base="occurred",
)
- @field_validator(
- *(
- "signature",
- "entity",
- "agent",
- "activity",
- "reason",
- "location",
- "policy",
- "recorded",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entity",
+ "agent",
+ "activity",
+ "reason",
+ "location",
+ "policy",
+ "recorded",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/questionnaire.py b/fhircraft/fhir/resources/datatypes/R4/core/questionnaire.py
index 7171b143..1a045ad9 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/questionnaire.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/questionnaire.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -157,23 +157,18 @@ def answer(self):
base="answer",
)
- @field_validator(
- *(
- "operator",
- "question",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operator",
+ "question",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -267,16 +262,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("initialSelected", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "initialSelected",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -542,77 +536,71 @@ class QuestionnaireItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "initial",
- "answerOption",
- "answerValueSet",
- "maxLength",
- "readOnly",
- "repeats",
- "required",
- "enableBehavior",
- "enableWhen",
- "type",
- "text",
- "prefix",
- "code",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "initial",
+ "answerOption",
+ "answerValueSet",
+ "maxLength",
+ "readOnly",
+ "repeats",
+ "required",
+ "enableBehavior",
+ "enableWhen",
+ "type",
+ "text",
+ "prefix",
+ "code",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("enableWhen",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("enableWhen",),
expression="operator = 'exists' implies (answer is Boolean)",
human="If the operator is 'exists', the value must be a boolean",
key="que-7",
@@ -842,191 +830,175 @@ class Questionnaire(DomainResource):
default="Questionnaire",
)
- @field_validator(
- *(
- "item",
- "code",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "subjectType",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "code",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "subjectType",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('item').empty())",
human="Group items must have nested items, display items cannot have nested items",
key="que-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or code.empty()",
human='Display items cannot have a "code" asserted',
key="que-3",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or answerValueSet.empty()",
human="A question cannot have both answerOption and answerValueSet",
key="que-4",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type ='choice' or type = 'open-choice' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())",
human="Only 'choice' and 'open-choice' items can have answerValueSet",
key="que-5",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or (required.empty() and repeats.empty())",
human="Required and repeat aren't permitted for display items",
key="que-6",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type!='group' and type!='display') or initial.empty()",
human="Initial values can't be specified for groups or display items",
key="que-8",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or readOnly.empty()",
human='Read-only can\'t be specified for "display" items',
key="que-9",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url' | 'open-choice')) or maxLength.empty()",
human="Maximum length can only be declared for simple question types",
key="que-10",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or initial.empty()",
human="If one or more answerOption is present, initial[x] must be missing",
key="que-11",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="enableWhen.count() > 2 implies enableBehavior.exists()",
human="If there are more than one enableWhen, enableBehavior must be specified",
key="que-12",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="repeats=true or initial.count() <= 1",
human="Can only have multiple initial values for repeating items",
key="que-13",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/questionnaire_response.py b/fhircraft/fhir/resources/datatypes/R4/core/questionnaire_response.py
index 1d9d5ab1..1940d18a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/questionnaire_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/questionnaire_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -151,14 +151,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("item", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -229,32 +230,27 @@ class QuestionnaireResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "answer",
- "text",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "answer",
+ "text",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -380,60 +376,54 @@ class QuestionnaireResponse(DomainResource):
default="QuestionnaireResponse",
)
- @field_validator(
- *(
- "item",
- "source",
- "author",
- "authored",
- "encounter",
- "subject",
- "status",
- "questionnaire",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "source",
+ "author",
+ "authored",
+ "encounter",
+ "subject",
+ "status",
+ "questionnaire",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_qrs_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_qrs_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(answer.exists() and item.exists()).not()",
human="Nested item can't be beneath both item and answer",
key="qrs-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/related_person.py b/fhircraft/fhir/resources/datatypes/R4/core/related_person.py
index 26482ba8..4ead337b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/related_person.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/related_person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -63,23 +63,18 @@ class RelatedPersonCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -209,49 +204,44 @@ class RelatedPerson(DomainResource):
default="RelatedPerson",
)
- @field_validator(
- *(
- "communication",
- "period",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "relationship",
- "patient",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "period",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "relationship",
+ "patient",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/request_group.py b/fhircraft/fhir/resources/datatypes/R4/core/request_group.py
index 2762ee7a..094c5161 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/request_group.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/request_group.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,23 +67,18 @@ class RequestGroupActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -130,23 +125,18 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "relationship",
- "actionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relationship",
+ "actionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -327,71 +317,66 @@ def timing(self):
base="timing",
)
- @field_validator(
- *(
- "action",
- "resource",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "relatedAction",
- "condition",
- "documentation",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "resource",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "relatedAction",
+ "condition",
+ "documentation",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -569,67 +554,61 @@ class RequestGroup(DomainResource):
default="RequestGroup",
)
- @field_validator(
- *(
- "action",
- "note",
- "reasonReference",
- "reasonCode",
- "author",
- "authoredOn",
- "encounter",
- "subject",
- "code",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "author",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "code",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_rqg_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_rqg_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="resource.exists() != action.exists()",
human="Must have resource or action but not both",
key="rqg-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/research_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/research_definition.py
index 4eac037a..a8bba1e3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/research_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/research_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -341,70 +341,65 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "outcome",
- "exposureAlternative",
- "exposure",
- "population",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "comment",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcome",
+ "exposureAlternative",
+ "exposure",
+ "population",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "comment",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/research_element_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/research_element_definition.py
index 9af0d73f..0f5f7071 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/research_element_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/research_element_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -201,44 +201,39 @@ def participantEffective(self):
base="participantEffective",
)
- @field_validator(
- *(
- "participantEffectiveGroupMeasure",
- "participantEffectiveTimeFromStart",
- "participantEffectiveDescription",
- "studyEffectiveGroupMeasure",
- "studyEffectiveTimeFromStart",
- "studyEffectiveDescription",
- "unitOfMeasure",
- "exclude",
- "usageContext",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "participantEffectiveGroupMeasure",
+ "participantEffectiveTimeFromStart",
+ "participantEffectiveDescription",
+ "studyEffectiveGroupMeasure",
+ "studyEffectiveTimeFromStart",
+ "studyEffectiveDescription",
+ "unitOfMeasure",
+ "exclude",
+ "usageContext",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -577,69 +572,64 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "characteristic",
- "variableType",
- "type",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "comment",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "variableType",
+ "type",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "comment",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/research_study.py b/fhircraft/fhir/resources/datatypes/R4/core/research_study.py
index 95f41cc4..1e0cb9b3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/research_study.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/research_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class ResearchStudyArm(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class ResearchStudyObjective(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,61 +295,56 @@ class ResearchStudy(DomainResource):
default="ResearchStudy",
)
- @field_validator(
- *(
- "objective",
- "arm",
- "note",
- "reasonStopped",
- "site",
- "principalInvestigator",
- "sponsor",
- "period",
- "enrollment",
- "description",
- "location",
- "keyword",
- "relatedArtifact",
- "contact",
- "condition",
- "focus",
- "category",
- "phase",
- "primaryPurposeType",
- "status",
- "partOf",
- "protocol",
- "title",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "objective",
+ "arm",
+ "note",
+ "reasonStopped",
+ "site",
+ "principalInvestigator",
+ "sponsor",
+ "period",
+ "enrollment",
+ "description",
+ "location",
+ "keyword",
+ "relatedArtifact",
+ "contact",
+ "condition",
+ "focus",
+ "category",
+ "phase",
+ "primaryPurposeType",
+ "status",
+ "partOf",
+ "protocol",
+ "title",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/research_subject.py b/fhircraft/fhir/resources/datatypes/R4/core/research_subject.py
index 2bef0dd3..53eb2bd7 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/research_subject.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/research_subject.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -138,45 +138,40 @@ class ResearchSubject(DomainResource):
default="ResearchSubject",
)
- @field_validator(
- *(
- "consent",
- "actualArm",
- "assignedArm",
- "individual",
- "study",
- "period",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "consent",
+ "actualArm",
+ "assignedArm",
+ "individual",
+ "study",
+ "period",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/resource.py b/fhircraft/fhir/resources/datatypes/R4/core/resource.py
index 8fd7cda3..5dfce6e2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -26,7 +26,8 @@ class Resource(FHIRBaseModel):
"""
This is the base resource type for everything.
"""
- _fhir_release="R4"
+
+ _fhir_release = "R4"
id: Optional[String] = Field(
description="Logical id of this artifact",
@@ -39,7 +40,9 @@ class Resource(FHIRBaseModel):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Resource"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Resource"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -64,14 +67,15 @@ class Resource(FHIRBaseModel):
default="Resource",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/risk_assessment.py b/fhircraft/fhir/resources/datatypes/R4/core/risk_assessment.py
index 32042a00..39a8a2df 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/risk_assessment.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/risk_assessment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,29 +109,24 @@ def when(self):
base="when",
)
- @field_validator(
- *(
- "rationale",
- "relativeRisk",
- "qualitativeRisk",
- "outcome",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rationale",
+ "relativeRisk",
+ "qualitativeRisk",
+ "outcome",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -310,65 +305,59 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "mitigation",
- "prediction",
- "basis",
- "reasonReference",
- "reasonCode",
- "performer",
- "condition",
- "encounter",
- "subject",
- "code",
- "method",
- "status",
- "parent",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "mitigation",
+ "prediction",
+ "basis",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "condition",
+ "encounter",
+ "subject",
+ "code",
+ "method",
+ "status",
+ "parent",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("prediction",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ras_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ras_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("prediction",),
expression="probability is decimal implies (probability as decimal) <= 100",
human="Must be <= 100",
key="ras-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/risk_evidence_synthesis.py b/fhircraft/fhir/resources/datatypes/R4/core/risk_evidence_synthesis.py
index 4b3bafd4..5d670591 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/risk_evidence_synthesis.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/risk_evidence_synthesis.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,26 +80,21 @@ class RiskEvidenceSynthesisSampleSize(BackboneElement):
alias="_numberOfParticipants",
)
- @field_validator(
- *(
- "numberOfParticipants",
- "numberOfStudies",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "numberOfParticipants",
+ "numberOfStudies",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -144,29 +139,24 @@ class RiskEvidenceSynthesisRiskEstimatePrecisionEstimate(BackboneElement):
alias="_to",
)
- @field_validator(
- *(
- "to",
- "from_",
- "level",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "to",
+ "from_",
+ "level",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -230,38 +220,33 @@ class RiskEvidenceSynthesisRiskEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "precisionEstimate",
- "numeratorCount",
- "denominatorCount",
- "unitOfMeasure",
- "value",
- "type",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "precisionEstimate",
+ "numeratorCount",
+ "denominatorCount",
+ "unitOfMeasure",
+ "value",
+ "type",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -287,26 +272,21 @@ class RiskEvidenceSynthesisCertaintyCertaintySubcomponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "rating",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "rating",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -334,26 +314,21 @@ class RiskEvidenceSynthesisCertainty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "certaintySubcomponent",
- "note",
- "rating",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certaintySubcomponent",
+ "note",
+ "rating",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -599,68 +574,63 @@ class RiskEvidenceSynthesis(DomainResource):
default="RiskEvidenceSynthesis",
)
- @field_validator(
- *(
- "certainty",
- "riskEstimate",
- "sampleSize",
- "outcome",
- "exposure",
- "population",
- "studyType",
- "synthesisType",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "note",
- "description",
- "contact",
- "publisher",
- "date",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certainty",
+ "riskEstimate",
+ "sampleSize",
+ "outcome",
+ "exposure",
+ "population",
+ "studyType",
+ "synthesisType",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "note",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/schedule.py b/fhircraft/fhir/resources/datatypes/R4/core/schedule.py
index 002e1ae5..3a548e42 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/schedule.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/schedule.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -134,45 +134,40 @@ class Schedule(DomainResource):
default="Schedule",
)
- @field_validator(
- *(
- "comment",
- "planningHorizon",
- "actor",
- "specialty",
- "serviceType",
- "serviceCategory",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "planningHorizon",
+ "actor",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/search_parameter.py b/fhircraft/fhir/resources/datatypes/R4/core/search_parameter.py
index fad6bc26..d185bfec 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/search_parameter.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/search_parameter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class SearchParameterComponent(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "definition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "definition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -362,63 +357,58 @@ class SearchParameter(DomainResource):
default="SearchParameter",
)
- @field_validator(
- *(
- "component",
- "chain",
- "modifier",
- "comparator",
- "multipleAnd",
- "multipleOr",
- "target",
- "xpathUsage",
- "xpath",
- "expression",
- "type",
- "base",
- "code",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFrom",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "chain",
+ "modifier",
+ "comparator",
+ "multipleAnd",
+ "multipleOr",
+ "target",
+ "xpathUsage",
+ "xpath",
+ "expression",
+ "type",
+ "base",
+ "code",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/service_request.py b/fhircraft/fhir/resources/datatypes/R4/core/service_request.py
index 7e8c76b7..b853c665 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/service_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/service_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -327,67 +327,62 @@ def asNeeded(self):
base="asNeeded",
)
- @field_validator(
- *(
- "relevantHistory",
- "patientInstruction",
- "note",
- "bodySite",
- "specimen",
- "supportingInfo",
- "insurance",
- "reasonReference",
- "reasonCode",
- "locationReference",
- "locationCode",
- "performer",
- "performerType",
- "requester",
- "authoredOn",
- "encounter",
- "subject",
- "orderDetail",
- "code",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "status",
- "requisition",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "patientInstruction",
+ "note",
+ "bodySite",
+ "specimen",
+ "supportingInfo",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "locationReference",
+ "locationCode",
+ "performer",
+ "performerType",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "orderDetail",
+ "code",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "status",
+ "requisition",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/slot.py b/fhircraft/fhir/resources/datatypes/R4/core/slot.py
index 2b7db944..6f877cca 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/slot.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/slot.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -166,48 +166,43 @@ class Slot(DomainResource):
default="Slot",
)
- @field_validator(
- *(
- "comment",
- "overbooked",
- "end",
- "start",
- "status",
- "schedule",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "overbooked",
+ "end",
+ "start",
+ "status",
+ "schedule",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/specimen.py b/fhircraft/fhir/resources/datatypes/R4/core/specimen.py
index 08bd9437..847ab016 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/specimen.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/specimen.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,32 +98,27 @@ def fastingStatus(self):
base="fastingStatus",
)
- @field_validator(
- *(
- "bodySite",
- "method",
- "quantity",
- "duration",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "bodySite",
+ "method",
+ "quantity",
+ "duration",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,26 +187,21 @@ def time(self):
base="time",
)
- @field_validator(
- *(
- "additive",
- "procedure",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additive",
+ "procedure",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -274,32 +264,27 @@ def additive(self):
base="additive",
)
- @field_validator(
- *(
- "specimenQuantity",
- "capacity",
- "type",
- "description",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specimenQuantity",
+ "capacity",
+ "type",
+ "description",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -437,50 +422,45 @@ class Specimen(DomainResource):
default="Specimen",
)
- @field_validator(
- *(
- "note",
- "condition",
- "container",
- "processing",
- "collection",
- "request",
- "parent",
- "receivedTime",
- "subject",
- "type",
- "status",
- "accessionIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "condition",
+ "container",
+ "processing",
+ "collection",
+ "request",
+ "parent",
+ "receivedTime",
+ "subject",
+ "type",
+ "status",
+ "accessionIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/specimen_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/specimen_definition.py
index 4bb77515..dc73ee5d 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/specimen_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/specimen_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -131,38 +131,33 @@ def minimumVolume(self):
base="minimumVolume",
)
- @field_validator(
- *(
- "preparation",
- "additive",
- "capacity",
- "description",
- "cap",
- "type",
- "material",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preparation",
+ "additive",
+ "capacity",
+ "description",
+ "cap",
+ "type",
+ "material",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,29 +201,24 @@ class SpecimenDefinitionTypeTestedHandling(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "maxDuration",
- "temperatureRange",
- "temperatureQualifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "maxDuration",
+ "temperatureRange",
+ "temperatureQualifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -289,41 +279,36 @@ class SpecimenDefinitionTypeTested(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "handling",
- "rejectionCriterion",
- "retentionTime",
- "requirement",
- "container",
- "preference",
- "type",
- "isDerived",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "handling",
+ "rejectionCriterion",
+ "retentionTime",
+ "requirement",
+ "container",
+ "preference",
+ "type",
+ "isDerived",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -419,43 +404,38 @@ class SpecimenDefinition(DomainResource):
default="SpecimenDefinition",
)
- @field_validator(
- *(
- "typeTested",
- "collection",
- "timeAspect",
- "patientPreparation",
- "typeCollected",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "typeTested",
+ "collection",
+ "timeAspect",
+ "patientPreparation",
+ "typeCollected",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/structure_definition.py b/fhircraft/fhir/resources/datatypes/R4/core/structure_definition.py
index c3efd55c..f370f9f8 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/structure_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/structure_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,29 +87,24 @@ class StructureDefinitionMapping(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "name",
- "uri",
- "identity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "name",
+ "uri",
+ "identity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -141,23 +136,18 @@ class StructureDefinitionContext(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,26 +165,26 @@ class StructureDefinitionSnapshot(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="binding.empty() or binding.valueSet.exists() or binding.description.exists()",
human="provide either a binding reference or a description (or both)",
key="sdf-10",
@@ -212,14 +202,15 @@ class StructureDefinitionDifferential(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -484,136 +475,125 @@ class StructureDefinition(DomainResource):
default="StructureDefinition",
)
- @field_validator(
- *(
- "differential",
- "snapshot",
- "derivation",
- "baseDefinition",
- "type",
- "contextInvariant",
- "context",
- "abstract",
- "kind",
- "mapping",
- "fhirVersion",
- "keyword",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "differential",
+ "snapshot",
+ "derivation",
+ "baseDefinition",
+ "type",
+ "contextInvariant",
+ "context",
+ "abstract",
+ "kind",
+ "mapping",
+ "fhirVersion",
+ "keyword",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("mapping",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("mapping",),
expression="name.exists() or uri.exists()",
human="Must have at least a name or a uri (or both)",
key="sdf-2",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.all(definition.exists() and min.exists() and max.exists())",
human="Each element definition in a snapshot must have a formal definition and cardinalities",
key="sdf-3",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="(%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))",
human="All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.all(base.exists())",
human="All snapshot elements must have a base definition",
key="sdf-8b",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_20_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_20_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="element.where(path.contains('.').not()).slicing.empty()",
human="No slicing on the root element",
key="sdf-20",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8a_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8a_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="(%resource.kind = 'logical' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches('\\..*','')&'.')))",
human="In any differential, all the elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8a",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/structure_map.py b/fhircraft/fhir/resources/datatypes/R4/core/structure_map.py
index 8d8f5d92..073ca8e5 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/structure_map.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/structure_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -122,29 +122,24 @@ class StructureMapStructure(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "alias",
- "mode",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "alias",
+ "mode",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -194,29 +189,24 @@ class StructureMapGroupInput(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "mode",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "mode",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -622,47 +612,42 @@ def defaultValue(self):
base="defaultValue",
)
- @field_validator(
- *(
- "logMessage",
- "check",
- "condition",
- "variable",
- "listMode",
- "element",
- "type",
- "max",
- "min",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "logMessage",
+ "check",
+ "condition",
+ "variable",
+ "listMode",
+ "element",
+ "type",
+ "max",
+ "min",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -871,41 +856,36 @@ class StructureMapGroupRuleTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "parameter",
- "transform",
- "listRuleId",
- "listMode",
- "variable",
- "element",
- "contextType",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "transform",
+ "listRuleId",
+ "listMode",
+ "variable",
+ "element",
+ "contextType",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -937,23 +917,18 @@ class StructureMapGroupRuleDependent(BackboneElement):
alias="_variable",
)
- @field_validator(
- *(
- "variable",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "variable",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1001,59 +976,52 @@ class StructureMapGroupRule(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "dependent",
- "rule",
- "target",
- "source",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "dependent",
+ "rule",
+ "target",
+ "source",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_smp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_smp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="element.exists() implies context.exists()",
human="Can only have an element if you have a context",
key="smp-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_smp_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_smp_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="context.exists() implies contextType.exists()",
human="Must have a contextType if you have a context",
key="smp-2",
@@ -1111,35 +1079,30 @@ class StructureMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "rule",
- "input",
- "documentation",
- "typeMode",
- "extends",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "input",
+ "documentation",
+ "typeMode",
+ "extends",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1338,55 +1301,50 @@ class StructureMap(DomainResource):
default="StructureMap",
)
- @field_validator(
- *(
- "group",
- "import_",
- "structure",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "import_",
+ "structure",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/subscription.py b/fhircraft/fhir/resources/datatypes/R4/core/subscription.py
index d117afe8..42f8ccfc 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/subscription.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/subscription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,29 +79,24 @@ class SubscriptionChannel(BackboneElement):
alias="_header",
)
- @field_validator(
- *(
- "header",
- "payload",
- "endpoint",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "header",
+ "payload",
+ "endpoint",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -221,44 +216,39 @@ class Subscription(DomainResource):
default="Subscription",
)
- @field_validator(
- *(
- "channel",
- "error",
- "criteria",
- "reason",
- "end",
- "contact",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "channel",
+ "error",
+ "criteria",
+ "reason",
+ "end",
+ "contact",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance.py b/fhircraft/fhir/resources/datatypes/R4/core/substance.py
index 667b7cd9..9c9dd272 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,26 +58,21 @@ class SubstanceInstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "expiry",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "expiry",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -110,14 +105,15 @@ def substance(self):
base="substance",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -231,44 +227,39 @@ class Substance(DomainResource):
default="Substance",
)
- @field_validator(
- *(
- "ingredient",
- "instance",
- "description",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ingredient",
+ "instance",
+ "description",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_nucleic_acid.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_nucleic_acid.py
index 23a24a6f..1546dba2 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_nucleic_acid.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_nucleic_acid.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,29 +70,24 @@ class SubstanceNucleicAcidSubunitLinkage(BackboneElement):
alias="_residueSite",
)
- @field_validator(
- *(
- "residueSite",
- "name",
- "identifier",
- "connectivity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "residueSite",
+ "name",
+ "identifier",
+ "connectivity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,26 +123,21 @@ class SubstanceNucleicAcidSubunitSugar(BackboneElement):
alias="_residueSite",
)
- @field_validator(
- *(
- "residueSite",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "residueSite",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,41 +198,36 @@ class SubstanceNucleicAcidSubunit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "sugar",
- "linkage",
- "threePrime",
- "fivePrime",
- "sequenceAttachment",
- "length",
- "sequence",
- "subunit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sugar",
+ "linkage",
+ "threePrime",
+ "fivePrime",
+ "sequenceAttachment",
+ "length",
+ "sequence",
+ "subunit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -339,42 +324,37 @@ class SubstanceNucleicAcid(DomainResource):
default="SubstanceNucleicAcid",
)
- @field_validator(
- *(
- "subunit",
- "oligoNucleotideType",
- "areaOfHybridisation",
- "numberOfSubunits",
- "sequenceType",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subunit",
+ "oligoNucleotideType",
+ "areaOfHybridisation",
+ "numberOfSubunits",
+ "sequenceType",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_polymer.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_polymer.py
index 82884911..36798851 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_polymer.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_polymer.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,29 +66,24 @@ class SubstancePolymerMonomerSetStartingMaterial(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "isDefining",
- "type",
- "material",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "isDefining",
+ "type",
+ "material",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -112,23 +107,18 @@ class SubstancePolymerMonomerSet(BackboneElement):
)
)
- @field_validator(
- *(
- "startingMaterial",
- "ratioType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "startingMaterial",
+ "ratioType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,23 +140,18 @@ class SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "degree",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "degree",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -197,26 +182,21 @@ class SubstancePolymerRepeatRepeatUnitStructuralRepresentation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attachment",
- "representation",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attachment",
+ "representation",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -259,32 +239,27 @@ class SubstancePolymerRepeatRepeatUnit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "structuralRepresentation",
- "degreeOfPolymerisation",
- "amount",
- "repeatUnit",
- "orientationOfPolymerisation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "structuralRepresentation",
+ "degreeOfPolymerisation",
+ "amount",
+ "repeatUnit",
+ "orientationOfPolymerisation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -324,29 +299,24 @@ class SubstancePolymerRepeat(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "repeatUnit",
- "repeatUnitAmountType",
- "averageMolecularFormula",
- "numberOfUnits",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "repeatUnit",
+ "repeatUnitAmountType",
+ "averageMolecularFormula",
+ "numberOfUnits",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -442,43 +412,38 @@ class SubstancePolymer(DomainResource):
default="SubstancePolymer",
)
- @field_validator(
- *(
- "repeat",
- "monomerSet",
- "modification",
- "copolymerConnectivity",
- "geometry",
- "class_",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "repeat",
+ "monomerSet",
+ "modification",
+ "copolymerConnectivity",
+ "geometry",
+ "class_",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_protein.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_protein.py
index 819e8dd6..f846fdb3 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_protein.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_protein.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -96,41 +96,36 @@ class SubstanceProteinSubunit(BackboneElement):
alias="_cTerminalModification",
)
- @field_validator(
- *(
- "cTerminalModification",
- "cTerminalModificationId",
- "nTerminalModification",
- "nTerminalModificationId",
- "sequenceAttachment",
- "length",
- "sequence",
- "subunit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cTerminalModification",
+ "cTerminalModificationId",
+ "nTerminalModification",
+ "nTerminalModificationId",
+ "sequenceAttachment",
+ "length",
+ "sequence",
+ "subunit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -223,41 +218,36 @@ class SubstanceProtein(DomainResource):
default="SubstanceProtein",
)
- @field_validator(
- *(
- "subunit",
- "disulfideLinkage",
- "numberOfSubunits",
- "sequenceType",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subunit",
+ "disulfideLinkage",
+ "numberOfSubunits",
+ "sequenceType",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_reference_information.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_reference_information.py
index be5b4a6f..7851826e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_reference_information.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_reference_information.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -53,26 +53,21 @@ class SubstanceReferenceInformationGene(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "gene",
- "geneSequenceOrigin",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "gene",
+ "geneSequenceOrigin",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -98,26 +93,21 @@ class SubstanceReferenceInformationGeneElement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "element",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "element",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -147,29 +137,24 @@ class SubstanceReferenceInformationClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "subtype",
- "classification",
- "domain",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "subtype",
+ "classification",
+ "domain",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -235,38 +220,33 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "source",
- "amountType",
- "organismType",
- "organism",
- "interaction",
- "type",
- "target",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "amountType",
+ "organismType",
+ "organism",
+ "interaction",
+ "type",
+ "target",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -356,9 +336,11 @@ class SubstanceReferenceInformation(DomainResource):
description="Todo",
default=None,
)
- classification: Optional[ListType[SubstanceReferenceInformationClassification]] = Field(
- description="Todo",
- default=None,
+ classification: Optional[ListType[SubstanceReferenceInformationClassification]] = (
+ Field(
+ description="Todo",
+ default=None,
+ )
)
target: Optional[ListType[SubstanceReferenceInformationTarget]] = Field(
description="Todo",
@@ -369,42 +351,37 @@ class SubstanceReferenceInformation(DomainResource):
default="SubstanceReferenceInformation",
)
- @field_validator(
- *(
- "target",
- "classification",
- "geneElement",
- "gene",
- "comment",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "classification",
+ "geneElement",
+ "gene",
+ "comment",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_source_material.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_source_material.py
index dbc25094..50b550cb 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_source_material.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_source_material.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class SubstanceSourceMaterialFractionDescription(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "materialType",
- "fraction",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "materialType",
+ "fraction",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -94,23 +89,18 @@ class SubstanceSourceMaterialOrganismAuthor(BackboneElement):
alias="_authorDescription",
)
- @field_validator(
- *(
- "authorDescription",
- "authorType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorDescription",
+ "authorType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,32 +154,27 @@ class SubstanceSourceMaterialOrganismHybrid(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "hybridType",
- "paternalOrganismName",
- "paternalOrganismId",
- "maternalOrganismName",
- "maternalOrganismId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "hybridType",
+ "paternalOrganismName",
+ "paternalOrganismId",
+ "maternalOrganismName",
+ "maternalOrganismId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,29 +204,24 @@ class SubstanceSourceMaterialOrganismOrganismGeneral(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "order",
- "class_",
- "phylum",
- "kingdom",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "order",
+ "class_",
+ "phylum",
+ "kingdom",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -292,41 +272,36 @@ class SubstanceSourceMaterialOrganism(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "organismGeneral",
- "hybrid",
- "author",
- "intraspecificDescription",
- "intraspecificType",
- "species",
- "genus",
- "family",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "organismGeneral",
+ "hybrid",
+ "author",
+ "intraspecificDescription",
+ "intraspecificType",
+ "species",
+ "genus",
+ "family",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -348,23 +323,18 @@ class SubstanceSourceMaterialPartDescription(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "partLocation",
- "part",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partLocation",
+ "part",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -481,11 +451,11 @@ class SubstanceSourceMaterial(DomainResource):
description="Stage of life for animals, plants, insects and microorganisms. This information shall be provided only when the substance is significantly different in these stages (e.g. foetal bovine serum)",
default=None,
)
- fractionDescription: Optional[ListType[SubstanceSourceMaterialFractionDescription]] = (
- Field(
- description="Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels",
- default=None,
- )
+ fractionDescription: Optional[
+ ListType[SubstanceSourceMaterialFractionDescription]
+ ] = Field(
+ description="Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels",
+ default=None,
)
organism: Optional[SubstanceSourceMaterialOrganism] = Field(
description="This subclause describes the organism which the substance is derived from. For vaccines, the parent organism shall be specified based on these subclause elements. As an example, full taxonomy will be described for the Substance Name: ., Leaf",
@@ -500,50 +470,45 @@ class SubstanceSourceMaterial(DomainResource):
default="SubstanceSourceMaterial",
)
- @field_validator(
- *(
- "partDescription",
- "organism",
- "fractionDescription",
- "developmentStage",
- "geographicalLocation",
- "countryOfOrigin",
- "parentSubstanceName",
- "parentSubstanceId",
- "organismName",
- "organismId",
- "sourceMaterialState",
- "sourceMaterialType",
- "sourceMaterialClass",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partDescription",
+ "organism",
+ "fractionDescription",
+ "developmentStage",
+ "geographicalLocation",
+ "countryOfOrigin",
+ "parentSubstanceName",
+ "parentSubstanceId",
+ "organismName",
+ "organismId",
+ "sourceMaterialState",
+ "sourceMaterialType",
+ "sourceMaterialClass",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/substance_specification.py b/fhircraft/fhir/resources/datatypes/R4/core/substance_specification.py
index 8c9b439f..61d13b3e 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/substance_specification.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/substance_specification.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -103,35 +103,30 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "name",
- "identifier",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "name",
+ "identifier",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,26 +201,21 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "parameters",
- "code",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameters",
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -269,26 +259,21 @@ class SubstanceSpecificationStructureIsotopeMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -324,32 +309,27 @@ class SubstanceSpecificationStructureIsotope(BackboneElement):
)
)
- @field_validator(
- *(
- "molecularWeight",
- "halfLife",
- "substitution",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "molecularWeight",
+ "halfLife",
+ "substitution",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,26 +355,21 @@ class SubstanceSpecificationStructureMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -425,26 +400,21 @@ class SubstanceSpecificationStructureRepresentation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attachment",
- "representation",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attachment",
+ "representation",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -495,48 +465,43 @@ class SubstanceSpecificationStructure(BackboneElement):
description="Supporting literature",
default=None,
)
- representation: Optional[ListType[SubstanceSpecificationStructureRepresentation]] = (
- Field(
- description="Molecular structural representation",
- default=None,
- )
+ representation: Optional[
+ ListType[SubstanceSpecificationStructureRepresentation]
+ ] = Field(
+ description="Molecular structural representation",
+ default=None,
)
- @field_validator(
- *(
- "representation",
- "source",
- "molecularWeight",
- "isotope",
- "molecularFormulaByMoiety",
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "representation",
+ "source",
+ "molecularWeight",
+ "isotope",
+ "molecularFormulaByMoiety",
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -580,32 +545,27 @@ class SubstanceSpecificationCode(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "comment",
- "statusDate",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "comment",
+ "statusDate",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -636,26 +596,21 @@ class SubstanceSpecificationNameOfficial(BackboneElement):
alias="_date",
)
- @field_validator(
- *(
- "date",
- "status",
- "authority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "date",
+ "status",
+ "authority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -723,50 +678,45 @@ class SubstanceSpecificationName(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "official",
- "translation",
- "synonym",
- "jurisdiction",
- "domain",
- "language",
- "preferred",
- "status",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "official",
+ "translation",
+ "synonym",
+ "jurisdiction",
+ "domain",
+ "language",
+ "preferred",
+ "status",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -848,32 +798,27 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "source",
- "amountType",
- "amountRatioLowLimit",
- "isDefining",
- "relationship",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "amountType",
+ "amountRatioLowLimit",
+ "isDefining",
+ "relationship",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1046,56 +991,51 @@ class SubstanceSpecification(DomainResource):
default="SubstanceSpecification",
)
- @field_validator(
- *(
- "sourceMaterial",
- "protein",
- "polymer",
- "nucleicAcid",
- "relationship",
- "molecularWeight",
- "name",
- "code",
- "structure",
- "referenceInformation",
- "property_",
- "moiety",
- "comment",
- "source",
- "description",
- "domain",
- "status",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceMaterial",
+ "protein",
+ "polymer",
+ "nucleicAcid",
+ "relationship",
+ "molecularWeight",
+ "name",
+ "code",
+ "structure",
+ "referenceInformation",
+ "property_",
+ "moiety",
+ "comment",
+ "source",
+ "description",
+ "domain",
+ "status",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/supply_delivery.py b/fhircraft/fhir/resources/datatypes/R4/core/supply_delivery.py
index 7ecd48a4..2e33c163 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/supply_delivery.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/supply_delivery.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,14 +61,15 @@ def item(self):
base="item",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,47 +214,42 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "receiver",
- "destination",
- "supplier",
- "suppliedItem",
- "type",
- "patient",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "destination",
+ "supplier",
+ "suppliedItem",
+ "type",
+ "patient",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/supply_request.py b/fhircraft/fhir/resources/datatypes/R4/core/supply_request.py
index b1f2a8ff..d9ef78ad 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/supply_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/supply_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -81,14 +81,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -270,50 +271,45 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "deliverTo",
- "deliverFrom",
- "reasonReference",
- "reasonCode",
- "supplier",
- "requester",
- "authoredOn",
- "parameter",
- "quantity",
- "priority",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "deliverTo",
+ "deliverFrom",
+ "reasonReference",
+ "reasonCode",
+ "supplier",
+ "requester",
+ "authoredOn",
+ "parameter",
+ "quantity",
+ "priority",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/task.py b/fhircraft/fhir/resources/datatypes/R4/core/task.py
index 64a49d2f..b1817d83 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/task.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/task.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -103,26 +103,21 @@ class TaskRestriction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "recipient",
- "period",
- "repetitions",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recipient",
+ "period",
+ "repetitions",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -442,14 +437,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -829,14 +825,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1127,68 +1124,63 @@ class Task(DomainResource):
default="Task",
)
- @field_validator(
- *(
- "output",
- "input",
- "restriction",
- "relevantHistory",
- "note",
- "insurance",
- "reasonReference",
- "reasonCode",
- "location",
- "owner",
- "performerType",
- "requester",
- "lastModified",
- "authoredOn",
- "executionPeriod",
- "encounter",
- "for_",
- "focus",
- "description",
- "code",
- "priority",
- "intent",
- "businessStatus",
- "statusReason",
- "status",
- "partOf",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "output",
+ "input",
+ "restriction",
+ "relevantHistory",
+ "note",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "owner",
+ "performerType",
+ "requester",
+ "lastModified",
+ "authoredOn",
+ "executionPeriod",
+ "encounter",
+ "for_",
+ "focus",
+ "description",
+ "code",
+ "priority",
+ "intent",
+ "businessStatus",
+ "statusReason",
+ "status",
+ "partOf",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/terminology_capabilities.py b/fhircraft/fhir/resources/datatypes/R4/core/terminology_capabilities.py
index 816348f6..80ecaca8 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/terminology_capabilities.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/terminology_capabilities.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class TerminologyCapabilitiesSoftware(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,23 +109,18 @@ class TerminologyCapabilitiesImplementation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,23 +152,18 @@ class TerminologyCapabilitiesCodeSystemVersionFilter(BackboneElement):
alias="_op",
)
- @field_validator(
- *(
- "op",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "op",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -241,35 +226,30 @@ class TerminologyCapabilitiesCodeSystemVersion(BackboneElement):
alias="_property",
)
- @field_validator(
- *(
- "property_",
- "filter",
- "language",
- "compositional",
- "isDefault",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "filter",
+ "language",
+ "compositional",
+ "isDefault",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,26 +285,21 @@ class TerminologyCapabilitiesCodeSystem(BackboneElement):
alias="_subsumption",
)
- @field_validator(
- *(
- "subsumption",
- "version",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subsumption",
+ "version",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -356,23 +331,18 @@ class TerminologyCapabilitiesExpansionParameter(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -426,32 +396,27 @@ class TerminologyCapabilitiesExpansion(BackboneElement):
alias="_textFilter",
)
- @field_validator(
- *(
- "textFilter",
- "parameter",
- "incomplete",
- "paging",
- "hierarchical",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "textFilter",
+ "parameter",
+ "incomplete",
+ "paging",
+ "hierarchical",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -474,16 +439,15 @@ class TerminologyCapabilitiesValidateCode(BackboneElement):
alias="_translations",
)
- @field_validator(
- *("translations", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translations",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -506,14 +470,15 @@ class TerminologyCapabilitiesTranslation(BackboneElement):
alias="_needsMap",
)
- @field_validator(
- *("needsMap", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "needsMap",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -536,16 +501,15 @@ class TerminologyCapabilitiesClosure(BackboneElement):
alias="_translation",
)
- @field_validator(
- *("translation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -778,73 +742,67 @@ class TerminologyCapabilities(DomainResource):
default="TerminologyCapabilities",
)
- @field_validator(
- *(
- "closure",
- "translation",
- "validateCode",
- "codeSearch",
- "expansion",
- "codeSystem",
- "lockedDate",
- "implementation",
- "software",
- "kind",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "closure",
+ "translation",
+ "validateCode",
+ "codeSearch",
+ "expansion",
+ "codeSystem",
+ "lockedDate",
+ "implementation",
+ "software",
+ "kind",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("codeSystem",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tcp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tcp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeSystem",),
expression="version.count() > 1 implies version.all(code.exists())",
human="If there is more than one version, a version code must be defined",
key="tcp-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/test_report.py b/fhircraft/fhir/resources/datatypes/R4/core/test_report.py
index 4dec9d15..4263855a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/test_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/test_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class TestReportParticipant(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "uri",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "uri",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,26 +127,21 @@ class TestReportSetupActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,26 +182,21 @@ class TestReportSetupActionAssert(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -233,23 +218,18 @@ class TestReportSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -267,26 +247,26 @@ class TestReportSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="inv-1",
@@ -327,26 +307,21 @@ class TestReportTestActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -387,26 +362,21 @@ class TestReportTestActionAssert(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -428,23 +398,18 @@ class TestReportTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -480,38 +445,32 @@ class TestReportTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="inv-2",
@@ -529,16 +488,15 @@ class TestReportTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -556,14 +514,15 @@ class TestReportTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -708,49 +667,44 @@ class TestReport(DomainResource):
default="TestReport",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "participant",
- "issued",
- "tester",
- "score",
- "result",
- "testScript",
- "status",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "participant",
+ "issued",
+ "tester",
+ "score",
+ "result",
+ "testScript",
+ "status",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/test_script.py b/fhircraft/fhir/resources/datatypes/R4/core/test_script.py
index a963a145..318b796b 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/test_script.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/test_script.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class TestScriptOrigin(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -108,23 +103,18 @@ class TestScriptDestination(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,23 +146,18 @@ class TestScriptMetadataLink(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -249,38 +234,33 @@ class TestScriptMetadataCapability(BackboneElement):
alias="_capabilities",
)
- @field_validator(
- *(
- "capabilities",
- "link",
- "destination",
- "origin",
- "description",
- "validated",
- "required",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capabilities",
+ "link",
+ "destination",
+ "origin",
+ "description",
+ "validated",
+ "required",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -302,23 +282,18 @@ class TestScriptMetadata(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "capability",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capability",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -354,26 +329,21 @@ class TestScriptFixture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "autodelete",
- "autocreate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "autodelete",
+ "autocreate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -459,41 +429,36 @@ class TestScriptVariable(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "path",
- "hint",
- "headerField",
- "expression",
- "description",
- "defaultValue",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "path",
+ "hint",
+ "headerField",
+ "expression",
+ "description",
+ "defaultValue",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -525,23 +490,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -648,9 +608,11 @@ class TestScriptSetupActionOperation(BackboneElement):
default=None,
alias="_params",
)
- requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = Field(
- description="Each operation can have one or more header elements",
- default=None,
+ requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = (
+ Field(
+ description="Each operation can have one or more header elements",
+ default=None,
+ )
)
requestId: Optional[Id] = Field(
description="Fixture Id of mapped request",
@@ -698,68 +660,63 @@ class TestScriptSetupActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -971,83 +928,78 @@ class TestScriptSetupActionAssert(BackboneElement):
alias="_warningOnly",
)
- @field_validator(
- *(
- "warningOnly",
- "value",
- "validateProfileId",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1069,71 +1021,62 @@ class TestScriptSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history'))",
human="Setup operation SHALL contain either sourceId or targetId or params or url.",
key="tst-7",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)",
human="Only a single assertion SHALL be present within setup action assert element.",
key="tst-5",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-10",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Setup action assert response and responseCode SHALL be empty when direction equals request",
key="tst-12",
@@ -1151,26 +1094,26 @@ class TestScriptSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="tst-1",
@@ -1202,23 +1145,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1325,9 +1263,11 @@ class TestScriptTestActionOperation(BackboneElement):
default=None,
alias="_params",
)
- requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = Field(
- description="Each operation can have one or more header elements",
- default=None,
+ requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = (
+ Field(
+ description="Each operation can have one or more header elements",
+ default=None,
+ )
)
requestId: Optional[Id] = Field(
description="Fixture Id of mapped request",
@@ -1375,68 +1315,63 @@ class TestScriptTestActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1648,83 +1583,78 @@ class TestScriptTestActionAssert(BackboneElement):
alias="_warningOnly",
)
- @field_validator(
- *(
- "warningOnly",
- "value",
- "validateProfileId",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1746,71 +1676,62 @@ class TestScriptTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Test operation SHALL contain either sourceId or targetId or params or url.",
key="tst-8",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)",
human="Only a single assertion SHALL be present within test action assert element.",
key="tst-6",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-11",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Test action assert response and response and responseCode SHALL be empty when direction equals request",
key="tst-13",
@@ -1846,38 +1767,32 @@ class TestScriptTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="tst-2",
@@ -1895,28 +1810,26 @@ class TestScriptTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Teardown operation SHALL contain either sourceId or targetId or params or url.",
key="tst-9",
@@ -1934,14 +1847,15 @@ class TestScriptTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2159,85 +2073,78 @@ class TestScript(DomainResource):
default="TestScript",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "variable",
- "profile",
- "fixture",
- "metadata",
- "destination",
- "origin",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "variable",
+ "profile",
+ "fixture",
+ "metadata",
+ "destination",
+ "origin",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("metadata",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("metadata",),
expression="capability.required.exists() or capability.validated.exists()",
human="TestScript metadata capability SHALL contain required or validated or both.",
key="tst-4",
severity="error",
)
- @field_validator(*("variable",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("variable",),
expression="expression.empty() or headerField.empty() or path.empty()",
human="Variable can only contain one of expression, headerField or path.",
key="tst-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/value_set.py b/fhircraft/fhir/resources/datatypes/R4/core/value_set.py
index e5bf4e8e..6392507a 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/value_set.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/value_set.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,26 +74,21 @@ class ValueSetComposeIncludeConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -129,26 +124,21 @@ class ValueSetComposeIncludeConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "designation",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "designation",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -189,26 +179,21 @@ class ValueSetComposeIncludeFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "op",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "op",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,32 +242,27 @@ class ValueSetComposeInclude(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -331,32 +311,27 @@ class ValueSetComposeExclude(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -396,65 +371,57 @@ class ValueSetCompose(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "exclude",
- "include",
- "inactive",
- "lockedDate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exclude",
+ "include",
+ "inactive",
+ "lockedDate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="valueSet.exists() or system.exists()",
human="A value set include/exclude SHALL have a value set or a system",
key="vsd-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="(concept.exists() or filter.exists()) implies system.exists()",
human="A value set with concepts or filters SHALL include a system",
key="vsd-2",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="concept.empty() or filter.empty()",
human="Cannot have both concept and filter",
key="vsd-3",
@@ -547,14 +514,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("name", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -599,26 +567,21 @@ class ValueSetExpansionContainsDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -694,41 +657,36 @@ class ValueSetExpansionContains(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "designation",
- "display",
- "code",
- "version",
- "inactive",
- "abstract",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "designation",
+ "display",
+ "code",
+ "version",
+ "inactive",
+ "abstract",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -786,71 +744,63 @@ class ValueSetExpansion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "parameter",
- "offset",
- "total",
- "timestamp",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "parameter",
+ "offset",
+ "total",
+ "timestamp",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or display.exists()",
human="SHALL have a code or a display",
key="vsd-6",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or abstract = true",
human="Must have a code if not abstract",
key="vsd-9",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.empty() or system.exists()",
human="Must have a system if a code is present",
key="vsd-10",
@@ -1049,55 +999,50 @@ class ValueSet(DomainResource):
default="ValueSet",
)
- @field_validator(
- *(
- "expansion",
- "compose",
- "copyright",
- "purpose",
- "immutable",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expansion",
+ "compose",
+ "copyright",
+ "purpose",
+ "immutable",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/verification_result.py b/fhircraft/fhir/resources/datatypes/R4/core/verification_result.py
index 958da5b4..f44550cd 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/verification_result.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/verification_result.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,38 +79,33 @@ class VerificationResultPrimarySource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "pushTypeAvailable",
- "canPushUpdates",
- "validationDate",
- "validationStatus",
- "communicationMethod",
- "type",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "pushTypeAvailable",
+ "canPushUpdates",
+ "validationDate",
+ "validationStatus",
+ "communicationMethod",
+ "type",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -171,41 +166,36 @@ class VerificationResultAttestation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "sourceSignature",
- "proxySignature",
- "proxyIdentityCertificate",
- "sourceIdentityCertificate",
- "date",
- "communicationMethod",
- "onBehalfOf",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceSignature",
+ "proxySignature",
+ "proxyIdentityCertificate",
+ "sourceIdentityCertificate",
+ "date",
+ "communicationMethod",
+ "onBehalfOf",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,26 +226,21 @@ class VerificationResultValidator(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attestationSignature",
- "identityCertificate",
- "organization",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attestationSignature",
+ "identityCertificate",
+ "organization",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -403,51 +388,46 @@ class VerificationResult(DomainResource):
default="VerificationResult",
)
- @field_validator(
- *(
- "validator",
- "attestation",
- "primarySource",
- "failureAction",
- "nextScheduled",
- "lastPerformed",
- "frequency",
- "validationProcess",
- "validationType",
- "statusDate",
- "status",
- "need",
- "targetLocation",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "validator",
+ "attestation",
+ "primarySource",
+ "failureAction",
+ "nextScheduled",
+ "lastPerformed",
+ "frequency",
+ "validationProcess",
+ "validationType",
+ "statusDate",
+ "status",
+ "need",
+ "targetLocation",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4/core/vision_prescription.py b/fhircraft/fhir/resources/datatypes/R4/core/vision_prescription.py
index 4ecff4c2..e9383925 100644
--- a/fhircraft/fhir/resources/datatypes/R4/core/vision_prescription.py
+++ b/fhircraft/fhir/resources/datatypes/R4/core/vision_prescription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class VisionPrescriptionLensSpecificationPrism(BackboneElement):
alias="_base",
)
- @field_validator(
- *(
- "base",
- "amount",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "base",
+ "amount",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,59 +197,54 @@ class VisionPrescriptionLensSpecification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "brand",
- "color",
- "duration",
- "diameter",
- "backCurve",
- "power",
- "add",
- "prism",
- "axis",
- "cylinder",
- "sphere",
- "eye",
- "product",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "brand",
+ "color",
+ "duration",
+ "diameter",
+ "backCurve",
+ "power",
+ "add",
+ "prism",
+ "axis",
+ "cylinder",
+ "sphere",
+ "eye",
+ "product",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -368,45 +358,40 @@ class VisionPrescription(DomainResource):
default="VisionPrescription",
)
- @field_validator(
- *(
- "lensSpecification",
- "prescriber",
- "dateWritten",
- "encounter",
- "patient",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lensSpecification",
+ "prescriber",
+ "dateWritten",
+ "encounter",
+ "patient",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/address.py b/fhircraft/fhir/resources/datatypes/R4B/complex/address.py
index 5fd8b55e..3a6aedd0 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/address.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/address.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -102,40 +102,34 @@ class Address(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "country",
- "postalCode",
- "state",
- "district",
- "city",
- "line",
- "text",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "country",
+ "postalCode",
+ "state",
+ "district",
+ "city",
+ "line",
+ "text",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/age.py b/fhircraft/fhir/resources/datatypes/R4B/complex/age.py
index 0c98de54..4e37825e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/age.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/age.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/annotation.py b/fhircraft/fhir/resources/datatypes/R4B/complex/annotation.py
index c7e4f3cf..5748830e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/annotation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/annotation.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -39,26 +39,27 @@ class Annotation(Element):
alias="_text",
)
- @field_validator(
- *("text", "time", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "time",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/attachment.py b/fhircraft/fhir/resources/datatypes/R4B/complex/attachment.py
index 4d3e2f75..55069cf3 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/attachment.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/attachment.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -85,38 +85,32 @@ class Attachment(Element):
alias="_creation",
)
- @field_validator(
- *(
- "creation",
- "title",
- "hash",
- "size",
- "url",
- "data",
- "language",
- "contentType",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "creation",
+ "title",
+ "hash",
+ "size",
+ "url",
+ "data",
+ "language",
+ "contentType",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/backbone_element.py b/fhircraft/fhir/resources/datatypes/R4B/complex/backbone_element.py
index 5e45e304..b3f7d8d5 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/backbone_element.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/backbone_element.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -11,6 +11,7 @@ class BackboneElement(Element):
"""
Base for elements defined inside a resource
"""
+
_fhir_release = "R4B"
modifierExtension: Optional[List[Extension]] = Field(
@@ -18,28 +19,28 @@ class BackboneElement(Element):
default=None,
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_concept.py b/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_concept.py
index 99d0d4ff..0e291eec 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_concept.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_concept.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,26 +26,27 @@ class CodeableConcept(Element):
alias="_text",
)
- @field_validator(
- *("text", "coding", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "coding",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_reference.py b/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_reference.py
index 81fa0b02..e8f5f76d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_reference.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/codeable_reference.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -25,28 +25,27 @@ class CodeableReference(Element):
default=None,
)
- @field_validator(
- *("reference", "concept", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "concept",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/coding.py b/fhircraft/fhir/resources/datatypes/R4B/complex/coding.py
index 74c79b2e..95d57284 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/coding.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/coding.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Coding(Element):
alias="_userSelected",
)
- @field_validator(
- *(
- "userSelected",
- "display",
- "code",
- "version",
- "system",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "userSelected",
+ "display",
+ "code",
+ "version",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/contact_detail.py b/fhircraft/fhir/resources/datatypes/R4B/complex/contact_detail.py
index 8faaa8dc..36f7fe92 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/contact_detail.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/contact_detail.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,26 +26,27 @@ class ContactDetail(Element):
default=None,
)
- @field_validator(
- *("telecom", "name", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "telecom",
+ "name",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/contact_point.py b/fhircraft/fhir/resources/datatypes/R4B/complex/contact_point.py
index 5841be95..bd432b18 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/contact_point.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/contact_point.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -53,35 +53,29 @@ class ContactPoint(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "rank",
- "use",
- "value",
- "system",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "rank",
+ "use",
+ "value",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/contributor.py b/fhircraft/fhir/resources/datatypes/R4B/complex/contributor.py
index c1ac2363..e824b42f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/contributor.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/contributor.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -35,28 +35,29 @@ class Contributor(Element):
default=None,
)
- @field_validator(
- *("contact", "name", "type", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "name",
+ "type",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/data_requirement.py b/fhircraft/fhir/resources/datatypes/R4B/complex/data_requirement.py
index 00885ba5..ebb59492 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/data_requirement.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/data_requirement.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -73,61 +73,53 @@ class DataRequirement(Element):
default=None,
)
- @field_validator(
- *(
- "sort",
- "limit",
- "dateFilter",
- "codeFilter",
- "mustSupport",
- "profile",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sort",
+ "limit",
+ "dateFilter",
+ "codeFilter",
+ "mustSupport",
+ "profile",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("codeFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-1",
severity="error",
)
- @field_validator(*("dateFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dateFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/distance.py b/fhircraft/fhir/resources/datatypes/R4B/complex/distance.py
index d0dd1ca8..40153a63 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/distance.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/distance.py
@@ -1,4 +1,4 @@
-from pydantic import field_validator, model_validator
+from pydantic import model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/domain_resource.py b/fhircraft/fhir/resources/datatypes/R4B/complex/domain_resource.py
index 6c24ed9f..273a052f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/domain_resource.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -15,6 +15,7 @@ class DomainResource(Resource):
"""
A resource with narrative, extensions, and contained resources
"""
+
_fhir_release = "R4B"
text: Optional[Narrative] = Field(
@@ -34,49 +35,43 @@ class DomainResource(Resource):
default=None,
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/dosage.py b/fhircraft/fhir/resources/datatypes/R4B/complex/dosage.py
index 477737f0..0795368c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/dosage.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/dosage.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -91,45 +91,40 @@ class Dosage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "maxDosePerLifetime",
- "maxDosePerAdministration",
- "maxDosePerPeriod",
- "doseAndRate",
- "method",
- "route",
- "site",
- "timing",
- "patientInstruction",
- "additionalInstruction",
- "text",
- "sequence",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDosePerLifetime",
+ "maxDosePerAdministration",
+ "maxDosePerPeriod",
+ "doseAndRate",
+ "method",
+ "route",
+ "site",
+ "timing",
+ "patientInstruction",
+ "additionalInstruction",
+ "text",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/element.py b/fhircraft/fhir/resources/datatypes/R4B/complex/element.py
index 7bb78a5a..b7cd4fca 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/element.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/element.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -14,6 +14,7 @@ class Element(FHIRBaseModel):
"""
Base for all elements
"""
+
_fhir_release = "R4B"
id: Optional[String] = Field(
@@ -30,24 +31,22 @@ class Element(FHIRBaseModel):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/element_definition.py b/fhircraft/fhir/resources/datatypes/R4B/complex/element_definition.py
index f36fc164..f3053c54 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/element_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/element_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
from fhircraft.fhir.resources.validators import (
get_type_choice_value_by_base,
@@ -72,14 +72,16 @@ class ElementDefinitionSlicingDiscriminator(Element):
alias="_path",
)
- @field_validator(
- *("path", "type", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "path",
+ "type",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -124,25 +126,20 @@ class ElementDefinitionSlicing(Element):
alias="_rules",
)
- @field_validator(
- *(
- "rules",
- "ordered",
- "description",
- "discriminator",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rules",
+ "ordered",
+ "description",
+ "discriminator",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -183,16 +180,18 @@ class ElementDefinitionBase(Element):
alias="_max",
)
- @field_validator(
- *("max", "min", "path", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "path",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -251,27 +250,22 @@ class ElementDefinitionType(Element):
alias="_versioning",
)
- @field_validator(
- *(
- "versioning",
- "aggregation",
- "targetProfile",
- "profile",
- "code",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versioning",
+ "aggregation",
+ "targetProfile",
+ "profile",
+ "code",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -600,12 +594,14 @@ def value(self):
base="value",
)
- @field_validator(*("label", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "label",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -744,31 +740,26 @@ class ElementDefinitionConstraint(Element):
alias="_source",
)
- @field_validator(
- *(
- "source",
- "xpath",
- "expression",
- "human",
- "severity",
- "requirements",
- "key",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "xpath",
+ "expression",
+ "human",
+ "severity",
+ "requirements",
+ "key",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -809,16 +800,18 @@ class ElementDefinitionBinding(Element):
alias="_valueSet",
)
- @field_validator(
- *("valueSet", "description", "strength", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "description",
+ "strength",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -868,25 +861,20 @@ class ElementDefinitionMapping(Element):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "map",
- "language",
- "identity",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "map",
+ "language",
+ "identity",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2205,176 +2193,165 @@ def maxValue(self):
base="maxValue",
)
- @field_validator(
- *(
- "mapping",
- "binding",
- "isSummary",
- "isModifierReason",
- "isModifier",
- "mustSupport",
- "constraint",
- "condition",
- "maxLength",
- "example",
- "orderMeaning",
- "meaningWhenMissing",
- "type",
- "contentReference",
- "base",
- "max",
- "min",
- "alias",
- "requirements",
- "comment",
- "definition",
- "short",
- "slicing",
- "code",
- "label",
- "sliceIsConstraining",
- "sliceName",
- "representation",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mapping",
+ "binding",
+ "isSummary",
+ "isModifierReason",
+ "isModifier",
+ "mustSupport",
+ "constraint",
+ "condition",
+ "maxLength",
+ "example",
+ "orderMeaning",
+ "meaningWhenMissing",
+ "type",
+ "contentReference",
+ "base",
+ "max",
+ "min",
+ "alias",
+ "requirements",
+ "comment",
+ "definition",
+ "short",
+ "slicing",
+ "code",
+ "label",
+ "sliceIsConstraining",
+ "sliceName",
+ "representation",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("slicing",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("slicing",),
expression="discriminator.exists() or description.exists()",
human="If there are no discriminators, there must be a definition",
key="eld-1",
severity="error",
)
- @field_validator(*("max",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_3_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("max",),
expression="empty() or ($this = '*') or (toInteger() >= 0)",
human='Max SHALL be a number or "*"',
key="eld-3",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_4_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="aggregation.empty() or (code = 'Reference') or (code = 'canonical')",
human="Aggregation may only be specified if one of the allowed types for the element is a reference",
key="eld-4",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_17_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_17_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="(code='Reference' or code = 'canonical' or code = 'CodeableReference') or targetProfile.empty()",
human="targetProfile is only allowed if the type is Reference or canonical",
key="eld-17",
severity="error",
)
- @field_validator(*("constraint",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_21_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_21_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("constraint",),
expression="expression.exists()",
human="Constraints should have an expression or else validators will not be able to enforce them",
key="eld-21",
severity="warning",
)
- @field_validator(*("binding",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_12_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("binding",),
expression="valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:') or valueSet.startsWith('#'))",
human="ValueSet SHALL start with http:// or https:// or urn:",
key="eld-12",
@@ -2711,7 +2688,7 @@ def FHIR_eld_15_constraint_model_validator(self):
def FHIR_eld_16_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\\\/\\\\-_\\\\[\\\\]\\\\@]+$')",
+ expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\/\\-_\\[\\]\\@]+$')",
human='sliceName must be composed of proper tokens separated by"/"',
key="eld-16",
severity="error",
@@ -2731,7 +2708,7 @@ def FHIR_eld_18_constraint_model_validator(self):
def FHIR_eld_19_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('^[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\.[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\[x\\\\])?(\\\\:[^\\\\s\\\\.]+)?)*$')",
+ expression="path.matches('^[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\.[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\[x\\])?(\\:[^\\s\\.]+)?)*$')",
human="Element names cannot include some special characters",
key="eld-19",
severity="error",
@@ -2741,7 +2718,7 @@ def FHIR_eld_19_constraint_model_validator(self):
def FHIR_eld_20_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('^[A-Za-z][A-Za-z0-9]*(\\\\.[a-z][A-Za-z0-9]*(\\\\[x])?)*$')",
+ expression="path.matches('^[A-Za-z][A-Za-z0-9]*(\\.[a-z][A-Za-z0-9]*(\\[x])?)*$')",
human="Element names should be simple alphanumerics with a max of 64 characters, or code generation tools may be broken",
key="eld-20",
severity="warning",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/expression.py b/fhircraft/fhir/resources/datatypes/R4B/complex/expression.py
index b16315af..5c2f15d0 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/expression.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/expression.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Expression(Element):
alias="_reference",
)
- @field_validator(
- *(
- "reference",
- "expression",
- "language",
- "name",
- "description",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "expression",
+ "language",
+ "name",
+ "description",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/extension.py b/fhircraft/fhir/resources/datatypes/R4B/complex/extension.py
index aa952a2c..7187de3e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/extension.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/extension.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -263,24 +263,22 @@ class Extension(Element):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/human_name.py b/fhircraft/fhir/resources/datatypes/R4B/complex/human_name.py
index 20815c05..dfc1c947 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/human_name.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/human_name.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -71,37 +71,31 @@ class HumanName(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "suffix",
- "prefix",
- "given",
- "family",
- "text",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "suffix",
+ "prefix",
+ "given",
+ "family",
+ "text",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/identifier.py b/fhircraft/fhir/resources/datatypes/R4B/complex/identifier.py
index 428d27d7..8591d3cd 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/identifier.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/identifier.py
@@ -1,6 +1,6 @@
from typing import TYPE_CHECKING, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -59,36 +59,30 @@ class Identifier(Element):
default=None,
)
- @field_validator(
- *(
- "assigner",
- "period",
- "value",
- "system",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assigner",
+ "period",
+ "value",
+ "system",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/marketing_status.py b/fhircraft/fhir/resources/datatypes/R4B/complex/marketing_status.py
index b357583e..2d3a15cd 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/marketing_status.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/marketing_status.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -43,38 +43,33 @@ class MarketingStatus(BackboneElement):
alias="_restoreDate",
)
- @field_validator(
- *(
- "restoreDate",
- "dateRange",
- "status",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "restoreDate",
+ "dateRange",
+ "status",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/meta.py b/fhircraft/fhir/resources/datatypes/R4B/complex/meta.py
index c413f5a4..020b70e6 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/meta.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/meta.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -57,36 +57,30 @@ class Meta(Element):
default=None,
)
- @field_validator(
- *(
- "tag",
- "security",
- "profile",
- "source",
- "lastUpdated",
- "versionId",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "tag",
+ "security",
+ "profile",
+ "source",
+ "lastUpdated",
+ "versionId",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/money.py b/fhircraft/fhir/resources/datatypes/R4B/complex/money.py
index 69708ca5..f6be78e1 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/money.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/money.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -31,28 +31,27 @@ class Money(Element):
alias="_currency",
)
- @field_validator(
- *("currency", "value", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "currency",
+ "value",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/narrative.py b/fhircraft/fhir/resources/datatypes/R4B/complex/narrative.py
index 17b3aa4b..cbf0ba10 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/narrative.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/narrative.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,50 +26,49 @@ class Narrative(Element):
default=None,
)
- @field_validator(
- *("div", "status", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "div",
+ "status",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained style attributes",
key="txt-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL have some non-whitespace content",
key="txt-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/parameter_definition.py b/fhircraft/fhir/resources/datatypes/R4B/complex/parameter_definition.py
index 96232908..1efa3c72 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/parameter_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/parameter_definition.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -76,37 +76,31 @@ class ParameterDefinition(Element):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "documentation",
- "max",
- "min",
- "use",
- "name",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "use",
+ "name",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/period.py b/fhircraft/fhir/resources/datatypes/R4B/complex/period.py
index 74cc54af..3e0efbcb 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/period.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/period.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -31,26 +31,27 @@ class Period(Element):
alias="_end",
)
- @field_validator(
- *("end", "start", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/population.py b/fhircraft/fhir/resources/datatypes/R4B/complex/population.py
index 5de616e1..2fae9182 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/population.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/population.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -37,36 +37,31 @@ class Population(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "physiologicalCondition",
- "race",
- "gender",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "physiologicalCondition",
+ "race",
+ "gender",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/prod_characteristic.py b/fhircraft/fhir/resources/datatypes/R4B/complex/prod_characteristic.py
index 4decceec..6e87002b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/prod_characteristic.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/prod_characteristic.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -78,44 +78,39 @@ class ProdCharacteristic(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "scoring",
- "image",
- "imprint",
- "color",
- "shape",
- "externalDiameter",
- "nominalVolume",
- "weight",
- "depth",
- "width",
- "height",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scoring",
+ "image",
+ "imprint",
+ "color",
+ "shape",
+ "externalDiameter",
+ "nominalVolume",
+ "weight",
+ "depth",
+ "width",
+ "height",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/product_shelf_life.py b/fhircraft/fhir/resources/datatypes/R4B/complex/product_shelf_life.py
index 7e53a4ab..57dcb8b9 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/product_shelf_life.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/product_shelf_life.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -34,37 +34,32 @@ class ProductShelfLife(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specialPrecautionsForStorage",
- "period",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialPrecautionsForStorage",
+ "period",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/quantity.py b/fhircraft/fhir/resources/datatypes/R4B/complex/quantity.py
index 9790be0a..e332c822 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/quantity.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/quantity.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Quantity(Element):
alias="_code",
)
- @field_validator(
- *(
- "code",
- "system",
- "unit",
- "comparator",
- "value",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "system",
+ "unit",
+ "comparator",
+ "value",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/range.py b/fhircraft/fhir/resources/datatypes/R4B/complex/range.py
index a2648d3d..38c9a958a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/range.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/range.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,26 +21,27 @@ class Range(Element):
default=None,
)
- @field_validator(
- *("high", "low", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "high",
+ "low",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/ratio.py b/fhircraft/fhir/resources/datatypes/R4B/complex/ratio.py
index dc73cd8d..c23d9d75 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/ratio.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/ratio.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,28 +21,26 @@ class Ratio(Element):
default=None,
)
- @field_validator(
- *("denominator", "numerator", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "denominator",
+ "numerator",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/ratio_range.py b/fhircraft/fhir/resources/datatypes/R4B/complex/ratio_range.py
index 21da55da..09bd0edc 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/ratio_range.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/ratio_range.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -25,33 +25,27 @@ class RatioRange(Element):
default=None,
)
- @field_validator(
- *(
- "denominator",
- "highNumerator",
- "lowNumerator",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "denominator",
+ "highNumerator",
+ "lowNumerator",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/reference.py b/fhircraft/fhir/resources/datatypes/R4B/complex/reference.py
index 50fd6f25..ffcfe861 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/reference.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/reference.py
@@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -47,34 +47,28 @@ class Reference(Element):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "identifier",
- "type",
- "reference",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "identifier",
+ "type",
+ "reference",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/related_artifact.py b/fhircraft/fhir/resources/datatypes/R4B/complex/related_artifact.py
index 32e977a5..2545365a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/related_artifact.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/related_artifact.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -71,37 +71,31 @@ class RelatedArtifact(Element):
alias="_resource",
)
- @field_validator(
- *(
- "resource",
- "document",
- "url",
- "citation",
- "display",
- "label",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "document",
+ "url",
+ "citation",
+ "display",
+ "label",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/resource.py b/fhircraft/fhir/resources/datatypes/R4B/complex/resource.py
index 1a499923..a8e3782d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/resource.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.base import FHIRBaseModel
@@ -12,6 +12,7 @@ class Resource(FHIRBaseModel):
"""
Base Resource
"""
+
_fhir_release = "R4B"
id: Optional[String] = Field(
@@ -46,14 +47,15 @@ class Resource(FHIRBaseModel):
alias="_language",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/sampled_data.py b/fhircraft/fhir/resources/datatypes/R4B/complex/sampled_data.py
index 2ce0a342..7e43b133 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/sampled_data.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/sampled_data.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -71,37 +71,31 @@ class SampledData(Element):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "dimensions",
- "upperLimit",
- "lowerLimit",
- "factor",
- "period",
- "origin",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "dimensions",
+ "upperLimit",
+ "lowerLimit",
+ "factor",
+ "period",
+ "origin",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/signature.py b/fhircraft/fhir/resources/datatypes/R4B/complex/signature.py
index 885eb3d7..7210bb8c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/signature.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/signature.py
@@ -1,6 +1,6 @@
from typing import Optional, List
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -61,37 +61,31 @@ class Signature(Element):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "sigFormat",
- "targetFormat",
- "onBehalfOf",
- "who",
- "when",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "sigFormat",
+ "targetFormat",
+ "onBehalfOf",
+ "who",
+ "when",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/timing.py b/fhircraft/fhir/resources/datatypes/R4B/complex/timing.py
index d74518ae..01f98a31 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/timing.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/timing.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -34,144 +34,130 @@ class Timing(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "repeat",
- "event",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "repeat",
+ "event",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.empty() or durationUnit.exists()",
human="if there's a duration, there needs to be duration units",
key="tim-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.empty() or periodUnit.exists()",
human="if there's a period, there needs to be period units",
key="tim-2",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.exists() implies duration >= 0",
human="duration SHALL be a non-negative value",
key="tim-4",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.exists() implies period >= 0",
human="period SHALL be a non-negative value",
key="tim-5",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="periodMax.empty() or period.exists()",
human="If there's a periodMax, there must be a period",
key="tim-6",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="durationMax.empty() or duration.exists()",
human="If there's a durationMax, there must be a duration",
key="tim-7",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="countMax.empty() or count.exists()",
human="If there's a countMax, there must be a count",
key="tim-8",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))",
human="If there's an offset, there must be a when (and not C, CM, CD, CV)",
key="tim-9",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="timeOfDay.empty() or when.empty()",
human="If there's a timeOfDay, there cannot be a when, or vice versa",
key="tim-10",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/trigger_definition.py b/fhircraft/fhir/resources/datatypes/R4B/complex/trigger_definition.py
index fc67aad6..39d9fd47 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/trigger_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/trigger_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -61,34 +61,28 @@ class TriggerDefinition(Element):
default=None,
)
- @field_validator(
- *(
- "condition",
- "data",
- "name",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "data",
+ "name",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/usage_context.py b/fhircraft/fhir/resources/datatypes/R4B/complex/usage_context.py
index c7b0a365..b7899152 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/usage_context.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/usage_context.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -40,24 +40,25 @@ class UsageContext(Element):
default=None,
)
- @field_validator(*("code", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/complex/xhtml.py b/fhircraft/fhir/resources/datatypes/R4B/complex/xhtml.py
index d472304b..d15c3a4e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/complex/xhtml.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/complex/xhtml.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -22,24 +22,22 @@ class xhtml(Element):
alias="_value",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/account.py b/fhircraft/fhir/resources/datatypes/R4B/core/account.py
index ca62ec4a..7d2fad42 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/account.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/account.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class AccountCoverage(BackboneElement):
alias="_priority",
)
- @field_validator(
- *(
- "priority",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priority",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,26 +101,21 @@ class AccountGuarantor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onHold",
- "party",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onHold",
+ "party",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -251,60 +241,54 @@ class Account(DomainResource):
default="Account",
)
- @field_validator(
- *(
- "partOf",
- "guarantor",
- "description",
- "owner",
- "coverage",
- "servicePeriod",
- "subject",
- "name",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partOf",
+ "guarantor",
+ "description",
+ "owner",
+ "coverage",
+ "servicePeriod",
+ "subject",
+ "name",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/activity_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/activity_definition.py
index 0691bd2c..d330d879 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/activity_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/activity_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,23 +72,18 @@ class ActivityDefinitionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -115,23 +110,18 @@ class ActivityDefinitionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -555,92 +545,86 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "dynamicValue",
- "transform",
- "observationResultRequirement",
- "observationRequirement",
- "specimenRequirement",
- "bodySite",
- "dosage",
- "quantity",
- "participant",
- "location",
- "doNotPerform",
- "priority",
- "intent",
- "code",
- "profile",
- "kind",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dynamicValue",
+ "transform",
+ "observationResultRequirement",
+ "observationRequirement",
+ "specimenRequirement",
+ "bodySite",
+ "dosage",
+ "quantity",
+ "participant",
+ "location",
+ "doNotPerform",
+ "priority",
+ "intent",
+ "code",
+ "profile",
+ "kind",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/administrable_product_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/administrable_product_definition.py
index 9a1d14c4..3af7c248 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/administrable_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/administrable_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -94,23 +94,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "status",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "status",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -152,26 +147,21 @@ class AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawal
alias="_supportingInformation",
)
- @field_validator(
- *(
- "supportingInformation",
- "value",
- "tissue",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "value",
+ "tissue",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -197,23 +187,18 @@ class AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(BackboneE
default=None,
)
- @field_validator(
- *(
- "withdrawalPeriod",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "withdrawalPeriod",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -257,38 +242,33 @@ class AdministrableProductDefinitionRouteOfAdministration(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "targetSpecies",
- "maxTreatmentPeriod",
- "maxDosePerTreatmentPeriod",
- "maxDosePerDay",
- "maxSingleDose",
- "firstDose",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetSpecies",
+ "maxTreatmentPeriod",
+ "maxDosePerTreatmentPeriod",
+ "maxDosePerDay",
+ "maxSingleDose",
+ "firstDose",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -404,59 +384,53 @@ class AdministrableProductDefinition(DomainResource):
default="AdministrableProductDefinition",
)
- @field_validator(
- *(
- "routeOfAdministration",
- "property_",
- "device",
- "ingredient",
- "producedFrom",
- "unitOfPresentation",
- "administrableDoseForm",
- "formOf",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "routeOfAdministration",
+ "property_",
+ "device",
+ "ingredient",
+ "producedFrom",
+ "unitOfPresentation",
+ "administrableDoseForm",
+ "formOf",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/adverse_event.py b/fhircraft/fhir/resources/datatypes/R4B/core/adverse_event.py
index 0fedcda7..a543953c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/adverse_event.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/adverse_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,29 +60,24 @@ class AdverseEventSuspectEntityCausality(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "method",
- "author",
- "productRelatedness",
- "assessment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "method",
+ "author",
+ "productRelatedness",
+ "assessment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -104,23 +99,18 @@ class AdverseEventSuspectEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "causality",
- "instance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "causality",
+ "instance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -287,69 +277,63 @@ class AdverseEvent(DomainResource):
default="AdverseEvent",
)
- @field_validator(
- *(
- "study",
- "referenceDocument",
- "subjectMedicalHistory",
- "suspectEntity",
- "contributor",
- "recorder",
- "outcome",
- "severity",
- "seriousness",
- "location",
- "resultingCondition",
- "recordedDate",
- "detected",
- "date",
- "encounter",
- "subject",
- "event",
- "category",
- "actuality",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "study",
+ "referenceDocument",
+ "subjectMedicalHistory",
+ "suspectEntity",
+ "contributor",
+ "recorder",
+ "outcome",
+ "severity",
+ "seriousness",
+ "location",
+ "resultingCondition",
+ "recordedDate",
+ "detected",
+ "date",
+ "encounter",
+ "subject",
+ "event",
+ "category",
+ "actuality",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/allergy_intolerance.py b/fhircraft/fhir/resources/datatypes/R4B/core/allergy_intolerance.py
index c11737bb..69e47d89 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/allergy_intolerance.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/allergy_intolerance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,38 +86,33 @@ class AllergyIntoleranceReaction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "exposureRoute",
- "severity",
- "onset",
- "description",
- "manifestation",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "exposureRoute",
+ "severity",
+ "onset",
+ "description",
+ "manifestation",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -306,64 +301,58 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "reaction",
- "note",
- "lastOccurrence",
- "asserter",
- "recorder",
- "recordedDate",
- "encounter",
- "patient",
- "code",
- "criticality",
- "category",
- "type",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reaction",
+ "note",
+ "lastOccurrence",
+ "asserter",
+ "recorder",
+ "recordedDate",
+ "encounter",
+ "patient",
+ "code",
+ "criticality",
+ "category",
+ "type",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/appointment.py b/fhircraft/fhir/resources/datatypes/R4B/core/appointment.py
index 7a09e338..15841aa8 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/appointment.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/appointment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -78,32 +78,27 @@ class AppointmentParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "required",
- "actor",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "required",
+ "actor",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,83 +298,76 @@ class Appointment(DomainResource):
default="Appointment",
)
- @field_validator(
- *(
- "requestedPeriod",
- "participant",
- "basedOn",
- "patientInstruction",
- "comment",
- "created",
- "slot",
- "minutesDuration",
- "end",
- "start",
- "supportingInformation",
- "description",
- "priority",
- "reasonReference",
- "reasonCode",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "cancelationReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requestedPeriod",
+ "participant",
+ "basedOn",
+ "patientInstruction",
+ "comment",
+ "created",
+ "slot",
+ "minutesDuration",
+ "end",
+ "start",
+ "supportingInformation",
+ "description",
+ "priority",
+ "reasonReference",
+ "reasonCode",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "cancelationReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_app_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_app_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="type.exists() or actor.exists()",
human="Either the type or actor on the participant SHALL be specified",
key="app-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/appointment_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/appointment_response.py
index e0f56596..d48bae72 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/appointment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/appointment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -143,57 +143,51 @@ class AppointmentResponse(DomainResource):
default="AppointmentResponse",
)
- @field_validator(
- *(
- "comment",
- "participantStatus",
- "actor",
- "participantType",
- "end",
- "start",
- "appointment",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "participantStatus",
+ "actor",
+ "participantType",
+ "end",
+ "start",
+ "appointment",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/audit_event.py b/fhircraft/fhir/resources/datatypes/R4B/core/audit_event.py
index ce0b4d5f..29992a06 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/audit_event.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/audit_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class AuditEventAgentNetwork(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "address",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "address",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,50 +154,45 @@ class AuditEventAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "purposeOfUse",
- "network",
- "media",
- "policy",
- "location",
- "requestor",
- "name",
- "altId",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "purposeOfUse",
+ "network",
+ "media",
+ "policy",
+ "location",
+ "requestor",
+ "name",
+ "altId",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -233,26 +223,21 @@ class AuditEventSource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "observer",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "observer",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -300,14 +285,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -381,44 +367,39 @@ class AuditEventEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "query",
- "description",
- "name",
- "securityLabel",
- "lifecycle",
- "role",
- "type",
- "what",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "query",
+ "description",
+ "name",
+ "securityLabel",
+ "lifecycle",
+ "role",
+ "type",
+ "what",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -549,72 +530,65 @@ class AuditEvent(DomainResource):
default="AuditEvent",
)
- @field_validator(
- *(
- "entity",
- "source",
- "agent",
- "purposeOfEvent",
- "outcomeDesc",
- "outcome",
- "recorded",
- "period",
- "action",
- "subtype",
- "type",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entity",
+ "source",
+ "agent",
+ "purposeOfEvent",
+ "outcomeDesc",
+ "outcome",
+ "recorded",
+ "period",
+ "action",
+ "subtype",
+ "type",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("entity",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sev_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sev_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entity",),
expression="name.empty() or query.empty()",
human="Either a name or a query (NOT both)",
key="sev-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/basic.py b/fhircraft/fhir/resources/datatypes/R4B/core/basic.py
index 4eedfd9f..48a86d67 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/basic.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/basic.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -116,54 +116,48 @@ class Basic(DomainResource):
default="Basic",
)
- @field_validator(
- *(
- "author",
- "created",
- "subject",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "created",
+ "subject",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/binary.py b/fhircraft/fhir/resources/datatypes/R4B/core/binary.py
index 11d51298..8da8773d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/binary.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/binary.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -24,7 +24,12 @@
Base64Binary,
)
-from fhircraft.fhir.resources.datatypes.R4B.complex import Element, Meta, Reference, Resource
+from fhircraft.fhir.resources.datatypes.R4B.complex import (
+ Element,
+ Meta,
+ Reference,
+ Resource,
+)
class Binary(Resource):
@@ -43,7 +48,9 @@ class Binary(Resource):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Binary"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Binary"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -90,23 +97,18 @@ class Binary(Resource):
default="Binary",
)
- @field_validator(
- *(
- "data",
- "securityContext",
- "contentType",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "securityContext",
+ "contentType",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/biologically_derived_product.py b/fhircraft/fhir/resources/datatypes/R4B/core/biologically_derived_product.py
index b63cb2a7..783a4eac 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/biologically_derived_product.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/biologically_derived_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -75,23 +75,18 @@ def collected(self):
base="collected",
)
- @field_validator(
- *(
- "source",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,26 +146,21 @@ def time(self):
base="time",
)
- @field_validator(
- *(
- "additive",
- "procedure",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additive",
+ "procedure",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -222,16 +212,15 @@ def time(self):
base="time",
)
- @field_validator(
- *("description", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,29 +274,24 @@ class BiologicallyDerivedProductStorage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "duration",
- "scale",
- "temperature",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "duration",
+ "scale",
+ "temperature",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -436,60 +420,54 @@ class BiologicallyDerivedProduct(DomainResource):
default="BiologicallyDerivedProduct",
)
- @field_validator(
- *(
- "storage",
- "manipulation",
- "processing",
- "collection",
- "parent",
- "quantity",
- "request",
- "status",
- "productCode",
- "productCategory",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "storage",
+ "manipulation",
+ "processing",
+ "collection",
+ "parent",
+ "quantity",
+ "request",
+ "status",
+ "productCode",
+ "productCategory",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/body_structure.py b/fhircraft/fhir/resources/datatypes/R4B/core/body_structure.py
index dffd29ef..f0af8ca4 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/body_structure.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/body_structure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -134,57 +134,51 @@ class BodyStructure(DomainResource):
default="BodyStructure",
)
- @field_validator(
- *(
- "patient",
- "image",
- "description",
- "locationQualifier",
- "location",
- "morphology",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patient",
+ "image",
+ "description",
+ "locationQualifier",
+ "location",
+ "morphology",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/bundle.py b/fhircraft/fhir/resources/datatypes/R4B/core/bundle.py
index b63e43a0..74fdddff 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/bundle.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/bundle.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -63,23 +63,18 @@ class BundleLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class BundleEntryLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,23 +149,18 @@ class BundleEntrySearch(BackboneElement):
alias="_score",
)
- @field_validator(
- *(
- "score",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "score",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -243,35 +228,30 @@ class BundleEntryRequest(BackboneElement):
alias="_ifNoneExist",
)
- @field_validator(
- *(
- "ifNoneExist",
- "ifMatch",
- "ifModifiedSince",
- "ifNoneMatch",
- "url",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ifNoneExist",
+ "ifMatch",
+ "ifModifiedSince",
+ "ifNoneMatch",
+ "url",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,29 +305,24 @@ class BundleEntryResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "lastModified",
- "etag",
- "location",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lastModified",
+ "etag",
+ "location",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,32 +365,27 @@ class BundleEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "search",
- "fullUrl",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "search",
+ "fullUrl",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -509,51 +479,44 @@ class Bundle(Resource):
default="Bundle",
)
- @field_validator(
- *(
- "signature",
- "entry",
- "link",
- "total",
- "timestamp",
- "type",
- "identifier",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entry",
+ "link",
+ "total",
+ "timestamp",
+ "type",
+ "identifier",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="resource.exists() or request.exists() or response.exists()",
human="must be a resource unless there's a request or response",
key="bdl-5",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="fullUrl.exists() implies fullUrl.contains('/_history/').not()",
human="fullUrl cannot be a version specific reference",
key="bdl-8",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/capability_statement.py b/fhircraft/fhir/resources/datatypes/R4B/core/capability_statement.py
index 945828b9..e33c91ce 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/capability_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/capability_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -78,26 +78,21 @@ class CapabilityStatementSoftware(BackboneElement):
alias="_releaseDate",
)
- @field_validator(
- *(
- "releaseDate",
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "releaseDate",
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -133,26 +128,21 @@ class CapabilityStatementImplementation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "custodian",
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "custodian",
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -188,26 +178,21 @@ class CapabilityStatementRestSecurity(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "service",
- "cors",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "service",
+ "cors",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -239,23 +224,18 @@ class CapabilityStatementRestResourceInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,29 +285,24 @@ class CapabilityStatementRestResourceSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -368,26 +343,21 @@ class CapabilityStatementRestResourceOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -539,68 +509,63 @@ class CapabilityStatementRestResource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "operation",
- "searchParam",
- "searchRevInclude",
- "searchInclude",
- "referencePolicy",
- "conditionalDelete",
- "conditionalUpdate",
- "conditionalRead",
- "conditionalCreate",
- "updateCreate",
- "readHistory",
- "versioning",
- "interaction",
- "documentation",
- "supportedProfile",
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "searchParam",
+ "searchRevInclude",
+ "searchInclude",
+ "referencePolicy",
+ "conditionalDelete",
+ "conditionalUpdate",
+ "conditionalRead",
+ "conditionalCreate",
+ "updateCreate",
+ "readHistory",
+ "versioning",
+ "interaction",
+ "documentation",
+ "supportedProfile",
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -632,23 +597,18 @@ class CapabilityStatementRestInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -698,29 +658,24 @@ class CapabilityStatementRestSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -761,26 +716,21 @@ class CapabilityStatementRestOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -841,53 +791,47 @@ class CapabilityStatementRest(BackboneElement):
alias="_compartment",
)
- @field_validator(
- *(
- "compartment",
- "operation",
- "searchParam",
- "interaction",
- "resource",
- "security",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "compartment",
+ "operation",
+ "searchParam",
+ "interaction",
+ "resource",
+ "security",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("resource",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("resource",),
expression="searchParam.select(name).isDistinct()",
human="Search parameter names must be unique in the context of a resource.",
key="cpb-12",
@@ -914,23 +858,18 @@ class CapabilityStatementMessagingEndpoint(BackboneElement):
alias="_address",
)
- @field_validator(
- *(
- "address",
- "protocol",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "protocol",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -962,23 +901,18 @@ class CapabilityStatementMessagingSupportedMessage(BackboneElement):
alias="_definition",
)
- @field_validator(
- *(
- "definition",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1013,36 +947,31 @@ class CapabilityStatementMessaging(BackboneElement):
default=None,
alias="_documentation",
)
- supportedMessage: Optional[ListType[CapabilityStatementMessagingSupportedMessage]] = (
- Field(
- description="Messages supported by this system",
- default=None,
- )
+ supportedMessage: Optional[
+ ListType[CapabilityStatementMessagingSupportedMessage]
+ ] = Field(
+ description="Messages supported by this system",
+ default=None,
)
- @field_validator(
- *(
- "supportedMessage",
- "documentation",
- "reliableCache",
- "endpoint",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportedMessage",
+ "documentation",
+ "reliableCache",
+ "endpoint",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1083,26 +1012,21 @@ class CapabilityStatementDocument(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1363,87 +1287,80 @@ class CapabilityStatement(DomainResource):
default="CapabilityStatement",
)
- @field_validator(
- *(
- "document",
- "messaging",
- "rest",
- "implementationGuide",
- "patchFormat",
- "format",
- "fhirVersion",
- "implementation",
- "software",
- "imports",
- "instantiates",
- "kind",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "document",
+ "messaging",
+ "rest",
+ "implementationGuide",
+ "patchFormat",
+ "format",
+ "fhirVersion",
+ "implementation",
+ "software",
+ "imports",
+ "instantiates",
+ "kind",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("rest",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("rest",),
expression="resource.select(type).isDistinct()",
human="A given resource can only be described once per RESTful mode.",
key="cpb-9",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/care_plan.py b/fhircraft/fhir/resources/datatypes/R4B/core/care_plan.py
index accf92ff..78f75152 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/care_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/care_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -179,62 +179,57 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "description",
- "quantity",
- "dailyAmount",
- "performer",
- "location",
- "doNotPerform",
- "statusReason",
- "status",
- "goal",
- "reasonReference",
- "reasonCode",
- "code",
- "instantiatesUri",
- "instantiatesCanonical",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "quantity",
+ "dailyAmount",
+ "performer",
+ "location",
+ "doNotPerform",
+ "statusReason",
+ "status",
+ "goal",
+ "reasonReference",
+ "reasonCode",
+ "code",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -286,32 +281,27 @@ class CarePlanActivity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "reference",
- "progress",
- "outcomeReference",
- "outcomeCodeableConcept",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "reference",
+ "progress",
+ "outcomeReference",
+ "outcomeCodeableConcept",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -505,84 +495,77 @@ class CarePlan(DomainResource):
default="CarePlan",
)
- @field_validator(
- *(
- "note",
- "activity",
- "goal",
- "supportingInfo",
- "addresses",
- "careTeam",
- "contributor",
- "author",
- "created",
- "period",
- "encounter",
- "subject",
- "description",
- "title",
- "category",
- "intent",
- "status",
- "partOf",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "activity",
+ "goal",
+ "supportingInfo",
+ "addresses",
+ "careTeam",
+ "contributor",
+ "author",
+ "created",
+ "period",
+ "encounter",
+ "subject",
+ "description",
+ "title",
+ "category",
+ "intent",
+ "status",
+ "partOf",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("activity",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpl_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpl_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("activity",),
expression="detail.empty() or reference.empty()",
human="Provide a reference or detail, not both",
key="cpl-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/care_team.py b/fhircraft/fhir/resources/datatypes/R4B/core/care_team.py
index d1506b64..f8078529 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/care_team.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/care_team.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,29 +58,24 @@ class CareTeamParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onBehalfOf",
- "member",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onBehalfOf",
+ "member",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -209,74 +204,67 @@ class CareTeam(DomainResource):
default="CareTeam",
)
- @field_validator(
- *(
- "note",
- "telecom",
- "managingOrganization",
- "reasonReference",
- "reasonCode",
- "participant",
- "period",
- "encounter",
- "subject",
- "name",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "telecom",
+ "managingOrganization",
+ "reasonReference",
+ "reasonCode",
+ "participant",
+ "period",
+ "encounter",
+ "subject",
+ "name",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ctm_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ctm_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="onBehalfOf.exists() implies (member.resolve().iif(empty(), true, ofType(Practitioner).exists()))",
human="CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner",
key="ctm-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/catalog_entry.py b/fhircraft/fhir/resources/datatypes/R4B/core/catalog_entry.py
index 88b41e66..168ce5b7 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/catalog_entry.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/catalog_entry.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class CatalogEntryRelatedEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "relationtype",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "relationtype",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -214,62 +209,56 @@ class CatalogEntry(DomainResource):
default="CatalogEntry",
)
- @field_validator(
- *(
- "relatedEntry",
- "additionalClassification",
- "additionalCharacteristic",
- "lastUpdated",
- "validTo",
- "validityPeriod",
- "status",
- "classification",
- "additionalIdentifier",
- "referencedItem",
- "orderable",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedEntry",
+ "additionalClassification",
+ "additionalCharacteristic",
+ "lastUpdated",
+ "validTo",
+ "validityPeriod",
+ "status",
+ "classification",
+ "additionalIdentifier",
+ "referencedItem",
+ "orderable",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/charge_item.py b/fhircraft/fhir/resources/datatypes/R4B/core/charge_item.py
index 078c4d2e..1693e60e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/charge_item.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/charge_item.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class ChargeItemPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -307,73 +302,67 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "supportingInformation",
- "note",
- "account",
- "service",
- "reason",
- "enteredDate",
- "enterer",
- "overrideReason",
- "priceOverride",
- "factorOverride",
- "bodysite",
- "quantity",
- "costCenter",
- "requestingOrganization",
- "performingOrganization",
- "performer",
- "context",
- "subject",
- "code",
- "partOf",
- "status",
- "definitionCanonical",
- "definitionUri",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "note",
+ "account",
+ "service",
+ "reason",
+ "enteredDate",
+ "enterer",
+ "overrideReason",
+ "priceOverride",
+ "factorOverride",
+ "bodysite",
+ "quantity",
+ "costCenter",
+ "requestingOrganization",
+ "performingOrganization",
+ "performer",
+ "context",
+ "subject",
+ "code",
+ "partOf",
+ "status",
+ "definitionCanonical",
+ "definitionUri",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/charge_item_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/charge_item_definition.py
index f708de68..14a786c3 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/charge_item_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/charge_item_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,26 +80,21 @@ class ChargeItemDefinitionApplicability(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "language",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "language",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,26 +135,21 @@ class ChargeItemDefinitionPropertyGroupApplicability(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "language",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "language",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -199,29 +189,24 @@ class ChargeItemDefinitionPropertyGroupPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -234,36 +219,31 @@ class ChargeItemDefinitionPropertyGroup(BackboneElement):
Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.
"""
- applicability: Optional[ListType[ChargeItemDefinitionPropertyGroupApplicability]] = (
- Field(
- description="Conditions under which the priceComponent is applicable",
- default=None,
- )
+ applicability: Optional[
+ ListType[ChargeItemDefinitionPropertyGroupApplicability]
+ ] = Field(
+ description="Conditions under which the priceComponent is applicable",
+ default=None,
)
- priceComponent: Optional[ListType[ChargeItemDefinitionPropertyGroupPriceComponent]] = (
- Field(
- description="Components of total line item price",
- default=None,
- )
+ priceComponent: Optional[
+ ListType[ChargeItemDefinitionPropertyGroupPriceComponent]
+ ] = Field(
+ description="Components of total line item price",
+ default=None,
)
- @field_validator(
- *(
- "priceComponent",
- "applicability",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "applicability",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -492,72 +472,66 @@ class ChargeItemDefinition(DomainResource):
default="ChargeItemDefinition",
)
- @field_validator(
- *(
- "propertyGroup",
- "applicability",
- "instance",
- "code",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "partOf",
- "derivedFromUri",
- "title",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "propertyGroup",
+ "applicability",
+ "instance",
+ "code",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "partOf",
+ "derivedFromUri",
+ "title",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/citation.py b/fhircraft/fhir/resources/datatypes/R4B/core/citation.py
index d0d39de1..1cc47af9 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/citation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/citation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -69,23 +69,18 @@ class CitationSummary(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "style",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "style",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,23 +102,18 @@ class CitationClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "classifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "classifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,26 +144,21 @@ class CitationStatusDate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "actual",
- "activity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "actual",
+ "activity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -223,23 +208,18 @@ def target(self):
base="target",
)
- @field_validator(
- *(
- "targetClassifier",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetClassifier",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -275,23 +255,18 @@ class CitationCitedArtifactVersion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "baseCitation",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "baseCitation",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -322,26 +297,21 @@ class CitationCitedArtifactStatusDate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "actual",
- "activity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "actual",
+ "activity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -372,26 +342,21 @@ class CitationCitedArtifactTitle(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "language",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "language",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -431,29 +396,24 @@ class CitationCitedArtifactAbstract(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "text",
- "language",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "text",
+ "language",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -484,26 +444,21 @@ class CitationCitedArtifactPart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "baseCitation",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "baseCitation",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -553,23 +508,18 @@ def target(self):
base="target",
)
- @field_validator(
- *(
- "targetClassifier",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetClassifier",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -622,32 +572,27 @@ class CitationCitedArtifactPublicationFormPublishedIn(BackboneElement):
alias="_publisherLocation",
)
- @field_validator(
- *(
- "publisherLocation",
- "publisher",
- "title",
- "identifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "publisherLocation",
+ "publisher",
+ "title",
+ "identifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -717,35 +662,30 @@ class CitationCitedArtifactPublicationFormPeriodicReleaseDateOfPublication(
alias="_text",
)
- @field_validator(
- *(
- "text",
- "season",
- "day",
- "month",
- "year",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "season",
+ "day",
+ "month",
+ "year",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -787,29 +727,24 @@ class CitationCitedArtifactPublicationFormPeriodicRelease(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dateOfPublication",
- "issue",
- "volume",
- "citedMedium",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dateOfPublication",
+ "issue",
+ "volume",
+ "citedMedium",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -909,50 +844,45 @@ class CitationCitedArtifactPublicationForm(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "pageCount",
- "lastPage",
- "firstPage",
- "pageString",
- "accessionNumber",
- "language",
- "lastRevisionDate",
- "articleDate",
- "periodicRelease",
- "publishedIn",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "pageCount",
+ "lastPage",
+ "firstPage",
+ "pageString",
+ "accessionNumber",
+ "language",
+ "lastRevisionDate",
+ "articleDate",
+ "periodicRelease",
+ "publishedIn",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -979,23 +909,18 @@ class CitationCitedArtifactWebLocation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1039,32 +964,27 @@ class CitationCitedArtifactClassificationWhoClassified(BackboneElement):
alias="_freeToShare",
)
- @field_validator(
- *(
- "freeToShare",
- "classifierCopyright",
- "publisher",
- "organization",
- "person",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "freeToShare",
+ "classifierCopyright",
+ "publisher",
+ "organization",
+ "person",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1090,26 +1010,21 @@ class CitationCitedArtifactClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "whoClassified",
- "classifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "whoClassified",
+ "classifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1145,26 +1060,21 @@ class CitationCitedArtifactContributorshipEntryAffiliationInfo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "role",
- "affiliation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "role",
+ "affiliation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1191,23 +1101,18 @@ class CitationCitedArtifactContributorshipEntryContributionInstance(BackboneElem
alias="_time",
)
- @field_validator(
- *(
- "time",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "time",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1293,53 +1198,48 @@ class CitationCitedArtifactContributorshipEntry(BackboneElement):
alias="_listOrder",
)
- @field_validator(
- *(
- "listOrder",
- "correspondingContact",
- "contributionInstance",
- "role",
- "contributionType",
- "telecom",
- "address",
- "affiliationInfo",
- "identifier",
- "collectiveName",
- "initials",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "listOrder",
+ "correspondingContact",
+ "contributionInstance",
+ "role",
+ "contributionType",
+ "telecom",
+ "address",
+ "affiliationInfo",
+ "identifier",
+ "collectiveName",
+ "initials",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1374,29 +1274,24 @@ class CitationCitedArtifactContributorshipSummary(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "source",
- "style",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "source",
+ "style",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1427,26 +1322,21 @@ class CitationCitedArtifactContributorship(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "summary",
- "entry",
- "complete",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "summary",
+ "entry",
+ "complete",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1525,62 +1415,57 @@ class CitationCitedArtifact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "contributorship",
- "classification",
- "webLocation",
- "publicationForm",
- "relatesTo",
- "part",
- "abstract",
- "title",
- "statusDate",
- "currentState",
- "version",
- "dateAccessed",
- "relatedIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributorship",
+ "classification",
+ "webLocation",
+ "publicationForm",
+ "relatesTo",
+ "part",
+ "abstract",
+ "title",
+ "statusDate",
+ "currentState",
+ "version",
+ "dateAccessed",
+ "relatedIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1828,78 +1713,72 @@ class Citation(DomainResource):
default="Citation",
)
- @field_validator(
- *(
- "citedArtifact",
- "relatesTo",
- "statusDate",
- "currentState",
- "note",
- "classification",
- "summary",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "citedArtifact",
+ "relatesTo",
+ "statusDate",
+ "currentState",
+ "note",
+ "classification",
+ "summary",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/claim.py b/fhircraft/fhir/resources/datatypes/R4B/core/claim.py
index 3ab2c6dd..691529a0 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/claim.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/claim.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class ClaimRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class ClaimPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -166,32 +156,27 @@ class ClaimCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualification",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualification",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -283,29 +268,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -373,29 +353,24 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "packageCode",
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageCode",
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -459,29 +434,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -552,38 +522,33 @@ class ClaimInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "preAuthRef",
- "businessArrangement",
- "coverage",
- "identifier",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "preAuthRef",
+ "businessArrangement",
+ "coverage",
+ "identifier",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -625,23 +590,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -718,50 +678,45 @@ class ClaimItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -833,53 +788,48 @@ class ClaimItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1038,74 +988,69 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "encounter",
- "subSite",
- "bodySite",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "encounter",
+ "subSite",
+ "bodySite",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1313,76 +1258,70 @@ class Claim(DomainResource):
default="Claim",
)
- @field_validator(
- *(
- "total",
- "item",
- "accident",
- "insurance",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "facility",
- "referral",
- "payee",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "total",
+ "item",
+ "accident",
+ "insurance",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "facility",
+ "referral",
+ "payee",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/claim_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/claim_response.py
index 4f6e45cf..74b0c95b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/claim_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/claim_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,29 +74,24 @@ class ClaimResponseItemAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -131,29 +126,24 @@ class ClaimResponseItemDetailAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -189,26 +179,21 @@ class ClaimResponseItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "subDetailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "subDetailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -248,29 +233,24 @@ class ClaimResponseItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "detailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "detailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -310,29 +290,24 @@ class ClaimResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -388,41 +363,36 @@ class ClaimResponseAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -482,44 +452,39 @@ class ClaimResponseAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -661,65 +626,60 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "subSite",
- "bodySite",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "provider",
- "subdetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "subSite",
+ "bodySite",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "provider",
+ "subdetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -759,23 +719,18 @@ class ClaimResponseTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -818,35 +773,30 @@ class ClaimResponsePayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -891,29 +841,24 @@ class ClaimResponseProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -962,32 +907,27 @@ class ClaimResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "businessArrangement",
- "coverage",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1032,29 +972,24 @@ class ClaimResponseError(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1259,76 +1194,70 @@ class ClaimResponse(DomainResource):
default="ClaimResponse",
)
- @field_validator(
- *(
- "error",
- "insurance",
- "communicationRequest",
- "processNote",
- "form",
- "formCode",
- "fundsReserve",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "payeeType",
- "preAuthPeriod",
- "preAuthRef",
- "disposition",
- "outcome",
- "request",
- "requestor",
- "insurer",
- "created",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "insurance",
+ "communicationRequest",
+ "processNote",
+ "form",
+ "formCode",
+ "fundsReserve",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "payeeType",
+ "preAuthPeriod",
+ "preAuthRef",
+ "disposition",
+ "outcome",
+ "request",
+ "requestor",
+ "insurer",
+ "created",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/clinical_impression.py b/fhircraft/fhir/resources/datatypes/R4B/core/clinical_impression.py
index c3869459..834e4dac 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/clinical_impression.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/clinical_impression.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -49,23 +49,18 @@ class ClinicalImpressionInvestigation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,26 +91,21 @@ class ClinicalImpressionFinding(BackboneElement):
alias="_basis",
)
- @field_validator(
- *(
- "basis",
- "itemReference",
- "itemCodeableConcept",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "basis",
+ "itemReference",
+ "itemCodeableConcept",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,68 +293,62 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "note",
- "supportingInfo",
- "prognosisReference",
- "prognosisCodeableConcept",
- "finding",
- "summary",
- "protocol",
- "investigation",
- "problem",
- "previous",
- "assessor",
- "date",
- "encounter",
- "subject",
- "description",
- "code",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "supportingInfo",
+ "prognosisReference",
+ "prognosisCodeableConcept",
+ "finding",
+ "summary",
+ "protocol",
+ "investigation",
+ "problem",
+ "previous",
+ "assessor",
+ "date",
+ "encounter",
+ "subject",
+ "description",
+ "code",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/clinical_use_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/clinical_use_definition.py
index 6de27415..bfe9e26e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/clinical_use_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/clinical_use_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -49,23 +49,18 @@ class ClinicalUseDefinitionContraindicationOtherTherapy(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "therapy",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "therapy",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -94,39 +89,34 @@ class ClinicalUseDefinitionContraindication(BackboneElement):
description="The indication which this is a contraidication for",
default=None,
)
- otherTherapy: Optional[ListType[ClinicalUseDefinitionContraindicationOtherTherapy]] = (
- Field(
- description="Information about use of the product in relation to other therapies described as part of the contraindication",
- default=None,
- )
+ otherTherapy: Optional[
+ ListType[ClinicalUseDefinitionContraindicationOtherTherapy]
+ ] = Field(
+ description="Information about use of the product in relation to other therapies described as part of the contraindication",
+ default=None,
)
- @field_validator(
- *(
- "otherTherapy",
- "indication",
- "comorbidity",
- "diseaseStatus",
- "diseaseSymptomProcedure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherTherapy",
+ "indication",
+ "comorbidity",
+ "diseaseStatus",
+ "diseaseSymptomProcedure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -148,23 +138,18 @@ class ClinicalUseDefinitionIndicationOtherTherapy(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "therapy",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "therapy",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,9 +195,11 @@ class ClinicalUseDefinitionIndication(BackboneElement):
description="An unwanted side effect or negative outcome of the subject of this resource when being used for this indication",
default=None,
)
- otherTherapy: Optional[ListType[ClinicalUseDefinitionIndicationOtherTherapy]] = Field(
- description="The use of the medicinal product in relation to other therapies described as part of the indication",
- default=None,
+ otherTherapy: Optional[ListType[ClinicalUseDefinitionIndicationOtherTherapy]] = (
+ Field(
+ description="The use of the medicinal product in relation to other therapies described as part of the indication",
+ default=None,
+ )
)
@property
@@ -222,35 +209,30 @@ def duration(self):
base="duration",
)
- @field_validator(
- *(
- "otherTherapy",
- "undesirableEffect",
- "intendedEffect",
- "comorbidity",
- "diseaseStatus",
- "diseaseSymptomProcedure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherTherapy",
+ "undesirableEffect",
+ "intendedEffect",
+ "comorbidity",
+ "diseaseStatus",
+ "diseaseSymptomProcedure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,9 +285,11 @@ class ClinicalUseDefinitionInteraction(BackboneElement):
Specifics for when this is an interaction.
"""
- interactant: Optional[ListType[ClinicalUseDefinitionInteractionInteractant]] = Field(
- description="The specific medication, food, substance or laboratory test that interacts",
- default=None,
+ interactant: Optional[ListType[ClinicalUseDefinitionInteractionInteractant]] = (
+ Field(
+ description="The specific medication, food, substance or laboratory test that interacts",
+ default=None,
+ )
)
type: Optional[CodeableConcept] = Field(
description="The type of the interaction e.g. drug-drug interaction, drug-lab test interaction",
@@ -324,32 +308,27 @@ class ClinicalUseDefinitionInteraction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "management",
- "incidence",
- "effect",
- "type",
- "interactant",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "management",
+ "incidence",
+ "effect",
+ "type",
+ "interactant",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,26 +354,21 @@ class ClinicalUseDefinitionUndesirableEffect(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "frequencyOfOccurrence",
- "classification",
- "symptomConditionEffect",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "frequencyOfOccurrence",
+ "classification",
+ "symptomConditionEffect",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -421,23 +395,18 @@ class ClinicalUseDefinitionWarning(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -553,60 +522,54 @@ class ClinicalUseDefinition(DomainResource):
default="ClinicalUseDefinition",
)
- @field_validator(
- *(
- "warning",
- "undesirableEffect",
- "population",
- "interaction",
- "indication",
- "contraindication",
- "status",
- "subject",
- "category",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warning",
+ "undesirableEffect",
+ "population",
+ "interaction",
+ "indication",
+ "contraindication",
+ "status",
+ "subject",
+ "category",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/code_system.py b/fhircraft/fhir/resources/datatypes/R4B/core/code_system.py
index 01a6b3ca..0f7d0e9b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/code_system.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/code_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,29 +88,24 @@ class CodeSystemFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "operator",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "operator",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -160,29 +155,24 @@ class CodeSystemProperty(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "description",
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "description",
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -218,26 +208,21 @@ class CodeSystemConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,14 +310,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -394,35 +380,30 @@ class CodeSystemConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "concept",
- "property_",
- "designation",
- "definition",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "designation",
+ "definition",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -688,75 +669,69 @@ class CodeSystem(DomainResource):
default="CodeSystem",
)
- @field_validator(
- *(
- "concept",
- "property_",
- "filter",
- "count",
- "supplements",
- "content",
- "versionNeeded",
- "compositional",
- "hierarchyMeaning",
- "valueSet",
- "caseSensitive",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "filter",
+ "count",
+ "supplements",
+ "content",
+ "versionNeeded",
+ "compositional",
+ "hierarchyMeaning",
+ "valueSet",
+ "caseSensitive",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/communication.py b/fhircraft/fhir/resources/datatypes/R4B/core/communication.py
index 1e09da85..2a5e70b8 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/communication.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/communication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -262,72 +262,66 @@ class Communication(DomainResource):
default="Communication",
)
- @field_validator(
- *(
- "note",
- "payload",
- "reasonReference",
- "reasonCode",
- "sender",
- "recipient",
- "received",
- "sent",
- "encounter",
- "about",
- "topic",
- "subject",
- "medium",
- "priority",
- "category",
- "statusReason",
- "status",
- "inResponseTo",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "payload",
+ "reasonReference",
+ "reasonCode",
+ "sender",
+ "recipient",
+ "received",
+ "sent",
+ "encounter",
+ "about",
+ "topic",
+ "subject",
+ "medium",
+ "priority",
+ "category",
+ "statusReason",
+ "status",
+ "inResponseTo",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/communication_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/communication_request.py
index c54d0f6f..f16b7a42 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/communication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/communication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -265,70 +265,64 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "reasonReference",
- "reasonCode",
- "sender",
- "recipient",
- "requester",
- "authoredOn",
- "payload",
- "encounter",
- "about",
- "subject",
- "medium",
- "doNotPerform",
- "priority",
- "category",
- "statusReason",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "sender",
+ "recipient",
+ "requester",
+ "authoredOn",
+ "payload",
+ "encounter",
+ "about",
+ "subject",
+ "medium",
+ "doNotPerform",
+ "priority",
+ "category",
+ "statusReason",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/compartment_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/compartment_definition.py
index 1360f89f..ed73a80a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/compartment_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/compartment_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class CompartmentDefinitionResource(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "param",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "param",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -269,63 +264,57 @@ class CompartmentDefinition(DomainResource):
default="CompartmentDefinition",
)
- @field_validator(
- *(
- "resource",
- "search",
- "code",
- "purpose",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "search",
+ "code",
+ "purpose",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/composition.py b/fhircraft/fhir/resources/datatypes/R4B/core/composition.py
index f266cee2..c9c945c5 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/composition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/composition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,26 +62,21 @@ class CompositionAttester(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "time",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "time",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -119,14 +114,15 @@ def target(self):
base="target",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,26 +157,21 @@ class CompositionEvent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "period",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "period",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -244,47 +235,42 @@ class CompositionSection(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "section",
- "emptyReason",
- "entry",
- "orderedBy",
- "mode",
- "text",
- "focus",
- "author",
- "code",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "emptyReason",
+ "entry",
+ "orderedBy",
+ "mode",
+ "text",
+ "focus",
+ "author",
+ "code",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -431,88 +417,80 @@ class Composition(DomainResource):
default="Composition",
)
- @field_validator(
- *(
- "section",
- "event",
- "relatesTo",
- "custodian",
- "attester",
- "confidentiality",
- "title",
- "author",
- "date",
- "encounter",
- "subject",
- "category",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "event",
+ "relatesTo",
+ "custodian",
+ "attester",
+ "confidentiality",
+ "title",
+ "author",
+ "date",
+ "encounter",
+ "subject",
+ "category",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="text.exists() or entry.exists() or section.exists()",
human="A section must contain at least one of text, entries, or sub-sections",
key="cmp-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="emptyReason.empty() or entry.empty()",
human="A section can only have an emptyReason if it is empty",
key="cmp-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/concept_map.py b/fhircraft/fhir/resources/datatypes/R4B/core/concept_map.py
index 16a2366c..0c3be5b2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/concept_map.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/concept_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,29 +84,24 @@ class ConceptMapGroupElementTargetDependsOn(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "value",
- "system",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "value",
+ "system",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,29 +151,24 @@ class ConceptMapGroupElementTargetProduct(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "value",
- "system",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "value",
+ "system",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,35 +226,30 @@ class ConceptMapGroupElementTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "product",
- "dependsOn",
- "comment",
- "equivalence",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "product",
+ "dependsOn",
+ "comment",
+ "equivalence",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -300,38 +285,32 @@ class ConceptMapGroupElement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="comment.exists() or equivalence.empty() or ((equivalence != 'narrower') and (equivalence != 'inexact'))",
human="If the map is narrower or inexact, there SHALL be some comments",
key="cmd-1",
@@ -381,29 +360,24 @@ class ConceptMapGroupUnmapped(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "display",
- "code",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "display",
+ "code",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -461,59 +435,52 @@ class ConceptMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "unmapped",
- "element",
- "targetVersion",
- "target",
- "sourceVersion",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "unmapped",
+ "element",
+ "targetVersion",
+ "target",
+ "sourceVersion",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'fixed') implies code.exists()",
human="If the mode is 'fixed', a code must be provided",
key="cmd-2",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'other-map') implies url.exists()",
human="If the mode is 'other-map', a url must be provided",
key="cmd-3",
@@ -749,65 +716,59 @@ def target(self):
base="target",
)
- @field_validator(
- *(
- "group",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/condition.py b/fhircraft/fhir/resources/datatypes/R4B/core/condition.py
index 669db1c1..60671ac4 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/condition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/condition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,26 +55,21 @@ class ConditionStage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "assessment",
- "summary",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "assessment",
+ "summary",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class ConditionEvidence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,88 +308,80 @@ def abatement(self):
base="abatement",
)
- @field_validator(
- *(
- "note",
- "evidence",
- "stage",
- "asserter",
- "recorder",
- "recordedDate",
- "encounter",
- "subject",
- "bodySite",
- "code",
- "severity",
- "category",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "evidence",
+ "stage",
+ "asserter",
+ "recorder",
+ "recordedDate",
+ "encounter",
+ "subject",
+ "bodySite",
+ "code",
+ "severity",
+ "category",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("stage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_con_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_con_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("stage",),
expression="summary.exists() or assessment.exists()",
human="Stage SHALL have summary or assessment",
key="con-1",
severity="error",
)
- @field_validator(*("evidence",), mode="after", check_fields=None)
- @classmethod
- def FHIR_con_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_con_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("evidence",),
expression="code.exists() or detail.exists()",
human="evidence SHALL have code or details",
key="con-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/consent.py b/fhircraft/fhir/resources/datatypes/R4B/core/consent.py
index b05ee5e5..52371432 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/consent.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/consent.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class ConsentPolicy(BackboneElement):
alias="_uri",
)
- @field_validator(
- *(
- "uri",
- "authority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uri",
+ "authority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -118,26 +113,21 @@ class ConsentVerification(BackboneElement):
alias="_verificationDate",
)
- @field_validator(
- *(
- "verificationDate",
- "verifiedWith",
- "verified",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "verificationDate",
+ "verifiedWith",
+ "verified",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,23 +149,18 @@ class ConsentProvisionActor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,23 +187,18 @@ class ConsentProvisionData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "meaning",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "meaning",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,50 +261,45 @@ class ConsentProvision(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "provision",
- "data",
- "dataPeriod",
- "code",
- "class_",
- "purpose",
- "securityLabel",
- "action",
- "actor",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "data",
+ "dataPeriod",
+ "code",
+ "class_",
+ "purpose",
+ "securityLabel",
+ "action",
+ "actor",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -464,61 +439,55 @@ def source(self):
base="source",
)
- @field_validator(
- *(
- "provision",
- "verification",
- "policyRule",
- "policy",
- "organization",
- "performer",
- "dateTime",
- "patient",
- "category",
- "scope",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "verification",
+ "policyRule",
+ "policy",
+ "organization",
+ "performer",
+ "dateTime",
+ "patient",
+ "category",
+ "scope",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/contract.py b/fhircraft/fhir/resources/datatypes/R4B/core/contract.py
index ae35d1bc..5e3b4b6c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/contract.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/contract.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,35 +98,30 @@ class ContractContentDefinition(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "publicationStatus",
- "publicationDate",
- "publisher",
- "subType",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "publicationStatus",
+ "publicationDate",
+ "publisher",
+ "subType",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,29 +156,24 @@ class ContractTermSecurityLabel(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "control",
- "category",
- "classification",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "control",
+ "category",
+ "classification",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,23 +195,18 @@ class ContractTermOfferParty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -414,47 +399,42 @@ class ContractTermOffer(BackboneElement):
alias="_securityLabelNumber",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "text",
- "answer",
- "decisionMode",
- "decision",
- "type",
- "topic",
- "party",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "text",
+ "answer",
+ "decisionMode",
+ "decision",
+ "type",
+ "topic",
+ "party",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -485,26 +465,21 @@ class ContractTermAssetContext(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "code",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "code",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -744,56 +719,51 @@ def entity(self):
base="entity",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "recipient",
- "responsible",
- "paymentDate",
- "payment",
- "net",
- "points",
- "factor",
- "unitPrice",
- "quantity",
- "effectiveTime",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "recipient",
+ "responsible",
+ "paymentDate",
+ "payment",
+ "net",
+ "points",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "effectiveTime",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -896,62 +866,57 @@ class ContractTermAsset(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valuedItem",
- "securityLabelNumber",
- "answer",
- "linkId",
- "text",
- "usePeriod",
- "period",
- "periodType",
- "condition",
- "context",
- "relationship",
- "subtype",
- "typeReference",
- "type",
- "scope",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valuedItem",
+ "securityLabelNumber",
+ "answer",
+ "linkId",
+ "text",
+ "usePeriod",
+ "period",
+ "periodType",
+ "condition",
+ "context",
+ "relationship",
+ "subtype",
+ "typeReference",
+ "type",
+ "scope",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -973,23 +938,18 @@ class ContractTermActionSubject(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1147,77 +1107,72 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "note",
- "reasonLinkId",
- "reason",
- "reasonReference",
- "reasonCode",
- "performerLinkId",
- "performer",
- "performerRole",
- "performerType",
- "requesterLinkId",
- "requester",
- "contextLinkId",
- "context",
- "status",
- "linkId",
- "intent",
- "subject",
- "type",
- "doNotPerform",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "note",
+ "reasonLinkId",
+ "reason",
+ "reasonReference",
+ "reasonCode",
+ "performerLinkId",
+ "performer",
+ "performerRole",
+ "performerType",
+ "requesterLinkId",
+ "requester",
+ "contextLinkId",
+ "context",
+ "status",
+ "linkId",
+ "intent",
+ "subject",
+ "type",
+ "doNotPerform",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1309,50 +1264,45 @@ def topic(self):
base="topic",
)
- @field_validator(
- *(
- "group",
- "action",
- "asset",
- "offer",
- "securityLabel",
- "text",
- "subType",
- "type",
- "applies",
- "issued",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "action",
+ "asset",
+ "offer",
+ "securityLabel",
+ "text",
+ "subType",
+ "type",
+ "applies",
+ "issued",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1387,26 +1337,21 @@ class ContractSigner(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "signature",
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1765,80 +1710,74 @@ def legallyBinding(self):
base="legallyBinding",
)
- @field_validator(
- *(
- "rule",
- "legal",
- "friendly",
- "signer",
- "relevantHistory",
- "supportingInfo",
- "term",
- "contentDefinition",
- "subType",
- "type",
- "scope",
- "author",
- "alias",
- "subtitle",
- "title",
- "name",
- "site",
- "domain",
- "authority",
- "subject",
- "expirationType",
- "applies",
- "issued",
- "contentDerivative",
- "instantiatesUri",
- "instantiatesCanonical",
- "legalState",
- "status",
- "version",
- "url",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "legal",
+ "friendly",
+ "signer",
+ "relevantHistory",
+ "supportingInfo",
+ "term",
+ "contentDefinition",
+ "subType",
+ "type",
+ "scope",
+ "author",
+ "alias",
+ "subtitle",
+ "title",
+ "name",
+ "site",
+ "domain",
+ "authority",
+ "subject",
+ "expirationType",
+ "applies",
+ "issued",
+ "contentDerivative",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "legalState",
+ "status",
+ "version",
+ "url",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/coverage.py b/fhircraft/fhir/resources/datatypes/R4B/core/coverage.py
index 2798e7e1..367fe2b7 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/coverage.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/coverage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,26 +70,21 @@ class CoverageClass(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class CoverageCostToBeneficiaryException(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,23 +154,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "exception",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exception",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -354,66 +339,60 @@ class Coverage(DomainResource):
default="Coverage",
)
- @field_validator(
- *(
- "contract",
- "subrogation",
- "costToBeneficiary",
- "network",
- "order",
- "class_",
- "payor",
- "period",
- "relationship",
- "dependent",
- "beneficiary",
- "subscriberId",
- "subscriber",
- "policyHolder",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contract",
+ "subrogation",
+ "costToBeneficiary",
+ "network",
+ "order",
+ "class_",
+ "payor",
+ "period",
+ "relationship",
+ "dependent",
+ "beneficiary",
+ "subscriberId",
+ "subscriber",
+ "policyHolder",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_request.py
index 879cede0..428f34bd 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class CoverageEligibilityRequestSupportingInfo(BackboneElement):
alias="_appliesToAll",
)
- @field_validator(
- *(
- "appliesToAll",
- "information",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "appliesToAll",
+ "information",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -127,26 +122,21 @@ class CoverageEligibilityRequestInsurance(BackboneElement):
alias="_businessArrangement",
)
- @field_validator(
- *(
- "businessArrangement",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,47 +226,42 @@ class CoverageEligibilityRequestItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "diagnosis",
- "facility",
- "unitPrice",
- "quantity",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "supportingInfoSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "diagnosis",
+ "facility",
+ "unitPrice",
+ "quantity",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "supportingInfoSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -408,9 +393,11 @@ class CoverageEligibilityRequest(DomainResource):
description="Servicing facility",
default=None,
)
- supportingInfo: Optional[ListType[CoverageEligibilityRequestSupportingInfo]] = Field(
- description="Supporting information",
- default=None,
+ supportingInfo: Optional[ListType[CoverageEligibilityRequestSupportingInfo]] = (
+ Field(
+ description="Supporting information",
+ default=None,
+ )
)
insurance: Optional[ListType[CoverageEligibilityRequestInsurance]] = Field(
description="Patient insurance information",
@@ -432,62 +419,56 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "item",
- "insurance",
- "supportingInfo",
- "facility",
- "insurer",
- "provider",
- "enterer",
- "created",
- "patient",
- "purpose",
- "priority",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "insurance",
+ "supportingInfo",
+ "facility",
+ "insurer",
+ "provider",
+ "enterer",
+ "created",
+ "patient",
+ "purpose",
+ "priority",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_response.py
index 6823d716..9c6608ab 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/coverage_eligibility_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -111,14 +111,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,9 +205,11 @@ class CoverageEligibilityResponseInsuranceItem(BackboneElement):
description="Annual or lifetime",
default=None,
)
- benefit: Optional[ListType[CoverageEligibilityResponseInsuranceItemBenefit]] = Field(
- description="Benefit Summary",
- default=None,
+ benefit: Optional[ListType[CoverageEligibilityResponseInsuranceItemBenefit]] = (
+ Field(
+ description="Benefit Summary",
+ default=None,
+ )
)
authorizationRequired: Optional[Boolean] = Field(
description="Authorization required flag",
@@ -231,59 +234,54 @@ class CoverageEligibilityResponseInsuranceItem(BackboneElement):
alias="_authorizationUrl",
)
- @field_validator(
- *(
- "authorizationUrl",
- "authorizationSupporting",
- "authorizationRequired",
- "benefit",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorizationUrl",
+ "authorizationSupporting",
+ "authorizationRequired",
+ "benefit",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,41 +316,35 @@ class CoverageEligibilityResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "benefitPeriod",
- "inforce",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "benefitPeriod",
+ "inforce",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ces_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ces_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="category.exists() xor productOrService.exists()",
human="SHALL contain a category or a billcode but not both.",
key="ces-1",
@@ -370,14 +362,15 @@ class CoverageEligibilityResponseError(BackboneElement):
default=None,
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -552,63 +545,57 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "error",
- "form",
- "preAuthRef",
- "insurance",
- "insurer",
- "disposition",
- "outcome",
- "request",
- "requestor",
- "created",
- "patient",
- "purpose",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "form",
+ "preAuthRef",
+ "insurance",
+ "insurer",
+ "disposition",
+ "outcome",
+ "request",
+ "requestor",
+ "created",
+ "patient",
+ "purpose",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/detected_issue.py b/fhircraft/fhir/resources/datatypes/R4B/core/detected_issue.py
index d042f204..7d4c0705 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/detected_issue.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/detected_issue.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -48,23 +48,18 @@ class DetectedIssueEvidence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -95,26 +90,21 @@ class DetectedIssueMitigation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "author",
- "date",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "date",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -265,60 +255,54 @@ def identified(self):
base="identified",
)
- @field_validator(
- *(
- "mitigation",
- "reference",
- "detail",
- "evidence",
- "implicated",
- "author",
- "patient",
- "severity",
- "code",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mitigation",
+ "reference",
+ "detail",
+ "evidence",
+ "implicated",
+ "author",
+ "patient",
+ "severity",
+ "code",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/device.py b/fhircraft/fhir/resources/datatypes/R4B/core/device.py
index 6cb922f7..b368eefa 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/device.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/device.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -102,35 +102,30 @@ class DeviceUdiCarrier(BackboneElement):
alias="_entryType",
)
- @field_validator(
- *(
- "entryType",
- "carrierHRF",
- "carrierAIDC",
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entryType",
+ "carrierHRF",
+ "carrierAIDC",
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,23 +157,18 @@ class DeviceDeviceName(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,23 +195,18 @@ class DeviceSpecialization(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "systemType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "systemType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -252,26 +237,21 @@ class DeviceVersion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "component",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "component",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -297,26 +277,21 @@ class DeviceProperty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueCode",
- "valueQuantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueCode",
+ "valueQuantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -537,75 +512,69 @@ class Device(DomainResource):
default="Device",
)
- @field_validator(
- *(
- "parent",
- "safety",
- "note",
- "url",
- "location",
- "contact",
- "owner",
- "patient",
- "property_",
- "version",
- "specialization",
- "type",
- "partNumber",
- "modelNumber",
- "deviceName",
- "serialNumber",
- "lotNumber",
- "expirationDate",
- "manufactureDate",
- "manufacturer",
- "distinctIdentifier",
- "statusReason",
- "status",
- "udiCarrier",
- "definition",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parent",
+ "safety",
+ "note",
+ "url",
+ "location",
+ "contact",
+ "owner",
+ "patient",
+ "property_",
+ "version",
+ "specialization",
+ "type",
+ "partNumber",
+ "modelNumber",
+ "deviceName",
+ "serialNumber",
+ "lotNumber",
+ "expirationDate",
+ "manufactureDate",
+ "manufacturer",
+ "distinctIdentifier",
+ "statusReason",
+ "status",
+ "udiCarrier",
+ "definition",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/device_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/device_definition.py
index b8cfddeb..788a8acf 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/device_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/device_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -71,26 +71,21 @@ class DeviceDefinitionUdiDeviceIdentifier(BackboneElement):
alias="_jurisdiction",
)
- @field_validator(
- *(
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -122,23 +117,18 @@ class DeviceDefinitionDeviceName(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -170,23 +160,18 @@ class DeviceDefinitionSpecialization(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "systemType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "systemType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,23 +193,18 @@ class DeviceDefinitionCapability(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "description",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -250,26 +230,21 @@ class DeviceDefinitionProperty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueCode",
- "valueQuantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueCode",
+ "valueQuantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,26 +280,21 @@ class DeviceDefinitionMaterial(BackboneElement):
alias="_allergenicIndicator",
)
- @field_validator(
- *(
- "allergenicIndicator",
- "alternate",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allergenicIndicator",
+ "alternate",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,9 +360,11 @@ class DeviceDefinition(DomainResource):
description="Instance identifier",
default=None,
)
- udiDeviceIdentifier: Optional[ListType[DeviceDefinitionUdiDeviceIdentifier]] = Field(
- description="Unique Device Identifier (UDI) Barcode string",
- default=None,
+ udiDeviceIdentifier: Optional[ListType[DeviceDefinitionUdiDeviceIdentifier]] = (
+ Field(
+ description="Unique Device Identifier (UDI) Barcode string",
+ default=None,
+ )
)
manufacturerString: Optional[String] = Field(
description="Name of device manufacturer",
@@ -515,70 +487,64 @@ def manufacturer(self):
base="manufacturer",
)
- @field_validator(
- *(
- "material",
- "parentDevice",
- "quantity",
- "note",
- "onlineInformation",
- "url",
- "contact",
- "owner",
- "property_",
- "capability",
- "languageCode",
- "physicalCharacteristics",
- "shelfLifeStorage",
- "safety",
- "version",
- "specialization",
- "type",
- "modelNumber",
- "deviceName",
- "udiDeviceIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "material",
+ "parentDevice",
+ "quantity",
+ "note",
+ "onlineInformation",
+ "url",
+ "contact",
+ "owner",
+ "property_",
+ "capability",
+ "languageCode",
+ "physicalCharacteristics",
+ "shelfLifeStorage",
+ "safety",
+ "version",
+ "specialization",
+ "type",
+ "modelNumber",
+ "deviceName",
+ "udiDeviceIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/device_metric.py b/fhircraft/fhir/resources/datatypes/R4B/core/device_metric.py
index 2545f97b..38fca3d4 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/device_metric.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/device_metric.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class DeviceMetricCalibration(BackboneElement):
alias="_time",
)
- @field_validator(
- *(
- "time",
- "state",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "time",
+ "state",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,59 +203,53 @@ class DeviceMetric(DomainResource):
default="DeviceMetric",
)
- @field_validator(
- *(
- "calibration",
- "measurementPeriod",
- "category",
- "color",
- "operationalStatus",
- "parent",
- "source",
- "unit",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "calibration",
+ "measurementPeriod",
+ "category",
+ "color",
+ "operationalStatus",
+ "parent",
+ "source",
+ "unit",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/device_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/device_request.py
index dfd79d19..3f0b94df 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/device_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/device_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,14 +83,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -323,71 +324,65 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "relevantHistory",
- "note",
- "supportingInfo",
- "insurance",
- "reasonReference",
- "reasonCode",
- "performer",
- "performerType",
- "requester",
- "authoredOn",
- "encounter",
- "subject",
- "parameter",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "priorRequest",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "note",
+ "supportingInfo",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "performerType",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "parameter",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "priorRequest",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/device_use_statement.py b/fhircraft/fhir/resources/datatypes/R4B/core/device_use_statement.py
index cdaead51..d65dcdce 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/device_use_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/device_use_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -176,61 +176,55 @@ def timing(self):
base="timing",
)
- @field_validator(
- *(
- "note",
- "bodySite",
- "reasonReference",
- "reasonCode",
- "device",
- "source",
- "recordedOn",
- "derivedFrom",
- "subject",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "bodySite",
+ "reasonReference",
+ "reasonCode",
+ "device",
+ "source",
+ "recordedOn",
+ "derivedFrom",
+ "subject",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/diagnostic_report.py b/fhircraft/fhir/resources/datatypes/R4B/core/diagnostic_report.py
index 97049612..e037f702 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/diagnostic_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/diagnostic_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,23 +60,18 @@ class DiagnosticReportMedia(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "link",
- "comment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "comment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,66 +241,60 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "presentedForm",
- "conclusionCode",
- "conclusion",
- "media",
- "imagingStudy",
- "result",
- "specimen",
- "resultsInterpreter",
- "performer",
- "issued",
- "encounter",
- "subject",
- "code",
- "category",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "presentedForm",
+ "conclusionCode",
+ "conclusion",
+ "media",
+ "imagingStudy",
+ "result",
+ "specimen",
+ "resultsInterpreter",
+ "performer",
+ "issued",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/document_manifest.py b/fhircraft/fhir/resources/datatypes/R4B/core/document_manifest.py
index 5e4ae7a0..15246f04 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/document_manifest.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/document_manifest.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -47,23 +47,18 @@ class DocumentManifestRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "ref",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ref",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -198,61 +193,55 @@ class DocumentManifest(DomainResource):
default="DocumentManifest",
)
- @field_validator(
- *(
- "related",
- "content",
- "description",
- "source",
- "recipient",
- "author",
- "created",
- "subject",
- "type",
- "status",
- "identifier",
- "masterIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "related",
+ "content",
+ "description",
+ "source",
+ "recipient",
+ "author",
+ "created",
+ "subject",
+ "type",
+ "status",
+ "identifier",
+ "masterIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/document_reference.py b/fhircraft/fhir/resources/datatypes/R4B/core/document_reference.py
index 2a6be10d..394815a2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/document_reference.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/document_reference.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class DocumentReferenceRelatesTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -93,23 +88,18 @@ class DocumentReferenceContent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "format",
- "attachment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "format",
+ "attachment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,38 +141,33 @@ class DocumentReferenceContext(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "related",
- "sourcePatientInfo",
- "practiceSetting",
- "facilityType",
- "period",
- "event",
- "encounter",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "related",
+ "sourcePatientInfo",
+ "practiceSetting",
+ "facilityType",
+ "period",
+ "event",
+ "encounter",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -333,65 +318,59 @@ class DocumentReference(DomainResource):
default="DocumentReference",
)
- @field_validator(
- *(
- "context",
- "content",
- "securityLabel",
- "description",
- "relatesTo",
- "custodian",
- "authenticator",
- "author",
- "date",
- "subject",
- "category",
- "type",
- "docStatus",
- "status",
- "identifier",
- "masterIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "context",
+ "content",
+ "securityLabel",
+ "description",
+ "relatesTo",
+ "custodian",
+ "authenticator",
+ "author",
+ "date",
+ "subject",
+ "category",
+ "type",
+ "docStatus",
+ "status",
+ "identifier",
+ "masterIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/domain_resource.py b/fhircraft/fhir/resources/datatypes/R4B/core/domain_resource.py
index e1c0c7ae..0a9efa00 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/domain_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,49 +87,43 @@ class DomainResource(Resource):
default="DomainResource",
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/encounter.py b/fhircraft/fhir/resources/datatypes/R4B/core/encounter.py
index b04f107c..9b675fe2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/encounter.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/encounter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class EncounterStatusHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -93,23 +88,18 @@ class EncounterClassHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "class_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "class_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -135,26 +125,21 @@ class EncounterParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "individual",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "individual",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -185,26 +170,21 @@ class EncounterDiagnosis(BackboneElement):
alias="_rank",
)
- @field_validator(
- *(
- "rank",
- "use",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rank",
+ "use",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -254,44 +234,39 @@ class EncounterHospitalization(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dischargeDisposition",
- "destination",
- "specialArrangement",
- "specialCourtesy",
- "dietPreference",
- "reAdmission",
- "admitSource",
- "origin",
- "preAdmissionIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dischargeDisposition",
+ "destination",
+ "specialArrangement",
+ "specialCourtesy",
+ "dietPreference",
+ "reAdmission",
+ "admitSource",
+ "origin",
+ "preAdmissionIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -326,29 +301,24 @@ class EncounterLocation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "physicalType",
- "status",
- "location",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "physicalType",
+ "status",
+ "location",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -512,72 +482,66 @@ class Encounter(DomainResource):
default="Encounter",
)
- @field_validator(
- *(
- "partOf",
- "serviceProvider",
- "location",
- "hospitalization",
- "account",
- "diagnosis",
- "reasonReference",
- "reasonCode",
- "length",
- "period",
- "appointment",
- "participant",
- "basedOn",
- "episodeOfCare",
- "subject",
- "priority",
- "serviceType",
- "type",
- "classHistory",
- "class_",
- "statusHistory",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partOf",
+ "serviceProvider",
+ "location",
+ "hospitalization",
+ "account",
+ "diagnosis",
+ "reasonReference",
+ "reasonCode",
+ "length",
+ "period",
+ "appointment",
+ "participant",
+ "basedOn",
+ "episodeOfCare",
+ "subject",
+ "priority",
+ "serviceType",
+ "type",
+ "classHistory",
+ "class_",
+ "statusHistory",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/endpoint.py b/fhircraft/fhir/resources/datatypes/R4B/core/endpoint.py
index 0b83e722..78f9679f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/endpoint.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/endpoint.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -163,60 +163,54 @@ class Endpoint(DomainResource):
default="Endpoint",
)
- @field_validator(
- *(
- "header",
- "address",
- "payloadMimeType",
- "payloadType",
- "period",
- "contact",
- "managingOrganization",
- "name",
- "connectionType",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "header",
+ "address",
+ "payloadMimeType",
+ "payloadType",
+ "period",
+ "contact",
+ "managingOrganization",
+ "name",
+ "connectionType",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_request.py
index d1f259e3..01a139d8 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -128,56 +128,50 @@ class EnrollmentRequest(DomainResource):
default="EnrollmentRequest",
)
- @field_validator(
- *(
- "coverage",
- "candidate",
- "provider",
- "insurer",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "coverage",
+ "candidate",
+ "provider",
+ "insurer",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_response.py
index 1a9b17ed..50f5c6f3 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/enrollment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -142,57 +142,51 @@ class EnrollmentResponse(DomainResource):
default="EnrollmentResponse",
)
- @field_validator(
- *(
- "requestProvider",
- "organization",
- "created",
- "disposition",
- "outcome",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requestProvider",
+ "organization",
+ "created",
+ "disposition",
+ "outcome",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/episode_of_care.py b/fhircraft/fhir/resources/datatypes/R4B/core/episode_of_care.py
index 70705e28..4fce4438 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/episode_of_care.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/episode_of_care.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -53,23 +53,18 @@ class EpisodeOfCareStatusHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -100,26 +95,21 @@ class EpisodeOfCareDiagnosis(BackboneElement):
alias="_rank",
)
- @field_validator(
- *(
- "rank",
- "role",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rank",
+ "role",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -239,61 +229,55 @@ class EpisodeOfCare(DomainResource):
default="EpisodeOfCare",
)
- @field_validator(
- *(
- "account",
- "team",
- "careManager",
- "referralRequest",
- "period",
- "managingOrganization",
- "patient",
- "diagnosis",
- "type",
- "statusHistory",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "account",
+ "team",
+ "careManager",
+ "referralRequest",
+ "period",
+ "managingOrganization",
+ "patient",
+ "diagnosis",
+ "type",
+ "statusHistory",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/event_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/event_definition.py
index c8a89a5d..eee9e585 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/event_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/event_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -302,76 +302,70 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "trigger",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "trigger",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/evidence.py b/fhircraft/fhir/resources/datatypes/R4B/core/evidence.py
index 0b7d8d67..20815437 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/evidence.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/evidence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,35 +83,30 @@ class EvidenceVariableDefinition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "directnessMatch",
- "intended",
- "observed",
- "variableRole",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "directnessMatch",
+ "intended",
+ "observed",
+ "variableRole",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -165,32 +160,27 @@ class EvidenceStatisticSampleSize(BackboneElement):
alias="_knownDataCount",
)
- @field_validator(
- *(
- "knownDataCount",
- "numberOfParticipants",
- "numberOfStudies",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "knownDataCount",
+ "numberOfParticipants",
+ "numberOfStudies",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -242,38 +232,33 @@ class EvidenceStatisticAttributeEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "range",
- "level",
- "quantity",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "range",
+ "level",
+ "quantity",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -312,32 +297,27 @@ class EvidenceStatisticModelCharacteristicVariable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueRange",
- "valueQuantity",
- "valueCategory",
- "handling",
- "variableDefinition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueRange",
+ "valueQuantity",
+ "valueCategory",
+ "handling",
+ "variableDefinition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -389,38 +369,33 @@ class EvidenceStatisticModelCharacteristicAttributeEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "range",
- "level",
- "quantity",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "range",
+ "level",
+ "quantity",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -452,29 +427,24 @@ class EvidenceStatisticModelCharacteristic(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "variable",
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "variable",
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -538,52 +508,49 @@ class EvidenceStatistic(BackboneElement):
description="An attribute of the Statistic",
default=None,
)
- modelCharacteristic: Optional[ListType[EvidenceStatisticModelCharacteristic]] = Field(
- description="An aspect of the statistical model",
- default=None,
+ modelCharacteristic: Optional[ListType[EvidenceStatisticModelCharacteristic]] = (
+ Field(
+ description="An aspect of the statistical model",
+ default=None,
+ )
)
- @field_validator(
- *(
- "modelCharacteristic",
- "attributeEstimate",
- "sampleSize",
- "numberAffected",
- "numberOfEvents",
- "quantity",
- "category",
- "statisticType",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modelCharacteristic",
+ "attributeEstimate",
+ "sampleSize",
+ "numberAffected",
+ "numberOfEvents",
+ "quantity",
+ "category",
+ "statisticType",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -631,35 +598,30 @@ class EvidenceCertainty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subcomponent",
- "rater",
- "rating",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subcomponent",
+ "rater",
+ "rating",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -892,73 +854,67 @@ def citeAs(self):
base="citeAs",
)
- @field_validator(
- *(
- "certainty",
- "statistic",
- "studyType",
- "synthesisType",
- "variableDefinition",
- "note",
- "assertion",
- "description",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "contact",
- "publisher",
- "lastReviewDate",
- "approvalDate",
- "useContext",
- "date",
- "status",
- "title",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certainty",
+ "statistic",
+ "studyType",
+ "synthesisType",
+ "variableDefinition",
+ "note",
+ "assertion",
+ "description",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "contact",
+ "publisher",
+ "lastReviewDate",
+ "approvalDate",
+ "useContext",
+ "date",
+ "status",
+ "title",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/evidence_report.py b/fhircraft/fhir/resources/datatypes/R4B/core/evidence_report.py
index 33bd337a..458e3340 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/evidence_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/evidence_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -101,26 +101,21 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "period",
- "exclude",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "exclude",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,23 +146,18 @@ class EvidenceReportSubject(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "characteristic",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "characteristic",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,14 +195,15 @@ def target(self):
base="target",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -293,53 +284,48 @@ class EvidenceReportSection(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "section",
- "emptyReason",
- "entryQuantity",
- "entryReference",
- "entryClassifier",
- "orderedBy",
- "mode",
- "text",
- "author",
- "focusReference",
- "focus",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "emptyReason",
+ "entryQuantity",
+ "entryReference",
+ "entryClassifier",
+ "orderedBy",
+ "mode",
+ "text",
+ "author",
+ "focusReference",
+ "focus",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -509,66 +495,60 @@ def citeAs(self):
base="citeAs",
)
- @field_validator(
- *(
- "section",
- "relatesTo",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "contact",
- "publisher",
- "subject",
- "relatedArtifact",
- "note",
- "type",
- "relatedIdentifier",
- "identifier",
- "useContext",
- "status",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "relatesTo",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "contact",
+ "publisher",
+ "subject",
+ "relatedArtifact",
+ "note",
+ "type",
+ "relatedIdentifier",
+ "identifier",
+ "useContext",
+ "status",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/evidence_variable.py b/fhircraft/fhir/resources/datatypes/R4B/core/evidence_variable.py
index a4427871..b1aae979 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/evidence_variable.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/evidence_variable.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -75,29 +75,24 @@ class EvidenceVariableCharacteristicTimeFromStart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "range",
- "quantity",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "range",
+ "quantity",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -178,35 +173,30 @@ def definition(self):
base="definition",
)
- @field_validator(
- *(
- "groupMeasure",
- "timeFromStart",
- "exclude",
- "device",
- "method",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupMeasure",
+ "timeFromStart",
+ "exclude",
+ "device",
+ "method",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,14 +247,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("name", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -501,73 +492,67 @@ class EvidenceVariable(DomainResource):
default="EvidenceVariable",
)
- @field_validator(
- *(
- "category",
- "handling",
- "characteristic",
- "characteristicCombination",
- "actual",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "contact",
- "publisher",
- "useContext",
- "note",
- "description",
- "date",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "category",
+ "handling",
+ "characteristic",
+ "characteristicCombination",
+ "actual",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "contact",
+ "publisher",
+ "useContext",
+ "note",
+ "description",
+ "date",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/example_scenario.py b/fhircraft/fhir/resources/datatypes/R4B/core/example_scenario.py
index 8d1e4238..241661f8 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/example_scenario.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/example_scenario.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,29 +84,24 @@ class ExampleScenarioActor(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "name",
- "type",
- "actorId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "name",
+ "type",
+ "actorId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -138,23 +133,18 @@ class ExampleScenarioInstanceVersion(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "versionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "versionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,23 +176,18 @@ class ExampleScenarioInstanceContainedInstance(BackboneElement):
alias="_versionId",
)
- @field_validator(
- *(
- "versionId",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionId",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -255,40 +240,37 @@ class ExampleScenarioInstance(BackboneElement):
description="A specific version of the resource",
default=None,
)
- containedInstance: Optional[ListType[ExampleScenarioInstanceContainedInstance]] = Field(
- description="Resources contained in the instance",
- default=None,
- )
-
- @field_validator(
- *(
- "containedInstance",
- "version",
- "description",
- "name",
- "resourceType",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
+ containedInstance: Optional[ListType[ExampleScenarioInstanceContainedInstance]] = (
+ Field(
+ description="Resources contained in the instance",
+ default=None,
+ )
)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "containedInstance",
+ "version",
+ "description",
+ "name",
+ "resourceType",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -320,23 +302,18 @@ class ExampleScenarioProcessStepOperationRequest(BackboneElement):
alias="_versionId",
)
- @field_validator(
- *(
- "versionId",
- "resourceId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionId",
+ "resourceId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -430,47 +407,42 @@ class ExampleScenarioProcessStepOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "receiverActive",
- "initiatorActive",
- "description",
- "receiver",
- "initiator",
- "name",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "receiverActive",
+ "initiatorActive",
+ "description",
+ "receiver",
+ "initiator",
+ "name",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -506,26 +478,21 @@ class ExampleScenarioProcessStepAlternative(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -560,29 +527,24 @@ class ExampleScenarioProcessStep(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "alternative",
- "operation",
- "pause",
- "process",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "alternative",
+ "operation",
+ "pause",
+ "process",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -636,32 +598,27 @@ class ExampleScenarioProcess(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "postConditions",
- "preConditions",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "postConditions",
+ "preConditions",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -846,66 +803,60 @@ class ExampleScenario(DomainResource):
default="ExampleScenario",
)
- @field_validator(
- *(
- "workflow",
- "process",
- "instance",
- "actor",
- "purpose",
- "copyright",
- "jurisdiction",
- "useContext",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "workflow",
+ "process",
+ "instance",
+ "actor",
+ "purpose",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/explanation_of_benefit.py b/fhircraft/fhir/resources/datatypes/R4B/core/explanation_of_benefit.py
index 1a38cd77..42756663 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/explanation_of_benefit.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/explanation_of_benefit.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class ExplanationOfBenefitRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -108,23 +103,18 @@ class ExplanationOfBenefitPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -168,32 +158,27 @@ class ExplanationOfBenefitCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualification",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualification",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,29 +270,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,29 +355,24 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "packageCode",
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageCode",
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -461,29 +436,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -528,26 +498,21 @@ class ExplanationOfBenefitInsurance(BackboneElement):
alias="_preAuthRef",
)
- @field_validator(
- *(
- "preAuthRef",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthRef",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -589,23 +554,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -649,29 +609,24 @@ class ExplanationOfBenefitItemAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -706,29 +661,24 @@ class ExplanationOfBenefitItemDetailAdjudication(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -809,56 +759,51 @@ class ExplanationOfBenefitItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -934,68 +879,65 @@ class ExplanationOfBenefitItemDetail(BackboneElement):
default=None,
alias="_noteNumber",
)
- adjudication: Optional[ListType[ExplanationOfBenefitItemDetailAdjudication]] = Field(
- description="Detail level adjudication details",
- default=None,
+ adjudication: Optional[ListType[ExplanationOfBenefitItemDetailAdjudication]] = (
+ Field(
+ description="Detail level adjudication details",
+ default=None,
+ )
)
subDetail: Optional[ListType[ExplanationOfBenefitItemDetailSubDetail]] = Field(
description="Additional items",
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1167,80 +1109,75 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "encounter",
- "subSite",
- "bodySite",
- "udi",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "category",
- "revenue",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "encounter",
+ "subSite",
+ "bodySite",
+ "udi",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "category",
+ "revenue",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1314,41 +1251,36 @@ class ExplanationOfBenefitAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1408,44 +1340,39 @@ class ExplanationOfBenefitAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "noteNumber",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrService",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "noteNumber",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrService",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1587,65 +1514,60 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "noteNumber",
- "subSite",
- "bodySite",
- "net",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "productOrService",
- "provider",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "noteNumber",
+ "subSite",
+ "bodySite",
+ "net",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "productOrService",
+ "provider",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1685,23 +1607,18 @@ class ExplanationOfBenefitTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1744,35 +1661,30 @@ class ExplanationOfBenefitPayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1817,29 +1729,24 @@ class ExplanationOfBenefitProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1906,14 +1813,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1992,41 +1900,36 @@ class ExplanationOfBenefitBenefitBalance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "financial",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "financial",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -2300,92 +2203,86 @@ class ExplanationOfBenefit(DomainResource):
default="ExplanationOfBenefit",
)
- @field_validator(
- *(
- "benefitBalance",
- "benefitPeriod",
- "processNote",
- "form",
- "formCode",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "accident",
- "insurance",
- "precedence",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "preAuthRefPeriod",
- "preAuthRef",
- "disposition",
- "outcome",
- "claimResponse",
- "claim",
- "facility",
- "referral",
- "payee",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "fundsReserveRequested",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefitBalance",
+ "benefitPeriod",
+ "processNote",
+ "form",
+ "formCode",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "accident",
+ "insurance",
+ "precedence",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "preAuthRefPeriod",
+ "preAuthRef",
+ "disposition",
+ "outcome",
+ "claimResponse",
+ "claim",
+ "facility",
+ "referral",
+ "payee",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "fundsReserveRequested",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/family_member_history.py b/fhircraft/fhir/resources/datatypes/R4B/core/family_member_history.py
index 8f77bdc4..afd24c5c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/family_member_history.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/family_member_history.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -100,29 +100,24 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "note",
- "contributedToDeath",
- "outcome",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributedToDeath",
+ "outcome",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -383,64 +378,58 @@ def deceased(self):
base="deceased",
)
- @field_validator(
- *(
- "condition",
- "note",
- "reasonReference",
- "reasonCode",
- "estimatedAge",
- "sex",
- "relationship",
- "name",
- "date",
- "patient",
- "dataAbsentReason",
- "status",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "estimatedAge",
+ "sex",
+ "relationship",
+ "name",
+ "date",
+ "patient",
+ "dataAbsentReason",
+ "status",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/flag.py b/fhircraft/fhir/resources/datatypes/R4B/core/flag.py
index 0cc72b7f..2e58cf5a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/flag.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/flag.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -129,57 +129,51 @@ class Flag(DomainResource):
default="Flag",
)
- @field_validator(
- *(
- "author",
- "encounter",
- "period",
- "subject",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "encounter",
+ "period",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/goal.py b/fhircraft/fhir/resources/datatypes/R4B/core/goal.py
index fafc5eeb..3471037e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/goal.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/goal.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -125,14 +125,15 @@ def due(self):
base="due",
)
- @field_validator(
- *("measure", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measure",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -320,76 +321,69 @@ def start(self):
base="start",
)
- @field_validator(
- *(
- "outcomeReference",
- "outcomeCode",
- "note",
- "addresses",
- "expressedBy",
- "statusReason",
- "statusDate",
- "target",
- "subject",
- "description",
- "priority",
- "category",
- "achievementStatus",
- "lifecycleStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcomeReference",
+ "outcomeCode",
+ "note",
+ "addresses",
+ "expressedBy",
+ "statusReason",
+ "statusDate",
+ "target",
+ "subject",
+ "description",
+ "priority",
+ "category",
+ "achievementStatus",
+ "lifecycleStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_gol_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_gol_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="(detail.exists() and measure.exists()) or detail.exists().not()",
human="Goal.target.measure is required if Goal.target.detail is populated",
key="gol-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/graph_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/graph_definition.py
index c4e0e2f9..a9adcf3f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/graph_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/graph_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -93,32 +93,27 @@ class GraphDefinitionLinkTargetCompartment(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "expression",
- "rule",
- "code",
- "use",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "expression",
+ "rule",
+ "code",
+ "use",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -167,32 +162,27 @@ class GraphDefinitionLinkTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "link",
- "compartment",
- "profile",
- "params",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "compartment",
+ "profile",
+ "params",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -255,35 +245,30 @@ class GraphDefinitionLink(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "description",
- "max",
- "min",
- "sliceName",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "description",
+ "max",
+ "min",
+ "sliceName",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -465,64 +450,58 @@ class GraphDefinition(DomainResource):
default="GraphDefinition",
)
- @field_validator(
- *(
- "link",
- "profile",
- "start",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "profile",
+ "start",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/group.py b/fhircraft/fhir/resources/datatypes/R4B/core/group.py
index 2a2fb35a..9d45fa58 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/group.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/group.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -97,26 +97,21 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "period",
- "exclude",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "exclude",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,26 +151,21 @@ class GroupMember(BackboneElement):
alias="_inactive",
)
- @field_validator(
- *(
- "inactive",
- "period",
- "entity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "inactive",
+ "period",
+ "entity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -307,59 +297,53 @@ class Group(DomainResource):
default="Group",
)
- @field_validator(
- *(
- "member",
- "characteristic",
- "managingEntity",
- "quantity",
- "name",
- "code",
- "actual",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "member",
+ "characteristic",
+ "managingEntity",
+ "quantity",
+ "name",
+ "code",
+ "actual",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/guidance_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/guidance_response.py
index 8af67b21..67fe03c9 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/guidance_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/guidance_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -194,63 +194,57 @@ def module(self):
base="module",
)
- @field_validator(
- *(
- "dataRequirement",
- "result",
- "outputParameters",
- "evaluationMessage",
- "note",
- "reasonReference",
- "reasonCode",
- "performer",
- "occurrenceDateTime",
- "encounter",
- "subject",
- "status",
- "identifier",
- "requestIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dataRequirement",
+ "result",
+ "outputParameters",
+ "evaluationMessage",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "occurrenceDateTime",
+ "encounter",
+ "subject",
+ "status",
+ "identifier",
+ "requestIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/healthcare_service.py b/fhircraft/fhir/resources/datatypes/R4B/core/healthcare_service.py
index 4aa21a01..f2ee85e0 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/healthcare_service.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/healthcare_service.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,23 +62,18 @@ class HealthcareServiceEligibility(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,29 +123,24 @@ class HealthcareServiceAvailableTime(BackboneElement):
alias="_availableEndTime",
)
- @field_validator(
- *(
- "availableEndTime",
- "availableStartTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "availableEndTime",
+ "availableStartTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,23 +167,18 @@ class HealthcareServiceNotAvailable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "during",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "during",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -386,73 +371,67 @@ class HealthcareService(DomainResource):
default="HealthcareService",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "notAvailable",
- "availableTime",
- "appointmentRequired",
- "referralMethod",
- "communication",
- "characteristic",
- "program",
- "eligibility",
- "serviceProvisionCode",
- "coverageArea",
- "telecom",
- "photo",
- "extraDetails",
- "comment",
- "name",
- "location",
- "specialty",
- "type",
- "category",
- "providedBy",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "notAvailable",
+ "availableTime",
+ "appointmentRequired",
+ "referralMethod",
+ "communication",
+ "characteristic",
+ "program",
+ "eligibility",
+ "serviceProvisionCode",
+ "coverageArea",
+ "telecom",
+ "photo",
+ "extraDetails",
+ "comment",
+ "name",
+ "location",
+ "specialty",
+ "type",
+ "category",
+ "providedBy",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/imaging_study.py b/fhircraft/fhir/resources/datatypes/R4B/core/imaging_study.py
index af326724..652a2d1f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/imaging_study.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/imaging_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class ImagingStudySeriesPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -117,29 +112,24 @@ class ImagingStudySeriesInstance(BackboneElement):
alias="_title",
)
- @field_validator(
- *(
- "title",
- "number",
- "sopClass",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "title",
+ "number",
+ "sopClass",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -226,53 +216,48 @@ class ImagingStudySeries(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "instance",
- "performer",
- "started",
- "specimen",
- "laterality",
- "bodySite",
- "endpoint",
- "numberOfInstances",
- "description",
- "modality",
- "number",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instance",
+ "performer",
+ "started",
+ "specimen",
+ "laterality",
+ "bodySite",
+ "endpoint",
+ "numberOfInstances",
+ "description",
+ "modality",
+ "number",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -444,69 +429,63 @@ class ImagingStudy(DomainResource):
default="ImagingStudy",
)
- @field_validator(
- *(
- "series",
- "description",
- "note",
- "reasonReference",
- "reasonCode",
- "location",
- "procedureCode",
- "procedureReference",
- "numberOfInstances",
- "numberOfSeries",
- "endpoint",
- "interpreter",
- "referrer",
- "basedOn",
- "started",
- "encounter",
- "subject",
- "modality",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "series",
+ "description",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "procedureCode",
+ "procedureReference",
+ "numberOfInstances",
+ "numberOfSeries",
+ "endpoint",
+ "interpreter",
+ "referrer",
+ "basedOn",
+ "started",
+ "encounter",
+ "subject",
+ "modality",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/immunization.py b/fhircraft/fhir/resources/datatypes/R4B/core/immunization.py
index a4eeb78a..0a0a13df 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/immunization.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/immunization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class ImmunizationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -123,29 +118,24 @@ class ImmunizationEducation(BackboneElement):
alias="_presentationDate",
)
- @field_validator(
- *(
- "presentationDate",
- "publicationDate",
- "reference",
- "documentType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "presentationDate",
+ "publicationDate",
+ "reference",
+ "documentType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,26 +171,21 @@ class ImmunizationReaction(BackboneElement):
alias="_reported",
)
- @field_validator(
- *(
- "reported",
- "detail",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reported",
+ "detail",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,26 +266,21 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "targetDisease",
- "authority",
- "series",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetDisease",
+ "authority",
+ "series",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -548,88 +528,81 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "protocolApplied",
- "reaction",
- "fundingSource",
- "programEligibility",
- "education",
- "subpotentReason",
- "isSubpotent",
- "reasonReference",
- "reasonCode",
- "note",
- "performer",
- "doseQuantity",
- "route",
- "site",
- "expirationDate",
- "lotNumber",
- "manufacturer",
- "location",
- "reportOrigin",
- "primarySource",
- "recorded",
- "encounter",
- "patient",
- "vaccineCode",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "protocolApplied",
+ "reaction",
+ "fundingSource",
+ "programEligibility",
+ "education",
+ "subpotentReason",
+ "isSubpotent",
+ "reasonReference",
+ "reasonCode",
+ "note",
+ "performer",
+ "doseQuantity",
+ "route",
+ "site",
+ "expirationDate",
+ "lotNumber",
+ "manufacturer",
+ "location",
+ "reportOrigin",
+ "primarySource",
+ "recorded",
+ "encounter",
+ "patient",
+ "vaccineCode",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("education",), mode="after", check_fields=None)
- @classmethod
- def FHIR_imm_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_imm_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("education",),
expression="documentType.exists() or reference.exists()",
human="One of documentType or reference SHALL be present",
key="imm-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/immunization_evaluation.py b/fhircraft/fhir/resources/datatypes/R4B/core/immunization_evaluation.py
index ef4904f1..13089b47 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/immunization_evaluation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/immunization_evaluation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -211,60 +211,54 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "series",
- "description",
- "doseStatusReason",
- "doseStatus",
- "immunizationEvent",
- "targetDisease",
- "authority",
- "date",
- "patient",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "series",
+ "description",
+ "doseStatusReason",
+ "doseStatus",
+ "immunizationEvent",
+ "targetDisease",
+ "authority",
+ "date",
+ "patient",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/immunization_recommendation.py b/fhircraft/fhir/resources/datatypes/R4B/core/immunization_recommendation.py
index 118e3f63..af79ee30 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/immunization_recommendation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/immunization_recommendation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class ImmunizationRecommendationRecommendationDateCriterion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -190,47 +185,42 @@ def seriesDoses(self):
base="seriesDoses",
)
- @field_validator(
- *(
- "supportingPatientInformation",
- "supportingImmunization",
- "series",
- "description",
- "dateCriterion",
- "forecastReason",
- "forecastStatus",
- "contraindicatedVaccineCode",
- "targetDisease",
- "vaccineCode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingPatientInformation",
+ "supportingImmunization",
+ "series",
+ "description",
+ "dateCriterion",
+ "forecastReason",
+ "forecastStatus",
+ "contraindicatedVaccineCode",
+ "targetDisease",
+ "vaccineCode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -333,75 +323,70 @@ class ImmunizationRecommendation(DomainResource):
description="Who is responsible for protocol",
default=None,
)
- recommendation: Optional[ListType[ImmunizationRecommendationRecommendation]] = Field(
- description="Vaccine administration recommendations",
- default=None,
+ recommendation: Optional[ListType[ImmunizationRecommendationRecommendation]] = (
+ Field(
+ description="Vaccine administration recommendations",
+ default=None,
+ )
)
resourceType: Literal["ImmunizationRecommendation"] = Field(
description=None,
default="ImmunizationRecommendation",
)
- @field_validator(
- *(
- "recommendation",
- "authority",
- "date",
- "patient",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recommendation",
+ "authority",
+ "date",
+ "patient",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("recommendation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_imr_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_imr_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("recommendation",),
expression="vaccineCode.exists() or targetDisease.exists()",
human="One of vaccineCode or targetDisease SHALL be present",
key="imr-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/implementation_guide.py b/fhircraft/fhir/resources/datatypes/R4B/core/implementation_guide.py
index b74b4a2a..70ccf572 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/implementation_guide.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/implementation_guide.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -77,26 +77,21 @@ class ImplementationGuideDependsOn(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "packageId",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "packageId",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,23 +123,18 @@ class ImplementationGuideGlobal(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -176,23 +166,18 @@ class ImplementationGuideDefinitionGrouping(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -271,32 +256,27 @@ def example(self):
base="example",
)
- @field_validator(
- *(
- "groupingId",
- "description",
- "name",
- "fhirVersion",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupingId",
+ "description",
+ "name",
+ "fhirVersion",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -361,26 +341,21 @@ def name(self):
base="name",
)
- @field_validator(
- *(
- "page",
- "generation",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "page",
+ "generation",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -421,23 +396,18 @@ class ImplementationGuideDefinitionParameter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -478,26 +448,21 @@ class ImplementationGuideDefinitionTemplate(BackboneElement):
alias="_scope",
)
- @field_validator(
- *(
- "scope",
- "source",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scope",
+ "source",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -531,32 +496,27 @@ class ImplementationGuideDefinition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "template",
- "parameter",
- "page",
- "resource",
- "grouping",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "template",
+ "parameter",
+ "page",
+ "resource",
+ "grouping",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -608,23 +568,18 @@ def example(self):
base="example",
)
- @field_validator(
- *(
- "relativePath",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relativePath",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -674,26 +629,21 @@ class ImplementationGuideManifestPage(BackboneElement):
alias="_anchor",
)
- @field_validator(
- *(
- "anchor",
- "title",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "anchor",
+ "title",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -742,32 +692,27 @@ class ImplementationGuideManifest(BackboneElement):
alias="_other",
)
- @field_validator(
- *(
- "other",
- "image",
- "page",
- "resource",
- "rendering",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "other",
+ "image",
+ "page",
+ "resource",
+ "rendering",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -979,81 +924,74 @@ class ImplementationGuide(DomainResource):
default="ImplementationGuide",
)
- @field_validator(
- *(
- "manifest",
- "definition",
- "global_",
- "dependsOn",
- "fhirVersion",
- "license",
- "packageId",
- "copyright",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manifest",
+ "definition",
+ "global_",
+ "dependsOn",
+ "fhirVersion",
+ "license",
+ "packageId",
+ "copyright",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("definition",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ig_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ig_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("definition",),
expression="resource.groupingId.all(%context.grouping.id contains $this)",
human="If a resource has a groupingId, it must refer to a grouping defined in the Implementation Guide",
key="ig-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/ingredient.py b/fhircraft/fhir/resources/datatypes/R4B/core/ingredient.py
index 7a895e25..0cfef40f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/ingredient.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/ingredient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class IngredientManufacturer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manufacturer",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manufacturer",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -117,26 +112,21 @@ def strength(self):
base="strength",
)
- @field_validator(
- *(
- "country",
- "measurementPoint",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "country",
+ "measurementPoint",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,11 +195,11 @@ class IngredientSubstanceStrength(BackboneElement):
description="Where the strength range applies",
default=None,
)
- referenceStrength: Optional[ListType[IngredientSubstanceStrengthReferenceStrength]] = (
- Field(
- description="Strength expressed in terms of a reference substance",
- default=None,
- )
+ referenceStrength: Optional[
+ ListType[IngredientSubstanceStrengthReferenceStrength]
+ ] = Field(
+ description="Strength expressed in terms of a reference substance",
+ default=None,
)
@property
@@ -226,32 +216,27 @@ def concentration(self):
base="concentration",
)
- @field_validator(
- *(
- "referenceStrength",
- "country",
- "measurementPoint",
- "textConcentration",
- "textPresentation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceStrength",
+ "country",
+ "measurementPoint",
+ "textConcentration",
+ "textPresentation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -291,23 +276,18 @@ class IngredientSubstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "strength",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -416,57 +396,51 @@ class Ingredient(DomainResource):
default="Ingredient",
)
- @field_validator(
- *(
- "substance",
- "manufacturer",
- "allergenicIndicator",
- "function",
- "role",
- "for_",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "substance",
+ "manufacturer",
+ "allergenicIndicator",
+ "function",
+ "role",
+ "for_",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/insurance_plan.py b/fhircraft/fhir/resources/datatypes/R4B/core/insurance_plan.py
index 3420485a..ffb2e0a8 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/insurance_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/insurance_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,29 +61,24 @@ class InsurancePlanContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "address",
- "telecom",
- "name",
- "purpose",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "telecom",
+ "name",
+ "purpose",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -105,23 +100,18 @@ class InsurancePlanCoverageBenefitLimit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -152,26 +142,21 @@ class InsurancePlanCoverageBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "limit",
- "requirement",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "limit",
+ "requirement",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -197,26 +182,21 @@ class InsurancePlanCoverage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "network",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "network",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -256,29 +236,24 @@ class InsurancePlanPlanGeneralCost(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "cost",
- "groupSize",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "cost",
+ "groupSize",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -308,29 +283,24 @@ class InsurancePlanPlanSpecificCostBenefitCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "qualifiers",
- "applicability",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "qualifiers",
+ "applicability",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -352,23 +322,18 @@ class InsurancePlanPlanSpecificCostBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "cost",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cost",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -390,23 +355,18 @@ class InsurancePlanPlanSpecificCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -444,35 +404,30 @@ class InsurancePlanPlan(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specificCost",
- "generalCost",
- "network",
- "coverageArea",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specificCost",
+ "generalCost",
+ "network",
+ "coverageArea",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -610,63 +565,57 @@ class InsurancePlan(DomainResource):
default="InsurancePlan",
)
- @field_validator(
- *(
- "plan",
- "coverage",
- "network",
- "endpoint",
- "contact",
- "coverageArea",
- "administeredBy",
- "ownedBy",
- "period",
- "alias",
- "name",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "plan",
+ "coverage",
+ "network",
+ "endpoint",
+ "contact",
+ "coverageArea",
+ "administeredBy",
+ "ownedBy",
+ "period",
+ "alias",
+ "name",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/invoice.py b/fhircraft/fhir/resources/datatypes/R4B/core/invoice.py
index 0c7a72fe..60393ea0 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/invoice.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/invoice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class InvoiceParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -113,29 +108,24 @@ class InvoiceLineItemPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,23 +167,18 @@ def chargeItem(self):
base="chargeItem",
)
- @field_validator(
- *(
- "priceComponent",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -242,29 +227,24 @@ class InvoiceTotalPriceComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -415,65 +395,59 @@ class Invoice(DomainResource):
default="Invoice",
)
- @field_validator(
- *(
- "note",
- "paymentTerms",
- "totalGross",
- "totalNet",
- "totalPriceComponent",
- "lineItem",
- "account",
- "issuer",
- "participant",
- "date",
- "recipient",
- "subject",
- "type",
- "cancelledReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "paymentTerms",
+ "totalGross",
+ "totalNet",
+ "totalPriceComponent",
+ "lineItem",
+ "account",
+ "issuer",
+ "participant",
+ "date",
+ "recipient",
+ "subject",
+ "type",
+ "cancelledReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/library.py b/fhircraft/fhir/resources/datatypes/R4B/core/library.py
index d7ea315a..febb6c1c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/library.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/library.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -316,79 +316,73 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "content",
- "dataRequirement",
- "parameter",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "type",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "dataRequirement",
+ "parameter",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "type",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/linkage.py b/fhircraft/fhir/resources/datatypes/R4B/core/linkage.py
index 3681d54a..c3314883 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/linkage.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/linkage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -50,23 +50,18 @@ class LinkageItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,52 +145,46 @@ class Linkage(DomainResource):
default="Linkage",
)
- @field_validator(
- *(
- "item",
- "author",
- "active",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "author",
+ "active",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/list.py b/fhircraft/fhir/resources/datatypes/R4B/core/list.py
index 02534845..097716ae 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/list.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/list.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -76,29 +76,24 @@ class ListEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "date",
- "deleted",
- "flag",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "date",
+ "deleted",
+ "flag",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,62 +232,56 @@ class List(DomainResource):
default="List",
)
- @field_validator(
- *(
- "emptyReason",
- "entry",
- "note",
- "orderedBy",
- "source",
- "date",
- "encounter",
- "subject",
- "code",
- "title",
- "mode",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "emptyReason",
+ "entry",
+ "note",
+ "orderedBy",
+ "source",
+ "date",
+ "encounter",
+ "subject",
+ "code",
+ "title",
+ "mode",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/location.py b/fhircraft/fhir/resources/datatypes/R4B/core/location.py
index 2a38716e..eb35699d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/location.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/location.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -76,26 +76,21 @@ class LocationPosition(BackboneElement):
alias="_altitude",
)
- @field_validator(
- *(
- "altitude",
- "latitude",
- "longitude",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "altitude",
+ "latitude",
+ "longitude",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -145,29 +140,24 @@ class LocationHoursOfOperation(BackboneElement):
alias="_closingTime",
)
- @field_validator(
- *(
- "closingTime",
- "openingTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "closingTime",
+ "openingTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,66 +322,60 @@ class Location(DomainResource):
default="Location",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "hoursOfOperation",
- "partOf",
- "managingOrganization",
- "position",
- "physicalType",
- "address",
- "telecom",
- "type",
- "mode",
- "description",
- "alias",
- "name",
- "operationalStatus",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "hoursOfOperation",
+ "partOf",
+ "managingOrganization",
+ "position",
+ "physicalType",
+ "address",
+ "telecom",
+ "type",
+ "mode",
+ "description",
+ "alias",
+ "name",
+ "operationalStatus",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/manufactured_item_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/manufactured_item_definition.py
index 9a5cd982..3f9d316c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/manufactured_item_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/manufactured_item_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,14 +88,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,56 +207,50 @@ class ManufacturedItemDefinition(DomainResource):
default="ManufacturedItemDefinition",
)
- @field_validator(
- *(
- "property_",
- "ingredient",
- "manufacturer",
- "unitOfPresentation",
- "manufacturedDoseForm",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "ingredient",
+ "manufacturer",
+ "unitOfPresentation",
+ "manufacturedDoseForm",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/measure.py b/fhircraft/fhir/resources/datatypes/R4B/core/measure.py
index 1fcc726a..20d2dfcf 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/measure.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/measure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,26 +70,21 @@ class MeasureGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -120,26 +115,21 @@ class MeasureGroupStratifierComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,29 +164,24 @@ class MeasureGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "component",
- "criteria",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "criteria",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -231,29 +216,24 @@ class MeasureGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratifier",
- "population",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "population",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -288,29 +268,24 @@ class MeasureSupplementalData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "usage",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "usage",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -667,89 +642,83 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "supplementalData",
- "group",
- "guidance",
- "definition",
- "improvementNotation",
- "clinicalRecommendationStatement",
- "rationale",
- "rateAggregation",
- "riskAdjustment",
- "type",
- "compositeScoring",
- "scoring",
- "disclaimer",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supplementalData",
+ "group",
+ "guidance",
+ "definition",
+ "improvementNotation",
+ "clinicalRecommendationStatement",
+ "rationale",
+ "rateAggregation",
+ "riskAdjustment",
+ "type",
+ "compositeScoring",
+ "scoring",
+ "disclaimer",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/measure_report.py b/fhircraft/fhir/resources/datatypes/R4B/core/measure_report.py
index 1353ba06..406ba42f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/measure_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/measure_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class MeasureReportGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjectResults",
- "count",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjectResults",
+ "count",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class MeasureReportGroupStratifierStratumComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -153,26 +143,21 @@ class MeasureReportGroupStratifierStratumPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjectResults",
- "count",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjectResults",
+ "count",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -193,38 +178,35 @@ class MeasureReportGroupStratifierStratum(BackboneElement):
description="Stratifier component values",
default=None,
)
- population: Optional[ListType[MeasureReportGroupStratifierStratumPopulation]] = Field(
- description="Population results in this stratum",
- default=None,
+ population: Optional[ListType[MeasureReportGroupStratifierStratumPopulation]] = (
+ Field(
+ description="Population results in this stratum",
+ default=None,
+ )
)
measureScore: Optional[Quantity] = Field(
description="What score this stratum achieved",
default=None,
)
- @field_validator(
- *(
- "measureScore",
- "population",
- "component",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measureScore",
+ "population",
+ "component",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,23 +228,18 @@ class MeasureReportGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratum",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratum",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -292,29 +269,24 @@ class MeasureReportGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratifier",
- "measureScore",
- "population",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "measureScore",
+ "population",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -445,60 +417,54 @@ class MeasureReport(DomainResource):
default="MeasureReport",
)
- @field_validator(
- *(
- "evaluatedResource",
- "group",
- "improvementNotation",
- "period",
- "reporter",
- "date",
- "subject",
- "measure",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "evaluatedResource",
+ "group",
+ "improvementNotation",
+ "period",
+ "reporter",
+ "date",
+ "subject",
+ "measure",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/media.py b/fhircraft/fhir/resources/datatypes/R4B/core/media.py
index 7f66efbb..9bf83bd3 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/media.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/media.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -241,70 +241,64 @@ def created(self):
base="created",
)
- @field_validator(
- *(
- "note",
- "content",
- "duration",
- "frames",
- "width",
- "height",
- "device",
- "deviceName",
- "bodySite",
- "reasonCode",
- "operator",
- "issued",
- "encounter",
- "subject",
- "view",
- "modality",
- "type",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "content",
+ "duration",
+ "frames",
+ "width",
+ "height",
+ "device",
+ "deviceName",
+ "bodySite",
+ "reasonCode",
+ "operator",
+ "issued",
+ "encounter",
+ "subject",
+ "view",
+ "modality",
+ "type",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication.py
index 6e3498a2..bc27d47b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,23 +74,18 @@ def item(self):
base="item",
)
- @field_validator(
- *(
- "strength",
- "isActive",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "isActive",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -131,23 +126,18 @@ class MedicationBatch(BackboneElement):
alias="_expirationDate",
)
- @field_validator(
- *(
- "expirationDate",
- "lotNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expirationDate",
+ "lotNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -251,57 +241,51 @@ class Medication(DomainResource):
default="Medication",
)
- @field_validator(
- *(
- "batch",
- "ingredient",
- "amount",
- "form",
- "manufacturer",
- "status",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "batch",
+ "ingredient",
+ "amount",
+ "form",
+ "manufacturer",
+ "status",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication_administration.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication_administration.py
index ace0a861..1174d2e2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication_administration.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication_administration.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class MedicationAdministrationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -121,32 +116,27 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "dose",
- "method",
- "route",
- "site",
- "text",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dose",
+ "method",
+ "route",
+ "site",
+ "text",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -335,78 +325,71 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "eventHistory",
- "dosage",
- "note",
- "device",
- "request",
- "reasonReference",
- "reasonCode",
- "performer",
- "supportingInformation",
- "context",
- "subject",
- "category",
- "statusReason",
- "status",
- "partOf",
- "instantiates",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "dosage",
+ "note",
+ "device",
+ "request",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "supportingInformation",
+ "context",
+ "subject",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "instantiates",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("dosage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mad_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mad_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dosage",),
expression="dose.exists() or rate.exists()",
human="SHALL have at least one of dosage.dose or dosage.rate[x]",
key="mad-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication_dispense.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication_dispense.py
index f1909c57..2f75e154 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication_dispense.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication_dispense.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class MedicationDispensePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,29 +102,24 @@ class MedicationDispenseSubstitution(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "responsibleParty",
- "reason",
- "type",
- "wasSubstituted",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "responsibleParty",
+ "reason",
+ "type",
+ "wasSubstituted",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -329,71 +319,65 @@ def medication(self):
base="medication",
)
- @field_validator(
- *(
- "eventHistory",
- "detectedIssue",
- "substitution",
- "dosageInstruction",
- "note",
- "receiver",
- "destination",
- "whenHandedOver",
- "whenPrepared",
- "daysSupply",
- "quantity",
- "type",
- "authorizingPrescription",
- "location",
- "performer",
- "supportingInformation",
- "context",
- "subject",
- "category",
- "status",
- "partOf",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "detectedIssue",
+ "substitution",
+ "dosageInstruction",
+ "note",
+ "receiver",
+ "destination",
+ "whenHandedOver",
+ "whenPrepared",
+ "daysSupply",
+ "quantity",
+ "type",
+ "authorizingPrescription",
+ "location",
+ "performer",
+ "supportingInformation",
+ "context",
+ "subject",
+ "category",
+ "status",
+ "partOf",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication_knowledge.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication_knowledge.py
index a8540c24..73496784 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication_knowledge.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication_knowledge.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class MedicationKnowledgeRelatedMedicationKnowledge(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class MedicationKnowledgeMonograph(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,23 +144,18 @@ def item(self):
base="item",
)
- @field_validator(
- *(
- "strength",
- "isActive",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "isActive",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,26 +195,21 @@ class MedicationKnowledgeCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "cost",
- "source",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cost",
+ "source",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -256,23 +236,18 @@ class MedicationKnowledgeMonitoringProgram(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -294,23 +269,18 @@ class MedicationKnowledgeAdministrationGuidelinesDosage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dosage",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosage",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -350,14 +320,15 @@ def characteristic(self):
base="characteristic",
)
- @field_validator(
- *("value", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -379,9 +350,11 @@ class MedicationKnowledgeAdministrationGuidelines(BackboneElement):
Guidelines for the administration of the medication.
"""
- dosage: Optional[ListType[MedicationKnowledgeAdministrationGuidelinesDosage]] = Field(
- description="Dosage for the medication for the specific guidelines",
- default=None,
+ dosage: Optional[ListType[MedicationKnowledgeAdministrationGuidelinesDosage]] = (
+ Field(
+ description="Dosage for the medication for the specific guidelines",
+ default=None,
+ )
)
indicationCodeableConcept: Optional[CodeableConcept] = Field(
description="Indication for use that apply to the specific administration guidelines",
@@ -405,23 +378,18 @@ def indication(self):
base="indication",
)
- @field_validator(
- *(
- "patientCharacteristics",
- "dosage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patientCharacteristics",
+ "dosage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -452,23 +420,18 @@ class MedicationKnowledgeMedicineClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "classification",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "classification",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -490,23 +453,18 @@ class MedicationKnowledgePackaging(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -557,14 +515,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -600,23 +559,18 @@ class MedicationKnowledgeRegulatorySubstitution(BackboneElement):
alias="_allowed",
)
- @field_validator(
- *(
- "allowed",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allowed",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -634,14 +588,15 @@ class MedicationKnowledgeRegulatorySchedule(BackboneElement):
default=None,
)
- @field_validator(
- *("schedule", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "schedule",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -663,23 +618,18 @@ class MedicationKnowledgeRegulatoryMaxDispense(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -709,29 +659,24 @@ class MedicationKnowledgeRegulatory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "maxDispense",
- "schedule",
- "substitution",
- "regulatoryAuthority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDispense",
+ "schedule",
+ "substitution",
+ "regulatoryAuthority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -757,26 +702,21 @@ class MedicationKnowledgeKinetics(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "halfLifePeriod",
- "lethalDose50",
- "areaUnderCurve",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "halfLifePeriod",
+ "lethalDose50",
+ "areaUnderCurve",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -931,9 +871,11 @@ class MedicationKnowledge(DomainResource):
description="Details about packaged medications",
default=None,
)
- drugCharacteristic: Optional[ListType[MedicationKnowledgeDrugCharacteristic]] = Field(
- description="Specifies descriptive properties of the medicine",
- default=None,
+ drugCharacteristic: Optional[ListType[MedicationKnowledgeDrugCharacteristic]] = (
+ Field(
+ description="Specifies descriptive properties of the medicine",
+ default=None,
+ )
)
contraindication: Optional[ListType[Reference]] = Field(
description="Potential clinical issue with or between medication(s)",
@@ -952,71 +894,65 @@ class MedicationKnowledge(DomainResource):
default="MedicationKnowledge",
)
- @field_validator(
- *(
- "kinetics",
- "regulatory",
- "contraindication",
- "drugCharacteristic",
- "packaging",
- "medicineClassification",
- "administrationGuidelines",
- "monitoringProgram",
- "cost",
- "intendedRoute",
- "preparationInstruction",
- "ingredient",
- "monograph",
- "productType",
- "associatedMedication",
- "relatedMedicationKnowledge",
- "synonym",
- "amount",
- "doseForm",
- "manufacturer",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "kinetics",
+ "regulatory",
+ "contraindication",
+ "drugCharacteristic",
+ "packaging",
+ "medicineClassification",
+ "administrationGuidelines",
+ "monitoringProgram",
+ "cost",
+ "intendedRoute",
+ "preparationInstruction",
+ "ingredient",
+ "monograph",
+ "productType",
+ "associatedMedication",
+ "relatedMedicationKnowledge",
+ "synonym",
+ "amount",
+ "doseForm",
+ "manufacturer",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication_request.py
index 30e16a18..31c10a66 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,23 +60,18 @@ class MedicationRequestDispenseRequestInitialFill(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "duration",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "duration",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -123,38 +118,33 @@ class MedicationRequestDispenseRequest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "performer",
- "expectedSupplyDuration",
- "quantity",
- "numberOfRepeatsAllowed",
- "validityPeriod",
- "dispenseInterval",
- "initialFill",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "performer",
+ "expectedSupplyDuration",
+ "quantity",
+ "numberOfRepeatsAllowed",
+ "validityPeriod",
+ "dispenseInterval",
+ "initialFill",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,14 +182,15 @@ def allowed(self):
base="allowed",
)
- @field_validator(
- *("reason", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -465,79 +456,73 @@ def medication(self):
base="medication",
)
- @field_validator(
- *(
- "eventHistory",
- "detectedIssue",
- "priorPrescription",
- "substitution",
- "dispenseRequest",
- "dosageInstruction",
- "note",
- "insurance",
- "courseOfTherapyType",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "reasonReference",
- "reasonCode",
- "recorder",
- "performerType",
- "performer",
- "requester",
- "authoredOn",
- "supportingInformation",
- "encounter",
- "subject",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "detectedIssue",
+ "priorPrescription",
+ "substitution",
+ "dispenseRequest",
+ "dosageInstruction",
+ "note",
+ "insurance",
+ "courseOfTherapyType",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "reasonReference",
+ "reasonCode",
+ "recorder",
+ "performerType",
+ "performer",
+ "requester",
+ "authoredOn",
+ "supportingInformation",
+ "encounter",
+ "subject",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medication_statement.py b/fhircraft/fhir/resources/datatypes/R4B/core/medication_statement.py
index bdbf1d92..34bcc021 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medication_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medication_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -201,64 +201,58 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "dosage",
- "note",
- "reasonReference",
- "reasonCode",
- "derivedFrom",
- "informationSource",
- "dateAsserted",
- "context",
- "subject",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosage",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "derivedFrom",
+ "informationSource",
+ "dateAsserted",
+ "context",
+ "subject",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/medicinal_product_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/medicinal_product_definition.py
index 8b66ed68..016e4a19 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/medicinal_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/medicinal_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class MedicinalProductDefinitionContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contact",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -104,23 +99,18 @@ class MedicinalProductDefinitionNameNamePart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "part",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "part",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -146,26 +136,21 @@ class MedicinalProductDefinitionNameCountryLanguage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -195,36 +180,31 @@ class MedicinalProductDefinitionName(BackboneElement):
description="Coding words or phrases of the name",
default=None,
)
- countryLanguage: Optional[ListType[MedicinalProductDefinitionNameCountryLanguage]] = (
- Field(
- description="Country and jurisdiction where the name applies",
- default=None,
- )
+ countryLanguage: Optional[
+ ListType[MedicinalProductDefinitionNameCountryLanguage]
+ ] = Field(
+ description="Country and jurisdiction where the name applies",
+ default=None,
)
- @field_validator(
- *(
- "countryLanguage",
- "namePart",
- "type",
- "productName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "countryLanguage",
+ "namePart",
+ "type",
+ "productName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -246,23 +226,18 @@ class MedicinalProductDefinitionCrossReference(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "product",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "product",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -292,29 +267,24 @@ class MedicinalProductDefinitionOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "confidentialityIndicator",
- "organization",
- "effectiveDate",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "confidentialityIndicator",
+ "organization",
+ "effectiveDate",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -369,14 +339,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -569,94 +540,92 @@ class MedicinalProductDefinition(DomainResource):
description="The product\u0027s name, including full name and possibly coded parts",
default=None,
)
- crossReference: Optional[ListType[MedicinalProductDefinitionCrossReference]] = Field(
- description="Reference to another product, e.g. for linking authorised to investigational product",
- default=None,
+ crossReference: Optional[ListType[MedicinalProductDefinitionCrossReference]] = (
+ Field(
+ description="Reference to another product, e.g. for linking authorised to investigational product",
+ default=None,
+ )
)
operation: Optional[ListType[MedicinalProductDefinitionOperation]] = Field(
description="A manufacturing or administrative process for the medicinal product",
default=None,
)
- characteristic: Optional[ListType[MedicinalProductDefinitionCharacteristic]] = Field(
- description='Key product features such as "sugar free", "modified release"',
- default=None,
+ characteristic: Optional[ListType[MedicinalProductDefinitionCharacteristic]] = (
+ Field(
+ description='Key product features such as "sugar free", "modified release"',
+ default=None,
+ )
)
resourceType: Literal["MedicinalProductDefinition"] = Field(
description=None,
default="MedicinalProductDefinition",
)
- @field_validator(
- *(
- "characteristic",
- "operation",
- "crossReference",
- "name",
- "code",
- "clinicalTrial",
- "contact",
- "masterFile",
- "attachedDocument",
- "impurity",
- "ingredient",
- "packagedMedicinalProduct",
- "marketingStatus",
- "classification",
- "pediatricUseIndicator",
- "specialMeasures",
- "additionalMonitoringIndicator",
- "legalStatusOfSupply",
- "indication",
- "route",
- "combinedPharmaceuticalDoseForm",
- "description",
- "statusDate",
- "status",
- "version",
- "domain",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "operation",
+ "crossReference",
+ "name",
+ "code",
+ "clinicalTrial",
+ "contact",
+ "masterFile",
+ "attachedDocument",
+ "impurity",
+ "ingredient",
+ "packagedMedicinalProduct",
+ "marketingStatus",
+ "classification",
+ "pediatricUseIndicator",
+ "specialMeasures",
+ "additionalMonitoringIndicator",
+ "legalStatusOfSupply",
+ "indication",
+ "route",
+ "combinedPharmaceuticalDoseForm",
+ "description",
+ "statusDate",
+ "status",
+ "version",
+ "domain",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/message_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/message_definition.py
index 03fe9c01..52520d7e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/message_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/message_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,29 +86,24 @@ class MessageDefinitionFocus(BackboneElement):
alias="_max",
)
- @field_validator(
- *(
- "max",
- "min",
- "profile",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "profile",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,23 +135,18 @@ class MessageDefinitionAllowedResponse(BackboneElement):
alias="_situation",
)
- @field_validator(
- *(
- "situation",
- "message",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "situation",
+ "message",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -420,84 +410,77 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "graph",
- "allowedResponse",
- "responseRequired",
- "focus",
- "category",
- "parent",
- "base",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "graph",
+ "allowedResponse",
+ "responseRequired",
+ "focus",
+ "category",
+ "parent",
+ "base",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("focus",), mode="after", check_fields=None)
- @classmethod
- def FHIR_md_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_md_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("focus",),
expression="max='*' or (max.toInteger() > 0)",
human="Max must be postive int or *",
key="md-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/message_header.py b/fhircraft/fhir/resources/datatypes/R4B/core/message_header.py
index 1633ca68..b45bac49 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/message_header.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/message_header.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -73,29 +73,24 @@ class MessageHeaderDestination(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "receiver",
- "endpoint",
- "target",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "endpoint",
+ "target",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -149,32 +144,27 @@ class MessageHeaderSource(BackboneElement):
alias="_endpoint",
)
- @field_validator(
- *(
- "endpoint",
- "contact",
- "version",
- "software",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "contact",
+ "version",
+ "software",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,26 +200,21 @@ class MessageHeaderResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "details",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "details",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -361,59 +346,53 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "definition",
- "focus",
- "response",
- "reason",
- "responsible",
- "source",
- "author",
- "enterer",
- "sender",
- "destination",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "focus",
+ "response",
+ "reason",
+ "responsible",
+ "source",
+ "author",
+ "enterer",
+ "sender",
+ "destination",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/molecular_sequence.py b/fhircraft/fhir/resources/datatypes/R4B/core/molecular_sequence.py
index fcc72db5..dbb3787f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/molecular_sequence.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/molecular_sequence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -113,44 +113,39 @@ class MolecularSequenceReferenceSeq(BackboneElement):
alias="_windowEnd",
)
- @field_validator(
- *(
- "windowEnd",
- "windowStart",
- "strand",
- "referenceSeqString",
- "referenceSeqPointer",
- "referenceSeqId",
- "orientation",
- "genomeBuild",
- "chromosome",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "windowEnd",
+ "windowStart",
+ "strand",
+ "referenceSeqString",
+ "referenceSeqPointer",
+ "referenceSeqId",
+ "orientation",
+ "genomeBuild",
+ "chromosome",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,35 +208,30 @@ class MolecularSequenceVariant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "variantPointer",
- "cigar",
- "referenceAllele",
- "observedAllele",
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "variantPointer",
+ "cigar",
+ "referenceAllele",
+ "observedAllele",
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -318,38 +308,33 @@ class MolecularSequenceQualityRoc(BackboneElement):
alias="_fMeasure",
)
- @field_validator(
- *(
- "fMeasure",
- "sensitivity",
- "precision",
- "numFN",
- "numFP",
- "numTP",
- "score",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "fMeasure",
+ "sensitivity",
+ "precision",
+ "numFN",
+ "numFP",
+ "numTP",
+ "score",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -478,62 +463,57 @@ class MolecularSequenceQuality(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "roc",
- "fScore",
- "recall",
- "precision",
- "gtFP",
- "queryFP",
- "truthFN",
- "queryTP",
- "truthTP",
- "method",
- "score",
- "end",
- "start",
- "standardSequence",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "roc",
+ "fScore",
+ "recall",
+ "precision",
+ "gtFP",
+ "queryFP",
+ "truthFN",
+ "queryTP",
+ "truthTP",
+ "method",
+ "score",
+ "end",
+ "start",
+ "standardSequence",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -601,35 +581,30 @@ class MolecularSequenceRepository(BackboneElement):
alias="_readsetId",
)
- @field_validator(
- *(
- "readsetId",
- "variantsetId",
- "datasetId",
- "name",
- "url",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "readsetId",
+ "variantsetId",
+ "datasetId",
+ "name",
+ "url",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -661,23 +636,18 @@ class MolecularSequenceStructureVariantOuter(BackboneElement):
alias="_end",
)
- @field_validator(
- *(
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -709,23 +679,18 @@ class MolecularSequenceStructureVariantInner(BackboneElement):
alias="_end",
)
- @field_validator(
- *(
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -769,32 +734,27 @@ class MolecularSequenceStructureVariant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "inner",
- "outer",
- "length",
- "exact",
- "variantType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "inner",
+ "outer",
+ "length",
+ "exact",
+ "variantType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -945,89 +905,81 @@ class MolecularSequence(DomainResource):
default="MolecularSequence",
)
- @field_validator(
- *(
- "structureVariant",
- "pointer",
- "repository",
- "readCoverage",
- "quality",
- "observedSeq",
- "variant",
- "referenceSeq",
- "quantity",
- "performer",
- "device",
- "specimen",
- "patient",
- "coordinateSystem",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "structureVariant",
+ "pointer",
+ "repository",
+ "readCoverage",
+ "quality",
+ "observedSeq",
+ "variant",
+ "referenceSeq",
+ "quantity",
+ "performer",
+ "device",
+ "specimen",
+ "patient",
+ "coordinateSystem",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("referenceSeq",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceSeq",),
expression="(chromosome.empty() and genomeBuild.empty()) or (chromosome.exists() and genomeBuild.exists())",
human="GenomeBuild and chromosome must be both contained if either one of them is contained",
key="msq-5",
severity="error",
)
- @field_validator(*("referenceSeq",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceSeq",),
expression="(genomeBuild.count()+referenceSeqId.count()+ referenceSeqPointer.count()+ referenceSeqString.count()) = 1",
human="Have and only have one of the following elements in referenceSeq : 1. genomeBuild ; 2 referenceSeqId; 3. referenceSeqPointer; 4. referenceSeqString;",
key="msq-6",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/naming_system.py b/fhircraft/fhir/resources/datatypes/R4B/core/naming_system.py
index d500a850..ae5cc64b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/naming_system.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/naming_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,32 +87,27 @@ class NamingSystemUniqueId(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "comment",
- "preferred",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "comment",
+ "preferred",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -271,62 +266,56 @@ class NamingSystem(DomainResource):
default="NamingSystem",
)
- @field_validator(
- *(
- "uniqueId",
- "usage",
- "jurisdiction",
- "useContext",
- "description",
- "type",
- "responsible",
- "contact",
- "publisher",
- "date",
- "kind",
- "status",
- "name",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uniqueId",
+ "usage",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "type",
+ "responsible",
+ "contact",
+ "publisher",
+ "date",
+ "kind",
+ "status",
+ "name",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_order.py b/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_order.py
index 7d52a429..da2f293a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_order.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_order.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class NutritionOrderOralDietNutrient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -95,23 +90,18 @@ class NutritionOrderOralDietTexture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "foodType",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "foodType",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,35 +144,30 @@ class NutritionOrderOralDiet(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "fluidConsistencyType",
- "texture",
- "nutrient",
- "schedule",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "fluidConsistencyType",
+ "texture",
+ "nutrient",
+ "schedule",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -226,32 +211,27 @@ class NutritionOrderSupplement(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "quantity",
- "schedule",
- "productName",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "quantity",
+ "schedule",
+ "productName",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -288,23 +268,18 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "quantity",
- "schedule",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "schedule",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -360,9 +335,11 @@ class NutritionOrderEnteralFormula(BackboneElement):
description="How the formula should enter the patient\u0027s gastrointestinal tract",
default=None,
)
- administration: Optional[ListType[NutritionOrderEnteralFormulaAdministration]] = Field(
- description="Formula feeding instruction as structured data",
- default=None,
+ administration: Optional[ListType[NutritionOrderEnteralFormulaAdministration]] = (
+ Field(
+ description="Formula feeding instruction as structured data",
+ default=None,
+ )
)
maxVolumeToDeliver: Optional[Quantity] = Field(
description="Upper limit on formula volume per unit of time",
@@ -378,44 +355,39 @@ class NutritionOrderEnteralFormula(BackboneElement):
alias="_administrationInstruction",
)
- @field_validator(
- *(
- "administrationInstruction",
- "maxVolumeToDeliver",
- "administration",
- "routeofAdministration",
- "caloricDensity",
- "additiveProductName",
- "additiveType",
- "baseFormulaProductName",
- "baseFormulaType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "administrationInstruction",
+ "maxVolumeToDeliver",
+ "administration",
+ "routeofAdministration",
+ "caloricDensity",
+ "additiveProductName",
+ "additiveType",
+ "baseFormulaProductName",
+ "baseFormulaType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -580,66 +552,60 @@ class NutritionOrder(DomainResource):
default="NutritionOrder",
)
- @field_validator(
- *(
- "note",
- "enteralFormula",
- "supplement",
- "oralDiet",
- "excludeFoodModifier",
- "foodPreferenceModifier",
- "allergyIntolerance",
- "orderer",
- "dateTime",
- "encounter",
- "patient",
- "intent",
- "status",
- "instantiates",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "enteralFormula",
+ "supplement",
+ "oralDiet",
+ "excludeFoodModifier",
+ "foodPreferenceModifier",
+ "allergyIntolerance",
+ "orderer",
+ "dateTime",
+ "encounter",
+ "patient",
+ "intent",
+ "status",
+ "instantiates",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_product.py b/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_product.py
index 0729d823..7e6e5a8a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_product.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/nutrition_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class NutritionProductNutrient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -97,23 +92,18 @@ class NutritionProductIngredient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,14 +167,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -249,32 +240,27 @@ class NutritionProductInstance(BackboneElement):
alias="_useBy",
)
- @field_validator(
- *(
- "useBy",
- "expiry",
- "lotNumber",
- "identifier",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "useBy",
+ "expiry",
+ "lotNumber",
+ "identifier",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -388,59 +374,53 @@ class NutritionProduct(DomainResource):
default="NutritionProduct",
)
- @field_validator(
- *(
- "note",
- "instance",
- "productCharacteristic",
- "knownAllergen",
- "ingredient",
- "nutrient",
- "manufacturer",
- "code",
- "category",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "instance",
+ "productCharacteristic",
+ "knownAllergen",
+ "ingredient",
+ "nutrient",
+ "manufacturer",
+ "code",
+ "category",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/observation.py b/fhircraft/fhir/resources/datatypes/R4B/core/observation.py
index 39e46af7..e754b21e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/observation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/observation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,35 +84,30 @@ class ObservationReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -155,35 +150,30 @@ class ObservationComponentReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -289,29 +279,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "referenceRange",
- "interpretation",
- "dataAbsentReason",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceRange",
+ "interpretation",
+ "dataAbsentReason",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -606,83 +591,76 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "component",
- "derivedFrom",
- "hasMember",
- "referenceRange",
- "device",
- "specimen",
- "method",
- "bodySite",
- "note",
- "interpretation",
- "dataAbsentReason",
- "performer",
- "issued",
- "encounter",
- "focus",
- "subject",
- "code",
- "category",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "derivedFrom",
+ "hasMember",
+ "referenceRange",
+ "device",
+ "specimen",
+ "method",
+ "bodySite",
+ "note",
+ "interpretation",
+ "dataAbsentReason",
+ "performer",
+ "issued",
+ "encounter",
+ "focus",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("referenceRange",), mode="after", check_fields=None)
- @classmethod
- def FHIR_obs_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_obs_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceRange",),
expression="low.exists() or high.exists() or text.exists()",
human="Must have at least a low or a high or text",
key="obs-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/observation_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/observation_definition.py
index a7be09d1..b495f93a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/observation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/observation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -73,29 +73,24 @@ class ObservationDefinitionQuantitativeDetails(BackboneElement):
alias="_decimalPrecision",
)
- @field_validator(
- *(
- "decimalPrecision",
- "conversionFactor",
- "unit",
- "customaryUnit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "decimalPrecision",
+ "conversionFactor",
+ "unit",
+ "customaryUnit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,41 +151,36 @@ class ObservationDefinitionQualifiedInterval(BackboneElement):
alias="_condition",
)
- @field_validator(
- *(
- "condition",
- "gestationalAge",
- "age",
- "gender",
- "appliesTo",
- "context",
- "range",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "gestationalAge",
+ "age",
+ "gender",
+ "appliesTo",
+ "context",
+ "range",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -299,9 +289,11 @@ class ObservationDefinition(DomainResource):
description="Characteristics of quantitative results",
default=None,
)
- qualifiedInterval: Optional[ListType[ObservationDefinitionQualifiedInterval]] = Field(
- description="Qualified range for continuous and ordinal observation results",
- default=None,
+ qualifiedInterval: Optional[ListType[ObservationDefinitionQualifiedInterval]] = (
+ Field(
+ description="Qualified range for continuous and ordinal observation results",
+ default=None,
+ )
)
validCodedValueSet: Optional[Reference] = Field(
description="Value set of valid coded values for the observations conforming to this ObservationDefinition",
@@ -324,62 +316,56 @@ class ObservationDefinition(DomainResource):
default="ObservationDefinition",
)
- @field_validator(
- *(
- "criticalCodedValueSet",
- "abnormalCodedValueSet",
- "normalCodedValueSet",
- "validCodedValueSet",
- "qualifiedInterval",
- "quantitativeDetails",
- "preferredReportName",
- "method",
- "multipleResultsAllowed",
- "permittedDataType",
- "identifier",
- "code",
- "category",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criticalCodedValueSet",
+ "abnormalCodedValueSet",
+ "normalCodedValueSet",
+ "validCodedValueSet",
+ "qualifiedInterval",
+ "quantitativeDetails",
+ "preferredReportName",
+ "method",
+ "multipleResultsAllowed",
+ "permittedDataType",
+ "identifier",
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/operation_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/operation_definition.py
index aca9d5f3..187c290c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/operation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/operation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class OperationDefinitionParameterBinding(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "strength",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "strength",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,23 +109,18 @@ class OperationDefinitionParameterReferencedFrom(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,59 +209,56 @@ class OperationDefinitionParameter(BackboneElement):
description="ValueSet details if this is coded",
default=None,
)
- referencedFrom: Optional[ListType[OperationDefinitionParameterReferencedFrom]] = Field(
- description="References to this parameter",
- default=None,
+ referencedFrom: Optional[ListType[OperationDefinitionParameterReferencedFrom]] = (
+ Field(
+ description="References to this parameter",
+ default=None,
+ )
)
part: Optional[ListType["OperationDefinitionParameter"]] = Field(
description="Parts of a nested Parameter",
default=None,
)
- @field_validator(
- *(
- "part",
- "referencedFrom",
- "binding",
- "searchType",
- "targetProfile",
- "type",
- "documentation",
- "max",
- "min",
- "use",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "referencedFrom",
+ "binding",
+ "searchType",
+ "targetProfile",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "use",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,23 +290,18 @@ class OperationDefinitionOverload(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "parameterName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "parameterName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -595,111 +577,102 @@ class OperationDefinition(DomainResource):
default="OperationDefinition",
)
- @field_validator(
- *(
- "overload",
- "parameter",
- "outputProfile",
- "inputProfile",
- "instance",
- "type",
- "system",
- "resource",
- "base",
- "comment",
- "code",
- "affectsState",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "kind",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "overload",
+ "parameter",
+ "outputProfile",
+ "inputProfile",
+ "instance",
+ "type",
+ "system",
+ "resource",
+ "base",
+ "comment",
+ "code",
+ "affectsState",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "kind",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="type.exists() or part.exists()",
human="Either a type must be provided, or parts",
key="opd-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="searchType.exists() implies type = 'string'",
human="A search type can only be specified for parameters of type string",
key="opd-2",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="targetProfile.exists() implies (type = 'Reference' or type = 'canonical')",
human="A targetProfile can only be specified for parameters of type Reference or Canonical",
key="opd-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/operation_outcome.py b/fhircraft/fhir/resources/datatypes/R4B/core/operation_outcome.py
index 5924cbe3..290c6bdb 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/operation_outcome.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/operation_outcome.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,35 +86,30 @@ class OperationOutcomeIssue(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "location",
- "diagnostics",
- "details",
- "code",
- "severity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "location",
+ "diagnostics",
+ "details",
+ "code",
+ "severity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -185,50 +180,44 @@ class OperationOutcome(DomainResource):
default="OperationOutcome",
)
- @field_validator(
- *(
- "issue",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issue",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/organization.py b/fhircraft/fhir/resources/datatypes/R4B/core/organization.py
index 4570b662..f0504c91 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/organization.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/organization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,29 +58,24 @@ class OrganizationContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "address",
- "telecom",
- "name",
- "purpose",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "telecom",
+ "name",
+ "purpose",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,83 +197,75 @@ class Organization(DomainResource):
default="Organization",
)
- @field_validator(
- *(
- "endpoint",
- "contact",
- "partOf",
- "address",
- "telecom",
- "alias",
- "name",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "contact",
+ "partOf",
+ "address",
+ "telecom",
+ "alias",
+ "name",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("telecom",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("telecom",),
expression="where(use = 'home').empty()",
human="The telecom of an organization can never be of use 'home'",
key="org-3",
severity="error",
)
- @field_validator(*("address",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("address",),
expression="where(use = 'home').empty()",
human="An address of an organization can never be of use 'home'",
key="org-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/organization_affiliation.py b/fhircraft/fhir/resources/datatypes/R4B/core/organization_affiliation.py
index 19b98df2..8737bb6f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/organization_affiliation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/organization_affiliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -146,61 +146,55 @@ class OrganizationAffiliation(DomainResource):
default="OrganizationAffiliation",
)
- @field_validator(
- *(
- "endpoint",
- "telecom",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "network",
- "participatingOrganization",
- "organization",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "telecom",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "network",
+ "participatingOrganization",
+ "organization",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/packaged_product_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/packaged_product_definition.py
index d68b31c9..f44b8793 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/packaged_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/packaged_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class PackagedProductDefinitionLegalStatusOfSupply(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "jurisdiction",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -119,23 +114,18 @@ def period(self):
base="period",
)
- @field_validator(
- *(
- "specialPrecautionsForStorage",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialPrecautionsForStorage",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -199,14 +189,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,23 +228,18 @@ class PackagedProductDefinitionPackageContainedItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -316,47 +302,42 @@ class PackagedProductDefinitionPackage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "package",
- "containedItem",
- "property_",
- "manufacturer",
- "shelfLifeStorage",
- "alternateMaterial",
- "material",
- "quantity",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "package",
+ "containedItem",
+ "property_",
+ "manufacturer",
+ "shelfLifeStorage",
+ "alternateMaterial",
+ "material",
+ "quantity",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -503,63 +484,57 @@ class PackagedProductDefinition(DomainResource):
default="PackagedProductDefinition",
)
- @field_validator(
- *(
- "package",
- "manufacturer",
- "copackagedIndicator",
- "characteristic",
- "marketingStatus",
- "legalStatusOfSupply",
- "description",
- "containedItemQuantity",
- "statusDate",
- "status",
- "packageFor",
- "type",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "package",
+ "manufacturer",
+ "copackagedIndicator",
+ "characteristic",
+ "marketingStatus",
+ "legalStatusOfSupply",
+ "description",
+ "containedItemQuantity",
+ "statusDate",
+ "status",
+ "packageFor",
+ "type",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/parameters.py b/fhircraft/fhir/resources/datatypes/R4B/core/parameters.py
index 7ec98e32..6f5e5512 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/parameters.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/parameters.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -406,23 +406,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "part",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -537,28 +532,27 @@ class Parameters(Resource):
default="Parameters",
)
- @field_validator(
- *("parameter", "language", "implicitRules", "meta"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="(part.exists() and value.empty() and resource.empty()) or (part.empty() and (value.exists() xor resource.exists()))",
human="A parameter must have one and only one of (value, resource, part)",
key="inv-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/patient.py b/fhircraft/fhir/resources/datatypes/R4B/core/patient.py
index 80f214ea..4c92a13c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/patient.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/patient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,38 +85,33 @@ class PatientContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "organization",
- "gender",
- "address",
- "telecom",
- "name",
- "relationship",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "organization",
+ "gender",
+ "address",
+ "telecom",
+ "name",
+ "relationship",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -143,23 +138,18 @@ class PatientCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,23 +176,18 @@ class PatientLink(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "other",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "other",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,75 +375,68 @@ def multipleBirth(self):
base="multipleBirth",
)
- @field_validator(
- *(
- "link",
- "managingOrganization",
- "generalPractitioner",
- "communication",
- "contact",
- "photo",
- "maritalStatus",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "managingOrganization",
+ "generalPractitioner",
+ "communication",
+ "contact",
+ "photo",
+ "maritalStatus",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pat_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pat_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="name.exists() or telecom.exists() or address.exists() or organization.exists()",
human="SHALL at least contain a contact's details or a reference to an organization",
key="pat-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/payment_notice.py b/fhircraft/fhir/resources/datatypes/R4B/core/payment_notice.py
index 342abffe..8c147632 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/payment_notice.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/payment_notice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -161,61 +161,55 @@ class PaymentNotice(DomainResource):
default="PaymentNotice",
)
- @field_validator(
- *(
- "paymentStatus",
- "amount",
- "recipient",
- "payee",
- "paymentDate",
- "payment",
- "provider",
- "created",
- "response",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "paymentStatus",
+ "amount",
+ "recipient",
+ "payee",
+ "paymentDate",
+ "payment",
+ "provider",
+ "created",
+ "response",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/payment_reconciliation.py b/fhircraft/fhir/resources/datatypes/R4B/core/payment_reconciliation.py
index cb1f5c6a..725d79ca 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/payment_reconciliation.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/payment_reconciliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -92,47 +92,42 @@ class PaymentReconciliationDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "payee",
- "responsible",
- "date",
- "response",
- "submitter",
- "request",
- "type",
- "predecessor",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "payee",
+ "responsible",
+ "date",
+ "response",
+ "submitter",
+ "request",
+ "type",
+ "predecessor",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,23 +159,18 @@ class PaymentReconciliationProcessNote(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,64 +322,58 @@ class PaymentReconciliation(DomainResource):
default="PaymentReconciliation",
)
- @field_validator(
- *(
- "processNote",
- "formCode",
- "detail",
- "paymentIdentifier",
- "paymentAmount",
- "paymentDate",
- "disposition",
- "outcome",
- "requestor",
- "request",
- "paymentIssuer",
- "created",
- "period",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "processNote",
+ "formCode",
+ "detail",
+ "paymentIdentifier",
+ "paymentAmount",
+ "paymentDate",
+ "disposition",
+ "outcome",
+ "requestor",
+ "request",
+ "paymentIssuer",
+ "created",
+ "period",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/person.py b/fhircraft/fhir/resources/datatypes/R4B/core/person.py
index 24a129e9..49a5239e 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/person.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class PersonLink(BackboneElement):
alias="_assurance",
)
- @field_validator(
- *(
- "assurance",
- "target",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assurance",
+ "target",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -199,59 +194,53 @@ class Person(DomainResource):
default="Person",
)
- @field_validator(
- *(
- "link",
- "active",
- "managingOrganization",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "active",
+ "managingOrganization",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/plan_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/plan_definition.py
index 03484c67..9af519ec 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/plan_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/plan_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,23 +88,18 @@ def detail(self):
base="detail",
)
- @field_validator(
- *(
- "due",
- "measure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "due",
+ "measure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -155,38 +150,33 @@ class PlanDefinitionGoal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "documentation",
- "addresses",
- "start",
- "priority",
- "description",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "documentation",
+ "addresses",
+ "start",
+ "priority",
+ "description",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -213,23 +203,18 @@ class PlanDefinitionActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -276,23 +261,18 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "relationship",
- "actionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relationship",
+ "actionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -328,23 +308,18 @@ class PlanDefinitionActionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -371,23 +346,18 @@ class PlanDefinitionActionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -642,89 +612,84 @@ def definition(self):
base="definition",
)
- @field_validator(
- *(
- "action",
- "dynamicValue",
- "transform",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "relatedAction",
- "output",
- "input",
- "condition",
- "trigger",
- "goalId",
- "documentation",
- "reason",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "dynamicValue",
+ "transform",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "relatedAction",
+ "output",
+ "input",
+ "condition",
+ "trigger",
+ "goalId",
+ "documentation",
+ "reason",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1042,79 +1007,73 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "action",
- "goal",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "type",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "goal",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "type",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/practitioner.py b/fhircraft/fhir/resources/datatypes/R4B/core/practitioner.py
index 67b0977d..f88e1cf1 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/practitioner.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/practitioner.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,29 +66,24 @@ class PractitionerQualification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "issuer",
- "period",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issuer",
+ "period",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,59 +205,53 @@ class Practitioner(DomainResource):
default="Practitioner",
)
- @field_validator(
- *(
- "communication",
- "qualification",
- "photo",
- "birthDate",
- "gender",
- "address",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "qualification",
+ "photo",
+ "birthDate",
+ "gender",
+ "address",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/practitioner_role.py b/fhircraft/fhir/resources/datatypes/R4B/core/practitioner_role.py
index 987bc5c7..b05c8faa 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/practitioner_role.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/practitioner_role.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,29 +83,24 @@ class PractitionerRoleAvailableTime(BackboneElement):
alias="_availableEndTime",
)
- @field_validator(
- *(
- "availableEndTime",
- "availableStartTime",
- "allDay",
- "daysOfWeek",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "availableEndTime",
+ "availableStartTime",
+ "allDay",
+ "daysOfWeek",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,23 +127,18 @@ class PractitionerRoleNotAvailable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "during",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "during",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,63 +271,57 @@ class PractitionerRole(DomainResource):
default="PractitionerRole",
)
- @field_validator(
- *(
- "endpoint",
- "availabilityExceptions",
- "notAvailable",
- "availableTime",
- "telecom",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "organization",
- "practitioner",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availabilityExceptions",
+ "notAvailable",
+ "availableTime",
+ "telecom",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "organization",
+ "practitioner",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/procedure.py b/fhircraft/fhir/resources/datatypes/R4B/core/procedure.py
index b4215f3f..2b32c0f3 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/procedure.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/procedure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,26 +61,21 @@ class ProcedurePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -102,23 +97,18 @@ class ProcedureFocalDevice(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manipulated",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manipulated",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -345,76 +335,70 @@ def performed(self):
base="performed",
)
- @field_validator(
- *(
- "usedCode",
- "usedReference",
- "focalDevice",
- "note",
- "followUp",
- "complicationDetail",
- "complication",
- "report",
- "outcome",
- "bodySite",
- "reasonReference",
- "reasonCode",
- "location",
- "performer",
- "asserter",
- "recorder",
- "encounter",
- "subject",
- "code",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "usedCode",
+ "usedReference",
+ "focalDevice",
+ "note",
+ "followUp",
+ "complicationDetail",
+ "complication",
+ "report",
+ "outcome",
+ "bodySite",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "performer",
+ "asserter",
+ "recorder",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/provenance.py b/fhircraft/fhir/resources/datatypes/R4B/core/provenance.py
index 1bb9c548..ce001ffb 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/provenance.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/provenance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,29 +62,24 @@ class ProvenanceAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,29 +109,24 @@ class ProvenanceEntityAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -167,26 +157,21 @@ class ProvenanceEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "agent",
- "what",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "agent",
+ "what",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -319,58 +304,52 @@ def occurred(self):
base="occurred",
)
- @field_validator(
- *(
- "signature",
- "entity",
- "agent",
- "activity",
- "reason",
- "location",
- "policy",
- "recorded",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entity",
+ "agent",
+ "activity",
+ "reason",
+ "location",
+ "policy",
+ "recorded",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire.py b/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire.py
index 98800e8d..cb15d990 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -157,23 +157,18 @@ def answer(self):
base="answer",
)
- @field_validator(
- *(
- "operator",
- "question",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operator",
+ "question",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -267,16 +262,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("initialSelected", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "initialSelected",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -542,77 +536,71 @@ class QuestionnaireItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "initial",
- "answerOption",
- "answerValueSet",
- "maxLength",
- "readOnly",
- "repeats",
- "required",
- "enableBehavior",
- "enableWhen",
- "type",
- "text",
- "prefix",
- "code",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "initial",
+ "answerOption",
+ "answerValueSet",
+ "maxLength",
+ "readOnly",
+ "repeats",
+ "required",
+ "enableBehavior",
+ "enableWhen",
+ "type",
+ "text",
+ "prefix",
+ "code",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("enableWhen",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("enableWhen",),
expression="operator = 'exists' implies (answer is boolean)",
human="If the operator is 'exists', the value must be a boolean",
key="que-7",
@@ -842,227 +830,208 @@ class Questionnaire(DomainResource):
default="Questionnaire",
)
- @field_validator(
- *(
- "item",
- "code",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "subjectType",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "code",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "subjectType",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1a_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1a_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type='group' and %resource.status='complete') implies item.empty().not()",
human="Group items must have nested items when Questionanire is complete",
key="que-1a",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type='group' implies item.empty().not()",
human="Groups should have items",
key="que-1b",
severity="warning",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1c_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1c_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type='display' implies item.empty()",
human="Display items cannot have child items",
key="que-1c",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or code.empty()",
human='Display items cannot have a "code" asserted',
key="que-3",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or answerValueSet.empty()",
human="A question cannot have both answerOption and answerValueSet",
key="que-4",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type ='choice' or type = 'open-choice' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())",
human="Only 'choice' and 'open-choice' items can have answerValueSet",
key="que-5",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or (required.empty() and repeats.empty())",
human="Required and repeat aren't permitted for display items",
key="que-6",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type!='group' and type!='display') or initial.empty()",
human="Initial values can't be specified for groups or display items",
key="que-8",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or readOnly.empty()",
human='Read-only can\'t be specified for "display" items',
key="que-9",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url' | 'open-choice')) or maxLength.empty()",
human="Maximum length can only be declared for simple question types",
key="que-10",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or initial.empty()",
human="If one or more answerOption is present, initial[x] must be missing",
key="que-11",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="enableWhen.count() > 1 implies enableBehavior.exists()",
human="If there are more than one enableWhen, enableBehavior must be specified",
key="que-12",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="repeats=true or initial.count() <= 1",
human="Can only have multiple initial values for repeating items",
key="que-13",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire_response.py b/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire_response.py
index 55d789fd..820ea4bf 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire_response.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/questionnaire_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -151,14 +151,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("item", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -229,32 +230,27 @@ class QuestionnaireResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "answer",
- "text",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "answer",
+ "text",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -380,72 +376,65 @@ class QuestionnaireResponse(DomainResource):
default="QuestionnaireResponse",
)
- @field_validator(
- *(
- "item",
- "source",
- "author",
- "authored",
- "encounter",
- "subject",
- "status",
- "questionnaire",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "source",
+ "author",
+ "authored",
+ "encounter",
+ "subject",
+ "status",
+ "questionnaire",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_qrs_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_qrs_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(answer.exists() and item.exists()).not()",
human="Nested item can't be beneath both item and answer",
key="qrs-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/regulated_authorization.py b/fhircraft/fhir/resources/datatypes/R4B/core/regulated_authorization.py
index 28a42a25..293c73c4 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/regulated_authorization.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/regulated_authorization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,29 +83,24 @@ def date(self):
base="date",
)
- @field_validator(
- *(
- "application",
- "status",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "application",
+ "status",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -247,63 +242,57 @@ class RegulatedAuthorization(DomainResource):
default="RegulatedAuthorization",
)
- @field_validator(
- *(
- "case",
- "regulator",
- "holder",
- "basis",
- "intendedUse",
- "indication",
- "validityPeriod",
- "statusDate",
- "status",
- "region",
- "description",
- "type",
- "subject",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "case",
+ "regulator",
+ "holder",
+ "basis",
+ "intendedUse",
+ "indication",
+ "validityPeriod",
+ "statusDate",
+ "status",
+ "region",
+ "description",
+ "type",
+ "subject",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/related_person.py b/fhircraft/fhir/resources/datatypes/R4B/core/related_person.py
index 1cc6ad78..40801ec2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/related_person.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/related_person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -63,23 +63,18 @@ class RelatedPersonCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -209,61 +204,55 @@ class RelatedPerson(DomainResource):
default="RelatedPerson",
)
- @field_validator(
- *(
- "communication",
- "period",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "relationship",
- "patient",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "period",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "relationship",
+ "patient",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/request_group.py b/fhircraft/fhir/resources/datatypes/R4B/core/request_group.py
index 446985a6..1113b5cc 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/request_group.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/request_group.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,23 +67,18 @@ class RequestGroupActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -130,23 +125,18 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "relationship",
- "actionId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relationship",
+ "actionId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -327,71 +317,66 @@ def timing(self):
base="timing",
)
- @field_validator(
- *(
- "action",
- "resource",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "relatedAction",
- "condition",
- "documentation",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "resource",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "relatedAction",
+ "condition",
+ "documentation",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -569,79 +554,72 @@ class RequestGroup(DomainResource):
default="RequestGroup",
)
- @field_validator(
- *(
- "action",
- "note",
- "reasonReference",
- "reasonCode",
- "author",
- "authoredOn",
- "encounter",
- "subject",
- "code",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "note",
+ "reasonReference",
+ "reasonCode",
+ "author",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "code",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_rqg_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_rqg_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="resource.exists() != action.exists()",
human="Must have resource or action but not both",
key="rqg-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/research_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/research_definition.py
index 59f9c4b8..512fc47f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/research_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/research_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -341,82 +341,76 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "outcome",
- "exposureAlternative",
- "exposure",
- "population",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "comment",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcome",
+ "exposureAlternative",
+ "exposure",
+ "population",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "comment",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/research_element_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/research_element_definition.py
index c448b734..7bab1c6d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/research_element_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/research_element_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -201,44 +201,39 @@ def participantEffective(self):
base="participantEffective",
)
- @field_validator(
- *(
- "participantEffectiveGroupMeasure",
- "participantEffectiveTimeFromStart",
- "participantEffectiveDescription",
- "studyEffectiveGroupMeasure",
- "studyEffectiveTimeFromStart",
- "studyEffectiveDescription",
- "unitOfMeasure",
- "exclude",
- "usageContext",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "participantEffectiveGroupMeasure",
+ "participantEffectiveTimeFromStart",
+ "participantEffectiveDescription",
+ "studyEffectiveGroupMeasure",
+ "studyEffectiveTimeFromStart",
+ "studyEffectiveDescription",
+ "unitOfMeasure",
+ "exclude",
+ "usageContext",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -577,81 +572,75 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "characteristic",
- "variableType",
- "type",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "comment",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "variableType",
+ "type",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "comment",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/research_study.py b/fhircraft/fhir/resources/datatypes/R4B/core/research_study.py
index 5abc1a06..27a9a0f7 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/research_study.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/research_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,26 +65,21 @@ class ResearchStudyArm(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class ResearchStudyObjective(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,73 +295,67 @@ class ResearchStudy(DomainResource):
default="ResearchStudy",
)
- @field_validator(
- *(
- "objective",
- "arm",
- "note",
- "reasonStopped",
- "site",
- "principalInvestigator",
- "sponsor",
- "period",
- "enrollment",
- "description",
- "location",
- "keyword",
- "relatedArtifact",
- "contact",
- "condition",
- "focus",
- "category",
- "phase",
- "primaryPurposeType",
- "status",
- "partOf",
- "protocol",
- "title",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "objective",
+ "arm",
+ "note",
+ "reasonStopped",
+ "site",
+ "principalInvestigator",
+ "sponsor",
+ "period",
+ "enrollment",
+ "description",
+ "location",
+ "keyword",
+ "relatedArtifact",
+ "contact",
+ "condition",
+ "focus",
+ "category",
+ "phase",
+ "primaryPurposeType",
+ "status",
+ "partOf",
+ "protocol",
+ "title",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/research_subject.py b/fhircraft/fhir/resources/datatypes/R4B/core/research_subject.py
index 123aaa71..6087dc3a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/research_subject.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/research_subject.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -138,57 +138,51 @@ class ResearchSubject(DomainResource):
default="ResearchSubject",
)
- @field_validator(
- *(
- "consent",
- "actualArm",
- "assignedArm",
- "individual",
- "study",
- "period",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "consent",
+ "actualArm",
+ "assignedArm",
+ "individual",
+ "study",
+ "period",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/resource.py b/fhircraft/fhir/resources/datatypes/R4B/core/resource.py
index 636cbeb0..81c769f2 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -26,6 +26,7 @@ class Resource(FHIRBaseModel):
"""
This is the base resource type for everything.
"""
+
_fhir_release = "R4B"
id: Optional[String] = Field(
@@ -39,7 +40,9 @@ class Resource(FHIRBaseModel):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Resource"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Resource"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -64,14 +67,15 @@ class Resource(FHIRBaseModel):
default="Resource",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/risk_assessment.py b/fhircraft/fhir/resources/datatypes/R4B/core/risk_assessment.py
index 64284709..97382c9d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/risk_assessment.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/risk_assessment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,29 +109,24 @@ def when(self):
base="when",
)
- @field_validator(
- *(
- "rationale",
- "relativeRisk",
- "qualitativeRisk",
- "outcome",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rationale",
+ "relativeRisk",
+ "qualitativeRisk",
+ "outcome",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -310,77 +305,70 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "mitigation",
- "prediction",
- "basis",
- "reasonReference",
- "reasonCode",
- "performer",
- "condition",
- "encounter",
- "subject",
- "code",
- "method",
- "status",
- "parent",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "mitigation",
+ "prediction",
+ "basis",
+ "reasonReference",
+ "reasonCode",
+ "performer",
+ "condition",
+ "encounter",
+ "subject",
+ "code",
+ "method",
+ "status",
+ "parent",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("prediction",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ras_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ras_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("prediction",),
expression="probability.exists($this is decimal) implies (probability as decimal) <= 100",
human="Must be <= 100",
key="ras-2",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/schedule.py b/fhircraft/fhir/resources/datatypes/R4B/core/schedule.py
index dbe04b06..02dab313 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/schedule.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/schedule.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -134,57 +134,51 @@ class Schedule(DomainResource):
default="Schedule",
)
- @field_validator(
- *(
- "comment",
- "planningHorizon",
- "actor",
- "specialty",
- "serviceType",
- "serviceCategory",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "planningHorizon",
+ "actor",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/search_parameter.py b/fhircraft/fhir/resources/datatypes/R4B/core/search_parameter.py
index f8ada9c1..58f6f875 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/search_parameter.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/search_parameter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class SearchParameterComponent(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "definition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "definition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -362,75 +357,69 @@ class SearchParameter(DomainResource):
default="SearchParameter",
)
- @field_validator(
- *(
- "component",
- "chain",
- "modifier",
- "comparator",
- "multipleAnd",
- "multipleOr",
- "target",
- "xpathUsage",
- "xpath",
- "expression",
- "type",
- "base",
- "code",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFrom",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "chain",
+ "modifier",
+ "comparator",
+ "multipleAnd",
+ "multipleOr",
+ "target",
+ "xpathUsage",
+ "xpath",
+ "expression",
+ "type",
+ "base",
+ "code",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/service_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/service_request.py
index 6957f8e6..0a4178cf 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/service_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/service_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -327,79 +327,73 @@ def asNeeded(self):
base="asNeeded",
)
- @field_validator(
- *(
- "relevantHistory",
- "patientInstruction",
- "note",
- "bodySite",
- "specimen",
- "supportingInfo",
- "insurance",
- "reasonReference",
- "reasonCode",
- "locationReference",
- "locationCode",
- "performer",
- "performerType",
- "requester",
- "authoredOn",
- "encounter",
- "subject",
- "orderDetail",
- "code",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "status",
- "requisition",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "patientInstruction",
+ "note",
+ "bodySite",
+ "specimen",
+ "supportingInfo",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "locationReference",
+ "locationCode",
+ "performer",
+ "performerType",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "orderDetail",
+ "code",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "status",
+ "requisition",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/slot.py b/fhircraft/fhir/resources/datatypes/R4B/core/slot.py
index 28e75d5c..378ba918 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/slot.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/slot.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -166,60 +166,54 @@ class Slot(DomainResource):
default="Slot",
)
- @field_validator(
- *(
- "comment",
- "overbooked",
- "end",
- "start",
- "status",
- "schedule",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "overbooked",
+ "end",
+ "start",
+ "status",
+ "schedule",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/specimen.py b/fhircraft/fhir/resources/datatypes/R4B/core/specimen.py
index 2e3afeb4..1a7b1708 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/specimen.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/specimen.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,32 +98,27 @@ def fastingStatus(self):
base="fastingStatus",
)
- @field_validator(
- *(
- "bodySite",
- "method",
- "quantity",
- "duration",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "bodySite",
+ "method",
+ "quantity",
+ "duration",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,26 +187,21 @@ def time(self):
base="time",
)
- @field_validator(
- *(
- "additive",
- "procedure",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additive",
+ "procedure",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -274,32 +264,27 @@ def additive(self):
base="additive",
)
- @field_validator(
- *(
- "specimenQuantity",
- "capacity",
- "type",
- "description",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specimenQuantity",
+ "capacity",
+ "type",
+ "description",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -437,62 +422,56 @@ class Specimen(DomainResource):
default="Specimen",
)
- @field_validator(
- *(
- "note",
- "condition",
- "container",
- "processing",
- "collection",
- "request",
- "parent",
- "receivedTime",
- "subject",
- "type",
- "status",
- "accessionIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "condition",
+ "container",
+ "processing",
+ "collection",
+ "request",
+ "parent",
+ "receivedTime",
+ "subject",
+ "type",
+ "status",
+ "accessionIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/specimen_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/specimen_definition.py
index 31d7f328..114b51ad 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/specimen_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/specimen_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -131,38 +131,33 @@ def minimumVolume(self):
base="minimumVolume",
)
- @field_validator(
- *(
- "preparation",
- "additive",
- "capacity",
- "description",
- "cap",
- "type",
- "material",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preparation",
+ "additive",
+ "capacity",
+ "description",
+ "cap",
+ "type",
+ "material",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,29 +201,24 @@ class SpecimenDefinitionTypeTestedHandling(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "maxDuration",
- "temperatureRange",
- "temperatureQualifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "maxDuration",
+ "temperatureRange",
+ "temperatureQualifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -289,41 +279,36 @@ class SpecimenDefinitionTypeTested(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "handling",
- "rejectionCriterion",
- "retentionTime",
- "requirement",
- "container",
- "preference",
- "type",
- "isDerived",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "handling",
+ "rejectionCriterion",
+ "retentionTime",
+ "requirement",
+ "container",
+ "preference",
+ "type",
+ "isDerived",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -419,55 +404,49 @@ class SpecimenDefinition(DomainResource):
default="SpecimenDefinition",
)
- @field_validator(
- *(
- "typeTested",
- "collection",
- "timeAspect",
- "patientPreparation",
- "typeCollected",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "typeTested",
+ "collection",
+ "timeAspect",
+ "patientPreparation",
+ "typeCollected",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/structure_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/structure_definition.py
index ce3581a4..bfeabc14 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/structure_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/structure_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,29 +87,24 @@ class StructureDefinitionMapping(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "name",
- "uri",
- "identity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "name",
+ "uri",
+ "identity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -141,23 +136,18 @@ class StructureDefinitionContext(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,26 +165,26 @@ class StructureDefinitionSnapshot(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="binding.empty() or binding.valueSet.exists() or binding.description.exists()",
human="provide either a binding reference or a description (or both)",
key="sdf-10",
@@ -212,14 +202,15 @@ class StructureDefinitionDifferential(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -484,172 +475,158 @@ class StructureDefinition(DomainResource):
default="StructureDefinition",
)
- @field_validator(
- *(
- "differential",
- "snapshot",
- "derivation",
- "baseDefinition",
- "type",
- "contextInvariant",
- "context",
- "abstract",
- "kind",
- "mapping",
- "fhirVersion",
- "keyword",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "differential",
+ "snapshot",
+ "derivation",
+ "baseDefinition",
+ "type",
+ "contextInvariant",
+ "context",
+ "abstract",
+ "kind",
+ "mapping",
+ "fhirVersion",
+ "keyword",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("mapping",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("mapping",),
expression="name.exists() or uri.exists()",
human="Must have at least a name or a uri (or both)",
key="sdf-2",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.all(definition.exists() and min.exists() and max.exists())",
human="Each element definition in a snapshot must have a formal definition and cardinalities",
key="sdf-3",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="(%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))",
human="All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_24_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_24_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.where(type.code='Reference' and id.endsWith('.reference') and type.targetProfile.exists() and id.substring(0,$this.length()-10) in %context.element.where(type.code='CodeableReference').id).exists().not()",
human="For CodeableReference elements, target profiles must be listed on the CodeableReference, not the CodeableReference.reference",
key="sdf-24",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_25_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_25_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.where(type.code='CodeableConcept' and id.endsWith('.concept') and binding.exists() and id.substring(0,$this.length()-8) in %context.element.where(type.code='CodeableReference').id).exists().not()",
human="For CodeableReference elements, bindings must be listed on the CodeableReference, not the CodeableReference.concept",
key="sdf-25",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.all(base.exists())",
human="All snapshot elements must have a base definition",
key="sdf-8b",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_20_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_20_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="element.where(path.contains('.').not()).slicing.empty()",
human="No slicing on the root element",
key="sdf-20",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8a_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8a_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="(%resource.kind = 'logical' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches('\\..*','')&'.')))",
human="In any differential, all the elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8a",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/structure_map.py b/fhircraft/fhir/resources/datatypes/R4B/core/structure_map.py
index 4fc93efa..99f44b57 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/structure_map.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/structure_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -122,29 +122,24 @@ class StructureMapStructure(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "alias",
- "mode",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "alias",
+ "mode",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -194,29 +189,24 @@ class StructureMapGroupInput(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "mode",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "mode",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -622,47 +612,42 @@ def defaultValue(self):
base="defaultValue",
)
- @field_validator(
- *(
- "logMessage",
- "check",
- "condition",
- "variable",
- "listMode",
- "element",
- "type",
- "max",
- "min",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "logMessage",
+ "check",
+ "condition",
+ "variable",
+ "listMode",
+ "element",
+ "type",
+ "max",
+ "min",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -871,41 +856,36 @@ class StructureMapGroupRuleTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "parameter",
- "transform",
- "listRuleId",
- "listMode",
- "variable",
- "element",
- "contextType",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "transform",
+ "listRuleId",
+ "listMode",
+ "variable",
+ "element",
+ "contextType",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -937,23 +917,18 @@ class StructureMapGroupRuleDependent(BackboneElement):
alias="_variable",
)
- @field_validator(
- *(
- "variable",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "variable",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1001,59 +976,52 @@ class StructureMapGroupRule(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "dependent",
- "rule",
- "target",
- "source",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "dependent",
+ "rule",
+ "target",
+ "source",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_smp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_smp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="element.exists() implies context.exists()",
human="Can only have an element if you have a context",
key="smp-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_smp_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_smp_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="context.exists() implies contextType.exists()",
human="Must have a contextType if you have a context",
key="smp-2",
@@ -1111,35 +1079,30 @@ class StructureMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "rule",
- "input",
- "documentation",
- "typeMode",
- "extends",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "input",
+ "documentation",
+ "typeMode",
+ "extends",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -1338,67 +1301,61 @@ class StructureMap(DomainResource):
default="StructureMap",
)
- @field_validator(
- *(
- "group",
- "import_",
- "structure",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "import_",
+ "structure",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/subscription.py b/fhircraft/fhir/resources/datatypes/R4B/core/subscription.py
index b5f4f4c3..a66a2693 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/subscription.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/subscription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,29 +79,24 @@ class SubscriptionChannel(BackboneElement):
alias="_header",
)
- @field_validator(
- *(
- "header",
- "payload",
- "endpoint",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "header",
+ "payload",
+ "endpoint",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -221,56 +216,50 @@ class Subscription(DomainResource):
default="Subscription",
)
- @field_validator(
- *(
- "channel",
- "error",
- "criteria",
- "reason",
- "end",
- "contact",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "channel",
+ "error",
+ "criteria",
+ "reason",
+ "end",
+ "contact",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/subscription_status.py b/fhircraft/fhir/resources/datatypes/R4B/core/subscription_status.py
index da90d645..a05f7443 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/subscription_status.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/subscription_status.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,29 +70,24 @@ class SubscriptionStatusNotificationEvent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "additionalContext",
- "focus",
- "timestamp",
- "eventNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additionalContext",
+ "focus",
+ "timestamp",
+ "eventNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,56 +202,50 @@ class SubscriptionStatus(DomainResource):
default="SubscriptionStatus",
)
- @field_validator(
- *(
- "error",
- "topic",
- "subscription",
- "notificationEvent",
- "eventsSinceSubscriptionStart",
- "type",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "topic",
+ "subscription",
+ "notificationEvent",
+ "eventsSinceSubscriptionStart",
+ "type",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/subscription_topic.py b/fhircraft/fhir/resources/datatypes/R4B/core/subscription_topic.py
index fe3d4c86..8914212d 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/subscription_topic.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/subscription_topic.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -95,32 +95,27 @@ class SubscriptionTopicResourceTriggerQueryCriteria(BackboneElement):
alias="_requireBoth",
)
- @field_validator(
- *(
- "requireBoth",
- "resultForDelete",
- "current",
- "resultForCreate",
- "previous",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requireBoth",
+ "resultForDelete",
+ "current",
+ "resultForCreate",
+ "previous",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,32 +169,27 @@ class SubscriptionTopicResourceTrigger(BackboneElement):
alias="_fhirPathCriteria",
)
- @field_validator(
- *(
- "fhirPathCriteria",
- "queryCriteria",
- "supportedInteraction",
- "resource",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "fhirPathCriteria",
+ "queryCriteria",
+ "supportedInteraction",
+ "resource",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -235,26 +225,21 @@ class SubscriptionTopicEventTrigger(BackboneElement):
alias="_resource",
)
- @field_validator(
- *(
- "resource",
- "event",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "event",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -313,32 +298,27 @@ class SubscriptionTopicCanFilterBy(BackboneElement):
alias="_modifier",
)
- @field_validator(
- *(
- "modifier",
- "filterDefinition",
- "filterParameter",
- "resource",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifier",
+ "filterDefinition",
+ "filterParameter",
+ "resource",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -379,26 +359,21 @@ class SubscriptionTopicNotificationShape(BackboneElement):
alias="_revInclude",
)
- @field_validator(
- *(
- "revInclude",
- "include",
- "resource",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "revInclude",
+ "include",
+ "resource",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -618,71 +593,65 @@ class SubscriptionTopic(DomainResource):
default="SubscriptionTopic",
)
- @field_validator(
- *(
- "notificationShape",
- "canFilterBy",
- "eventTrigger",
- "resourceTrigger",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "notificationShape",
+ "canFilterBy",
+ "eventTrigger",
+ "resourceTrigger",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/substance.py b/fhircraft/fhir/resources/datatypes/R4B/core/substance.py
index e5d0cd9d..535d1e99 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/substance.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/substance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,26 +58,21 @@ class SubstanceInstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "expiry",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "expiry",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -110,14 +105,15 @@ def substance(self):
base="substance",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -231,56 +227,50 @@ class Substance(DomainResource):
default="Substance",
)
- @field_validator(
- *(
- "ingredient",
- "instance",
- "description",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ingredient",
+ "instance",
+ "description",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/substance_definition.py b/fhircraft/fhir/resources/datatypes/R4B/core/substance_definition.py
index 536eda72..80116075 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/substance_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/substance_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,38 +109,33 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "measurementType",
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "name",
- "identifier",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measurementType",
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "name",
+ "identifier",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,14 +199,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,26 +242,21 @@ class SubstanceDefinitionMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -291,26 +282,21 @@ class SubstanceDefinitionStructureMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -345,29 +331,24 @@ class SubstanceDefinitionStructureRepresentation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "document",
- "format",
- "representation",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "document",
+ "format",
+ "representation",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -418,46 +399,43 @@ class SubstanceDefinitionStructure(BackboneElement):
description="Source of information for the structure",
default=None,
)
- representation: Optional[ListType[SubstanceDefinitionStructureRepresentation]] = Field(
- description="A depiction of the structure or characterization of the substance",
- default=None,
- )
-
- @field_validator(
- *(
- "representation",
- "sourceDocument",
- "technique",
- "molecularWeight",
- "molecularFormulaByMoiety",
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
+ representation: Optional[ListType[SubstanceDefinitionStructureRepresentation]] = (
+ Field(
+ description="A depiction of the structure or characterization of the substance",
+ default=None,
+ )
)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "representation",
+ "sourceDocument",
+ "technique",
+ "molecularWeight",
+ "molecularFormulaByMoiety",
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -496,32 +474,27 @@ class SubstanceDefinitionCode(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "note",
- "statusDate",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "note",
+ "statusDate",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -552,26 +525,21 @@ class SubstanceDefinitionNameOfficial(BackboneElement):
alias="_date",
)
- @field_validator(
- *(
- "date",
- "status",
- "authority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "date",
+ "status",
+ "authority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -639,50 +607,45 @@ class SubstanceDefinitionName(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "official",
- "translation",
- "synonym",
- "jurisdiction",
- "domain",
- "language",
- "preferred",
- "status",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "official",
+ "translation",
+ "synonym",
+ "jurisdiction",
+ "domain",
+ "language",
+ "preferred",
+ "status",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -760,32 +723,27 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "source",
- "comparator",
- "ratioHighLimitAmount",
- "isDefining",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "comparator",
+ "ratioHighLimitAmount",
+ "isDefining",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -837,32 +795,27 @@ class SubstanceDefinitionSourceMaterial(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "countryOfOrigin",
- "part",
- "species",
- "genus",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "countryOfOrigin",
+ "part",
+ "species",
+ "genus",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1015,68 +968,62 @@ class SubstanceDefinition(DomainResource):
default="SubstanceDefinition",
)
- @field_validator(
- *(
- "sourceMaterial",
- "relationship",
- "name",
- "code",
- "structure",
- "molecularWeight",
- "property_",
- "moiety",
- "supplier",
- "manufacturer",
- "note",
- "informationSource",
- "description",
- "grade",
- "domain",
- "classification",
- "status",
- "version",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceMaterial",
+ "relationship",
+ "name",
+ "code",
+ "structure",
+ "molecularWeight",
+ "property_",
+ "moiety",
+ "supplier",
+ "manufacturer",
+ "note",
+ "informationSource",
+ "description",
+ "grade",
+ "domain",
+ "classification",
+ "status",
+ "version",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/supply_delivery.py b/fhircraft/fhir/resources/datatypes/R4B/core/supply_delivery.py
index bc8daab3..2fd3d93c 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/supply_delivery.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/supply_delivery.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,14 +61,15 @@ def item(self):
base="item",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,59 +214,53 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "receiver",
- "destination",
- "supplier",
- "suppliedItem",
- "type",
- "patient",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "destination",
+ "supplier",
+ "suppliedItem",
+ "type",
+ "patient",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/supply_request.py b/fhircraft/fhir/resources/datatypes/R4B/core/supply_request.py
index 240b39c2..090304f9 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/supply_request.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/supply_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -81,14 +81,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -270,62 +271,56 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "deliverTo",
- "deliverFrom",
- "reasonReference",
- "reasonCode",
- "supplier",
- "requester",
- "authoredOn",
- "parameter",
- "quantity",
- "priority",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "deliverTo",
+ "deliverFrom",
+ "reasonReference",
+ "reasonCode",
+ "supplier",
+ "requester",
+ "authoredOn",
+ "parameter",
+ "quantity",
+ "priority",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/task.py b/fhircraft/fhir/resources/datatypes/R4B/core/task.py
index ee6e3d49..679a3255 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/task.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/task.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -103,26 +103,21 @@ class TaskRestriction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "recipient",
- "period",
- "repetitions",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recipient",
+ "period",
+ "repetitions",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -442,14 +437,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -829,14 +825,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1127,80 +1124,74 @@ class Task(DomainResource):
default="Task",
)
- @field_validator(
- *(
- "output",
- "input",
- "restriction",
- "relevantHistory",
- "note",
- "insurance",
- "reasonReference",
- "reasonCode",
- "location",
- "owner",
- "performerType",
- "requester",
- "lastModified",
- "authoredOn",
- "executionPeriod",
- "encounter",
- "for_",
- "focus",
- "description",
- "code",
- "priority",
- "intent",
- "businessStatus",
- "statusReason",
- "status",
- "partOf",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "output",
+ "input",
+ "restriction",
+ "relevantHistory",
+ "note",
+ "insurance",
+ "reasonReference",
+ "reasonCode",
+ "location",
+ "owner",
+ "performerType",
+ "requester",
+ "lastModified",
+ "authoredOn",
+ "executionPeriod",
+ "encounter",
+ "for_",
+ "focus",
+ "description",
+ "code",
+ "priority",
+ "intent",
+ "businessStatus",
+ "statusReason",
+ "status",
+ "partOf",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/terminology_capabilities.py b/fhircraft/fhir/resources/datatypes/R4B/core/terminology_capabilities.py
index eb55d659..ab2f5a0b 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/terminology_capabilities.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/terminology_capabilities.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class TerminologyCapabilitiesSoftware(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -114,23 +109,18 @@ class TerminologyCapabilitiesImplementation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,23 +152,18 @@ class TerminologyCapabilitiesCodeSystemVersionFilter(BackboneElement):
alias="_op",
)
- @field_validator(
- *(
- "op",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "op",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -241,35 +226,30 @@ class TerminologyCapabilitiesCodeSystemVersion(BackboneElement):
alias="_property",
)
- @field_validator(
- *(
- "property_",
- "filter",
- "language",
- "compositional",
- "isDefault",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "filter",
+ "language",
+ "compositional",
+ "isDefault",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -305,26 +285,21 @@ class TerminologyCapabilitiesCodeSystem(BackboneElement):
alias="_subsumption",
)
- @field_validator(
- *(
- "subsumption",
- "version",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subsumption",
+ "version",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -356,23 +331,18 @@ class TerminologyCapabilitiesExpansionParameter(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -426,32 +396,27 @@ class TerminologyCapabilitiesExpansion(BackboneElement):
alias="_textFilter",
)
- @field_validator(
- *(
- "textFilter",
- "parameter",
- "incomplete",
- "paging",
- "hierarchical",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "textFilter",
+ "parameter",
+ "incomplete",
+ "paging",
+ "hierarchical",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -474,16 +439,15 @@ class TerminologyCapabilitiesValidateCode(BackboneElement):
alias="_translations",
)
- @field_validator(
- *("translations", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translations",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -506,14 +470,15 @@ class TerminologyCapabilitiesTranslation(BackboneElement):
alias="_needsMap",
)
- @field_validator(
- *("needsMap", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "needsMap",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -536,16 +501,15 @@ class TerminologyCapabilitiesClosure(BackboneElement):
alias="_translation",
)
- @field_validator(
- *("translation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -778,85 +742,78 @@ class TerminologyCapabilities(DomainResource):
default="TerminologyCapabilities",
)
- @field_validator(
- *(
- "closure",
- "translation",
- "validateCode",
- "codeSearch",
- "expansion",
- "codeSystem",
- "lockedDate",
- "implementation",
- "software",
- "kind",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "closure",
+ "translation",
+ "validateCode",
+ "codeSearch",
+ "expansion",
+ "codeSystem",
+ "lockedDate",
+ "implementation",
+ "software",
+ "kind",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("codeSystem",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tcp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tcp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeSystem",),
expression="version.count() > 1 implies version.all(code.exists())",
human="If there is more than one version, a version code must be defined",
key="tcp-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/test_report.py b/fhircraft/fhir/resources/datatypes/R4B/core/test_report.py
index e7d1489f..25281556 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/test_report.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/test_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class TestReportParticipant(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "uri",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "uri",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,26 +127,21 @@ class TestReportSetupActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,26 +182,21 @@ class TestReportSetupActionAssert(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -233,23 +218,18 @@ class TestReportSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -267,26 +247,26 @@ class TestReportSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="inv-1",
@@ -327,26 +307,21 @@ class TestReportTestActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -387,26 +362,21 @@ class TestReportTestActionAssert(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -428,23 +398,18 @@ class TestReportTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -480,38 +445,32 @@ class TestReportTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="inv-2",
@@ -529,16 +488,15 @@ class TestReportTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -556,14 +514,15 @@ class TestReportTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -708,61 +667,55 @@ class TestReport(DomainResource):
default="TestReport",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "participant",
- "issued",
- "tester",
- "score",
- "result",
- "testScript",
- "status",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "participant",
+ "issued",
+ "tester",
+ "score",
+ "result",
+ "testScript",
+ "status",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/test_script.py b/fhircraft/fhir/resources/datatypes/R4B/core/test_script.py
index 2f1c6dcf..58bb94d9 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/test_script.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/test_script.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class TestScriptOrigin(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -108,23 +103,18 @@ class TestScriptDestination(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,23 +146,18 @@ class TestScriptMetadataLink(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -249,38 +234,33 @@ class TestScriptMetadataCapability(BackboneElement):
alias="_capabilities",
)
- @field_validator(
- *(
- "capabilities",
- "link",
- "destination",
- "origin",
- "description",
- "validated",
- "required",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capabilities",
+ "link",
+ "destination",
+ "origin",
+ "description",
+ "validated",
+ "required",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -302,23 +282,18 @@ class TestScriptMetadata(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "capability",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capability",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -354,26 +329,21 @@ class TestScriptFixture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "autodelete",
- "autocreate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "autodelete",
+ "autocreate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -459,41 +429,36 @@ class TestScriptVariable(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "path",
- "hint",
- "headerField",
- "expression",
- "description",
- "defaultValue",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "path",
+ "hint",
+ "headerField",
+ "expression",
+ "description",
+ "defaultValue",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -525,23 +490,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -648,9 +608,11 @@ class TestScriptSetupActionOperation(BackboneElement):
default=None,
alias="_params",
)
- requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = Field(
- description="Each operation can have one or more header elements",
- default=None,
+ requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = (
+ Field(
+ description="Each operation can have one or more header elements",
+ default=None,
+ )
)
requestId: Optional[Id] = Field(
description="Fixture Id of mapped request",
@@ -698,68 +660,63 @@ class TestScriptSetupActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -971,83 +928,78 @@ class TestScriptSetupActionAssert(BackboneElement):
alias="_warningOnly",
)
- @field_validator(
- *(
- "warningOnly",
- "value",
- "validateProfileId",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1069,71 +1021,62 @@ class TestScriptSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history'))",
human="Setup operation SHALL contain either sourceId or targetId or params or url.",
key="tst-7",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)",
human="Only a single assertion SHALL be present within setup action assert element.",
key="tst-5",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-10",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Setup action assert response and responseCode SHALL be empty when direction equals request",
key="tst-12",
@@ -1151,26 +1094,26 @@ class TestScriptSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="tst-1",
@@ -1202,23 +1145,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1325,9 +1263,11 @@ class TestScriptTestActionOperation(BackboneElement):
default=None,
alias="_params",
)
- requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = Field(
- description="Each operation can have one or more header elements",
- default=None,
+ requestHeader: Optional[ListType[TestScriptSetupActionOperationRequestHeader]] = (
+ Field(
+ description="Each operation can have one or more header elements",
+ default=None,
+ )
)
requestId: Optional[Id] = Field(
description="Fixture Id of mapped request",
@@ -1375,68 +1315,63 @@ class TestScriptTestActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1648,83 +1583,78 @@ class TestScriptTestActionAssert(BackboneElement):
alias="_warningOnly",
)
- @field_validator(
- *(
- "warningOnly",
- "value",
- "validateProfileId",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1746,71 +1676,62 @@ class TestScriptTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Test operation SHALL contain either sourceId or targetId or params or url.",
key="tst-8",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1)",
human="Only a single assertion SHALL be present within test action assert element.",
key="tst-6",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-11",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Test action assert response and response and responseCode SHALL be empty when direction equals request",
key="tst-13",
@@ -1846,38 +1767,32 @@ class TestScriptTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="tst-2",
@@ -1895,28 +1810,26 @@ class TestScriptTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Teardown operation SHALL contain either sourceId or targetId or params or url.",
key="tst-9",
@@ -1934,14 +1847,15 @@ class TestScriptTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -2159,97 +2073,89 @@ class TestScript(DomainResource):
default="TestScript",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "variable",
- "profile",
- "fixture",
- "metadata",
- "destination",
- "origin",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "variable",
+ "profile",
+ "fixture",
+ "metadata",
+ "destination",
+ "origin",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("metadata",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("metadata",),
expression="capability.required.exists() or capability.validated.exists()",
human="TestScript metadata capability SHALL contain required or validated or both.",
key="tst-4",
severity="error",
)
- @field_validator(*("variable",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("variable",),
expression="expression.empty() or headerField.empty() or path.empty()",
human="Variable can only contain one of expression, headerField or path.",
key="tst-3",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/value_set.py b/fhircraft/fhir/resources/datatypes/R4B/core/value_set.py
index f056bfd7..359b906f 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/value_set.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/value_set.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,26 +74,21 @@ class ValueSetComposeIncludeConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -129,26 +124,21 @@ class ValueSetComposeIncludeConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "designation",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "designation",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
@@ -189,26 +179,21 @@ class ValueSetComposeIncludeFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "op",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "op",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,32 +242,27 @@ class ValueSetComposeInclude(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -331,32 +311,27 @@ class ValueSetComposeExclude(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -396,65 +371,57 @@ class ValueSetCompose(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "exclude",
- "include",
- "inactive",
- "lockedDate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exclude",
+ "include",
+ "inactive",
+ "lockedDate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="valueSet.exists() or system.exists()",
human="A value set include/exclude SHALL have a value set or a system",
key="vsd-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="(concept.exists() or filter.exists()) implies system.exists()",
human="A value set with concepts or filters SHALL include a system",
key="vsd-2",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="concept.empty() or filter.empty()",
human="Cannot have both concept and filter",
key="vsd-3",
@@ -547,14 +514,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("name", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -599,26 +567,21 @@ class ValueSetExpansionContainsDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -694,41 +657,36 @@ class ValueSetExpansionContains(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "designation",
- "display",
- "code",
- "version",
- "inactive",
- "abstract",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "designation",
+ "display",
+ "code",
+ "version",
+ "inactive",
+ "abstract",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -786,71 +744,63 @@ class ValueSetExpansion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "parameter",
- "offset",
- "total",
- "timestamp",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "parameter",
+ "offset",
+ "total",
+ "timestamp",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or display.exists()",
human="SHALL have a code or a display",
key="vsd-6",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or abstract = true",
human="Must have a code if not abstract",
key="vsd-9",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.empty() or system.exists()",
human="Must have a system if a code is present",
key="vsd-10",
@@ -1049,67 +999,61 @@ class ValueSet(DomainResource):
default="ValueSet",
)
- @field_validator(
- *(
- "expansion",
- "compose",
- "copyright",
- "purpose",
- "immutable",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expansion",
+ "compose",
+ "copyright",
+ "purpose",
+ "immutable",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/verification_result.py b/fhircraft/fhir/resources/datatypes/R4B/core/verification_result.py
index ca8033fd..b01b2831 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/verification_result.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/verification_result.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,38 +79,33 @@ class VerificationResultPrimarySource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "pushTypeAvailable",
- "canPushUpdates",
- "validationDate",
- "validationStatus",
- "communicationMethod",
- "type",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "pushTypeAvailable",
+ "canPushUpdates",
+ "validationDate",
+ "validationStatus",
+ "communicationMethod",
+ "type",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -171,41 +166,36 @@ class VerificationResultAttestation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "sourceSignature",
- "proxySignature",
- "proxyIdentityCertificate",
- "sourceIdentityCertificate",
- "date",
- "communicationMethod",
- "onBehalfOf",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceSignature",
+ "proxySignature",
+ "proxyIdentityCertificate",
+ "sourceIdentityCertificate",
+ "date",
+ "communicationMethod",
+ "onBehalfOf",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,26 +226,21 @@ class VerificationResultValidator(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attestationSignature",
- "identityCertificate",
- "organization",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attestationSignature",
+ "identityCertificate",
+ "organization",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -403,63 +388,57 @@ class VerificationResult(DomainResource):
default="VerificationResult",
)
- @field_validator(
- *(
- "validator",
- "attestation",
- "primarySource",
- "failureAction",
- "nextScheduled",
- "lastPerformed",
- "frequency",
- "validationProcess",
- "validationType",
- "statusDate",
- "status",
- "need",
- "targetLocation",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "validator",
+ "attestation",
+ "primarySource",
+ "failureAction",
+ "nextScheduled",
+ "lastPerformed",
+ "frequency",
+ "validationProcess",
+ "validationType",
+ "statusDate",
+ "status",
+ "need",
+ "targetLocation",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R4B/core/vision_prescription.py b/fhircraft/fhir/resources/datatypes/R4B/core/vision_prescription.py
index c4fd92e3..b01f361a 100644
--- a/fhircraft/fhir/resources/datatypes/R4B/core/vision_prescription.py
+++ b/fhircraft/fhir/resources/datatypes/R4B/core/vision_prescription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class VisionPrescriptionLensSpecificationPrism(BackboneElement):
alias="_base",
)
- @field_validator(
- *(
- "base",
- "amount",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "base",
+ "amount",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,59 +197,54 @@ class VisionPrescriptionLensSpecification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "brand",
- "color",
- "duration",
- "diameter",
- "backCurve",
- "power",
- "add",
- "prism",
- "axis",
- "cylinder",
- "sphere",
- "eye",
- "product",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "brand",
+ "color",
+ "duration",
+ "diameter",
+ "backCurve",
+ "power",
+ "add",
+ "prism",
+ "axis",
+ "cylinder",
+ "sphere",
+ "eye",
+ "product",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -368,57 +358,51 @@ class VisionPrescription(DomainResource):
default="VisionPrescription",
)
- @field_validator(
- *(
- "lensSpecification",
- "prescriber",
- "dateWritten",
- "encounter",
- "patient",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lensSpecification",
+ "prescriber",
+ "dateWritten",
+ "encounter",
+ "patient",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count()) or $this is Parameters",
human="All FHIR elements must have a @value or children unless an empty Parameters resource",
key="ele-1",
severity="error",
)
- @field_validator(*("contained",), mode="after", check_fields=None)
- @classmethod
- def FHIR_dom_r4b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_dom_r4b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contained",),
expression="($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)",
human="Containing new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems",
key="dom-r4b",
severity="warning",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/address.py b/fhircraft/fhir/resources/datatypes/R5/complex/address.py
index 0fbc7ba9..205ae791 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/address.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/address.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -98,40 +98,34 @@ class Address(Element):
default=None,
)
- @field_validator(
- *(
- "period",
- "country",
- "postalCode",
- "state",
- "district",
- "city",
- "line",
- "text",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "country",
+ "postalCode",
+ "state",
+ "district",
+ "city",
+ "line",
+ "text",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/annotation.py b/fhircraft/fhir/resources/datatypes/R5/complex/annotation.py
index 908b96e4..b96baa23 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/annotation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/annotation.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -39,24 +39,26 @@ class Annotation(Element):
alias="_text",
)
- @field_validator(*("text", "time", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "time",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/attachment.py b/fhircraft/fhir/resources/datatypes/R5/complex/attachment.py
index 72bb4cbb..e296c92a 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/attachment.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/attachment.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -130,43 +130,37 @@ class Attachment(Element):
alias="_pages",
)
- @field_validator(
- *(
- "pages",
- "duration",
- "frames",
- "width",
- "height",
- "creation",
- "title",
- "hash",
- "size",
- "url",
- "data",
- "language",
- "contentType",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "pages",
+ "duration",
+ "frames",
+ "width",
+ "height",
+ "creation",
+ "title",
+ "hash",
+ "size",
+ "url",
+ "data",
+ "language",
+ "contentType",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/availability.py b/fhircraft/fhir/resources/datatypes/R5/complex/availability.py
index 048c608d..861d5f0e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/availability.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/availability.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,40 +21,37 @@ class Availability(Element):
default=None,
)
- @field_validator(
- *("notAvailableTime", "availableTime", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "notAvailableTime",
+ "availableTime",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("availableTime",), mode="after", check_fields=None)
- @classmethod
- def FHIR_av_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_av_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("availableTime",),
expression="allDay.exists().not() or (allDay implies availableStartTime.exists().not() and availableEndTime.exists().not())",
human="Cannot include start/end times when selecting all day availability.",
key="av-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/backbone_element.py b/fhircraft/fhir/resources/datatypes/R5/complex/backbone_element.py
index 45121101..53fa1c03 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/backbone_element.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/backbone_element.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -17,28 +17,28 @@ class BackboneElement(Element):
default=None,
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/backbone_type.py b/fhircraft/fhir/resources/datatypes/R5/complex/backbone_type.py
index 3de2deec..900e8a73 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/backbone_type.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/backbone_type.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,28 +21,28 @@ class BackboneType(Element):
default=None,
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/base.py b/fhircraft/fhir/resources/datatypes/R5/complex/base.py
index 925a6053..5d5a34e3 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/base.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/base.py
@@ -9,6 +9,7 @@ class Base(FHIRBaseModel):
"""
Base for all types and resources
"""
+
_fhir_release = "R5"
@model_validator(mode="after")
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/codeable_concept.py b/fhircraft/fhir/resources/datatypes/R5/complex/codeable_concept.py
index 6bf71229..3e4987de 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/codeable_concept.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/codeable_concept.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,24 +26,26 @@ class CodeableConcept(Element):
alias="_text",
)
- @field_validator(*("text", "coding", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "coding",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/codeable_reference.py b/fhircraft/fhir/resources/datatypes/R5/complex/codeable_reference.py
index b394f404..e2df8e12 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/codeable_reference.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/codeable_reference.py
@@ -1,6 +1,6 @@
from typing import TYPE_CHECKING, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -29,26 +29,26 @@ class CodeableReference(Element):
default=None,
)
- @field_validator(
- *("reference", "concept", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "concept",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/coding.py b/fhircraft/fhir/resources/datatypes/R5/complex/coding.py
index bd585603..9253c382 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/coding.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/coding.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,28 +58,29 @@ class Coding(Element):
alias="_userSelected",
)
- @field_validator(
- *("userSelected", "display", "code", "version", "system", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "userSelected",
+ "display",
+ "code",
+ "version",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/contact_detail.py b/fhircraft/fhir/resources/datatypes/R5/complex/contact_detail.py
index 6d301fe6..63ce8e93 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/contact_detail.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/contact_detail.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,24 +26,26 @@ class ContactDetail(Element):
default=None,
)
- @field_validator(*("telecom", "name", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "telecom",
+ "name",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/contact_point.py b/fhircraft/fhir/resources/datatypes/R5/complex/contact_point.py
index 8f2c3f4f..6f58c5a6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/contact_point.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/contact_point.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -53,28 +53,29 @@ class ContactPoint(Element):
default=None,
)
- @field_validator(
- *("period", "rank", "use", "value", "system", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "rank",
+ "use",
+ "value",
+ "system",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/contributor.py b/fhircraft/fhir/resources/datatypes/R5/complex/contributor.py
index 9db541ca..65fff82a 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/contributor.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/contributor.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -35,26 +35,27 @@ class Contributor(Element):
default=None,
)
- @field_validator(
- *("contact", "name", "type", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "name",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/data_requirement.py b/fhircraft/fhir/resources/datatypes/R5/complex/data_requirement.py
index 37234b04..abbbf823 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/data_requirement.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/data_requirement.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -77,50 +77,43 @@ class DataRequirement(Element):
default=None,
)
- @field_validator(
- *(
- "sort",
- "limit",
- "valueFilter",
- "dateFilter",
- "codeFilter",
- "mustSupport",
- "profile",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sort",
+ "limit",
+ "valueFilter",
+ "dateFilter",
+ "codeFilter",
+ "mustSupport",
+ "profile",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("codeFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-1",
severity="error",
)
- @field_validator(*("dateFilter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_drq_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_drq_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dateFilter",),
expression="path.exists() xor searchParam.exists()",
human="Either a path or a searchParam must be provided, but not both",
key="drq-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/data_type.py b/fhircraft/fhir/resources/datatypes/R5/complex/data_type.py
index 07b0cb3a..b558fb55 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/data_type.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/data_type.py
@@ -1,4 +1,4 @@
-from pydantic import field_validator, model_validator
+from pydantic import model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -10,24 +10,22 @@ class DataType(Element):
Reuseable Types
"""
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/domain_resource.py b/fhircraft/fhir/resources/datatypes/R5/complex/domain_resource.py
index a684792d..78b865c1 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/domain_resource.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -29,37 +29,32 @@ class DomainResource(Resource):
default=None,
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/dosage.py b/fhircraft/fhir/resources/datatypes/R5/complex/dosage.py
index bc2ab57f..729d15a1 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/dosage.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/dosage.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -96,47 +96,42 @@ class Dosage(BackboneType):
default=None,
)
- @field_validator(
- *(
- "maxDosePerLifetime",
- "maxDosePerAdministration",
- "maxDosePerPeriod",
- "doseAndRate",
- "method",
- "route",
- "site",
- "asNeededFor",
- "asNeeded",
- "timing",
- "patientInstruction",
- "additionalInstruction",
- "text",
- "sequence",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDosePerLifetime",
+ "maxDosePerAdministration",
+ "maxDosePerPeriod",
+ "doseAndRate",
+ "method",
+ "route",
+ "site",
+ "asNeededFor",
+ "asNeeded",
+ "timing",
+ "patientInstruction",
+ "additionalInstruction",
+ "text",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/element.py b/fhircraft/fhir/resources/datatypes/R5/complex/element.py
index 9c07381b..1e3db6c2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/element.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/element.py
@@ -1,6 +1,6 @@
from typing import List, Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -30,24 +30,22 @@ class Element(Base):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/element_definition.py b/fhircraft/fhir/resources/datatypes/R5/complex/element_definition.py
index 96ace3ac..602d2860 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/element_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/element_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
from fhircraft.fhir.resources.validators import (
get_type_choice_value_by_base,
validate_element_constraint,
@@ -73,14 +73,16 @@ class ElementDefinitionSlicingDiscriminator(Element):
alias="_path",
)
- @field_validator(
- *("path", "type", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "path",
+ "type",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -125,25 +127,20 @@ class ElementDefinitionSlicing(Element):
alias="_rules",
)
- @field_validator(
- *(
- "rules",
- "ordered",
- "description",
- "discriminator",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rules",
+ "ordered",
+ "description",
+ "discriminator",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -184,16 +181,18 @@ class ElementDefinitionBase(Element):
alias="_max",
)
- @field_validator(
- *("max", "min", "path", "extension", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "path",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -252,27 +251,22 @@ class ElementDefinitionType(Element):
alias="_versioning",
)
- @field_validator(
- *(
- "versioning",
- "aggregation",
- "targetProfile",
- "profile",
- "code",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versioning",
+ "aggregation",
+ "targetProfile",
+ "profile",
+ "code",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -618,12 +612,14 @@ def value(self):
base="value",
)
- @field_validator(*("label", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "label",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -765,31 +761,26 @@ class ElementDefinitionConstraint(Element):
alias="_source",
)
- @field_validator(
- *(
- "source",
- "expression",
- "human",
- "suppress",
- "severity",
- "requirements",
- "key",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "expression",
+ "human",
+ "suppress",
+ "severity",
+ "requirements",
+ "key",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -852,29 +843,24 @@ class ElementDefinitionBindingAdditional(Element):
alias="_any",
)
- @field_validator(
- *(
- "any",
- "usage",
- "shortDoco",
- "documentation",
- "valueSet",
- "purpose",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "any",
+ "usage",
+ "shortDoco",
+ "documentation",
+ "valueSet",
+ "purpose",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -919,25 +905,20 @@ class ElementDefinitionBinding(Element):
default=None,
)
- @field_validator(
- *(
- "additional",
- "valueSet",
- "description",
- "strength",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additional",
+ "valueSet",
+ "description",
+ "strength",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -987,25 +968,20 @@ class ElementDefinitionMapping(Element):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "map",
- "language",
- "identity",
- "extension",
- "extension",
- "extension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "map",
+ "language",
+ "identity",
+ "extension",
+ "extension",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2411,194 +2387,182 @@ def maxValue(self):
base="maxValue",
)
- @field_validator(
- *(
- "mapping",
- "binding",
- "isSummary",
- "isModifierReason",
- "isModifier",
- "mustSupport",
- "valueAlternatives",
- "mustHaveValue",
- "constraint",
- "condition",
- "maxLength",
- "example",
- "orderMeaning",
- "meaningWhenMissing",
- "type",
- "contentReference",
- "base",
- "max",
- "min",
- "alias",
- "requirements",
- "comment",
- "definition",
- "short",
- "slicing",
- "code",
- "label",
- "sliceIsConstraining",
- "sliceName",
- "representation",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mapping",
+ "binding",
+ "isSummary",
+ "isModifierReason",
+ "isModifier",
+ "mustSupport",
+ "valueAlternatives",
+ "mustHaveValue",
+ "constraint",
+ "condition",
+ "maxLength",
+ "example",
+ "orderMeaning",
+ "meaningWhenMissing",
+ "type",
+ "contentReference",
+ "base",
+ "max",
+ "min",
+ "alias",
+ "requirements",
+ "comment",
+ "definition",
+ "short",
+ "slicing",
+ "code",
+ "label",
+ "sliceIsConstraining",
+ "sliceName",
+ "representation",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("max",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_3_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("max",),
expression="empty() or ($this = '*') or (toInteger() >= 0)",
human='Max SHALL be a number or "*"',
key="eld-3",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_4_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="aggregation.empty() or (code = 'Reference') or (code = 'canonical') or (code = 'CodeableReference')",
human="Aggregation may only be specified if one of the allowed types for the element is a reference",
key="eld-4",
severity="error",
)
- @field_validator(*("type",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_17_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_17_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("type",),
expression="(code='Reference' or code = 'canonical' or code = 'CodeableReference') or targetProfile.empty()",
human="targetProfile is only allowed if the type is Reference or canonical",
key="eld-17",
severity="error",
)
- @field_validator(*("constraint",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_21_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_21_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("constraint",),
expression="expression.exists()",
human="Constraints should have an expression or else validators will not be able to enforce them",
key="eld-21",
severity="warning",
)
- @field_validator(*("constraint",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_26_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_26_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("constraint",),
expression="(severity = 'error') implies suppress.empty()",
human="Errors cannot be suppressed",
key="eld-26",
severity="error",
)
- @field_validator(*("binding",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_12_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("binding",),
expression="valueSet.exists() implies (valueSet.startsWith('http:') or valueSet.startsWith('https') or valueSet.startsWith('urn:') or valueSet.startsWith('#'))",
human="ValueSet SHALL start with http:// or https:// or urn: or #",
key="eld-12",
severity="error",
)
- @field_validator(*("binding",), mode="after", check_fields=None)
- @classmethod
- def FHIR_eld_23_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_eld_23_constraint_validator(self):
return validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("binding",),
expression="description.exists() or valueSet.exists()",
human="binding SHALL have either description or valueSet",
key="eld-23",
@@ -2946,7 +2910,7 @@ def FHIR_eld_15_constraint_model_validator(self):
def FHIR_eld_16_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\\\/\\\\-_\\\\[\\\\]\\\\@]+$')",
+ expression="sliceName.empty() or sliceName.matches('^[a-zA-Z0-9\\/\\-_\\[\\]\\@]+$')",
human='sliceName must be composed of proper tokens separated by "/"',
key="eld-16",
severity="error",
@@ -2966,7 +2930,7 @@ def FHIR_eld_18_constraint_model_validator(self):
def FHIR_eld_19_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('^[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\.[^\\\\s\\\\.,:;\\\\\\'\"\\\\/|?!@#$%&*()\\\\[\\\\]{}]{1,64}(\\\\[x\\\\])?(\\\\:[^\\\\s\\\\.]+)?)*$')",
+ expression="path.matches('^[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\.[^\\s\\.,:;\\\\'\"\\/|?!@#$%&*()\\[\\]{}]{1,64}(\\[x\\])?(\\:[^\\s\\.]+)?)*$')",
human="Element path SHALL be expressed as a set of '.'-separated components with each component restricted to a maximum of 64 characters and with some limits on the allowed choice of characters",
key="eld-19",
severity="error",
@@ -2976,7 +2940,7 @@ def FHIR_eld_19_constraint_model_validator(self):
def FHIR_eld_20_constraint_model_validator(self):
return validate_model_constraint(
self,
- expression="path.matches('^[A-Za-z][A-Za-z0-9]{0,63}(\\\\.[a-z][A-Za-z0-9]{0,63}(\\\\[x])?)*$')",
+ expression="path.matches('^[A-Za-z][A-Za-z0-9]{0,63}(\\.[a-z][A-Za-z0-9]{0,63}(\\[x])?)*$')",
human="The first component of the path should be UpperCamelCase. Additional components (following a '.') should be lowerCamelCase. If this syntax is not adhered to, code generation tools may be broken. Logical models may be less concerned about this implication.",
key="eld-20",
severity="warning",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/expression.py b/fhircraft/fhir/resources/datatypes/R5/complex/expression.py
index 74ee2d17..16de0dd8 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/expression.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/expression.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Expression(DataType):
alias="_reference",
)
- @field_validator(
- *(
- "reference",
- "expression",
- "language",
- "name",
- "description",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "expression",
+ "language",
+ "name",
+ "description",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/extended_contact_detail.py b/fhircraft/fhir/resources/datatypes/R5/complex/extended_contact_detail.py
index 094067fe..e301feee 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/extended_contact_detail.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/extended_contact_detail.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -45,36 +45,30 @@ class ExtendedContactDetail(DataType):
default=None,
)
- @field_validator(
- *(
- "period",
- "organization",
- "address",
- "telecom",
- "name",
- "purpose",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "organization",
+ "address",
+ "telecom",
+ "name",
+ "purpose",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/extension.py b/fhircraft/fhir/resources/datatypes/R5/complex/extension.py
index d888008e..3fa425db 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/extension.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/extension.py
@@ -1,6 +1,6 @@
from typing import Optional, TYPE_CHECKING
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -278,24 +278,22 @@ class Extension(DataType):
default=None,
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
@@ -348,6 +346,7 @@ def value_type_choice_validator(self):
UsageContext,
Meta,
)
+
return fhir_validators.validate_type_choice_element(
self,
field_types=[
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/human_name.py b/fhircraft/fhir/resources/datatypes/R5/complex/human_name.py
index 84bc5230..7419b6bf 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/human_name.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/human_name.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -71,37 +71,31 @@ class HumanName(DataType):
default=None,
)
- @field_validator(
- *(
- "period",
- "suffix",
- "prefix",
- "given",
- "family",
- "text",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "suffix",
+ "prefix",
+ "given",
+ "family",
+ "text",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/identifier.py b/fhircraft/fhir/resources/datatypes/R5/complex/identifier.py
index 756cb108..5ff239ac 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/identifier.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/identifier.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,36 +58,30 @@ class Identifier(DataType):
default=None,
)
- @field_validator(
- *(
- "assigner",
- "period",
- "value",
- "system",
- "type",
- "use",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assigner",
+ "period",
+ "value",
+ "system",
+ "type",
+ "use",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/marketing_status.py b/fhircraft/fhir/resources/datatypes/R5/complex/marketing_status.py
index 8bcc8f70..11cd8a02 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/marketing_status.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/marketing_status.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -43,38 +43,33 @@ class MarketingStatus(BackboneType):
alias="_restoreDate",
)
- @field_validator(
- *(
- "restoreDate",
- "dateRange",
- "status",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "restoreDate",
+ "dateRange",
+ "status",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/meta.py b/fhircraft/fhir/resources/datatypes/R5/complex/meta.py
index dca810d1..db287e41 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/meta.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/meta.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -57,36 +57,30 @@ class Meta(DataType):
default=None,
)
- @field_validator(
- *(
- "tag",
- "security",
- "profile",
- "source",
- "lastUpdated",
- "versionId",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "tag",
+ "security",
+ "profile",
+ "source",
+ "lastUpdated",
+ "versionId",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/monetary_component.py b/fhircraft/fhir/resources/datatypes/R5/complex/monetary_component.py
index 46e7f285..7d2cf4a9 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/monetary_component.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/monetary_component.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -44,34 +44,28 @@ class MonetaryComponent(DataType):
default=None,
)
- @field_validator(
- *(
- "amount",
- "factor",
- "code",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "factor",
+ "code",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/money.py b/fhircraft/fhir/resources/datatypes/R5/complex/money.py
index 6dd0679c..22fc1d73 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/money.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/money.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -31,28 +31,27 @@ class Money(DataType):
alias="_currency",
)
- @field_validator(
- *("currency", "value", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "currency",
+ "value",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/narrative.py b/fhircraft/fhir/resources/datatypes/R5/complex/narrative.py
index b67dcd27..1c11dc22 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/narrative.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/narrative.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -26,50 +26,49 @@ class Narrative(DataType):
default=None,
)
- @field_validator(
- *("div", "status", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "div",
+ "status",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained style attributes",
key="txt-1",
severity="error",
)
- @field_validator(*("div",), mode="after", check_fields=None)
- @classmethod
- def FHIR_txt_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_txt_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("div",),
expression="htmlChecks()",
human="The narrative SHALL have some non-whitespace content",
key="txt-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/parameter_definition.py b/fhircraft/fhir/resources/datatypes/R5/complex/parameter_definition.py
index 23f59dd1..1a69e7c4 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/parameter_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/parameter_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -76,37 +76,31 @@ class ParameterDefinition(DataType):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "documentation",
- "max",
- "min",
- "use",
- "name",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "use",
+ "name",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/period.py b/fhircraft/fhir/resources/datatypes/R5/complex/period.py
index 24610aa5..b1a68026 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/period.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/period.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -31,26 +31,27 @@ class Period(DataType):
alias="_end",
)
- @field_validator(
- *("end", "start", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "end",
+ "start",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/primitive_type.py b/fhircraft/fhir/resources/datatypes/R5/complex/primitive_type.py
index 07ace672..bdaaf8a1 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/primitive_type.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/primitive_type.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -12,24 +12,22 @@ class PrimitiveType(DataType):
Parent type for DataTypes with a simple value
"""
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/product_shelf_life.py b/fhircraft/fhir/resources/datatypes/R5/complex/product_shelf_life.py
index 39ede172..243a0503 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/product_shelf_life.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/product_shelf_life.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -33,35 +33,30 @@ class ProductShelfLife(BackboneType):
default=None,
)
- @field_validator(
- *(
- "specialPrecautionsForStorage",
- "type",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialPrecautionsForStorage",
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/quantity.py b/fhircraft/fhir/resources/datatypes/R5/complex/quantity.py
index c5d5df5b..f3d1604e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/quantity.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/quantity.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -58,35 +58,29 @@ class Quantity(DataType):
alias="_code",
)
- @field_validator(
- *(
- "code",
- "system",
- "unit",
- "comparator",
- "value",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "system",
+ "unit",
+ "comparator",
+ "value",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/range.py b/fhircraft/fhir/resources/datatypes/R5/complex/range.py
index 0a07e924..9a47c475 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/range.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/range.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,26 +21,27 @@ class Range(DataType):
default=None,
)
- @field_validator(
- *("high", "low", "extension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "high",
+ "low",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/ratio.py b/fhircraft/fhir/resources/datatypes/R5/complex/ratio.py
index f2284a38..23417f73 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/ratio.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/ratio.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -21,28 +21,27 @@ class Ratio(DataType):
default=None,
)
- @field_validator(
- *("denominator", "numerator", "extension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "denominator",
+ "numerator",
+ "extension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/ratio_range.py b/fhircraft/fhir/resources/datatypes/R5/complex/ratio_range.py
index 2c8be923..0932537f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/ratio_range.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/ratio_range.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -25,33 +25,27 @@ class RatioRange(DataType):
default=None,
)
- @field_validator(
- *(
- "denominator",
- "highNumerator",
- "lowNumerator",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "denominator",
+ "highNumerator",
+ "lowNumerator",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/reference.py b/fhircraft/fhir/resources/datatypes/R5/complex/reference.py
index 17737246..2cd92f2e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/reference.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/reference.py
@@ -1,6 +1,6 @@
from typing import TYPE_CHECKING, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -47,34 +47,28 @@ class Reference(DataType):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "identifier",
- "type",
- "reference",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "identifier",
+ "type",
+ "reference",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/related_artifact.py b/fhircraft/fhir/resources/datatypes/R5/complex/related_artifact.py
index 560f5ff5..f83ea0ca 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/related_artifact.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/related_artifact.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -94,40 +94,34 @@ class RelatedArtifact(DataType):
alias="_publicationDate",
)
- @field_validator(
- *(
- "publicationDate",
- "publicationStatus",
- "resourceReference",
- "resource",
- "document",
- "citation",
- "display",
- "label",
- "classifier",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "publicationDate",
+ "publicationStatus",
+ "resourceReference",
+ "resource",
+ "document",
+ "citation",
+ "display",
+ "label",
+ "classifier",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/resource.py b/fhircraft/fhir/resources/datatypes/R5/complex/resource.py
index a6537a1d..3129c228 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/resource.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -44,14 +44,15 @@ class Resource(Base):
alias="_language",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/sampled_data.py b/fhircraft/fhir/resources/datatypes/R5/complex/sampled_data.py
index 4d9952e8..65144d04 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/sampled_data.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/sampled_data.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -98,40 +98,34 @@ class SampledData(DataType):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "offsets",
- "codeMap",
- "dimensions",
- "upperLimit",
- "lowerLimit",
- "factor",
- "intervalUnit",
- "interval",
- "origin",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "offsets",
+ "codeMap",
+ "dimensions",
+ "upperLimit",
+ "lowerLimit",
+ "factor",
+ "intervalUnit",
+ "interval",
+ "origin",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/signature.py b/fhircraft/fhir/resources/datatypes/R5/complex/signature.py
index 4dba8466..2bfe83b1 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/signature.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/signature.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -66,37 +66,31 @@ class Signature(DataType):
alias="_data",
)
- @field_validator(
- *(
- "data",
- "sigFormat",
- "targetFormat",
- "onBehalfOf",
- "who",
- "when",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "sigFormat",
+ "targetFormat",
+ "onBehalfOf",
+ "who",
+ "when",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/timing.py b/fhircraft/fhir/resources/datatypes/R5/complex/timing.py
index ec9385aa..38ae636d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/timing.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/timing.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -34,144 +34,130 @@ class Timing(BackboneType):
default=None,
)
- @field_validator(
- *(
- "code",
- "repeat",
- "event",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "repeat",
+ "event",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.empty() or durationUnit.exists()",
human="if there's a duration, there needs to be duration units",
key="tim-1",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.empty() or periodUnit.exists()",
human="if there's a period, there needs to be period units",
key="tim-2",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="duration.exists() implies duration >= 0",
human="duration SHALL be a non-negative value",
key="tim-4",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="period.exists() implies period >= 0",
human="period SHALL be a non-negative value",
key="tim-5",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="periodMax.empty() or period.exists()",
human="If there's a periodMax, there must be a period",
key="tim-6",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="durationMax.empty() or duration.exists()",
human="If there's a durationMax, there must be a duration",
key="tim-7",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="countMax.empty() or count.exists()",
human="If there's a countMax, there must be a count",
key="tim-8",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="offset.empty() or (when.exists() and when.select($this in ('C' | 'CM' | 'CD' | 'CV')).allFalse())",
human="If there's an offset, there must be a when (and not C, CM, CD, CV)",
key="tim-9",
severity="error",
)
- @field_validator(*("repeat",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tim_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tim_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("repeat",),
expression="timeOfDay.empty() or when.empty()",
human="If there's a timeOfDay, there cannot be a when, or vice versa",
key="tim-10",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/trigger_definition.py b/fhircraft/fhir/resources/datatypes/R5/complex/trigger_definition.py
index a2337887..171410e0 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/trigger_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/trigger_definition.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -76,36 +76,30 @@ class TriggerDefinition(DataType):
default=None,
)
- @field_validator(
- *(
- "condition",
- "data",
- "subscriptionTopic",
- "code",
- "name",
- "type",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "condition",
+ "data",
+ "subscriptionTopic",
+ "code",
+ "name",
+ "type",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/usage_context.py b/fhircraft/fhir/resources/datatypes/R5/complex/usage_context.py
index dcf50e9f..e9b30c70 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/usage_context.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/usage_context.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -40,24 +40,25 @@ class UsageContext(DataType):
default=None,
)
- @field_validator(*("code", "extension"), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/virtual_service_detail.py b/fhircraft/fhir/resources/datatypes/R5/complex/virtual_service_detail.py
index 83804bc4..1467fa61 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/virtual_service_detail.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/virtual_service_detail.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -66,34 +66,28 @@ class VirtualServiceDetail(DataType):
alias="_sessionKey",
)
- @field_validator(
- *(
- "sessionKey",
- "maxParticipants",
- "additionalInfo",
- "channelType",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sessionKey",
+ "maxParticipants",
+ "additionalInfo",
+ "channelType",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/complex/xhtml.py b/fhircraft/fhir/resources/datatypes/R5/complex/xhtml.py
index d7b17616..f90ad770 100644
--- a/fhircraft/fhir/resources/datatypes/R5/complex/xhtml.py
+++ b/fhircraft/fhir/resources/datatypes/R5/complex/xhtml.py
@@ -1,6 +1,6 @@
from typing import List, Optional
-from pydantic import Field, field_validator, model_validator
+from pydantic import Field, model_validator
import fhircraft.fhir.resources.validators as fhir_validators
from fhircraft.fhir.resources.datatypes.primitives import *
@@ -22,24 +22,22 @@ class xhtml(Element):
alias="_value",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("extension",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("extension",),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/account.py b/fhircraft/fhir/resources/datatypes/R5/core/account.py
index 2fb4b184..b4abfd86 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/account.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/account.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -64,23 +64,18 @@ class AccountCoverage(BackboneElement):
alias="_priority",
)
- @field_validator(
- *(
- "priority",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priority",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,26 +106,21 @@ class AccountGuarantor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onHold",
- "party",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onHold",
+ "party",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -183,35 +173,30 @@ class AccountDiagnosis(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "packageCode",
- "onAdmission",
- "type",
- "dateOfDiagnosis",
- "condition",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packageCode",
+ "onAdmission",
+ "type",
+ "dateOfDiagnosis",
+ "condition",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -259,35 +244,30 @@ class AccountProcedure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "device",
- "packageCode",
- "type",
- "dateOfService",
- "code",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "device",
+ "packageCode",
+ "type",
+ "dateOfService",
+ "code",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -309,23 +289,18 @@ class AccountRelatedAccount(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "account",
- "relationship",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "account",
+ "relationship",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -362,29 +337,24 @@ class AccountBalance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "estimate",
- "term",
- "aggregate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "estimate",
+ "term",
+ "aggregate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -539,78 +509,71 @@ class Account(DomainResource):
default="Account",
)
- @field_validator(
- *(
- "calculatedAt",
- "balance",
- "currency",
- "relatedAccount",
- "procedure",
- "diagnosis",
- "guarantor",
- "description",
- "owner",
- "coverage",
- "servicePeriod",
- "subject",
- "name",
- "type",
- "billingStatus",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "calculatedAt",
+ "balance",
+ "currency",
+ "relatedAccount",
+ "procedure",
+ "diagnosis",
+ "guarantor",
+ "description",
+ "owner",
+ "coverage",
+ "servicePeriod",
+ "subject",
+ "name",
+ "type",
+ "billingStatus",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("diagnosis",), mode="after", check_fields=None)
- @classmethod
- def FHIR_act_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_act_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("diagnosis",),
expression="condition.reference.empty().not() implies dateOfDiagnosis.empty()",
human="The dateOfDiagnosis is not valid when using a reference to a diagnosis",
key="act-1",
severity="error",
)
- @field_validator(*("procedure",), mode="after", check_fields=None)
- @classmethod
- def FHIR_act_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_act_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("procedure",),
expression="code.reference.empty().not() implies dateOfService.empty()",
human="The dateOfService is not valid when using a reference to a procedure",
key="act-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/activity_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/activity_definition.py
index e7ab0402..6f387b22 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/activity_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/activity_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -91,32 +91,27 @@ class ActivityDefinitionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "function",
- "role",
- "typeReference",
- "typeCanonical",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "function",
+ "role",
+ "typeReference",
+ "typeCanonical",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -143,23 +138,18 @@ class ActivityDefinitionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -634,93 +624,87 @@ def product(self):
base="product",
)
- @field_validator(
- *(
- "dynamicValue",
- "transform",
- "observationResultRequirement",
- "observationRequirement",
- "specimenRequirement",
- "bodySite",
- "dosage",
- "quantity",
- "participant",
- "location",
- "doNotPerform",
- "priority",
- "intent",
- "code",
- "profile",
- "kind",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dynamicValue",
+ "transform",
+ "observationResultRequirement",
+ "observationRequirement",
+ "specimenRequirement",
+ "bodySite",
+ "dosage",
+ "quantity",
+ "participant",
+ "location",
+ "doNotPerform",
+ "priority",
+ "intent",
+ "code",
+ "profile",
+ "kind",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/actor_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/actor_definition.py
index 20078579..9a042b39 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/actor_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/actor_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -291,70 +291,64 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "derivedFrom",
- "capabilities",
- "reference",
- "documentation",
- "type",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "derivedFrom",
+ "capabilities",
+ "reference",
+ "documentation",
+ "type",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/administrable_product_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/administrable_product_definition.py
index 9fe1d101..2bf115f3 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/administrable_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/administrable_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -108,23 +108,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "status",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "status",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,26 +169,21 @@ class AdministrableProductDefinitionRouteOfAdministrationTargetSpeciesWithdrawal
alias="_supportingInformation",
)
- @field_validator(
- *(
- "supportingInformation",
- "value",
- "tissue",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "value",
+ "tissue",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,23 +209,18 @@ class AdministrableProductDefinitionRouteOfAdministrationTargetSpecies(BackboneE
default=None,
)
- @field_validator(
- *(
- "withdrawalPeriod",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "withdrawalPeriod",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -279,38 +264,33 @@ class AdministrableProductDefinitionRouteOfAdministration(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "targetSpecies",
- "maxTreatmentPeriod",
- "maxDosePerTreatmentPeriod",
- "maxDosePerDay",
- "maxSingleDose",
- "firstDose",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "targetSpecies",
+ "maxTreatmentPeriod",
+ "maxDosePerTreatmentPeriod",
+ "maxDosePerDay",
+ "maxSingleDose",
+ "firstDose",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -435,48 +415,43 @@ class AdministrableProductDefinition(DomainResource):
default="AdministrableProductDefinition",
)
- @field_validator(
- *(
- "routeOfAdministration",
- "property_",
- "description",
- "device",
- "ingredient",
- "producedFrom",
- "unitOfPresentation",
- "administrableDoseForm",
- "formOf",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "routeOfAdministration",
+ "property_",
+ "description",
+ "device",
+ "ingredient",
+ "producedFrom",
+ "unitOfPresentation",
+ "administrableDoseForm",
+ "formOf",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/adverse_event.py b/fhircraft/fhir/resources/datatypes/R5/core/adverse_event.py
index 81c1aba7..7bc2b446 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/adverse_event.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/adverse_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class AdverseEventParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -98,26 +93,21 @@ class AdverseEventSuspectEntityCausality(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "author",
- "entityRelatedness",
- "assessmentMethod",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "entityRelatedness",
+ "assessmentMethod",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,16 +140,15 @@ def instance(self):
base="instance",
)
- @field_validator(
- *("causality", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "causality",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -500,60 +489,55 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "supportingInfo",
- "mitigatingAction",
- "preventiveAction",
- "contributingFactor",
- "suspectEntity",
- "expectedInResearchStudy",
- "study",
- "participant",
- "recorder",
- "outcome",
- "seriousness",
- "location",
- "resultingEffect",
- "recordedDate",
- "detected",
- "encounter",
- "subject",
- "code",
- "category",
- "actuality",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "supportingInfo",
+ "mitigatingAction",
+ "preventiveAction",
+ "contributingFactor",
+ "suspectEntity",
+ "expectedInResearchStudy",
+ "study",
+ "participant",
+ "recorder",
+ "outcome",
+ "seriousness",
+ "location",
+ "resultingEffect",
+ "recordedDate",
+ "detected",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "actuality",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/allergy_intolerance.py b/fhircraft/fhir/resources/datatypes/R5/core/allergy_intolerance.py
index 41c7ed84..0fd07ee6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/allergy_intolerance.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/allergy_intolerance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -52,23 +52,18 @@ class AllergyIntoleranceParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -125,38 +120,33 @@ class AllergyIntoleranceReaction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "exposureRoute",
- "severity",
- "onset",
- "description",
- "manifestation",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "exposureRoute",
+ "severity",
+ "onset",
+ "description",
+ "manifestation",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -336,51 +326,46 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "reaction",
- "note",
- "lastOccurrence",
- "participant",
- "recordedDate",
- "encounter",
- "patient",
- "code",
- "criticality",
- "category",
- "type",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reaction",
+ "note",
+ "lastOccurrence",
+ "participant",
+ "recordedDate",
+ "encounter",
+ "patient",
+ "code",
+ "criticality",
+ "category",
+ "type",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/appointment.py b/fhircraft/fhir/resources/datatypes/R5/core/appointment.py
index b52a3f36..9f6a7c62 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/appointment.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/appointment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,32 +83,27 @@ class AppointmentParticipant(BackboneElement):
alias="_status",
)
- @field_validator(
- *(
- "status",
- "required",
- "actor",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "status",
+ "required",
+ "actor",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -194,41 +189,36 @@ class AppointmentRecurrenceTemplateWeeklyTemplate(BackboneElement):
alias="_weekInterval",
)
- @field_validator(
- *(
- "weekInterval",
- "sunday",
- "saturday",
- "friday",
- "thursday",
- "wednesday",
- "tuesday",
- "monday",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "weekInterval",
+ "sunday",
+ "saturday",
+ "friday",
+ "thursday",
+ "wednesday",
+ "tuesday",
+ "monday",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -268,29 +258,24 @@ class AppointmentRecurrenceTemplateMonthlyTemplate(BackboneElement):
alias="_monthInterval",
)
- @field_validator(
- *(
- "monthInterval",
- "dayOfWeek",
- "nthWeekOfMonth",
- "dayOfMonth",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "monthInterval",
+ "dayOfWeek",
+ "nthWeekOfMonth",
+ "dayOfMonth",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -313,16 +298,15 @@ class AppointmentRecurrenceTemplateYearlyTemplate(BackboneElement):
alias="_yearInterval",
)
- @field_validator(
- *("yearInterval", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "yearInterval",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -401,47 +385,42 @@ class AppointmentRecurrenceTemplate(BackboneElement):
alias="_excludingRecurrenceId",
)
- @field_validator(
- *(
- "excludingRecurrenceId",
- "excludingDate",
- "yearlyTemplate",
- "monthlyTemplate",
- "weeklyTemplate",
- "occurrenceDate",
- "occurrenceCount",
- "lastOccurrenceDate",
- "recurrenceType",
- "timezone",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "excludingRecurrenceId",
+ "excludingDate",
+ "yearlyTemplate",
+ "monthlyTemplate",
+ "weeklyTemplate",
+ "occurrenceDate",
+ "occurrenceCount",
+ "lastOccurrenceDate",
+ "recurrenceType",
+ "timezone",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -681,81 +660,75 @@ class Appointment(DomainResource):
default="Appointment",
)
- @field_validator(
- *(
- "recurrenceTemplate",
- "occurrenceChanged",
- "recurrenceId",
- "participant",
- "subject",
- "basedOn",
- "patientInstruction",
- "note",
- "cancellationDate",
- "created",
- "account",
- "slot",
- "requestedPeriod",
- "minutesDuration",
- "end",
- "start",
- "originatingAppointment",
- "previousAppointment",
- "supportingInformation",
- "virtualService",
- "replaces",
- "description",
- "priority",
- "reason",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "class_",
- "cancellationReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recurrenceTemplate",
+ "occurrenceChanged",
+ "recurrenceId",
+ "participant",
+ "subject",
+ "basedOn",
+ "patientInstruction",
+ "note",
+ "cancellationDate",
+ "created",
+ "account",
+ "slot",
+ "requestedPeriod",
+ "minutesDuration",
+ "end",
+ "start",
+ "originatingAppointment",
+ "previousAppointment",
+ "supportingInformation",
+ "virtualService",
+ "replaces",
+ "description",
+ "priority",
+ "reason",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "class_",
+ "cancellationReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_app_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_app_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="type.exists() or actor.exists()",
human="Either the type or actor on the participant SHALL be specified",
key="app-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/appointment_response.py b/fhircraft/fhir/resources/datatypes/R5/core/appointment_response.py
index 3d57d490..e08a53c2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/appointment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/appointment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -188,49 +188,44 @@ class AppointmentResponse(DomainResource):
default="AppointmentResponse",
)
- @field_validator(
- *(
- "recurrenceId",
- "occurrenceDate",
- "recurring",
- "comment",
- "participantStatus",
- "actor",
- "participantType",
- "end",
- "start",
- "proposedNewTime",
- "appointment",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recurrenceId",
+ "occurrenceDate",
+ "recurring",
+ "comment",
+ "participantStatus",
+ "actor",
+ "participantType",
+ "end",
+ "start",
+ "proposedNewTime",
+ "appointment",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/artifact_assessment.py b/fhircraft/fhir/resources/datatypes/R5/core/artifact_assessment.py
index 9d36e2dc..9b379906 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/artifact_assessment.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/artifact_assessment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -110,29 +110,24 @@ class ArtifactAssessmentContent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "component",
- "freeToShare",
- "relatedArtifact",
- "path",
- "author",
- "quantity",
- "classifier",
- "type",
- "summary",
- "informationType",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "freeToShare",
+ "relatedArtifact",
+ "path",
+ "author",
+ "quantity",
+ "classifier",
+ "type",
+ "summary",
+ "informationType",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -319,46 +314,41 @@ def artifact(self):
base="artifact",
)
- @field_validator(
- *(
- "disposition",
- "workflowStatus",
- "content",
- "lastReviewDate",
- "approvalDate",
- "copyright",
- "date",
- "title",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "disposition",
+ "workflowStatus",
+ "content",
+ "lastReviewDate",
+ "approvalDate",
+ "copyright",
+ "date",
+ "title",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/audit_event.py b/fhircraft/fhir/resources/datatypes/R5/core/audit_event.py
index 283dbacc..491a1d9e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/audit_event.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/audit_event.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class AuditEventOutcome(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -158,38 +153,33 @@ def network(self):
base="network",
)
- @field_validator(
- *(
- "authorization",
- "policy",
- "location",
- "requestor",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorization",
+ "policy",
+ "location",
+ "requestor",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -224,26 +214,21 @@ class AuditEventSource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "observer",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "observer",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -342,14 +327,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -451,38 +437,33 @@ def network(self):
base="network",
)
- @field_validator(
- *(
- "authorization",
- "policy",
- "location",
- "requestor",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorization",
+ "policy",
+ "location",
+ "requestor",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -534,35 +515,30 @@ class AuditEventEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "agent",
- "detail",
- "query",
- "securityLabel",
- "role",
- "what",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "agent",
+ "detail",
+ "query",
+ "securityLabel",
+ "role",
+ "what",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -716,50 +692,45 @@ def occurred(self):
base="occurred",
)
- @field_validator(
- *(
- "entity",
- "source",
- "agent",
- "encounter",
- "patient",
- "basedOn",
- "authorization",
- "outcome",
- "recorded",
- "severity",
- "action",
- "code",
- "category",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entity",
+ "source",
+ "agent",
+ "encounter",
+ "patient",
+ "basedOn",
+ "authorization",
+ "outcome",
+ "recorded",
+ "severity",
+ "action",
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/basic.py b/fhircraft/fhir/resources/datatypes/R5/core/basic.py
index 113ef606..cc22566d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/basic.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/basic.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -116,42 +116,37 @@ class Basic(DomainResource):
default="Basic",
)
- @field_validator(
- *(
- "author",
- "created",
- "subject",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "created",
+ "subject",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/binary.py b/fhircraft/fhir/resources/datatypes/R5/core/binary.py
index 8d4fd1aa..4e9d9815 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/binary.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/binary.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -21,7 +21,12 @@
Base64Binary,
)
-from fhircraft.fhir.resources.datatypes.R5.complex import Meta, Reference, Resource, Element
+from fhircraft.fhir.resources.datatypes.R5.complex import (
+ Meta,
+ Reference,
+ Resource,
+ Element,
+)
class Binary(Resource):
@@ -40,7 +45,9 @@ class Binary(Resource):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Binary"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Binary"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -87,23 +94,18 @@ class Binary(Resource):
default="Binary",
)
- @field_validator(
- *(
- "data",
- "securityContext",
- "contentType",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "data",
+ "securityContext",
+ "contentType",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product.py b/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product.py
index a942d6db..15da8cbe 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,23 +80,18 @@ def collected(self):
base="collected",
)
- @field_validator(
- *(
- "source",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,14 +176,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -338,50 +334,45 @@ class BiologicallyDerivedProduct(DomainResource):
default="BiologicallyDerivedProduct",
)
- @field_validator(
- *(
- "property_",
- "storageTempRequirements",
- "collection",
- "expirationDate",
- "productStatus",
- "division",
- "processingFacility",
- "biologicalSourceEvent",
- "identifier",
- "request",
- "parent",
- "productCode",
- "productCategory",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "storageTempRequirements",
+ "collection",
+ "expirationDate",
+ "productStatus",
+ "division",
+ "processingFacility",
+ "biologicalSourceEvent",
+ "identifier",
+ "request",
+ "parent",
+ "productCode",
+ "productCategory",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product_dispense.py b/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product_dispense.py
index d1868062..8ab06d44 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product_dispense.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/biologically_derived_product_dispense.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -49,23 +49,18 @@ class BiologicallyDerivedProductDispensePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -218,53 +213,48 @@ class BiologicallyDerivedProductDispense(DomainResource):
default="BiologicallyDerivedProductDispense",
)
- @field_validator(
- *(
- "usageInstruction",
- "note",
- "destination",
- "whenHandedOver",
- "preparedDate",
- "quantity",
- "location",
- "performer",
- "matchStatus",
- "patient",
- "product",
- "originRelationshipType",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "usageInstruction",
+ "note",
+ "destination",
+ "whenHandedOver",
+ "preparedDate",
+ "quantity",
+ "location",
+ "performer",
+ "matchStatus",
+ "patient",
+ "product",
+ "originRelationshipType",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/body_structure.py b/fhircraft/fhir/resources/datatypes/R5/core/body_structure.py
index 719df12a..97c5a7dc 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/body_structure.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/body_structure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark(
default=None,
)
- @field_validator(
- *(
- "value",
- "device",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "device",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,29 +101,24 @@ class BodyStructureIncludedStructureBodyLandmarkOrientation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "surfaceOrientation",
- "distanceFromLandmark",
- "clockFacePosition",
- "landmarkDescription",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "surfaceOrientation",
+ "distanceFromLandmark",
+ "clockFacePosition",
+ "landmarkDescription",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,32 +154,27 @@ class BodyStructureIncludedStructure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualifier",
- "spatialReference",
- "bodyLandmarkOrientation",
- "laterality",
- "structure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualifier",
+ "spatialReference",
+ "bodyLandmarkOrientation",
+ "laterality",
+ "structure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,23 +198,18 @@ class BodyStructureIncludedStructureBodyLandmarkOrientationDistanceFromLandmark(
default=None,
)
- @field_validator(
- *(
- "value",
- "device",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "device",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -261,29 +241,24 @@ class BodyStructureIncludedStructureBodyLandmarkOrientation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "surfaceOrientation",
- "distanceFromLandmark",
- "clockFacePosition",
- "landmarkDescription",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "surfaceOrientation",
+ "distanceFromLandmark",
+ "clockFacePosition",
+ "landmarkDescription",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -319,32 +294,27 @@ class BodyStructureExcludedStructure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "qualifier",
- "spatialReference",
- "bodyLandmarkOrientation",
- "laterality",
- "structure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualifier",
+ "spatialReference",
+ "bodyLandmarkOrientation",
+ "laterality",
+ "structure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -453,45 +423,40 @@ class BodyStructure(DomainResource):
default="BodyStructure",
)
- @field_validator(
- *(
- "patient",
- "image",
- "description",
- "excludedStructure",
- "includedStructure",
- "morphology",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patient",
+ "image",
+ "description",
+ "excludedStructure",
+ "includedStructure",
+ "morphology",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/bundle.py b/fhircraft/fhir/resources/datatypes/R5/core/bundle.py
index 18842bfe..38f30dc8 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/bundle.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/bundle.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -63,23 +63,18 @@ class BundleLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -111,23 +106,18 @@ class BundleEntryLink(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -159,23 +149,18 @@ class BundleEntrySearch(BackboneElement):
alias="_score",
)
- @field_validator(
- *(
- "score",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "score",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -243,35 +228,30 @@ class BundleEntryRequest(BackboneElement):
alias="_ifNoneExist",
)
- @field_validator(
- *(
- "ifNoneExist",
- "ifMatch",
- "ifModifiedSince",
- "ifNoneMatch",
- "url",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ifNoneExist",
+ "ifMatch",
+ "ifModifiedSince",
+ "ifNoneMatch",
+ "url",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,29 +305,24 @@ class BundleEntryResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "lastModified",
- "etag",
- "location",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lastModified",
+ "etag",
+ "location",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,32 +365,27 @@ class BundleEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "search",
- "fullUrl",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "search",
+ "fullUrl",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -513,51 +483,44 @@ class Bundle(Resource):
default="Bundle",
)
- @field_validator(
- *(
- "signature",
- "entry",
- "link",
- "total",
- "timestamp",
- "type",
- "identifier",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entry",
+ "link",
+ "total",
+ "timestamp",
+ "type",
+ "identifier",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="resource.exists() or request.exists() or response.exists()",
human="must be a resource unless there's a request or response",
key="bdl-5",
severity="error",
)
- @field_validator(*("entry",), mode="after", check_fields=None)
- @classmethod
- def FHIR_bdl_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_bdl_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("entry",),
expression="fullUrl.exists() implies fullUrl.contains('/_history/').not()",
human="fullUrl cannot be a version specific reference",
key="bdl-8",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/canonical_resource.py b/fhircraft/fhir/resources/datatypes/R5/core/canonical_resource.py
index bd0e95f4..9a8239fd 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/canonical_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/canonical_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -243,65 +243,59 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/capability_statement.py b/fhircraft/fhir/resources/datatypes/R5/core/capability_statement.py
index ffb236e0..170ea474 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/capability_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/capability_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,26 +79,21 @@ class CapabilityStatementSoftware(BackboneElement):
alias="_releaseDate",
)
- @field_validator(
- *(
- "releaseDate",
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "releaseDate",
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -134,26 +129,21 @@ class CapabilityStatementImplementation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "custodian",
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "custodian",
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -189,26 +179,21 @@ class CapabilityStatementRestSecurity(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "service",
- "cors",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "service",
+ "cors",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -240,23 +225,18 @@ class CapabilityStatementRestResourceInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -306,29 +286,24 @@ class CapabilityStatementRestResourceSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -369,26 +344,21 @@ class CapabilityStatementRestResourceOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -549,71 +519,66 @@ class CapabilityStatementRestResource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "operation",
- "searchParam",
- "searchRevInclude",
- "searchInclude",
- "referencePolicy",
- "conditionalDelete",
- "conditionalPatch",
- "conditionalUpdate",
- "conditionalRead",
- "conditionalCreate",
- "updateCreate",
- "readHistory",
- "versioning",
- "interaction",
- "documentation",
- "supportedProfile",
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "searchParam",
+ "searchRevInclude",
+ "searchInclude",
+ "referencePolicy",
+ "conditionalDelete",
+ "conditionalPatch",
+ "conditionalUpdate",
+ "conditionalRead",
+ "conditionalCreate",
+ "updateCreate",
+ "readHistory",
+ "versioning",
+ "interaction",
+ "documentation",
+ "supportedProfile",
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -645,23 +610,18 @@ class CapabilityStatementRestInteraction(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -711,29 +671,24 @@ class CapabilityStatementRestSearchParam(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "type",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "type",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -774,26 +729,21 @@ class CapabilityStatementRestOperation(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "definition",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "definition",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -854,53 +804,47 @@ class CapabilityStatementRest(BackboneElement):
alias="_compartment",
)
- @field_validator(
- *(
- "compartment",
- "operation",
- "searchParam",
- "interaction",
- "resource",
- "security",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "compartment",
+ "operation",
+ "searchParam",
+ "interaction",
+ "resource",
+ "security",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("resource",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("resource",),
expression="searchParam.select(name).isDistinct()",
human="Search parameter names must be unique in the context of a resource.",
key="cpb-12",
@@ -927,23 +871,18 @@ class CapabilityStatementMessagingEndpoint(BackboneElement):
alias="_address",
)
- @field_validator(
- *(
- "address",
- "protocol",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "address",
+ "protocol",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -975,23 +914,18 @@ class CapabilityStatementMessagingSupportedMessage(BackboneElement):
alias="_definition",
)
- @field_validator(
- *(
- "definition",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1033,29 +967,24 @@ class CapabilityStatementMessaging(BackboneElement):
)
)
- @field_validator(
- *(
- "supportedMessage",
- "documentation",
- "reliableCache",
- "endpoint",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportedMessage",
+ "documentation",
+ "reliableCache",
+ "endpoint",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1096,26 +1025,21 @@ class CapabilityStatementDocument(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "documentation",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "documentation",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1418,90 +1342,83 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "document",
- "messaging",
- "rest",
- "implementationGuide",
- "acceptLanguage",
- "patchFormat",
- "format",
- "fhirVersion",
- "implementation",
- "software",
- "imports",
- "instantiates",
- "kind",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "document",
+ "messaging",
+ "rest",
+ "implementationGuide",
+ "acceptLanguage",
+ "patchFormat",
+ "format",
+ "fhirVersion",
+ "implementation",
+ "software",
+ "imports",
+ "instantiates",
+ "kind",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("rest",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cpb_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cpb_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("rest",),
expression="resource.select(type).isDistinct()",
human="A given resource can only be described once per RESTful mode.",
key="cpb-9",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/care_plan.py b/fhircraft/fhir/resources/datatypes/R5/core/care_plan.py
index 876ec0f9..492d1164 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/care_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/care_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,26 +60,21 @@ class CarePlanActivity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "plannedActivityReference",
- "progress",
- "performedActivity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "plannedActivityReference",
+ "progress",
+ "performedActivity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -273,60 +268,55 @@ class CarePlan(DomainResource):
default="CarePlan",
)
- @field_validator(
- *(
- "note",
- "activity",
- "goal",
- "supportingInfo",
- "addresses",
- "careTeam",
- "contributor",
- "custodian",
- "created",
- "period",
- "encounter",
- "subject",
- "description",
- "title",
- "category",
- "intent",
- "status",
- "partOf",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "activity",
+ "goal",
+ "supportingInfo",
+ "addresses",
+ "careTeam",
+ "contributor",
+ "custodian",
+ "created",
+ "period",
+ "encounter",
+ "subject",
+ "description",
+ "title",
+ "category",
+ "intent",
+ "status",
+ "partOf",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/care_team.py b/fhircraft/fhir/resources/datatypes/R5/core/care_team.py
index 458610a3..35df47f5 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/care_team.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/care_team.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -71,26 +71,21 @@ def coverage(self):
base="coverage",
)
- @field_validator(
- *(
- "onBehalfOf",
- "member",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "member",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -220,72 +215,65 @@ class CareTeam(DomainResource):
default="CareTeam",
)
- @field_validator(
- *(
- "note",
- "telecom",
- "managingOrganization",
- "reason",
- "participant",
- "period",
- "subject",
- "name",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "telecom",
+ "managingOrganization",
+ "reason",
+ "participant",
+ "period",
+ "subject",
+ "name",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ctm_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ctm_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="onBehalfOf.exists() implies (member.resolve() is Practitioner)",
human="CareTeam.participant.onBehalfOf can only be populated when CareTeam.participant.member is a Practitioner",
key="ctm-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ctm_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ctm_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="role.exists() or member.exists()",
human="CareTeam.participant.role or CareTeam.participant.member exists",
key="ctm-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/charge_item.py b/fhircraft/fhir/resources/datatypes/R5/core/charge_item.py
index 1daee864..45c2ee10 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/charge_item.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/charge_item.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class ChargeItemPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -286,62 +281,57 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "supportingInformation",
- "note",
- "account",
- "product",
- "service",
- "reason",
- "enteredDate",
- "enterer",
- "overrideReason",
- "totalPriceComponent",
- "unitPriceComponent",
- "bodysite",
- "quantity",
- "costCenter",
- "requestingOrganization",
- "performingOrganization",
- "performer",
- "encounter",
- "subject",
- "code",
- "partOf",
- "status",
- "definitionCanonical",
- "definitionUri",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInformation",
+ "note",
+ "account",
+ "product",
+ "service",
+ "reason",
+ "enteredDate",
+ "enterer",
+ "overrideReason",
+ "totalPriceComponent",
+ "unitPriceComponent",
+ "bodysite",
+ "quantity",
+ "costCenter",
+ "requestingOrganization",
+ "performingOrganization",
+ "performer",
+ "encounter",
+ "subject",
+ "code",
+ "partOf",
+ "status",
+ "definitionCanonical",
+ "definitionUri",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/charge_item_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/charge_item_definition.py
index a4e8c2ab..09b61757 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/charge_item_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/charge_item_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class ChargeItemDefinitionApplicability(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "relatedArtifact",
- "effectivePeriod",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedArtifact",
+ "effectivePeriod",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -112,26 +107,21 @@ class ChargeItemDefinitionPropertyGroupApplicability(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "relatedArtifact",
- "effectivePeriod",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedArtifact",
+ "effectivePeriod",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -155,23 +145,18 @@ class ChargeItemDefinitionPropertyGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "priceComponent",
- "applicability",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "applicability",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -443,74 +428,68 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "propertyGroup",
- "applicability",
- "instance",
- "code",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "partOf",
- "derivedFromUri",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "propertyGroup",
+ "applicability",
+ "instance",
+ "code",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "partOf",
+ "derivedFromUri",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/citation.py b/fhircraft/fhir/resources/datatypes/R5/core/citation.py
index 953ba9a0..2e1feaf4 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/citation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/citation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -69,23 +69,18 @@ class CitationSummary(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "style",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "style",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,23 +102,18 @@ class CitationClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "classifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "classifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,26 +144,21 @@ class CitationStatusDate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "actual",
- "activity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "actual",
+ "activity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -200,23 +185,18 @@ class CitationCitedArtifactVersion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "baseCitation",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "baseCitation",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -247,26 +227,21 @@ class CitationCitedArtifactStatusDate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "actual",
- "activity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "actual",
+ "activity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -297,26 +272,21 @@ class CitationCitedArtifactTitle(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "language",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "language",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -356,29 +326,24 @@ class CitationCitedArtifactAbstract(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "text",
- "language",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "text",
+ "language",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -409,26 +374,21 @@ class CitationCitedArtifactPart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "baseCitation",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "baseCitation",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -499,41 +459,36 @@ class CitationCitedArtifactRelatesTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resourceReference",
- "resource",
- "document",
- "citation",
- "display",
- "label",
- "classifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resourceReference",
+ "resource",
+ "document",
+ "citation",
+ "display",
+ "label",
+ "classifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -577,32 +532,27 @@ class CitationCitedArtifactPublicationFormPublishedIn(BackboneElement):
alias="_publisherLocation",
)
- @field_validator(
- *(
- "publisherLocation",
- "publisher",
- "title",
- "identifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "publisherLocation",
+ "publisher",
+ "title",
+ "identifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -736,62 +686,57 @@ class CitationCitedArtifactPublicationForm(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "pageCount",
- "lastPage",
- "firstPage",
- "pageString",
- "accessionNumber",
- "language",
- "lastRevisionDate",
- "publicationDateSeason",
- "publicationDateText",
- "articleDate",
- "issue",
- "volume",
- "citedMedium",
- "publishedIn",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "pageCount",
+ "lastPage",
+ "firstPage",
+ "pageString",
+ "accessionNumber",
+ "language",
+ "lastRevisionDate",
+ "publicationDateSeason",
+ "publicationDateText",
+ "articleDate",
+ "issue",
+ "volume",
+ "citedMedium",
+ "publishedIn",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -818,23 +763,18 @@ class CitationCitedArtifactWebLocation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "classifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "classifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -860,26 +800,21 @@ class CitationCitedArtifactClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "artifactAssessment",
- "classifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "artifactAssessment",
+ "classifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -906,23 +841,18 @@ class CitationCitedArtifactContributorshipEntryContributionInstance(BackboneElem
alias="_time",
)
- @field_validator(
- *(
- "time",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "time",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -985,41 +915,36 @@ class CitationCitedArtifactContributorshipEntry(BackboneElement):
alias="_rankingOrder",
)
- @field_validator(
- *(
- "rankingOrder",
- "correspondingContact",
- "contributionInstance",
- "role",
- "contributionType",
- "affiliation",
- "forenameInitials",
- "contributor",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rankingOrder",
+ "correspondingContact",
+ "contributionInstance",
+ "role",
+ "contributionType",
+ "affiliation",
+ "forenameInitials",
+ "contributor",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1054,29 +979,24 @@ class CitationCitedArtifactContributorshipSummary(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "source",
- "style",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "source",
+ "style",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1107,26 +1027,21 @@ class CitationCitedArtifactContributorship(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "summary",
- "entry",
- "complete",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "summary",
+ "entry",
+ "complete",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1205,62 +1120,57 @@ class CitationCitedArtifact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "contributorship",
- "classification",
- "webLocation",
- "publicationForm",
- "relatesTo",
- "part",
- "abstract",
- "title",
- "statusDate",
- "currentState",
- "version",
- "dateAccessed",
- "relatedIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributorship",
+ "classification",
+ "webLocation",
+ "publicationForm",
+ "relatesTo",
+ "part",
+ "abstract",
+ "title",
+ "statusDate",
+ "currentState",
+ "version",
+ "dateAccessed",
+ "relatedIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1537,79 +1447,73 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "citedArtifact",
- "relatedArtifact",
- "statusDate",
- "currentState",
- "note",
- "classification",
- "summary",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "citedArtifact",
+ "relatedArtifact",
+ "statusDate",
+ "currentState",
+ "note",
+ "classification",
+ "summary",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/claim.py b/fhircraft/fhir/resources/datatypes/R5/core/claim.py
index 712588dd..e5add674 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/claim.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/claim.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,26 +66,21 @@ class ClaimRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,23 +102,18 @@ class ClaimPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,14 +151,15 @@ def when(self):
base="when",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -221,32 +212,27 @@ class ClaimCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specialty",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialty",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -342,29 +328,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -428,26 +409,21 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -511,29 +487,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -604,38 +575,33 @@ class ClaimInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "preAuthRef",
- "businessArrangement",
- "coverage",
- "identifier",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "preAuthRef",
+ "businessArrangement",
+ "coverage",
+ "identifier",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -677,23 +643,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -724,23 +685,18 @@ class ClaimItemBodySite(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subSite",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subSite",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -824,62 +780,57 @@ class ClaimItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "traceNumber",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "traceNumber",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -967,65 +918,60 @@ class ClaimItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "traceNumber",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "traceNumber",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1200,86 +1146,81 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "encounter",
- "bodySite",
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "request",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "traceNumber",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "encounter",
+ "bodySite",
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "request",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "traceNumber",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1507,69 +1448,64 @@ class Claim(DomainResource):
default="Claim",
)
- @field_validator(
- *(
- "total",
- "item",
- "patientPaid",
- "accident",
- "insurance",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "event",
- "diagnosisRelatedGroup",
- "facility",
- "encounter",
- "referral",
- "payee",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "traceNumber",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "total",
+ "item",
+ "patientPaid",
+ "accident",
+ "insurance",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "event",
+ "diagnosisRelatedGroup",
+ "facility",
+ "encounter",
+ "referral",
+ "payee",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "traceNumber",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/claim_response.py b/fhircraft/fhir/resources/datatypes/R5/core/claim_response.py
index 2fb80c1d..66ec2551 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/claim_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/claim_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -78,14 +78,15 @@ def when(self):
base="when",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -129,29 +130,24 @@ class ClaimResponseItemReviewOutcome(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "preAuthPeriod",
- "preAuthRef",
- "reason",
- "decision",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthPeriod",
+ "preAuthRef",
+ "reason",
+ "decision",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,29 +177,24 @@ class ClaimResponseItemAdjudication(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -238,29 +229,24 @@ class ClaimResponseItemDetailReviewOutcome(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "preAuthPeriod",
- "preAuthRef",
- "reason",
- "decision",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthPeriod",
+ "preAuthRef",
+ "reason",
+ "decision",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -290,29 +276,24 @@ class ClaimResponseItemDetailAdjudication(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -356,32 +337,27 @@ class ClaimResponseItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "traceNumber",
- "subDetailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "traceNumber",
+ "subDetailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -429,35 +405,30 @@ class ClaimResponseItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "traceNumber",
- "detailSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "traceNumber",
+ "detailSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -505,35 +476,30 @@ class ClaimResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "traceNumber",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "traceNumber",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -555,23 +521,18 @@ class ClaimResponseAddItemBodySite(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subSite",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subSite",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -647,56 +608,51 @@ class ClaimResponseAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "traceNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "traceNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -776,59 +732,54 @@ class ClaimResponseAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "traceNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "traceNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -990,80 +941,75 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "bodySite",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "programCode",
- "modifier",
- "request",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "provider",
- "traceNumber",
- "subdetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "bodySite",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "programCode",
+ "modifier",
+ "request",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "provider",
+ "traceNumber",
+ "subdetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1103,23 +1049,18 @@ class ClaimResponseTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1162,35 +1103,30 @@ class ClaimResponsePayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1230,29 +1166,24 @@ class ClaimResponseProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1301,32 +1232,27 @@ class ClaimResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "claimResponse",
- "businessArrangement",
- "coverage",
- "focal",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "claimResponse",
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1380,32 +1306,27 @@ class ClaimResponseError(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "code",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "code",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1630,69 +1551,64 @@ class ClaimResponse(DomainResource):
default="ClaimResponse",
)
- @field_validator(
- *(
- "error",
- "insurance",
- "communicationRequest",
- "processNote",
- "form",
- "formCode",
- "fundsReserve",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "diagnosisRelatedGroup",
- "encounter",
- "payeeType",
- "event",
- "preAuthPeriod",
- "preAuthRef",
- "disposition",
- "decision",
- "outcome",
- "request",
- "requestor",
- "insurer",
- "created",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "traceNumber",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "insurance",
+ "communicationRequest",
+ "processNote",
+ "form",
+ "formCode",
+ "fundsReserve",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "diagnosisRelatedGroup",
+ "encounter",
+ "payeeType",
+ "event",
+ "preAuthPeriod",
+ "preAuthRef",
+ "disposition",
+ "decision",
+ "outcome",
+ "request",
+ "requestor",
+ "insurer",
+ "created",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "traceNumber",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/clinical_impression.py b/fhircraft/fhir/resources/datatypes/R5/core/clinical_impression.py
index c50f4e68..a264fe23 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/clinical_impression.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/clinical_impression.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class ClinicalImpressionFinding(BackboneElement):
alias="_basis",
)
- @field_validator(
- *(
- "basis",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "basis",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -255,55 +250,50 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "note",
- "supportingInfo",
- "prognosisReference",
- "prognosisCodeableConcept",
- "finding",
- "summary",
- "protocol",
- "changePattern",
- "problem",
- "previous",
- "performer",
- "date",
- "encounter",
- "subject",
- "description",
- "statusReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "supportingInfo",
+ "prognosisReference",
+ "prognosisCodeableConcept",
+ "finding",
+ "summary",
+ "protocol",
+ "changePattern",
+ "problem",
+ "previous",
+ "performer",
+ "date",
+ "encounter",
+ "subject",
+ "description",
+ "statusReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/clinical_use_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/clinical_use_definition.py
index e561e3fb..748fd37b 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/clinical_use_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/clinical_use_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class ClinicalUseDefinitionContraindicationOtherTherapy(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "treatment",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "treatment",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -112,35 +107,30 @@ class ClinicalUseDefinitionContraindication(BackboneElement):
)
)
- @field_validator(
- *(
- "otherTherapy",
- "applicability",
- "indication",
- "comorbidity",
- "diseaseStatus",
- "diseaseSymptomProcedure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherTherapy",
+ "applicability",
+ "indication",
+ "comorbidity",
+ "diseaseStatus",
+ "diseaseSymptomProcedure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,23 +152,18 @@ class ClinicalUseDefinitionIndicationOtherTherapy(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "treatment",
- "relationshipType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "treatment",
+ "relationshipType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -240,38 +225,33 @@ def duration(self):
base="duration",
)
- @field_validator(
- *(
- "otherTherapy",
- "applicability",
- "undesirableEffect",
- "intendedEffect",
- "comorbidity",
- "diseaseStatus",
- "diseaseSymptomProcedure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherTherapy",
+ "applicability",
+ "undesirableEffect",
+ "intendedEffect",
+ "comorbidity",
+ "diseaseStatus",
+ "diseaseSymptomProcedure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -345,32 +325,27 @@ class ClinicalUseDefinitionInteraction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "management",
- "incidence",
- "effect",
- "type",
- "interactant",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "management",
+ "incidence",
+ "effect",
+ "type",
+ "interactant",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -396,26 +371,21 @@ class ClinicalUseDefinitionUndesirableEffect(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "frequencyOfOccurrence",
- "classification",
- "symptomConditionEffect",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "frequencyOfOccurrence",
+ "classification",
+ "symptomConditionEffect",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -442,23 +412,18 @@ class ClinicalUseDefinitionWarning(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -583,49 +548,44 @@ class ClinicalUseDefinition(DomainResource):
default="ClinicalUseDefinition",
)
- @field_validator(
- *(
- "warning",
- "undesirableEffect",
- "library",
- "population",
- "interaction",
- "indication",
- "contraindication",
- "status",
- "subject",
- "category",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "warning",
+ "undesirableEffect",
+ "library",
+ "population",
+ "interaction",
+ "indication",
+ "contraindication",
+ "status",
+ "subject",
+ "category",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/code_system.py b/fhircraft/fhir/resources/datatypes/R5/core/code_system.py
index caf2eb9b..2286ea96 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/code_system.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/code_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -91,29 +91,24 @@ class CodeSystemFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "operator",
- "description",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "operator",
+ "description",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -163,29 +158,24 @@ class CodeSystemProperty(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "description",
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "description",
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -225,29 +215,24 @@ class CodeSystemConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "additionalUse",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "additionalUse",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -335,14 +320,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -404,47 +390,41 @@ class CodeSystemConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "concept",
- "property_",
- "designation",
- "definition",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "designation",
+ "definition",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("designation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_csd_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_csd_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("designation",),
expression="additionalUse.exists() implies use.exists()",
human="Must have a value for concept.designation.use if concept.designation.additionalUse is present",
key="csd-5",
@@ -785,85 +765,79 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "concept",
- "property_",
- "filter",
- "count",
- "supplements",
- "content",
- "versionNeeded",
- "compositional",
- "hierarchyMeaning",
- "valueSet",
- "caseSensitive",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "concept",
+ "property_",
+ "filter",
+ "count",
+ "supplements",
+ "content",
+ "versionNeeded",
+ "compositional",
+ "hierarchyMeaning",
+ "valueSet",
+ "caseSensitive",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/communication.py b/fhircraft/fhir/resources/datatypes/R5/core/communication.py
index c383027d..8208a667 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/communication.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/communication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -254,59 +254,54 @@ class Communication(DomainResource):
default="Communication",
)
- @field_validator(
- *(
- "note",
- "payload",
- "reason",
- "sender",
- "recipient",
- "received",
- "sent",
- "encounter",
- "about",
- "topic",
- "subject",
- "medium",
- "priority",
- "category",
- "statusReason",
- "status",
- "inResponseTo",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "payload",
+ "reason",
+ "sender",
+ "recipient",
+ "received",
+ "sent",
+ "encounter",
+ "about",
+ "topic",
+ "subject",
+ "medium",
+ "priority",
+ "category",
+ "statusReason",
+ "status",
+ "inResponseTo",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/communication_request.py b/fhircraft/fhir/resources/datatypes/R5/core/communication_request.py
index 17ca2a88..cd1c3fa2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/communication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/communication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -266,58 +266,53 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "reason",
- "informationProvider",
- "recipient",
- "requester",
- "authoredOn",
- "payload",
- "encounter",
- "about",
- "subject",
- "medium",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "statusReason",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "reason",
+ "informationProvider",
+ "recipient",
+ "requester",
+ "authoredOn",
+ "payload",
+ "encounter",
+ "about",
+ "subject",
+ "medium",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "statusReason",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/compartment_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/compartment_definition.py
index 22dd9607..400b89de 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/compartment_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/compartment_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -91,32 +91,27 @@ class CompartmentDefinitionResource(BackboneElement):
alias="_endParam",
)
- @field_validator(
- *(
- "endParam",
- "startParam",
- "documentation",
- "param",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endParam",
+ "startParam",
+ "documentation",
+ "param",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -323,64 +318,58 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "resource",
- "search",
- "code",
- "purpose",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "search",
+ "code",
+ "purpose",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/composition.py b/fhircraft/fhir/resources/datatypes/R5/core/composition.py
index cbbad65a..ebd88afb 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/composition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/composition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,26 +61,21 @@ class CompositionAttester(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "time",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "time",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -102,23 +97,18 @@ class CompositionEvent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "period",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "period",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -173,44 +163,39 @@ class CompositionSection(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "section",
- "emptyReason",
- "entry",
- "orderedBy",
- "text",
- "focus",
- "author",
- "code",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "emptyReason",
+ "entry",
+ "orderedBy",
+ "text",
+ "focus",
+ "author",
+ "code",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -383,80 +368,73 @@ class Composition(DomainResource):
default="Composition",
)
- @field_validator(
- *(
- "section",
- "event",
- "relatesTo",
- "custodian",
- "attester",
- "note",
- "title",
- "name",
- "author",
- "useContext",
- "date",
- "encounter",
- "subject",
- "category",
- "type",
- "status",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "event",
+ "relatesTo",
+ "custodian",
+ "attester",
+ "note",
+ "title",
+ "name",
+ "author",
+ "useContext",
+ "date",
+ "encounter",
+ "subject",
+ "category",
+ "type",
+ "status",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="text.exists() or entry.exists() or section.exists()",
human="A section must contain at least one of text, entries, or sub-sections",
key="cmp-1",
severity="error",
)
- @field_validator(*("section",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmp_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmp_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("section",),
expression="emptyReason.empty() or entry.empty()",
human="A section can only have an emptyReason if it is empty",
key="cmp-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/concept_map.py b/fhircraft/fhir/resources/datatypes/R5/core/concept_map.py
index d4c70959..51443673 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/concept_map.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/concept_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -100,32 +100,27 @@ class ConceptMapProperty(BackboneElement):
alias="_system",
)
- @field_validator(
- *(
- "system",
- "type",
- "description",
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "system",
+ "type",
+ "description",
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,29 +170,24 @@ class ConceptMapAdditionalAttribute(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "description",
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "description",
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,14 +275,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,23 +366,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "valueSet",
- "attribute",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "attribute",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -474,23 +460,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "valueSet",
- "attribute",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "attribute",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -570,53 +551,47 @@ class ConceptMapGroupElementTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "product",
- "dependsOn",
- "property_",
- "comment",
- "relationship",
- "valueSet",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "product",
+ "dependsOn",
+ "property_",
+ "comment",
+ "relationship",
+ "valueSet",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("dependsOn",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dependsOn",),
expression="(value.exists() and valueSet.empty()) or (value.empty() and valueSet.exists())",
human="One of value[x] or valueSet must exist, but not both.",
key="cmd-6",
@@ -670,56 +645,49 @@ class ConceptMapGroupElement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "noMap",
- "valueSet",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "noMap",
+ "valueSet",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="comment.exists() or (%resource.status = 'draft') or relationship.empty() or ((relationship != 'source-is-broader-than-target') and (relationship != 'not-related-to'))",
human="If the map is source-is-broader-than-target or not-related-to, there SHALL be some comments, unless the status is 'draft'",
key="cmd-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="(code.exists() and valueSet.empty()) or (code.empty() and valueSet.exists())",
human="Either code or valueSet SHALL be present but not both.",
key="cmd-7",
@@ -787,35 +755,30 @@ class ConceptMapGroupUnmapped(BackboneElement):
alias="_otherMap",
)
- @field_validator(
- *(
- "otherMap",
- "relationship",
- "valueSet",
- "display",
- "code",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "otherMap",
+ "relationship",
+ "valueSet",
+ "display",
+ "code",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -855,113 +818,101 @@ class ConceptMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "unmapped",
- "element",
- "target",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "unmapped",
+ "element",
+ "target",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="(noMap.exists() and noMap=true) implies target.empty()",
human="If noMap is present, target SHALL NOT be present",
key="cmd-4",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="(code.exists() and valueSet.empty()) or (code.empty() and valueSet.exists())",
human="Either code or valueSet SHALL be present but not both.",
key="cmd-5",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'fixed') implies ((code.exists() and valueSet.empty()) or (code.empty() and valueSet.exists()))",
human="If the mode is 'fixed', either a code or valueSet must be provided, but not both.",
key="cmd-2",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode = 'other-map') implies otherMap.exists()",
human="If the mode is 'other-map', a url for the other map must be provided",
key="cmd-3",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode != 'fixed') implies (code.empty() and display.empty() and valueSet.empty())",
human="If the mode is not 'fixed', code, display and valueSet are not allowed",
key="cmd-8",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode != 'other-map') implies relationship.exists()",
human="If the mode is not 'other-map', relationship must be provided",
key="cmd-9",
severity="error",
)
- @field_validator(*("unmapped",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("unmapped",),
expression="(mode != 'other-map') implies otherMap.empty()",
human="If the mode is not 'other-map', otherMap is not allowed",
key="cmd-10",
@@ -1280,89 +1231,82 @@ def targetScope(self):
base="targetScope",
)
- @field_validator(
- *(
- "group",
- "additionalAttribute",
- "property_",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "additionalAttribute",
+ "property_",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("property_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cmd_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cmd_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("property_",),
expression="type = 'code' implies system.exists()",
human="If the property type is code, a system SHALL be specified",
key="cmd-11",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/condition.py b/fhircraft/fhir/resources/datatypes/R5/core/condition.py
index 2b4499ae..9b3f3b98 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/condition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/condition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -52,23 +52,18 @@ class ConditionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -94,26 +89,21 @@ class ConditionStage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "assessment",
- "summary",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "assessment",
+ "summary",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -315,63 +305,57 @@ def abatement(self):
base="abatement",
)
- @field_validator(
- *(
- "note",
- "evidence",
- "stage",
- "participant",
- "recordedDate",
- "encounter",
- "subject",
- "bodySite",
- "code",
- "severity",
- "category",
- "verificationStatus",
- "clinicalStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "evidence",
+ "stage",
+ "participant",
+ "recordedDate",
+ "encounter",
+ "subject",
+ "bodySite",
+ "code",
+ "severity",
+ "category",
+ "verificationStatus",
+ "clinicalStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("stage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_con_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_con_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("stage",),
expression="summary.exists() or assessment.exists()",
human="Stage SHALL have summary or assessment",
key="con-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/condition_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/condition_definition.py
index e5c94fa3..d8d75b90 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/condition_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/condition_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class ConditionDefinitionObservation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class ConditionDefinitionMedication(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,23 +144,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "code",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,23 +191,18 @@ class ConditionDefinitionQuestionnaire(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "purpose",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "purpose",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -244,23 +224,18 @@ class ConditionDefinitionPlan(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -529,77 +504,71 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "plan",
- "questionnaire",
- "team",
- "precondition",
- "medication",
- "observation",
- "definition",
- "hasStage",
- "hasBodySite",
- "hasSeverity",
- "stage",
- "bodySite",
- "severity",
- "code",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "plan",
+ "questionnaire",
+ "team",
+ "precondition",
+ "medication",
+ "observation",
+ "definition",
+ "hasStage",
+ "hasBodySite",
+ "hasSeverity",
+ "stage",
+ "bodySite",
+ "severity",
+ "code",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/consent.py b/fhircraft/fhir/resources/datatypes/R5/core/consent.py
index f55d6351..bf6a8d8a 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/consent.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/consent.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -64,23 +64,18 @@ class ConsentPolicyBasis(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -124,32 +119,27 @@ class ConsentVerification(BackboneElement):
alias="_verificationDate",
)
- @field_validator(
- *(
- "verificationDate",
- "verifiedWith",
- "verifiedBy",
- "verificationType",
- "verified",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "verificationDate",
+ "verifiedWith",
+ "verifiedBy",
+ "verificationType",
+ "verified",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -171,23 +161,18 @@ class ConsentProvisionActor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -214,23 +199,18 @@ class ConsentProvisionData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "meaning",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "meaning",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -292,53 +272,48 @@ class ConsentProvision(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "provision",
- "expression",
- "data",
- "dataPeriod",
- "code",
- "resourceType",
- "documentType",
- "purpose",
- "securityLabel",
- "action",
- "actor",
- "period",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "expression",
+ "data",
+ "dataPeriod",
+ "code",
+ "resourceType",
+ "documentType",
+ "purpose",
+ "securityLabel",
+ "action",
+ "actor",
+ "period",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -492,55 +467,50 @@ class Consent(DomainResource):
default="Consent",
)
- @field_validator(
- *(
- "provision",
- "decision",
- "verification",
- "policyText",
- "policyBasis",
- "regulatoryBasis",
- "sourceReference",
- "sourceAttachment",
- "controller",
- "manager",
- "grantee",
- "grantor",
- "period",
- "date",
- "subject",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "provision",
+ "decision",
+ "verification",
+ "policyText",
+ "policyBasis",
+ "regulatoryBasis",
+ "sourceReference",
+ "sourceAttachment",
+ "controller",
+ "manager",
+ "grantee",
+ "grantor",
+ "period",
+ "date",
+ "subject",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/contract.py b/fhircraft/fhir/resources/datatypes/R5/core/contract.py
index 767b4d11..3308248f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/contract.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/contract.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -99,35 +99,30 @@ class ContractContentDefinition(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "publicationStatus",
- "publicationDate",
- "publisher",
- "subType",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "publicationStatus",
+ "publicationDate",
+ "publisher",
+ "subType",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -162,29 +157,24 @@ class ContractTermSecurityLabel(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "control",
- "category",
- "classification",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "control",
+ "category",
+ "classification",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -206,23 +196,18 @@ class ContractTermOfferParty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -415,47 +400,42 @@ class ContractTermOffer(BackboneElement):
alias="_securityLabelNumber",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "text",
- "answer",
- "decisionMode",
- "decision",
- "type",
- "topic",
- "party",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "text",
+ "answer",
+ "decisionMode",
+ "decision",
+ "type",
+ "topic",
+ "party",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -486,26 +466,21 @@ class ContractTermAssetContext(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "code",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "code",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -745,56 +720,51 @@ def entity(self):
base="entity",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "linkId",
- "recipient",
- "responsible",
- "paymentDate",
- "payment",
- "net",
- "points",
- "factor",
- "unitPrice",
- "quantity",
- "effectiveTime",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "linkId",
+ "recipient",
+ "responsible",
+ "paymentDate",
+ "payment",
+ "net",
+ "points",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "effectiveTime",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -897,62 +867,57 @@ class ContractTermAsset(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valuedItem",
- "securityLabelNumber",
- "answer",
- "linkId",
- "text",
- "usePeriod",
- "period",
- "periodType",
- "condition",
- "context",
- "relationship",
- "subtype",
- "typeReference",
- "type",
- "scope",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valuedItem",
+ "securityLabelNumber",
+ "answer",
+ "linkId",
+ "text",
+ "usePeriod",
+ "period",
+ "periodType",
+ "condition",
+ "context",
+ "relationship",
+ "subtype",
+ "typeReference",
+ "type",
+ "scope",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -974,23 +939,18 @@ class ContractTermActionSubject(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1135,71 +1095,66 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "securityLabelNumber",
- "note",
- "reasonLinkId",
- "reason",
- "performerLinkId",
- "performer",
- "performerRole",
- "performerType",
- "requesterLinkId",
- "requester",
- "contextLinkId",
- "context",
- "status",
- "linkId",
- "intent",
- "subject",
- "type",
- "doNotPerform",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "securityLabelNumber",
+ "note",
+ "reasonLinkId",
+ "reason",
+ "performerLinkId",
+ "performer",
+ "performerRole",
+ "performerType",
+ "requesterLinkId",
+ "requester",
+ "contextLinkId",
+ "context",
+ "status",
+ "linkId",
+ "intent",
+ "subject",
+ "type",
+ "doNotPerform",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1291,50 +1246,45 @@ def topic(self):
base="topic",
)
- @field_validator(
- *(
- "group",
- "action",
- "asset",
- "offer",
- "securityLabel",
- "text",
- "subType",
- "type",
- "applies",
- "issued",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "action",
+ "asset",
+ "offer",
+ "securityLabel",
+ "text",
+ "subType",
+ "type",
+ "applies",
+ "issued",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1369,26 +1319,21 @@ class ContractSigner(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "signature",
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1747,68 +1692,63 @@ def legallyBinding(self):
base="legallyBinding",
)
- @field_validator(
- *(
- "rule",
- "legal",
- "friendly",
- "signer",
- "relevantHistory",
- "supportingInfo",
- "term",
- "contentDefinition",
- "subType",
- "type",
- "scope",
- "author",
- "alias",
- "subtitle",
- "title",
- "name",
- "site",
- "domain",
- "authority",
- "subject",
- "expirationType",
- "applies",
- "issued",
- "contentDerivative",
- "instantiatesUri",
- "instantiatesCanonical",
- "legalState",
- "status",
- "version",
- "url",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "legal",
+ "friendly",
+ "signer",
+ "relevantHistory",
+ "supportingInfo",
+ "term",
+ "contentDefinition",
+ "subType",
+ "type",
+ "scope",
+ "author",
+ "alias",
+ "subtitle",
+ "title",
+ "name",
+ "site",
+ "domain",
+ "authority",
+ "subject",
+ "expirationType",
+ "applies",
+ "issued",
+ "contentDerivative",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "legalState",
+ "status",
+ "version",
+ "url",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/coverage.py b/fhircraft/fhir/resources/datatypes/R5/core/coverage.py
index 5029c5b2..debfbef6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/coverage.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/coverage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class CoveragePaymentBy(BackboneElement):
alias="_responsibility",
)
- @field_validator(
- *(
- "responsibility",
- "party",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "responsibility",
+ "party",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -108,26 +103,21 @@ class CoverageClass(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -149,23 +139,18 @@ class CoverageCostToBeneficiaryException(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -218,35 +203,30 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "exception",
- "term",
- "unit",
- "network",
- "category",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exception",
+ "term",
+ "unit",
+ "network",
+ "category",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -432,57 +412,52 @@ class Coverage(DomainResource):
default="Coverage",
)
- @field_validator(
- *(
- "insurancePlan",
- "contract",
- "subrogation",
- "costToBeneficiary",
- "network",
- "order",
- "class_",
- "insurer",
- "period",
- "relationship",
- "dependent",
- "beneficiary",
- "subscriberId",
- "subscriber",
- "policyHolder",
- "type",
- "paymentBy",
- "kind",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "insurancePlan",
+ "contract",
+ "subrogation",
+ "costToBeneficiary",
+ "network",
+ "order",
+ "class_",
+ "insurer",
+ "period",
+ "relationship",
+ "dependent",
+ "beneficiary",
+ "subscriberId",
+ "subscriber",
+ "policyHolder",
+ "type",
+ "paymentBy",
+ "kind",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_request.py b/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_request.py
index 8dc669d9..15fc3d69 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -74,14 +74,15 @@ def when(self):
base="when",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -126,26 +127,21 @@ class CoverageEligibilityRequestSupportingInfo(BackboneElement):
alias="_appliesToAll",
)
- @field_validator(
- *(
- "appliesToAll",
- "information",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "appliesToAll",
+ "information",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,26 +177,21 @@ class CoverageEligibilityRequestInsurance(BackboneElement):
alias="_businessArrangement",
)
- @field_validator(
- *(
- "businessArrangement",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "businessArrangement",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -290,47 +281,42 @@ class CoverageEligibilityRequestItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "diagnosis",
- "facility",
- "unitPrice",
- "quantity",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "supportingInfoSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "diagnosis",
+ "facility",
+ "unitPrice",
+ "quantity",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "supportingInfoSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -490,51 +476,46 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "item",
- "insurance",
- "supportingInfo",
- "facility",
- "insurer",
- "provider",
- "enterer",
- "created",
- "event",
- "patient",
- "purpose",
- "priority",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "insurance",
+ "supportingInfo",
+ "facility",
+ "insurer",
+ "provider",
+ "enterer",
+ "created",
+ "event",
+ "patient",
+ "purpose",
+ "priority",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_response.py b/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_response.py
index ba2f691e..a7d34d1b 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/coverage_eligibility_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -73,14 +73,15 @@ def when(self):
base="when",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -165,14 +166,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -285,59 +287,54 @@ class CoverageEligibilityResponseInsuranceItem(BackboneElement):
alias="_authorizationUrl",
)
- @field_validator(
- *(
- "authorizationUrl",
- "authorizationSupporting",
- "authorizationRequired",
- "benefit",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "provider",
- "modifier",
- "productOrService",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorizationUrl",
+ "authorizationSupporting",
+ "authorizationRequired",
+ "benefit",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "provider",
+ "modifier",
+ "productOrService",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -372,41 +369,35 @@ class CoverageEligibilityResponseInsurance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "benefitPeriod",
- "inforce",
- "coverage",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "benefitPeriod",
+ "inforce",
+ "coverage",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ces_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ces_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="category.exists() xor productOrService.exists()",
human="SHALL contain a category or a billcode but not both.",
key="ces-1",
@@ -433,23 +424,18 @@ class CoverageEligibilityResponseError(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -628,52 +614,47 @@ def serviced(self):
base="serviced",
)
- @field_validator(
- *(
- "error",
- "form",
- "preAuthRef",
- "insurance",
- "insurer",
- "disposition",
- "outcome",
- "request",
- "requestor",
- "created",
- "event",
- "patient",
- "purpose",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "form",
+ "preAuthRef",
+ "insurance",
+ "insurer",
+ "disposition",
+ "outcome",
+ "request",
+ "requestor",
+ "created",
+ "event",
+ "patient",
+ "purpose",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/detected_issue.py b/fhircraft/fhir/resources/datatypes/R5/core/detected_issue.py
index 713244a4..95cf7f6c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/detected_issue.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/detected_issue.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,23 +55,18 @@ class DetectedIssueEvidence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "detail",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,29 +101,24 @@ class DetectedIssueMitigation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "author",
- "date",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "author",
+ "date",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -287,50 +277,45 @@ def identified(self):
base="identified",
)
- @field_validator(
- *(
- "mitigation",
- "reference",
- "detail",
- "evidence",
- "implicated",
- "author",
- "encounter",
- "subject",
- "severity",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mitigation",
+ "reference",
+ "detail",
+ "evidence",
+ "implicated",
+ "author",
+ "encounter",
+ "subject",
+ "severity",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device.py b/fhircraft/fhir/resources/datatypes/R5/core/device.py
index 13f70010..63bc53b8 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,35 +109,30 @@ class DeviceUdiCarrier(BackboneElement):
alias="_entryType",
)
- @field_validator(
- *(
- "entryType",
- "carrierHRF",
- "carrierAIDC",
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "entryType",
+ "carrierHRF",
+ "carrierAIDC",
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -178,26 +173,21 @@ class DeviceName(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "type",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "type",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,29 +227,24 @@ class DeviceVersion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "installDate",
- "component",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "installDate",
+ "component",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -290,26 +275,21 @@ class DeviceConformsTo(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "specification",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "specification",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -377,14 +357,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -646,69 +627,64 @@ class Device(DomainResource):
default="Device",
)
- @field_validator(
- *(
- "parent",
- "safety",
- "note",
- "gateway",
- "endpoint",
- "url",
- "location",
- "contact",
- "owner",
- "duration",
- "cycle",
- "mode",
- "property_",
- "conformsTo",
- "version",
- "type",
- "category",
- "partNumber",
- "modelNumber",
- "name",
- "serialNumber",
- "lotNumber",
- "expirationDate",
- "manufactureDate",
- "manufacturer",
- "biologicalSourceEvent",
- "availabilityStatus",
- "status",
- "udiCarrier",
- "definition",
- "displayName",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parent",
+ "safety",
+ "note",
+ "gateway",
+ "endpoint",
+ "url",
+ "location",
+ "contact",
+ "owner",
+ "duration",
+ "cycle",
+ "mode",
+ "property_",
+ "conformsTo",
+ "version",
+ "type",
+ "category",
+ "partNumber",
+ "modelNumber",
+ "name",
+ "serialNumber",
+ "lotNumber",
+ "expirationDate",
+ "manufactureDate",
+ "manufacturer",
+ "biologicalSourceEvent",
+ "availabilityStatus",
+ "status",
+ "udiCarrier",
+ "definition",
+ "displayName",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_association.py b/fhircraft/fhir/resources/datatypes/R5/core/device_association.py
index cafd8dc4..0d922de5 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_association.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_association.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -52,26 +52,21 @@ class DeviceAssociationOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "operator",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "operator",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,46 +169,41 @@ class DeviceAssociation(DomainResource):
default="DeviceAssociation",
)
- @field_validator(
- *(
- "operation",
- "period",
- "bodyStructure",
- "subject",
- "statusReason",
- "status",
- "category",
- "device",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "period",
+ "bodyStructure",
+ "subject",
+ "statusReason",
+ "status",
+ "category",
+ "device",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/device_definition.py
index ea302148..3c14086f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,23 +70,18 @@ class DeviceDefinitionUdiDeviceIdentifierMarketDistribution(BackboneElement):
alias="_subJurisdiction",
)
- @field_validator(
- *(
- "subJurisdiction",
- "marketPeriod",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subJurisdiction",
+ "marketPeriod",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -133,29 +128,24 @@ class DeviceDefinitionUdiDeviceIdentifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "marketDistribution",
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "marketDistribution",
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -205,29 +195,24 @@ class DeviceDefinitionRegulatoryIdentifier(BackboneElement):
alias="_jurisdiction",
)
- @field_validator(
- *(
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -259,23 +244,18 @@ class DeviceDefinitionDeviceName(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -297,23 +277,18 @@ class DeviceDefinitionClassification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "justification",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "justification",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -348,29 +323,24 @@ class DeviceDefinitionConformsTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "version",
- "specification",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "version",
+ "specification",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -397,23 +367,18 @@ class DeviceDefinitionHasPart(BackboneElement):
alias="_count",
)
- @field_validator(
- *(
- "count",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "count",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -440,23 +405,18 @@ class DeviceDefinitionPackagingDistributor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "organizationReference",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "organizationReference",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -483,23 +443,18 @@ class DeviceDefinitionUdiDeviceIdentifierMarketDistribution(BackboneElement):
alias="_subJurisdiction",
)
- @field_validator(
- *(
- "subJurisdiction",
- "marketPeriod",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subJurisdiction",
+ "marketPeriod",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -546,29 +501,24 @@ class DeviceDefinitionPackagingUdiDeviceIdentifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "marketDistribution",
- "jurisdiction",
- "issuer",
- "deviceIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "marketDistribution",
+ "jurisdiction",
+ "issuer",
+ "deviceIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -613,35 +563,30 @@ class DeviceDefinitionPackaging(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "packaging",
- "udiDeviceIdentifier",
- "distributor",
- "count",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packaging",
+ "udiDeviceIdentifier",
+ "distributor",
+ "count",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -672,26 +617,21 @@ class DeviceDefinitionVersion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "component",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "component",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -759,14 +699,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -805,23 +746,18 @@ class DeviceDefinitionLink(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "relatedDevice",
- "relation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedDevice",
+ "relation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -857,26 +793,21 @@ class DeviceDefinitionMaterial(BackboneElement):
alias="_allergenicIndicator",
)
- @field_validator(
- *(
- "allergenicIndicator",
- "alternate",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allergenicIndicator",
+ "alternate",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -928,38 +859,33 @@ class DeviceDefinitionGuideline(BackboneElement):
alias="_intendedUse",
)
- @field_validator(
- *(
- "intendedUse",
- "warning",
- "contraindication",
- "indication",
- "relatedArtifact",
- "usageInstruction",
- "useContext",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "intendedUse",
+ "warning",
+ "contraindication",
+ "indication",
+ "relatedArtifact",
+ "usageInstruction",
+ "useContext",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -995,26 +921,21 @@ class DeviceDefinitionCorrectiveAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "scope",
- "recall",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "scope",
+ "recall",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1044,29 +965,24 @@ class DeviceDefinitionChargeItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "useContext",
- "effectivePeriod",
- "count",
- "chargeItemCode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "useContext",
+ "effectivePeriod",
+ "count",
+ "chargeItemCode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1257,63 +1173,58 @@ class DeviceDefinition(DomainResource):
default="DeviceDefinition",
)
- @field_validator(
- *(
- "chargeItem",
- "correctiveAction",
- "guideline",
- "productionIdentifierInUDI",
- "material",
- "note",
- "link",
- "contact",
- "owner",
- "property_",
- "languageCode",
- "shelfLifeStorage",
- "safety",
- "version",
- "packaging",
- "hasPart",
- "conformsTo",
- "classification",
- "modelNumber",
- "deviceName",
- "manufacturer",
- "partNumber",
- "regulatoryIdentifier",
- "udiDeviceIdentifier",
- "identifier",
- "description",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "chargeItem",
+ "correctiveAction",
+ "guideline",
+ "productionIdentifierInUDI",
+ "material",
+ "note",
+ "link",
+ "contact",
+ "owner",
+ "property_",
+ "languageCode",
+ "shelfLifeStorage",
+ "safety",
+ "version",
+ "packaging",
+ "hasPart",
+ "conformsTo",
+ "classification",
+ "modelNumber",
+ "deviceName",
+ "manufacturer",
+ "partNumber",
+ "regulatoryIdentifier",
+ "udiDeviceIdentifier",
+ "identifier",
+ "description",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_dispense.py b/fhircraft/fhir/resources/datatypes/R5/core/device_dispense.py
index b68bf7c8..0b47168d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_dispense.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_dispense.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -56,23 +56,18 @@ class DeviceDispensePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -243,58 +238,53 @@ class DeviceDispense(DomainResource):
default="DeviceDispense",
)
- @field_validator(
- *(
- "eventHistory",
- "usageInstruction",
- "note",
- "destination",
- "whenHandedOver",
- "preparedDate",
- "quantity",
- "type",
- "location",
- "performer",
- "supportingInformation",
- "encounter",
- "receiver",
- "subject",
- "device",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "usageInstruction",
+ "note",
+ "destination",
+ "whenHandedOver",
+ "preparedDate",
+ "quantity",
+ "type",
+ "location",
+ "performer",
+ "supportingInformation",
+ "encounter",
+ "receiver",
+ "subject",
+ "device",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_metric.py b/fhircraft/fhir/resources/datatypes/R5/core/device_metric.py
index 7794fb82..ae4b5084 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_metric.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_metric.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,26 +67,21 @@ class DeviceMetricCalibration(BackboneElement):
alias="_time",
)
- @field_validator(
- *(
- "time",
- "state",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "time",
+ "state",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,46 +199,41 @@ class DeviceMetric(DomainResource):
default="DeviceMetric",
)
- @field_validator(
- *(
- "calibration",
- "measurementFrequency",
- "category",
- "color",
- "operationalStatus",
- "device",
- "unit",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "calibration",
+ "measurementFrequency",
+ "category",
+ "color",
+ "operationalStatus",
+ "device",
+ "unit",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_request.py b/fhircraft/fhir/resources/datatypes/R5/core/device_request.py
index 0cc4c865..7efa89f7 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,14 +85,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -337,62 +338,57 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "relevantHistory",
- "note",
- "supportingInfo",
- "insurance",
- "asNeededFor",
- "asNeeded",
- "reason",
- "performer",
- "requester",
- "authoredOn",
- "encounter",
- "subject",
- "parameter",
- "quantity",
- "code",
- "doNotPerform",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "note",
+ "supportingInfo",
+ "insurance",
+ "asNeededFor",
+ "asNeeded",
+ "reason",
+ "performer",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "parameter",
+ "quantity",
+ "code",
+ "doNotPerform",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/device_usage.py b/fhircraft/fhir/resources/datatypes/R5/core/device_usage.py
index 4aaa32d4..87ed7e6d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/device_usage.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/device_usage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class DeviceUsageAdherence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reason",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -232,53 +227,48 @@ def timing(self):
base="timing",
)
- @field_validator(
- *(
- "note",
- "bodySite",
- "reason",
- "device",
- "informationSource",
- "adherence",
- "usageReason",
- "usageStatus",
- "dateAsserted",
- "context",
- "derivedFrom",
- "patient",
- "category",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "bodySite",
+ "reason",
+ "device",
+ "informationSource",
+ "adherence",
+ "usageReason",
+ "usageStatus",
+ "dateAsserted",
+ "context",
+ "derivedFrom",
+ "patient",
+ "category",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/diagnostic_report.py b/fhircraft/fhir/resources/datatypes/R5/core/diagnostic_report.py
index a4fda72a..463438b7 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/diagnostic_report.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/diagnostic_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class DiagnosticReportSupportingInfo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -100,23 +95,18 @@ class DiagnosticReportMedia(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "link",
- "comment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "comment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -298,57 +288,52 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "presentedForm",
- "conclusionCode",
- "conclusion",
- "composition",
- "media",
- "supportingInfo",
- "study",
- "note",
- "result",
- "specimen",
- "resultsInterpreter",
- "performer",
- "issued",
- "encounter",
- "subject",
- "code",
- "category",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "presentedForm",
+ "conclusionCode",
+ "conclusion",
+ "composition",
+ "media",
+ "supportingInfo",
+ "study",
+ "note",
+ "result",
+ "specimen",
+ "resultsInterpreter",
+ "performer",
+ "issued",
+ "encounter",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/document_reference.py b/fhircraft/fhir/resources/datatypes/R5/core/document_reference.py
index 31ae48d4..c10a1837 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/document_reference.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/document_reference.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,26 +68,21 @@ class DocumentReferenceAttester(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "time",
- "mode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "time",
+ "mode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -109,23 +104,18 @@ class DocumentReferenceRelatesTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -192,23 +182,18 @@ class DocumentReferenceContent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "profile",
- "attachment",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "attachment",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -392,60 +377,55 @@ class DocumentReference(DomainResource):
default="DocumentReference",
)
- @field_validator(
- *(
- "content",
- "securityLabel",
- "description",
- "relatesTo",
- "custodian",
- "attester",
- "author",
- "date",
- "period",
- "practiceSetting",
- "facilityType",
- "bodySite",
- "event",
- "context",
- "subject",
- "category",
- "type",
- "modality",
- "docStatus",
- "status",
- "basedOn",
- "version",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "securityLabel",
+ "description",
+ "relatesTo",
+ "custodian",
+ "attester",
+ "author",
+ "date",
+ "period",
+ "practiceSetting",
+ "facilityType",
+ "bodySite",
+ "event",
+ "context",
+ "subject",
+ "category",
+ "type",
+ "modality",
+ "docStatus",
+ "status",
+ "basedOn",
+ "version",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/domain_resource.py b/fhircraft/fhir/resources/datatypes/R5/core/domain_resource.py
index d300dec9..9a416470 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/domain_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/domain_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,37 +87,32 @@ class DomainResource(Resource):
default="DomainResource",
)
- @field_validator(
- *(
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/encounter.py b/fhircraft/fhir/resources/datatypes/R5/core/encounter.py
index ecb84b3d..33ccebf5 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/encounter.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/encounter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,26 +55,21 @@ class EncounterParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "period",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "period",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -96,23 +91,18 @@ class EncounterReason(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "use",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -134,23 +124,18 @@ class EncounterDiagnosis(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "use",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "use",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -190,35 +175,30 @@ class EncounterAdmission(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dischargeDisposition",
- "destination",
- "reAdmission",
- "admitSource",
- "origin",
- "preAdmissionIdentifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dischargeDisposition",
+ "destination",
+ "reAdmission",
+ "admitSource",
+ "origin",
+ "preAdmissionIdentifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -253,29 +233,24 @@ class EncounterLocation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "form",
- "status",
- "location",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "form",
+ "status",
+ "location",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -469,89 +444,82 @@ class Encounter(DomainResource):
default="Encounter",
)
- @field_validator(
- *(
- "location",
- "admission",
- "specialCourtesy",
- "specialArrangement",
- "dietPreference",
- "account",
- "diagnosis",
- "reason",
- "length",
- "plannedEndDate",
- "plannedStartDate",
- "actualPeriod",
- "virtualService",
- "appointment",
- "participant",
- "serviceProvider",
- "partOf",
- "careTeam",
- "basedOn",
- "episodeOfCare",
- "subjectStatus",
- "subject",
- "serviceType",
- "type",
- "priority",
- "class_",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "location",
+ "admission",
+ "specialCourtesy",
+ "specialArrangement",
+ "dietPreference",
+ "account",
+ "diagnosis",
+ "reason",
+ "length",
+ "plannedEndDate",
+ "plannedStartDate",
+ "actualPeriod",
+ "virtualService",
+ "appointment",
+ "participant",
+ "serviceProvider",
+ "partOf",
+ "careTeam",
+ "basedOn",
+ "episodeOfCare",
+ "subjectStatus",
+ "subject",
+ "serviceType",
+ "type",
+ "priority",
+ "class_",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_enc_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_enc_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="actor.exists() or type.exists()",
human="A type must be provided when no explicit actor is specified",
key="enc-1",
severity="error",
)
- @field_validator(*("participant",), mode="after", check_fields=None)
- @classmethod
- def FHIR_enc_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_enc_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("participant",),
expression="actor.exists(resolve() is Patient or resolve() is Group) implies type.exists().not()",
human="A type cannot be provided for a patient or group participant",
key="enc-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/encounter_history.py b/fhircraft/fhir/resources/datatypes/R5/core/encounter_history.py
index 18c50b76..8ef71b91 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/encounter_history.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/encounter_history.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -50,23 +50,18 @@ class EncounterHistoryLocation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "form",
- "location",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "form",
+ "location",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -200,50 +195,45 @@ class EncounterHistory(DomainResource):
default="EncounterHistory",
)
- @field_validator(
- *(
- "location",
- "length",
- "plannedEndDate",
- "plannedStartDate",
- "actualPeriod",
- "subjectStatus",
- "subject",
- "serviceType",
- "type",
- "class_",
- "status",
- "identifier",
- "encounter",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "location",
+ "length",
+ "plannedEndDate",
+ "plannedStartDate",
+ "actualPeriod",
+ "subjectStatus",
+ "subject",
+ "serviceType",
+ "type",
+ "class_",
+ "status",
+ "identifier",
+ "encounter",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/endpoint.py b/fhircraft/fhir/resources/datatypes/R5/core/endpoint.py
index 7846e089..fe27b09a 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/endpoint.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/endpoint.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -54,23 +54,18 @@ class EndpointPayload(BackboneElement):
alias="_mimeType",
)
- @field_validator(
- *(
- "mimeType",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "mimeType",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,49 +205,44 @@ class Endpoint(DomainResource):
default="Endpoint",
)
- @field_validator(
- *(
- "header",
- "address",
- "payload",
- "period",
- "contact",
- "managingOrganization",
- "environmentType",
- "description",
- "name",
- "connectionType",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "header",
+ "address",
+ "payload",
+ "period",
+ "contact",
+ "managingOrganization",
+ "environmentType",
+ "description",
+ "name",
+ "connectionType",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/enrollment_request.py b/fhircraft/fhir/resources/datatypes/R5/core/enrollment_request.py
index 4646b349..d4b7e8c6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/enrollment_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/enrollment_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -128,44 +128,39 @@ class EnrollmentRequest(DomainResource):
default="EnrollmentRequest",
)
- @field_validator(
- *(
- "coverage",
- "candidate",
- "provider",
- "insurer",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "coverage",
+ "candidate",
+ "provider",
+ "insurer",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/enrollment_response.py b/fhircraft/fhir/resources/datatypes/R5/core/enrollment_response.py
index bfa5539d..93cd9b4f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/enrollment_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/enrollment_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -142,45 +142,40 @@ class EnrollmentResponse(DomainResource):
default="EnrollmentResponse",
)
- @field_validator(
- *(
- "requestProvider",
- "organization",
- "created",
- "disposition",
- "outcome",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requestProvider",
+ "organization",
+ "created",
+ "disposition",
+ "outcome",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/episode_of_care.py b/fhircraft/fhir/resources/datatypes/R5/core/episode_of_care.py
index 02e5dd40..8039a321 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/episode_of_care.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/episode_of_care.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -54,23 +54,18 @@ class EpisodeOfCareStatusHistory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "status",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "status",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -92,23 +87,18 @@ class EpisodeOfCareReason(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "use",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "use",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -130,23 +120,18 @@ class EpisodeOfCareDiagnosis(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "use",
- "condition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "use",
+ "condition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -270,50 +255,45 @@ class EpisodeOfCare(DomainResource):
default="EpisodeOfCare",
)
- @field_validator(
- *(
- "account",
- "careTeam",
- "careManager",
- "referralRequest",
- "period",
- "managingOrganization",
- "patient",
- "diagnosis",
- "reason",
- "type",
- "statusHistory",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "account",
+ "careTeam",
+ "careManager",
+ "referralRequest",
+ "period",
+ "managingOrganization",
+ "patient",
+ "diagnosis",
+ "reason",
+ "type",
+ "statusHistory",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/event_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/event_definition.py
index 20d93c0b..638cef90 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/event_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/event_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -332,77 +332,71 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "trigger",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "trigger",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/evidence.py b/fhircraft/fhir/resources/datatypes/R5/core/evidence.py
index c0115f4e..23171667 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/evidence.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/evidence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,35 +85,30 @@ class EvidenceVariableDefinition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "directnessMatch",
- "intended",
- "observed",
- "variableRole",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "directnessMatch",
+ "intended",
+ "observed",
+ "variableRole",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -167,32 +162,27 @@ class EvidenceStatisticSampleSize(BackboneElement):
alias="_knownDataCount",
)
- @field_validator(
- *(
- "knownDataCount",
- "numberOfParticipants",
- "numberOfStudies",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "knownDataCount",
+ "numberOfParticipants",
+ "numberOfStudies",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -244,38 +234,33 @@ class EvidenceStatisticAttributeEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "range",
- "level",
- "quantity",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "range",
+ "level",
+ "quantity",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -314,32 +299,27 @@ class EvidenceStatisticModelCharacteristicVariable(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "valueRange",
- "valueQuantity",
- "valueCategory",
- "handling",
- "variableDefinition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueRange",
+ "valueQuantity",
+ "valueCategory",
+ "handling",
+ "variableDefinition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -391,38 +371,33 @@ class EvidenceStatisticModelCharacteristicAttributeEstimate(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "range",
- "level",
- "quantity",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "range",
+ "level",
+ "quantity",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -454,29 +429,24 @@ class EvidenceStatisticModelCharacteristic(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attributeEstimate",
- "variable",
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attributeEstimate",
+ "variable",
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -545,47 +515,42 @@ class EvidenceStatistic(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "modelCharacteristic",
- "attributeEstimate",
- "sampleSize",
- "numberAffected",
- "numberOfEvents",
- "quantity",
- "category",
- "statisticType",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modelCharacteristic",
+ "attributeEstimate",
+ "sampleSize",
+ "numberAffected",
+ "numberOfEvents",
+ "quantity",
+ "category",
+ "statisticType",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -633,35 +598,30 @@ class EvidenceCertainty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subcomponent",
- "rater",
- "rating",
- "type",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subcomponent",
+ "rater",
+ "rating",
+ "type",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -959,78 +919,72 @@ def citeAs(self):
base="citeAs",
)
- @field_validator(
- *(
- "certainty",
- "statistic",
- "studyDesign",
- "synthesisType",
- "variableDefinition",
- "note",
- "assertion",
- "description",
- "relatedArtifact",
- "copyrightLabel",
- "copyright",
- "purpose",
- "useContext",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "contact",
- "publisher",
- "lastReviewDate",
- "approvalDate",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "certainty",
+ "statistic",
+ "studyDesign",
+ "synthesisType",
+ "variableDefinition",
+ "note",
+ "assertion",
+ "description",
+ "relatedArtifact",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "useContext",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "contact",
+ "publisher",
+ "lastReviewDate",
+ "approvalDate",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/evidence_report.py b/fhircraft/fhir/resources/datatypes/R5/core/evidence_report.py
index 3b1675f9..42026571 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/evidence_report.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/evidence_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -101,26 +101,21 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "period",
- "exclude",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "exclude",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,23 +146,18 @@ class EvidenceReportSubject(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "characteristic",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "characteristic",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,29 +197,24 @@ class EvidenceReportRelatesToTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "display",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "display",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -256,23 +241,18 @@ class EvidenceReportRelatesTo(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -344,53 +324,48 @@ class EvidenceReportSection(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "section",
- "emptyReason",
- "entryQuantity",
- "entryReference",
- "entryClassifier",
- "orderedBy",
- "mode",
- "text",
- "author",
- "focusReference",
- "focus",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "emptyReason",
+ "entryQuantity",
+ "entryReference",
+ "entryClassifier",
+ "orderedBy",
+ "mode",
+ "text",
+ "author",
+ "focusReference",
+ "focus",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -560,66 +535,60 @@ def citeAs(self):
base="citeAs",
)
- @field_validator(
- *(
- "section",
- "relatesTo",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "contact",
- "publisher",
- "subject",
- "relatedArtifact",
- "note",
- "type",
- "relatedIdentifier",
- "identifier",
- "useContext",
- "status",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "section",
+ "relatesTo",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "contact",
+ "publisher",
+ "subject",
+ "relatedArtifact",
+ "note",
+ "type",
+ "relatedIdentifier",
+ "identifier",
+ "useContext",
+ "status",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/evidence_variable.py b/fhircraft/fhir/resources/datatypes/R5/core/evidence_variable.py
index 099c0335..21157a05 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/evidence_variable.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/evidence_variable.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -116,29 +116,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "offset",
- "device",
- "method",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "offset",
+ "device",
+ "method",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -183,26 +178,21 @@ class EvidenceVariableCharacteristicDefinitionByCombination(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "characteristic",
- "threshold",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "threshold",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -270,29 +260,24 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "range",
- "quantity",
- "note",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "range",
+ "quantity",
+ "note",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -422,53 +407,48 @@ def duration(self):
base="duration",
)
- @field_validator(
- *(
- "timeFromEvent",
- "definitionByCombination",
- "definitionByTypeAndValue",
- "definitionId",
- "definitionExpression",
- "definitionCodeableConcept",
- "definitionCanonical",
- "definitionReference",
- "exclude",
- "note",
- "description",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "timeFromEvent",
+ "definitionByCombination",
+ "definitionByTypeAndValue",
+ "definitionId",
+ "definitionExpression",
+ "definitionCodeableConcept",
+ "definitionCanonical",
+ "definitionReference",
+ "exclude",
+ "note",
+ "description",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -528,14 +508,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("name", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -832,90 +813,83 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "category",
- "handling",
- "characteristic",
- "actual",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "useContext",
- "note",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "shortTitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "category",
+ "handling",
+ "characteristic",
+ "actual",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "useContext",
+ "note",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "shortTitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("characteristic",), mode="after", check_fields=None)
- @classmethod
- def FHIR_evv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_evv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("characteristic",),
expression="(definitionReference.count() + definitionCanonical.count() + definitionCodeableConcept.count() + definitionId.count() + definitionByTypeAndValue.count() + definitionByCombination.count()) < 2",
human="In a characteristic, at most one of these six elements shall be used: definitionReference or definitionCanonical or definitionCodeableConcept or definitionId or definitionByTypeAndValue or definitionByCombination",
key="evv-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/example_scenario.py b/fhircraft/fhir/resources/datatypes/R5/core/example_scenario.py
index e4895e30..576c1358 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/example_scenario.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/example_scenario.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,29 +86,24 @@ class ExampleScenarioActor(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "title",
- "type",
- "key",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "title",
+ "type",
+ "key",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -153,29 +148,24 @@ class ExampleScenarioInstanceVersion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "content",
- "description",
- "title",
- "key",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "description",
+ "title",
+ "key",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,23 +197,18 @@ class ExampleScenarioInstanceContainedInstance(BackboneElement):
alias="_versionReference",
)
- @field_validator(
- *(
- "versionReference",
- "instanceReference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionReference",
+ "instanceReference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -314,77 +299,69 @@ def structureProfile(self):
base="structureProfile",
)
- @field_validator(
- *(
- "containedInstance",
- "version",
- "content",
- "description",
- "title",
- "structureVersion",
- "structureType",
- "key",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "containedInstance",
+ "version",
+ "content",
+ "description",
+ "title",
+ "structureVersion",
+ "structureType",
+ "key",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("containedInstance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_14_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_14_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("containedInstance",),
expression="%resource.instance.where(key=%context.instanceReference).exists()",
human="InstanceReference must be a key of an instance defined in the ExampleScenario",
key="exs-14",
severity="error",
)
- @field_validator(*("containedInstance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_15_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_15_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("containedInstance",),
expression="versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()",
human="versionReference must be specified if the referenced instance defines versions",
key="exs-15",
severity="error",
)
- @field_validator(*("containedInstance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_16_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_16_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("containedInstance",),
expression="versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()",
human="versionReference must be a key of a version within the instance pointed to by instanceReference",
key="exs-16",
@@ -425,23 +402,18 @@ class ExampleScenarioProcessStepOperationRequest(BackboneElement):
alias="_versionReference",
)
- @field_validator(
- *(
- "versionReference",
- "instanceReference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "versionReference",
+ "instanceReference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -521,44 +493,39 @@ class ExampleScenarioProcessStepOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "response",
- "request",
- "receiverActive",
- "initiatorActive",
- "description",
- "receiver",
- "initiator",
- "title",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "response",
+ "request",
+ "receiverActive",
+ "initiatorActive",
+ "description",
+ "receiver",
+ "initiator",
+ "title",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -594,26 +561,21 @@ class ExampleScenarioProcessStepAlternative(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -666,59 +628,52 @@ class ExampleScenarioProcessStep(BackboneElement):
alias="_pause",
)
- @field_validator(
- *(
- "pause",
- "alternative",
- "operation",
- "workflow",
- "process",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "pause",
+ "alternative",
+ "operation",
+ "workflow",
+ "process",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_17_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_17_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()",
human="If specified, initiator must be a key of an actor within the ExampleScenario",
key="exs-17",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_18_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_18_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()",
human="If specified, receiver must be a key of an actor within the ExampleScenario",
key="exs-18",
@@ -772,56 +727,49 @@ class ExampleScenarioProcess(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "step",
- "postConditions",
- "preConditions",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "step",
+ "postConditions",
+ "preConditions",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("step",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("step",),
expression="alternative.title.count() = alternative.title.distinct().count()",
human="Alternative titles must be unique within a step",
key="exs-13",
severity="error",
)
- @field_validator(*("step",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_22_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_22_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("step",),
expression="(process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())",
human="Can have a process, a workflow, one or more operations or none of these, but cannot have a combination",
key="exs-22",
@@ -1044,176 +992,161 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "process",
- "instance",
- "actor",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "process",
+ "instance",
+ "actor",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("actor",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_19_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_19_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("actor",),
expression="%resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()",
human="Actor should be referenced in at least one operation",
key="exs-19",
severity="warning",
)
- @field_validator(*("actor",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_23_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_23_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("actor",),
expression="key != 'OTHER'",
human="actor.key canot be 'OTHER'",
key="exs-23",
severity="error",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="structureType.exists() and structureType.memberOf('http://hl7.org/fhir/ValueSet/resource-types').not() implies structureVersion.exists()",
human="StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR)",
key="exs-1",
severity="error",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="content.exists() implies version.empty()",
human="instance.content is only allowed if there are no instance.versions",
key="exs-2",
severity="error",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="version.key.count() = version.key.distinct().count()",
human="Version keys must be unique within an instance",
key="exs-10",
severity="error",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="version.title.count() = version.title.distinct().count()",
human="Version titles must be unique within an instance",
key="exs-11",
severity="error",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_20_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_20_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="%resource.process.descendants().select(instanceReference).where($this=%context.key).exists()",
human="Instance should be referenced in at least one location",
key="exs-20",
severity="warning",
)
- @field_validator(*("instance",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_21_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_21_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("instance",),
expression="version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()",
human="Instance version should be referenced in at least one operation",
key="exs-21",
severity="warning",
)
- @field_validator(*("process",), mode="after", check_fields=None)
- @classmethod
- def FHIR_exs_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_exs_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("process",),
expression="%resource.status='active' or %resource.status='retired' implies step.exists()",
human="Processes must have steps if ExampleScenario status is active or required",
key="exs-5",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/explanation_of_benefit.py b/fhircraft/fhir/resources/datatypes/R5/core/explanation_of_benefit.py
index c8c49b52..596c71b3 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/explanation_of_benefit.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/explanation_of_benefit.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,26 +68,21 @@ class ExplanationOfBenefitRelated(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "relationship",
- "claim",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "relationship",
+ "claim",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -125,14 +120,15 @@ def when(self):
base="when",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -163,23 +159,18 @@ class ExplanationOfBenefitPayee(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -223,32 +214,27 @@ class ExplanationOfBenefitCareTeam(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specialty",
- "role",
- "responsible",
- "provider",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specialty",
+ "role",
+ "responsible",
+ "provider",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -344,29 +330,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "reason",
- "code",
- "category",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "category",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -430,26 +411,21 @@ def diagnosis(self):
base="diagnosis",
)
- @field_validator(
- *(
- "onAdmission",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onAdmission",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -513,29 +489,24 @@ def procedure(self):
base="procedure",
)
- @field_validator(
- *(
- "udi",
- "date",
- "type",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "udi",
+ "date",
+ "type",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -580,26 +551,21 @@ class ExplanationOfBenefitInsurance(BackboneElement):
alias="_preAuthRef",
)
- @field_validator(
- *(
- "preAuthRef",
- "coverage",
- "focal",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthRef",
+ "coverage",
+ "focal",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -641,23 +607,18 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "type",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -688,23 +649,18 @@ class ExplanationOfBenefitItemBodySite(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subSite",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subSite",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -739,29 +695,24 @@ class ExplanationOfBenefitItemReviewOutcome(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "preAuthPeriod",
- "preAuthRef",
- "reason",
- "decision",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthPeriod",
+ "preAuthRef",
+ "reason",
+ "decision",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -791,29 +742,24 @@ class ExplanationOfBenefitItemAdjudication(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -848,29 +794,24 @@ class ExplanationOfBenefitItemDetailReviewOutcome(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "preAuthPeriod",
- "preAuthRef",
- "reason",
- "decision",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preAuthPeriod",
+ "preAuthRef",
+ "reason",
+ "decision",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -900,29 +841,24 @@ class ExplanationOfBenefitItemDetailAdjudication(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "amount",
- "reason",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "amount",
+ "reason",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1023,71 +959,66 @@ class ExplanationOfBenefitItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "traceNumber",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "traceNumber",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1192,74 +1123,69 @@ class ExplanationOfBenefitItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "traceNumber",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "traceNumber",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1451,95 +1377,90 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "encounter",
- "bodySite",
- "udi",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "request",
- "productOrServiceEnd",
- "productOrService",
- "category",
- "revenue",
- "traceNumber",
- "informationSequence",
- "procedureSequence",
- "diagnosisSequence",
- "careTeamSequence",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "encounter",
+ "bodySite",
+ "udi",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "request",
+ "productOrServiceEnd",
+ "productOrService",
+ "category",
+ "revenue",
+ "traceNumber",
+ "informationSequence",
+ "procedureSequence",
+ "diagnosisSequence",
+ "careTeamSequence",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1579,23 +1500,18 @@ class ExplanationOfBenefitAddItemBodySite(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subSite",
- "site",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subSite",
+ "site",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1675,59 +1591,54 @@ class ExplanationOfBenefitAddItemDetailSubDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "traceNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "traceNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1811,62 +1722,57 @@ class ExplanationOfBenefitAddItemDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subDetail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "modifier",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "traceNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subDetail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "modifier",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "traceNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2032,83 +1938,78 @@ def location(self):
base="location",
)
- @field_validator(
- *(
- "detail",
- "adjudication",
- "reviewOutcome",
- "noteNumber",
- "bodySite",
- "net",
- "tax",
- "factor",
- "unitPrice",
- "quantity",
- "patientPaid",
- "programCode",
- "modifier",
- "request",
- "productOrServiceEnd",
- "productOrService",
- "revenue",
- "provider",
- "traceNumber",
- "subDetailSequence",
- "detailSequence",
- "itemSequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "adjudication",
+ "reviewOutcome",
+ "noteNumber",
+ "bodySite",
+ "net",
+ "tax",
+ "factor",
+ "unitPrice",
+ "quantity",
+ "patientPaid",
+ "programCode",
+ "modifier",
+ "request",
+ "productOrServiceEnd",
+ "productOrService",
+ "revenue",
+ "provider",
+ "traceNumber",
+ "subDetailSequence",
+ "detailSequence",
+ "itemSequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2148,23 +2049,18 @@ class ExplanationOfBenefitTotal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2207,35 +2103,30 @@ class ExplanationOfBenefitPayment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "identifier",
- "amount",
- "date",
- "adjustmentReason",
- "adjustment",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "identifier",
+ "amount",
+ "date",
+ "adjustmentReason",
+ "adjustment",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2275,29 +2166,24 @@ class ExplanationOfBenefitProcessNote(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "text",
- "type",
- "number",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "text",
+ "type",
+ "number",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2364,14 +2250,15 @@ def used(self):
base="used",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2450,41 +2337,36 @@ class ExplanationOfBenefitBenefitBalance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "financial",
- "term",
- "unit",
- "network",
- "description",
- "name",
- "excluded",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "financial",
+ "term",
+ "unit",
+ "network",
+ "description",
+ "name",
+ "excluded",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2782,86 +2664,81 @@ class ExplanationOfBenefit(DomainResource):
default="ExplanationOfBenefit",
)
- @field_validator(
- *(
- "benefitBalance",
- "benefitPeriod",
- "processNote",
- "form",
- "formCode",
- "payment",
- "total",
- "adjudication",
- "addItem",
- "item",
- "patientPaid",
- "accident",
- "insurance",
- "precedence",
- "procedure",
- "diagnosis",
- "supportingInfo",
- "careTeam",
- "diagnosisRelatedGroup",
- "preAuthRefPeriod",
- "preAuthRef",
- "disposition",
- "decision",
- "outcome",
- "claimResponse",
- "claim",
- "facility",
- "encounter",
- "referral",
- "payee",
- "event",
- "originalPrescription",
- "prescription",
- "related",
- "fundsReserve",
- "fundsReserveRequested",
- "priority",
- "provider",
- "insurer",
- "enterer",
- "created",
- "billablePeriod",
- "patient",
- "use",
- "subType",
- "type",
- "status",
- "traceNumber",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefitBalance",
+ "benefitPeriod",
+ "processNote",
+ "form",
+ "formCode",
+ "payment",
+ "total",
+ "adjudication",
+ "addItem",
+ "item",
+ "patientPaid",
+ "accident",
+ "insurance",
+ "precedence",
+ "procedure",
+ "diagnosis",
+ "supportingInfo",
+ "careTeam",
+ "diagnosisRelatedGroup",
+ "preAuthRefPeriod",
+ "preAuthRef",
+ "disposition",
+ "decision",
+ "outcome",
+ "claimResponse",
+ "claim",
+ "facility",
+ "encounter",
+ "referral",
+ "payee",
+ "event",
+ "originalPrescription",
+ "prescription",
+ "related",
+ "fundsReserve",
+ "fundsReserveRequested",
+ "priority",
+ "provider",
+ "insurer",
+ "enterer",
+ "created",
+ "billablePeriod",
+ "patient",
+ "use",
+ "subType",
+ "type",
+ "status",
+ "traceNumber",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/family_member_history.py b/fhircraft/fhir/resources/datatypes/R5/core/family_member_history.py
index 12861535..0a07a246 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/family_member_history.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/family_member_history.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -60,23 +60,18 @@ class FamilyMemberHistoryParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -139,29 +134,24 @@ def onset(self):
base="onset",
)
- @field_validator(
- *(
- "note",
- "contributedToDeath",
- "outcome",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributedToDeath",
+ "outcome",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -242,29 +232,24 @@ def performed(self):
base="performed",
)
- @field_validator(
- *(
- "note",
- "contributedToDeath",
- "outcome",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "contributedToDeath",
+ "outcome",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -529,53 +514,48 @@ def deceased(self):
base="deceased",
)
- @field_validator(
- *(
- "procedure",
- "condition",
- "note",
- "reason",
- "estimatedAge",
- "sex",
- "relationship",
- "name",
- "participant",
- "date",
- "patient",
- "dataAbsentReason",
- "status",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "procedure",
+ "condition",
+ "note",
+ "reason",
+ "estimatedAge",
+ "sex",
+ "relationship",
+ "name",
+ "participant",
+ "date",
+ "patient",
+ "dataAbsentReason",
+ "status",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/flag.py b/fhircraft/fhir/resources/datatypes/R5/core/flag.py
index 586e686a..91c1ec7e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/flag.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/flag.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -129,45 +129,40 @@ class Flag(DomainResource):
default="Flag",
)
- @field_validator(
- *(
- "author",
- "encounter",
- "period",
- "subject",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "author",
+ "encounter",
+ "period",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/formulary_item.py b/fhircraft/fhir/resources/datatypes/R5/core/formulary_item.py
index 246fa230..e769d259 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/formulary_item.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/formulary_item.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -107,40 +107,35 @@ class FormularyItem(DomainResource):
default="FormularyItem",
)
- @field_validator(
- *(
- "status",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "status",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/genomic_study.py b/fhircraft/fhir/resources/datatypes/R5/core/genomic_study.py
index 5c9cd795..292a72bd 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/genomic_study.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/genomic_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -71,23 +71,18 @@ def generatedBy(self):
base="generatedBy",
)
- @field_validator(
- *(
- "type",
- "file",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "file",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -118,23 +113,18 @@ class GenomicStudyAnalysisOutput(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "file",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "file",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -156,23 +146,18 @@ class GenomicStudyAnalysisPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "actor",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "actor",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -194,23 +179,18 @@ class GenomicStudyAnalysisDevice(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "function",
- "device",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "function",
+ "device",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -316,71 +296,66 @@ class GenomicStudyAnalysis(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "device",
- "performer",
- "output",
- "input",
- "regionsCalled",
- "regionsStudied",
- "protocolPerformed",
- "note",
- "date",
- "specimen",
- "focus",
- "title",
- "instantiatesUri",
- "instantiatesCanonical",
- "genomeBuild",
- "changeType",
- "methodType",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "device",
+ "performer",
+ "output",
+ "input",
+ "regionsCalled",
+ "regionsStudied",
+ "protocolPerformed",
+ "note",
+ "date",
+ "specimen",
+ "focus",
+ "title",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "genomeBuild",
+ "changeType",
+ "methodType",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -532,52 +507,47 @@ class GenomicStudy(DomainResource):
default="GenomicStudy",
)
- @field_validator(
- *(
- "analysis",
- "description",
- "note",
- "instantiatesUri",
- "instantiatesCanonical",
- "reason",
- "interpreter",
- "referrer",
- "basedOn",
- "startDate",
- "encounter",
- "subject",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "analysis",
+ "description",
+ "note",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "reason",
+ "interpreter",
+ "referrer",
+ "basedOn",
+ "startDate",
+ "encounter",
+ "subject",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/goal.py b/fhircraft/fhir/resources/datatypes/R5/core/goal.py
index 8a4eb359..33e83c0e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/goal.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/goal.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -126,14 +126,15 @@ def due(self):
base="due",
)
- @field_validator(
- *("measure", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measure",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -326,64 +327,58 @@ def start(self):
base="start",
)
- @field_validator(
- *(
- "outcome",
- "note",
- "addresses",
- "source",
- "statusReason",
- "statusDate",
- "target",
- "subject",
- "description",
- "priority",
- "continuous",
- "category",
- "achievementStatus",
- "lifecycleStatus",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "outcome",
+ "note",
+ "addresses",
+ "source",
+ "statusReason",
+ "statusDate",
+ "target",
+ "subject",
+ "description",
+ "priority",
+ "continuous",
+ "category",
+ "achievementStatus",
+ "lifecycleStatus",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_gol_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_gol_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="(detail.exists() and measure.exists()) or detail.exists().not()",
human="Goal.target.measure is required if Goal.target.detail is populated",
key="gol-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/graph_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/graph_definition.py
index 7a058cf0..ab918a53 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/graph_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/graph_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,29 +87,24 @@ class GraphDefinitionNode(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "description",
- "nodeId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "description",
+ "nodeId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -168,32 +163,27 @@ class GraphDefinitionLinkCompartment(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "expression",
- "code",
- "rule",
- "use",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "expression",
+ "code",
+ "rule",
+ "use",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -283,44 +273,39 @@ class GraphDefinitionLink(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "compartment",
- "params",
- "targetId",
- "sliceName",
- "path",
- "sourceId",
- "max",
- "min",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "compartment",
+ "params",
+ "targetId",
+ "sliceName",
+ "path",
+ "sourceId",
+ "max",
+ "min",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -548,68 +533,62 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "link",
- "node",
- "start",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "node",
+ "start",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/group.py b/fhircraft/fhir/resources/datatypes/R5/core/group.py
index 20e3d861..f103a382 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/group.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/group.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,26 +98,21 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "period",
- "exclude",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "exclude",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -157,26 +152,21 @@ class GroupMember(BackboneElement):
alias="_inactive",
)
- @field_validator(
- *(
- "inactive",
- "period",
- "entity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "inactive",
+ "period",
+ "entity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -317,48 +307,43 @@ class Group(DomainResource):
default="Group",
)
- @field_validator(
- *(
- "member",
- "characteristic",
- "managingEntity",
- "quantity",
- "description",
- "name",
- "code",
- "membership",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "member",
+ "characteristic",
+ "managingEntity",
+ "quantity",
+ "description",
+ "name",
+ "code",
+ "membership",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/guidance_response.py b/fhircraft/fhir/resources/datatypes/R5/core/guidance_response.py
index d2ba2970..532988c6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/guidance_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/guidance_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -191,50 +191,45 @@ def module(self):
base="module",
)
- @field_validator(
- *(
- "dataRequirement",
- "result",
- "outputParameters",
- "evaluationMessage",
- "note",
- "reason",
- "performer",
- "occurrenceDateTime",
- "encounter",
- "subject",
- "status",
- "identifier",
- "requestIdentifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dataRequirement",
+ "result",
+ "outputParameters",
+ "evaluationMessage",
+ "note",
+ "reason",
+ "performer",
+ "occurrenceDateTime",
+ "encounter",
+ "subject",
+ "status",
+ "identifier",
+ "requestIdentifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/healthcare_service.py b/fhircraft/fhir/resources/datatypes/R5/core/healthcare_service.py
index fcb01076..54661776 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/healthcare_service.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/healthcare_service.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class HealthcareServiceEligibility(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -261,60 +256,55 @@ class HealthcareService(DomainResource):
default="HealthcareService",
)
- @field_validator(
- *(
- "endpoint",
- "availability",
- "appointmentRequired",
- "referralMethod",
- "communication",
- "characteristic",
- "program",
- "eligibility",
- "serviceProvisionCode",
- "coverageArea",
- "contact",
- "photo",
- "extraDetails",
- "comment",
- "name",
- "location",
- "specialty",
- "type",
- "category",
- "offeredIn",
- "providedBy",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availability",
+ "appointmentRequired",
+ "referralMethod",
+ "communication",
+ "characteristic",
+ "program",
+ "eligibility",
+ "serviceProvisionCode",
+ "coverageArea",
+ "contact",
+ "photo",
+ "extraDetails",
+ "comment",
+ "name",
+ "location",
+ "specialty",
+ "type",
+ "category",
+ "offeredIn",
+ "providedBy",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/imaging_selection.py b/fhircraft/fhir/resources/datatypes/R5/core/imaging_selection.py
index 4bda5bda..3696e972 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/imaging_selection.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/imaging_selection.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class ImagingSelectionPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class ImagingSelectionInstanceImageRegion2D(BackboneElement):
alias="_coordinate",
)
- @field_validator(
- *(
- "coordinate",
- "regionType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "coordinate",
+ "regionType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -154,23 +144,18 @@ class ImagingSelectionInstanceImageRegion3D(BackboneElement):
alias="_coordinate",
)
- @field_validator(
- *(
- "coordinate",
- "regionType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "coordinate",
+ "regionType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -223,35 +208,30 @@ class ImagingSelectionInstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "imageRegion3D",
- "imageRegion2D",
- "subset",
- "sopClass",
- "number",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "imageRegion3D",
+ "imageRegion2D",
+ "subset",
+ "sopClass",
+ "number",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -416,54 +396,49 @@ class ImagingSelection(DomainResource):
default="ImagingSelection",
)
- @field_validator(
- *(
- "instance",
- "focus",
- "bodySite",
- "frameOfReferenceUid",
- "seriesNumber",
- "seriesUid",
- "endpoint",
- "derivedFrom",
- "studyUid",
- "code",
- "category",
- "basedOn",
- "performer",
- "issued",
- "subject",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instance",
+ "focus",
+ "bodySite",
+ "frameOfReferenceUid",
+ "seriesNumber",
+ "seriesUid",
+ "endpoint",
+ "derivedFrom",
+ "studyUid",
+ "code",
+ "category",
+ "basedOn",
+ "performer",
+ "issued",
+ "subject",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/imaging_study.py b/fhircraft/fhir/resources/datatypes/R5/core/imaging_study.py
index 88309ed6..e4251fac 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/imaging_study.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/imaging_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class ImagingStudySeriesPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -118,29 +113,24 @@ class ImagingStudySeriesInstance(BackboneElement):
alias="_title",
)
- @field_validator(
- *(
- "title",
- "number",
- "sopClass",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "title",
+ "number",
+ "sopClass",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -227,53 +217,48 @@ class ImagingStudySeries(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "instance",
- "performer",
- "started",
- "specimen",
- "laterality",
- "bodySite",
- "endpoint",
- "numberOfInstances",
- "description",
- "modality",
- "number",
- "uid",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instance",
+ "performer",
+ "started",
+ "specimen",
+ "laterality",
+ "bodySite",
+ "endpoint",
+ "numberOfInstances",
+ "description",
+ "modality",
+ "number",
+ "uid",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -437,55 +422,50 @@ class ImagingStudy(DomainResource):
default="ImagingStudy",
)
- @field_validator(
- *(
- "series",
- "description",
- "note",
- "reason",
- "location",
- "procedure",
- "numberOfInstances",
- "numberOfSeries",
- "endpoint",
- "referrer",
- "partOf",
- "basedOn",
- "started",
- "encounter",
- "subject",
- "modality",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "series",
+ "description",
+ "note",
+ "reason",
+ "location",
+ "procedure",
+ "numberOfInstances",
+ "numberOfSeries",
+ "endpoint",
+ "referrer",
+ "partOf",
+ "basedOn",
+ "started",
+ "encounter",
+ "subject",
+ "modality",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/immunization.py b/fhircraft/fhir/resources/datatypes/R5/core/immunization.py
index 4096ae46..5202f67c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/immunization.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/immunization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class ImmunizationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -95,23 +90,18 @@ class ImmunizationProgramEligibility(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "programStatus",
- "program",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "programStatus",
+ "program",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -147,26 +137,21 @@ class ImmunizationReaction(BackboneElement):
alias="_reported",
)
- @field_validator(
- *(
- "reported",
- "manifestation",
- "date",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reported",
+ "manifestation",
+ "date",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -215,32 +200,27 @@ class ImmunizationProtocolApplied(BackboneElement):
alias="_seriesDoses",
)
- @field_validator(
- *(
- "seriesDoses",
- "doseNumber",
- "targetDisease",
- "authority",
- "series",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "seriesDoses",
+ "doseNumber",
+ "targetDisease",
+ "authority",
+ "series",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -465,64 +445,59 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "protocolApplied",
- "reaction",
- "fundingSource",
- "programEligibility",
- "subpotentReason",
- "isSubpotent",
- "reason",
- "note",
- "performer",
- "doseQuantity",
- "route",
- "site",
- "location",
- "informationSource",
- "primarySource",
- "supportingInformation",
- "encounter",
- "patient",
- "expirationDate",
- "lotNumber",
- "manufacturer",
- "administeredProduct",
- "vaccineCode",
- "statusReason",
- "status",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "protocolApplied",
+ "reaction",
+ "fundingSource",
+ "programEligibility",
+ "subpotentReason",
+ "isSubpotent",
+ "reason",
+ "note",
+ "performer",
+ "doseQuantity",
+ "route",
+ "site",
+ "location",
+ "informationSource",
+ "primarySource",
+ "supportingInformation",
+ "encounter",
+ "patient",
+ "expirationDate",
+ "lotNumber",
+ "manufacturer",
+ "administeredProduct",
+ "vaccineCode",
+ "statusReason",
+ "status",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/immunization_evaluation.py b/fhircraft/fhir/resources/datatypes/R5/core/immunization_evaluation.py
index 321dc1ad..760f9c84 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/immunization_evaluation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/immunization_evaluation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -179,50 +179,45 @@ class ImmunizationEvaluation(DomainResource):
default="ImmunizationEvaluation",
)
- @field_validator(
- *(
- "seriesDoses",
- "doseNumber",
- "series",
- "description",
- "doseStatusReason",
- "doseStatus",
- "immunizationEvent",
- "targetDisease",
- "authority",
- "date",
- "patient",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "seriesDoses",
+ "doseNumber",
+ "series",
+ "description",
+ "doseStatusReason",
+ "doseStatus",
+ "immunizationEvent",
+ "targetDisease",
+ "authority",
+ "date",
+ "patient",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/immunization_recommendation.py b/fhircraft/fhir/resources/datatypes/R5/core/immunization_recommendation.py
index 7b1ad218..0701eb90 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/immunization_recommendation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/immunization_recommendation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class ImmunizationRecommendationRecommendationDateCriterion(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -158,53 +153,48 @@ class ImmunizationRecommendationRecommendation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "supportingPatientInformation",
- "supportingImmunization",
- "seriesDoses",
- "doseNumber",
- "series",
- "description",
- "dateCriterion",
- "forecastReason",
- "forecastStatus",
- "contraindicatedVaccineCode",
- "targetDisease",
- "vaccineCode",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingPatientInformation",
+ "supportingImmunization",
+ "seriesDoses",
+ "doseNumber",
+ "series",
+ "description",
+ "dateCriterion",
+ "forecastReason",
+ "forecastStatus",
+ "contraindicatedVaccineCode",
+ "targetDisease",
+ "vaccineCode",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -298,54 +288,48 @@ class ImmunizationRecommendation(DomainResource):
default="ImmunizationRecommendation",
)
- @field_validator(
- *(
- "recommendation",
- "authority",
- "date",
- "patient",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recommendation",
+ "authority",
+ "date",
+ "patient",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("recommendation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_imr_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_imr_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("recommendation",),
expression="vaccineCode.exists() or targetDisease.exists()",
human="One of vaccineCode or targetDisease SHALL be present",
key="imr-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/implementation_guide.py b/fhircraft/fhir/resources/datatypes/R5/core/implementation_guide.py
index 66857012..5a4a365e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/implementation_guide.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/implementation_guide.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -88,29 +88,24 @@ class ImplementationGuideDependsOn(BackboneElement):
alias="_reason",
)
- @field_validator(
- *(
- "reason",
- "version",
- "packageId",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "version",
+ "packageId",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -142,23 +137,18 @@ class ImplementationGuideGlobal(BackboneElement):
alias="_profile",
)
- @field_validator(
- *(
- "profile",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "profile",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -190,23 +180,18 @@ class ImplementationGuideDefinitionGrouping(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -278,38 +263,33 @@ class ImplementationGuideDefinitionResource(BackboneElement):
alias="_groupingId",
)
- @field_validator(
- *(
- "groupingId",
- "profile",
- "isExample",
- "description",
- "name",
- "fhirVersion",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupingId",
+ "profile",
+ "isExample",
+ "description",
+ "name",
+ "fhirVersion",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -388,29 +368,24 @@ def source(self):
base="source",
)
- @field_validator(
- *(
- "page",
- "generation",
- "title",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "page",
+ "generation",
+ "title",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -446,23 +421,18 @@ class ImplementationGuideDefinitionParameter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -503,26 +473,21 @@ class ImplementationGuideDefinitionTemplate(BackboneElement):
alias="_scope",
)
- @field_validator(
- *(
- "scope",
- "source",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scope",
+ "source",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -556,44 +521,38 @@ class ImplementationGuideDefinition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "template",
- "parameter",
- "page",
- "resource",
- "grouping",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "template",
+ "parameter",
+ "page",
+ "resource",
+ "grouping",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("page",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ig_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ig_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("page",),
expression="generation='generated' implies source.empty()",
human="Source must be absent if 'generated' is generated",
key="ig-3",
@@ -638,29 +597,24 @@ class ImplementationGuideManifestResource(BackboneElement):
alias="_relativePath",
)
- @field_validator(
- *(
- "relativePath",
- "profile",
- "isExample",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relativePath",
+ "profile",
+ "isExample",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -701,26 +655,21 @@ class ImplementationGuideManifestPage(BackboneElement):
alias="_anchor",
)
- @field_validator(
- *(
- "anchor",
- "title",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "anchor",
+ "title",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -769,32 +718,27 @@ class ImplementationGuideManifest(BackboneElement):
alias="_other",
)
- @field_validator(
- *(
- "other",
- "image",
- "page",
- "resource",
- "rendering",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "other",
+ "image",
+ "page",
+ "resource",
+ "rendering",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1048,84 +992,77 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "manifest",
- "definition",
- "global_",
- "dependsOn",
- "fhirVersion",
- "license",
- "packageId",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manifest",
+ "definition",
+ "global_",
+ "dependsOn",
+ "fhirVersion",
+ "license",
+ "packageId",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("definition",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ig_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ig_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("definition",),
expression="resource.groupingId.all(%context.grouping.id contains $this)",
human="If a resource has a groupingId, it must refer to a grouping defined in the Implementation Guide",
key="ig-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/ingredient.py b/fhircraft/fhir/resources/datatypes/R5/core/ingredient.py
index 526dbe1a..561981e2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/ingredient.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/ingredient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,23 +62,18 @@ class IngredientManufacturer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manufacturer",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manufacturer",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,26 +123,21 @@ def strength(self):
base="strength",
)
- @field_validator(
- *(
- "country",
- "measurementPoint",
- "substance",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "country",
+ "measurementPoint",
+ "substance",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,35 +247,30 @@ def concentration(self):
base="concentration",
)
- @field_validator(
- *(
- "referenceStrength",
- "country",
- "measurementPoint",
- "basis",
- "textConcentration",
- "textPresentation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceStrength",
+ "country",
+ "measurementPoint",
+ "basis",
+ "textConcentration",
+ "textPresentation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -325,23 +310,18 @@ class IngredientSubstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "strength",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strength",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -463,47 +443,42 @@ class Ingredient(DomainResource):
default="Ingredient",
)
- @field_validator(
- *(
- "substance",
- "manufacturer",
- "comment",
- "allergenicIndicator",
- "group",
- "function",
- "role",
- "for_",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "substance",
+ "manufacturer",
+ "comment",
+ "allergenicIndicator",
+ "group",
+ "function",
+ "role",
+ "for_",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/insurance_plan.py b/fhircraft/fhir/resources/datatypes/R5/core/insurance_plan.py
index 99e35dd5..6d416a5d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/insurance_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/insurance_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class InsurancePlanCoverageBenefitLimit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "code",
- "value",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "value",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -98,26 +93,21 @@ class InsurancePlanCoverageBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "limit",
- "requirement",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "limit",
+ "requirement",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -143,26 +133,21 @@ class InsurancePlanCoverage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "network",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "network",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,29 +187,24 @@ class InsurancePlanPlanGeneralCost(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "cost",
- "groupSize",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "cost",
+ "groupSize",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -254,29 +234,24 @@ class InsurancePlanPlanSpecificCostBenefitCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "value",
- "qualifiers",
- "applicability",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "qualifiers",
+ "applicability",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -298,23 +273,18 @@ class InsurancePlanPlanSpecificCostBenefit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "cost",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cost",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -336,23 +306,18 @@ class InsurancePlanPlanSpecificCost(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "benefit",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "benefit",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,35 +355,30 @@ class InsurancePlanPlan(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specificCost",
- "generalCost",
- "network",
- "coverageArea",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specificCost",
+ "generalCost",
+ "network",
+ "coverageArea",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -556,51 +516,46 @@ class InsurancePlan(DomainResource):
default="InsurancePlan",
)
- @field_validator(
- *(
- "plan",
- "coverage",
- "network",
- "endpoint",
- "contact",
- "coverageArea",
- "administeredBy",
- "ownedBy",
- "period",
- "alias",
- "name",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "plan",
+ "coverage",
+ "network",
+ "endpoint",
+ "contact",
+ "coverageArea",
+ "administeredBy",
+ "ownedBy",
+ "period",
+ "alias",
+ "name",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/inventory_item.py b/fhircraft/fhir/resources/datatypes/R5/core/inventory_item.py
index 016dc03b..5a2bf91f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/inventory_item.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/inventory_item.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -77,26 +77,21 @@ class InventoryItemName(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "language",
- "nameType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "language",
+ "nameType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -118,23 +113,18 @@ class InventoryItemResponsibleOrganization(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "organization",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "organization",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -166,23 +156,18 @@ class InventoryItemDescription(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,26 +193,21 @@ class InventoryItemAssociation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "relatedItem",
- "associationType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "relatedItem",
+ "associationType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -334,16 +314,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("characteristicType", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristicType",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -410,32 +389,27 @@ class InventoryItemInstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "location",
- "subject",
- "expiry",
- "lotNumber",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "location",
+ "subject",
+ "expiry",
+ "lotNumber",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -565,51 +539,46 @@ class InventoryItem(DomainResource):
default="InventoryItem",
)
- @field_validator(
- *(
- "productReference",
- "instance",
- "characteristic",
- "association",
- "netContent",
- "baseUnit",
- "inventoryStatus",
- "description",
- "responsibleOrganization",
- "name",
- "code",
- "category",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "productReference",
+ "instance",
+ "characteristic",
+ "association",
+ "netContent",
+ "baseUnit",
+ "inventoryStatus",
+ "description",
+ "responsibleOrganization",
+ "name",
+ "code",
+ "category",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/inventory_report.py b/fhircraft/fhir/resources/datatypes/R5/core/inventory_report.py
index a9c03340..55abcf4f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/inventory_report.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/inventory_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -55,26 +55,21 @@ class InventoryReportInventoryListingItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "quantity",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "quantity",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -109,29 +104,24 @@ class InventoryReportInventoryListing(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "countingDateTime",
- "itemStatus",
- "location",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "countingDateTime",
+ "itemStatus",
+ "location",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -253,47 +243,42 @@ class InventoryReport(DomainResource):
default="InventoryReport",
)
- @field_validator(
- *(
- "note",
- "inventoryListing",
- "reportingPeriod",
- "reporter",
- "reportedDateTime",
- "operationTypeReason",
- "operationType",
- "countType",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "inventoryListing",
+ "reportingPeriod",
+ "reporter",
+ "reportedDateTime",
+ "operationTypeReason",
+ "operationType",
+ "countType",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/invoice.py b/fhircraft/fhir/resources/datatypes/R5/core/invoice.py
index 51087d61..6752ea8f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/invoice.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/invoice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class InvoiceParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -137,23 +132,18 @@ def chargeItem(self):
base="chargeItem",
)
- @field_validator(
- *(
- "priceComponent",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "priceComponent",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -351,54 +341,49 @@ def period(self):
base="period",
)
- @field_validator(
- *(
- "note",
- "paymentTerms",
- "totalGross",
- "totalNet",
- "totalPriceComponent",
- "lineItem",
- "account",
- "issuer",
- "participant",
- "creation",
- "date",
- "recipient",
- "subject",
- "type",
- "cancelledReason",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "paymentTerms",
+ "totalGross",
+ "totalNet",
+ "totalPriceComponent",
+ "lineItem",
+ "account",
+ "issuer",
+ "participant",
+ "creation",
+ "date",
+ "recipient",
+ "subject",
+ "type",
+ "cancelledReason",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/library.py b/fhircraft/fhir/resources/datatypes/R5/core/library.py
index 1f856968..a4b1ce92 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/library.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/library.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -346,80 +346,74 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "content",
- "dataRequirement",
- "parameter",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "type",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "dataRequirement",
+ "parameter",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "type",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/linkage.py b/fhircraft/fhir/resources/datatypes/R5/core/linkage.py
index 413fbe5c..95116914 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/linkage.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/linkage.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -50,23 +50,18 @@ class LinkageItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,40 +145,35 @@ class Linkage(DomainResource):
default="Linkage",
)
- @field_validator(
- *(
- "item",
- "author",
- "active",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "author",
+ "active",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/list.py b/fhircraft/fhir/resources/datatypes/R5/core/list.py
index 1ad2bec2..872e81c7 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/list.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/list.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -76,29 +76,24 @@ class ListEntry(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "date",
- "deleted",
- "flag",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "date",
+ "deleted",
+ "flag",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,50 +232,45 @@ class List(DomainResource):
default="List",
)
- @field_validator(
- *(
- "emptyReason",
- "entry",
- "note",
- "orderedBy",
- "source",
- "date",
- "encounter",
- "subject",
- "code",
- "title",
- "mode",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "emptyReason",
+ "entry",
+ "note",
+ "orderedBy",
+ "source",
+ "date",
+ "encounter",
+ "subject",
+ "code",
+ "title",
+ "mode",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/location.py b/fhircraft/fhir/resources/datatypes/R5/core/location.py
index 09801295..8a26066c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/location.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/location.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -77,26 +77,21 @@ class LocationPosition(BackboneElement):
alias="_altitude",
)
- @field_validator(
- *(
- "altitude",
- "latitude",
- "longitude",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "altitude",
+ "latitude",
+ "longitude",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -260,55 +255,50 @@ class Location(DomainResource):
default="Location",
)
- @field_validator(
- *(
- "endpoint",
- "virtualService",
- "hoursOfOperation",
- "characteristic",
- "partOf",
- "managingOrganization",
- "position",
- "form",
- "address",
- "contact",
- "type",
- "mode",
- "description",
- "alias",
- "name",
- "operationalStatus",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "virtualService",
+ "hoursOfOperation",
+ "characteristic",
+ "partOf",
+ "managingOrganization",
+ "position",
+ "form",
+ "address",
+ "contact",
+ "type",
+ "mode",
+ "description",
+ "alias",
+ "name",
+ "operationalStatus",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/manufactured_item_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/manufactured_item_definition.py
index 3b8dd991..2978b5cb 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/manufactured_item_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/manufactured_item_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -104,14 +104,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -158,29 +159,24 @@ class ManufacturedItemDefinitionComponentConstituent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "hasIngredient",
- "function",
- "location",
- "amount",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "hasIngredient",
+ "function",
+ "location",
+ "amount",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -248,14 +244,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -310,35 +307,30 @@ class ManufacturedItemDefinitionComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "component",
- "property_",
- "constituent",
- "amount",
- "function",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "property_",
+ "constituent",
+ "amount",
+ "function",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -457,47 +449,42 @@ class ManufacturedItemDefinition(DomainResource):
default="ManufacturedItemDefinition",
)
- @field_validator(
- *(
- "component",
- "property_",
- "ingredient",
- "marketingStatus",
- "manufacturer",
- "unitOfPresentation",
- "manufacturedDoseForm",
- "name",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "property_",
+ "ingredient",
+ "marketingStatus",
+ "manufacturer",
+ "unitOfPresentation",
+ "manufacturedDoseForm",
+ "name",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/measure.py b/fhircraft/fhir/resources/datatypes/R5/core/measure.py
index fc3a537f..f1f92606 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/measure.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/measure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,23 +67,18 @@ class MeasureTerm(BackboneElement):
alias="_definition",
)
- @field_validator(
- *(
- "definition",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,50 +135,44 @@ class MeasureGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "aggregateMethod",
- "inputPopulationId",
- "groupDefinition",
- "criteria",
- "description",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "aggregateMethod",
+ "inputPopulationId",
+ "groupDefinition",
+ "criteria",
+ "description",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mea_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mea_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="mea-3",
@@ -227,44 +216,38 @@ class MeasureGroupStratifierComponent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "groupDefinition",
- "criteria",
- "description",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "groupDefinition",
+ "criteria",
+ "description",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mea_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mea_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="mea-5",
@@ -312,47 +295,41 @@ class MeasureGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "component",
- "groupDefinition",
- "criteria",
- "description",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "groupDefinition",
+ "criteria",
+ "description",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mea_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mea_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="mea-4",
@@ -454,65 +431,59 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "stratifier",
- "population",
- "library",
- "improvementNotation",
- "rateAggregation",
- "scoringUnit",
- "scoring",
- "basis",
- "type",
- "description",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "population",
+ "library",
+ "improvementNotation",
+ "rateAggregation",
+ "scoringUnit",
+ "scoring",
+ "basis",
+ "type",
+ "description",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mea_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mea_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="mea-2",
@@ -565,44 +536,38 @@ class MeasureSupplementalData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "criteria",
- "description",
- "usage",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criteria",
+ "description",
+ "usage",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mea_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mea_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="mea-6",
@@ -996,92 +961,86 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "supplementalData",
- "group",
- "guidance",
- "term",
- "improvementNotation",
- "clinicalRecommendationStatement",
- "rationale",
- "rateAggregation",
- "riskAdjustment",
- "type",
- "compositeScoring",
- "scoringUnit",
- "scoring",
- "disclaimer",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "basis",
- "experimental",
- "status",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supplementalData",
+ "group",
+ "guidance",
+ "term",
+ "improvementNotation",
+ "clinicalRecommendationStatement",
+ "rationale",
+ "rateAggregation",
+ "riskAdjustment",
+ "type",
+ "compositeScoring",
+ "scoringUnit",
+ "scoring",
+ "disclaimer",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "basis",
+ "experimental",
+ "status",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/measure_report.py b/fhircraft/fhir/resources/datatypes/R5/core/measure_report.py
index 8ef0809e..04fb18b3 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/measure_report.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/measure_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,35 +85,30 @@ class MeasureReportGroupPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjects",
- "subjectReport",
- "subjectResults",
- "count",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjects",
+ "subjectReport",
+ "subjectResults",
+ "count",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -172,23 +167,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -245,35 +235,30 @@ class MeasureReportGroupStratifierStratumPopulation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "subjects",
- "subjectReport",
- "subjectResults",
- "count",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subjects",
+ "subjectReport",
+ "subjectResults",
+ "count",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -363,23 +348,18 @@ def measureScore(self):
base="measureScore",
)
- @field_validator(
- *(
- "population",
- "component",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "population",
+ "component",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -428,26 +408,21 @@ class MeasureReportGroupStratifier(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "stratum",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratum",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -522,32 +497,27 @@ def measureScore(self):
base="measureScore",
)
- @field_validator(
- *(
- "stratifier",
- "population",
- "subject",
- "code",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "stratifier",
+ "population",
+ "subject",
+ "code",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -716,54 +686,49 @@ class MeasureReport(DomainResource):
default="MeasureReport",
)
- @field_validator(
- *(
- "evaluatedResource",
- "supplementalData",
- "group",
- "improvementNotation",
- "scoring",
- "inputParameters",
- "period",
- "location",
- "reportingVendor",
- "reporter",
- "date",
- "subject",
- "measure",
- "dataUpdateType",
- "type",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "evaluatedResource",
+ "supplementalData",
+ "group",
+ "improvementNotation",
+ "scoring",
+ "inputParameters",
+ "period",
+ "location",
+ "reportingVendor",
+ "reporter",
+ "date",
+ "subject",
+ "measure",
+ "dataUpdateType",
+ "type",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication.py b/fhircraft/fhir/resources/datatypes/R5/core/medication.py
index 695eb98d..d9968fca 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,23 +80,18 @@ def strength(self):
base="strength",
)
- @field_validator(
- *(
- "isActive",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "isActive",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -137,23 +132,18 @@ class MedicationBatch(BackboneElement):
alias="_expirationDate",
)
- @field_validator(
- *(
- "expirationDate",
- "lotNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expirationDate",
+ "lotNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -261,46 +251,41 @@ class Medication(DomainResource):
default="Medication",
)
- @field_validator(
- *(
- "definition",
- "batch",
- "ingredient",
- "totalVolume",
- "doseForm",
- "marketingAuthorizationHolder",
- "status",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "batch",
+ "ingredient",
+ "totalVolume",
+ "doseForm",
+ "marketingAuthorizationHolder",
+ "status",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication_administration.py b/fhircraft/fhir/resources/datatypes/R5/core/medication_administration.py
index 757c450d..9a3553df 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication_administration.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication_administration.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class MedicationAdministrationPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -129,32 +124,27 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "dose",
- "method",
- "route",
- "site",
- "text",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dose",
+ "method",
+ "route",
+ "site",
+ "text",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -349,69 +339,63 @@ def occurence(self):
base="occurence",
)
- @field_validator(
- *(
- "eventHistory",
- "dosage",
- "note",
- "device",
- "request",
- "reason",
- "performer",
- "subPotentReason",
- "isSubPotent",
- "recorded",
- "supportingInformation",
- "encounter",
- "subject",
- "medication",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "dosage",
+ "note",
+ "device",
+ "request",
+ "reason",
+ "performer",
+ "subPotentReason",
+ "isSubPotent",
+ "recorded",
+ "supportingInformation",
+ "encounter",
+ "subject",
+ "medication",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("dosage",), mode="after", check_fields=None)
- @classmethod
- def FHIR_mad_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_mad_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("dosage",),
expression="(dose.exists() or rate.exists() or text.exists())",
human="If dosage attribute is present then SHALL have at least one of dosage.text or dosage.dose or dosage.rate[x]",
key="mad-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication_dispense.py b/fhircraft/fhir/resources/datatypes/R5/core/medication_dispense.py
index ca4cb55b..db9d2911 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication_dispense.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication_dispense.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class MedicationDispensePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -109,29 +104,24 @@ class MedicationDispenseSubstitution(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "responsibleParty",
- "reason",
- "type",
- "wasSubstituted",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "responsibleParty",
+ "reason",
+ "type",
+ "wasSubstituted",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -336,64 +326,59 @@ class MedicationDispense(DomainResource):
default="MedicationDispense",
)
- @field_validator(
- *(
- "eventHistory",
- "substitution",
- "dosageInstruction",
- "renderedDosageInstruction",
- "note",
- "receiver",
- "destination",
- "whenHandedOver",
- "whenPrepared",
- "recorded",
- "daysSupply",
- "quantity",
- "type",
- "authorizingPrescription",
- "location",
- "performer",
- "supportingInformation",
- "encounter",
- "subject",
- "medication",
- "category",
- "statusChanged",
- "notPerformedReason",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "substitution",
+ "dosageInstruction",
+ "renderedDosageInstruction",
+ "note",
+ "receiver",
+ "destination",
+ "whenHandedOver",
+ "whenPrepared",
+ "recorded",
+ "daysSupply",
+ "quantity",
+ "type",
+ "authorizingPrescription",
+ "location",
+ "performer",
+ "supportingInformation",
+ "encounter",
+ "subject",
+ "medication",
+ "category",
+ "statusChanged",
+ "notPerformedReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication_knowledge.py b/fhircraft/fhir/resources/datatypes/R5/core/medication_knowledge.py
index bb84659f..e382c172 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication_knowledge.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication_knowledge.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -64,23 +64,18 @@ class MedicationKnowledgeRelatedMedicationKnowledge(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -102,23 +97,18 @@ class MedicationKnowledgeMonograph(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,26 +154,21 @@ def cost(self):
base="cost",
)
- @field_validator(
- *(
- "source",
- "type",
- "effectiveDate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "type",
+ "effectiveDate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,23 +204,18 @@ class MedicationKnowledgeMonitoringProgram(BackboneElement):
alias="_name",
)
- @field_validator(
- *(
- "name",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,23 +237,18 @@ class MedicationKnowledgeIndicationGuidelineDosingGuidelineDosage(BackboneElemen
default=None,
)
- @field_validator(
- *(
- "dosage",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosage",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -312,14 +287,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -362,29 +338,24 @@ class MedicationKnowledgeIndicationGuidelineDosingGuideline(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "patientCharacteristic",
- "administrationTreatment",
- "dosage",
- "treatmentIntent",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "patientCharacteristic",
+ "administrationTreatment",
+ "dosage",
+ "treatmentIntent",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -408,23 +379,18 @@ class MedicationKnowledgeIndicationGuideline(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "dosingGuideline",
- "indication",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "dosingGuideline",
+ "indication",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -471,23 +437,18 @@ def source(self):
base="source",
)
- @field_validator(
- *(
- "classification",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "classification",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -542,26 +503,21 @@ def cost(self):
base="cost",
)
- @field_validator(
- *(
- "source",
- "type",
- "effectiveDate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "type",
+ "effectiveDate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -592,23 +548,18 @@ class MedicationKnowledgePackaging(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "packagedProduct",
- "cost",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packagedProduct",
+ "cost",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -645,14 +596,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -698,29 +650,24 @@ class MedicationKnowledgeStorageGuideline(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "environmentalSetting",
- "stabilityDuration",
- "note",
- "reference",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "environmentalSetting",
+ "stabilityDuration",
+ "note",
+ "reference",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -747,23 +694,18 @@ class MedicationKnowledgeRegulatorySubstitution(BackboneElement):
alias="_allowed",
)
- @field_validator(
- *(
- "allowed",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "allowed",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -785,23 +727,18 @@ class MedicationKnowledgeRegulatoryMaxDispense(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -831,29 +768,24 @@ class MedicationKnowledgeRegulatory(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "maxDispense",
- "schedule",
- "substitution",
- "regulatoryAuthority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxDispense",
+ "schedule",
+ "substitution",
+ "regulatoryAuthority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -894,23 +826,18 @@ def strength(self):
base="strength",
)
- @field_validator(
- *(
- "type",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -974,14 +901,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1026,32 +954,27 @@ class MedicationKnowledgeDefinitional(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "drugCharacteristic",
- "ingredient",
- "intendedRoute",
- "doseForm",
- "definition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "drugCharacteristic",
+ "ingredient",
+ "intendedRoute",
+ "doseForm",
+ "definition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1217,57 +1140,52 @@ class MedicationKnowledge(DomainResource):
default="MedicationKnowledge",
)
- @field_validator(
- *(
- "definitional",
- "regulatory",
- "storageGuideline",
- "clinicalUseIssue",
- "packaging",
- "medicineClassification",
- "indicationGuideline",
- "monitoringProgram",
- "cost",
- "preparationInstruction",
- "monograph",
- "productType",
- "associatedMedication",
- "relatedMedicationKnowledge",
- "name",
- "intendedJurisdiction",
- "author",
- "status",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definitional",
+ "regulatory",
+ "storageGuideline",
+ "clinicalUseIssue",
+ "packaging",
+ "medicineClassification",
+ "indicationGuideline",
+ "monitoringProgram",
+ "cost",
+ "preparationInstruction",
+ "monograph",
+ "productType",
+ "associatedMedication",
+ "relatedMedicationKnowledge",
+ "name",
+ "intendedJurisdiction",
+ "author",
+ "status",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication_request.py b/fhircraft/fhir/resources/datatypes/R5/core/medication_request.py
index 6d408826..a6befa13 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class MedicationRequestDispenseRequestInitialFill(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "duration",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "duration",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,44 +127,39 @@ class MedicationRequestDispenseRequest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "doseAdministrationAid",
- "dispenserInstruction",
- "dispenser",
- "expectedSupplyDuration",
- "quantity",
- "numberOfRepeatsAllowed",
- "validityPeriod",
- "dispenseInterval",
- "initialFill",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "doseAdministrationAid",
+ "dispenserInstruction",
+ "dispenser",
+ "expectedSupplyDuration",
+ "quantity",
+ "numberOfRepeatsAllowed",
+ "validityPeriod",
+ "dispenseInterval",
+ "initialFill",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,14 +197,15 @@ def allowed(self):
base="allowed",
)
- @field_validator(
- *("reason", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -462,70 +453,65 @@ class MedicationRequest(DomainResource):
default="MedicationRequest",
)
- @field_validator(
- *(
- "eventHistory",
- "substitution",
- "dispenseRequest",
- "dosageInstruction",
- "effectiveDosePeriod",
- "renderedDosageInstruction",
- "note",
- "insurance",
- "courseOfTherapyType",
- "reason",
- "recorder",
- "device",
- "performer",
- "performerType",
- "reported",
- "requester",
- "authoredOn",
- "supportingInformation",
- "encounter",
- "informationSource",
- "subject",
- "medication",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "statusChanged",
- "statusReason",
- "status",
- "groupIdentifier",
- "priorPrescription",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "eventHistory",
+ "substitution",
+ "dispenseRequest",
+ "dosageInstruction",
+ "effectiveDosePeriod",
+ "renderedDosageInstruction",
+ "note",
+ "insurance",
+ "courseOfTherapyType",
+ "reason",
+ "recorder",
+ "device",
+ "performer",
+ "performerType",
+ "reported",
+ "requester",
+ "authoredOn",
+ "supportingInformation",
+ "encounter",
+ "informationSource",
+ "subject",
+ "medication",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "statusChanged",
+ "statusReason",
+ "status",
+ "groupIdentifier",
+ "priorPrescription",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medication_statement.py b/fhircraft/fhir/resources/datatypes/R5/core/medication_statement.py
index 53e15f76..51f84c7d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medication_statement.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medication_statement.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -58,23 +58,18 @@ class MedicationStatementAdherence(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reason",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -246,53 +241,48 @@ def effective(self):
base="effective",
)
- @field_validator(
- *(
- "adherence",
- "dosage",
- "renderedDosageInstruction",
- "relatedClinicalInformation",
- "note",
- "reason",
- "derivedFrom",
- "informationSource",
- "dateAsserted",
- "encounter",
- "subject",
- "medication",
- "category",
- "status",
- "partOf",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "adherence",
+ "dosage",
+ "renderedDosageInstruction",
+ "relatedClinicalInformation",
+ "note",
+ "reason",
+ "derivedFrom",
+ "informationSource",
+ "dateAsserted",
+ "encounter",
+ "subject",
+ "medication",
+ "category",
+ "status",
+ "partOf",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/medicinal_product_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/medicinal_product_definition.py
index b2189b2a..2af03617 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/medicinal_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/medicinal_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -62,23 +62,18 @@ class MedicinalProductDefinitionContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contact",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -105,23 +100,18 @@ class MedicinalProductDefinitionNamePart(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "part",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "part",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -147,26 +137,21 @@ class MedicinalProductDefinitionNameUsage(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "language",
- "jurisdiction",
- "country",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "jurisdiction",
+ "country",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -201,29 +186,24 @@ class MedicinalProductDefinitionName(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "usage",
- "part",
- "type",
- "productName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "usage",
+ "part",
+ "type",
+ "productName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -245,23 +225,18 @@ class MedicinalProductDefinitionCrossReference(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "type",
- "product",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "product",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -291,29 +266,24 @@ class MedicinalProductDefinitionOperation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "confidentialityIndicator",
- "organization",
- "effectiveDate",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "confidentialityIndicator",
+ "organization",
+ "effectiveDate",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -386,14 +356,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -615,66 +586,61 @@ class MedicinalProductDefinition(DomainResource):
default="MedicinalProductDefinition",
)
- @field_validator(
- *(
- "characteristic",
- "operation",
- "crossReference",
- "name",
- "code",
- "clinicalTrial",
- "contact",
- "masterFile",
- "attachedDocument",
- "impurity",
- "ingredient",
- "comprisedOf",
- "packagedMedicinalProduct",
- "marketingStatus",
- "classification",
- "pediatricUseIndicator",
- "specialMeasures",
- "additionalMonitoringIndicator",
- "legalStatusOfSupply",
- "indication",
- "route",
- "combinedPharmaceuticalDoseForm",
- "description",
- "statusDate",
- "status",
- "version",
- "domain",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "operation",
+ "crossReference",
+ "name",
+ "code",
+ "clinicalTrial",
+ "contact",
+ "masterFile",
+ "attachedDocument",
+ "impurity",
+ "ingredient",
+ "comprisedOf",
+ "packagedMedicinalProduct",
+ "marketingStatus",
+ "classification",
+ "pediatricUseIndicator",
+ "specialMeasures",
+ "additionalMonitoringIndicator",
+ "legalStatusOfSupply",
+ "indication",
+ "route",
+ "combinedPharmaceuticalDoseForm",
+ "description",
+ "statusDate",
+ "status",
+ "version",
+ "domain",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/message_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/message_definition.py
index 82ddbe5a..a8626ddc 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/message_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/message_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,29 +86,24 @@ class MessageDefinitionFocus(BackboneElement):
alias="_max",
)
- @field_validator(
- *(
- "max",
- "min",
- "profile",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "max",
+ "min",
+ "profile",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -140,23 +135,18 @@ class MessageDefinitionAllowedResponse(BackboneElement):
alias="_situation",
)
- @field_validator(
- *(
- "situation",
- "message",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "situation",
+ "message",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -449,85 +439,78 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "graph",
- "allowedResponse",
- "responseRequired",
- "focus",
- "category",
- "parent",
- "base",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "replaces",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "graph",
+ "allowedResponse",
+ "responseRequired",
+ "focus",
+ "category",
+ "parent",
+ "base",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "replaces",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("focus",), mode="after", check_fields=None)
- @classmethod
- def FHIR_md_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_md_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("focus",),
expression="max='*' or (max.toInteger() > 0)",
human="Max must be postive int or *",
key="md-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/message_header.py b/fhircraft/fhir/resources/datatypes/R5/core/message_header.py
index 701b2ef7..0d72563f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/message_header.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/message_header.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,26 +84,21 @@ def endpoint(self):
base="endpoint",
)
- @field_validator(
- *(
- "receiver",
- "target",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "target",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,29 +172,24 @@ def endpoint(self):
base="endpoint",
)
- @field_validator(
- *(
- "contact",
- "version",
- "software",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contact",
+ "version",
+ "software",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -239,26 +229,21 @@ class MessageHeaderResponse(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "details",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "details",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -386,46 +371,41 @@ def event(self):
base="event",
)
- @field_validator(
- *(
- "definition",
- "focus",
- "response",
- "reason",
- "responsible",
- "source",
- "author",
- "sender",
- "destination",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "definition",
+ "focus",
+ "response",
+ "reason",
+ "responsible",
+ "source",
+ "author",
+ "sender",
+ "destination",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/metadata_resource.py b/fhircraft/fhir/resources/datatypes/R5/core/metadata_resource.py
index 9d9de720..8ae4d1ce 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/metadata_resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/metadata_resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -43,6 +43,7 @@
)
from .canonical_resource import CanonicalResource
+
class MetadataResource(CanonicalResource):
"""
Common Interface declaration for conformance and knowledge artifact resources.
@@ -292,74 +293,68 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/molecular_sequence.py b/fhircraft/fhir/resources/datatypes/R5/core/molecular_sequence.py
index 60d883bf..3e5bbdc5 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/molecular_sequence.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/molecular_sequence.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,35 +109,30 @@ def sequence(self):
base="sequence",
)
- @field_validator(
- *(
- "strand",
- "orientation",
- "windowEnd",
- "windowStart",
- "chromosome",
- "genomeAssembly",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "strand",
+ "orientation",
+ "windowEnd",
+ "windowStart",
+ "chromosome",
+ "genomeAssembly",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -196,29 +191,24 @@ class MolecularSequenceRelativeEdit(BackboneElement):
alias="_replacedSequence",
)
- @field_validator(
- *(
- "replacedSequence",
- "replacementSequence",
- "end",
- "start",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "replacedSequence",
+ "replacementSequence",
+ "end",
+ "start",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -257,56 +247,49 @@ class MolecularSequenceRelative(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "edit",
- "startingSequence",
- "sequenceRange",
- "ordinalPosition",
- "coordinateSystem",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "edit",
+ "startingSequence",
+ "sequenceRange",
+ "ordinalPosition",
+ "coordinateSystem",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("startingSequence",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("startingSequence",),
expression="chromosome.exists() = genomeAssembly.exists()",
human="Both genomeAssembly and chromosome must be both contained if either one of them is contained",
key="msq-5",
severity="error",
)
- @field_validator(*("startingSequence",), mode="after", check_fields=None)
- @classmethod
- def FHIR_msq_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_msq_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("startingSequence",),
expression="genomeAssembly.exists() xor sequence.exists()",
human="Have and only have one of the following elements in startingSequence: 1. genomeAssembly; 2 sequence",
key="msq-6",
@@ -423,47 +406,42 @@ class MolecularSequence(DomainResource):
default="MolecularSequence",
)
- @field_validator(
- *(
- "relative",
- "formatted",
- "literal",
- "performer",
- "device",
- "specimen",
- "focus",
- "subject",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relative",
+ "formatted",
+ "literal",
+ "performer",
+ "device",
+ "specimen",
+ "focus",
+ "subject",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/naming_system.py b/fhircraft/fhir/resources/datatypes/R5/core/naming_system.py
index 04686f2b..370d4517 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/naming_system.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/naming_system.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -100,35 +100,30 @@ class NamingSystemUniqueId(BackboneElement):
alias="_authoritative",
)
- @field_validator(
- *(
- "authoritative",
- "period",
- "comment",
- "preferred",
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authoritative",
+ "period",
+ "comment",
+ "preferred",
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -420,79 +415,73 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "uniqueId",
- "usage",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "type",
- "responsible",
- "contact",
- "publisher",
- "date",
- "experimental",
- "kind",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uniqueId",
+ "usage",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "type",
+ "responsible",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "kind",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_intake.py b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_intake.py
index 40c4c76b..465b6dca 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_intake.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_intake.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -84,38 +84,33 @@ class NutritionIntakeConsumedItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "notConsumedReason",
- "notConsumed",
- "rate",
- "amount",
- "schedule",
- "nutritionProduct",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "notConsumedReason",
+ "notConsumed",
+ "rate",
+ "amount",
+ "schedule",
+ "nutritionProduct",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -137,23 +132,18 @@ class NutritionIntakeIngredientLabel(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "nutrient",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "nutrient",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,23 +165,18 @@ class NutritionIntakePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,55 +375,50 @@ def reported(self):
base="reported",
)
- @field_validator(
- *(
- "note",
- "reason",
- "derivedFrom",
- "location",
- "performer",
- "ingredientLabel",
- "consumedItem",
- "recorded",
- "encounter",
- "subject",
- "code",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "reason",
+ "derivedFrom",
+ "location",
+ "performer",
+ "ingredientLabel",
+ "consumedItem",
+ "recorded",
+ "encounter",
+ "subject",
+ "code",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_order.py b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_order.py
index 6e4575e8..a13dfd2e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_order.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_order.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -69,26 +69,21 @@ class NutritionOrderOralDietSchedule(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "asNeededFor",
- "asNeeded",
- "timing",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "asNeededFor",
+ "asNeeded",
+ "timing",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -110,23 +105,18 @@ class NutritionOrderOralDietNutrient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -148,23 +138,18 @@ class NutritionOrderOralDietTexture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "foodType",
- "modifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "foodType",
+ "modifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,35 +192,30 @@ class NutritionOrderOralDiet(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "fluidConsistencyType",
- "texture",
- "nutrient",
- "schedule",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "fluidConsistencyType",
+ "texture",
+ "nutrient",
+ "schedule",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -266,26 +246,21 @@ class NutritionOrderSupplementSchedule(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "asNeededFor",
- "asNeeded",
- "timing",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "asNeededFor",
+ "asNeeded",
+ "timing",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -329,32 +304,27 @@ class NutritionOrderSupplement(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "quantity",
- "schedule",
- "productName",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "quantity",
+ "schedule",
+ "productName",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -385,26 +355,21 @@ class NutritionOrderEnteralFormulaAdditive(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "quantity",
- "productName",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "productName",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -435,26 +400,21 @@ class NutritionOrderEnteralFormulaAdministrationSchedule(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "asNeededFor",
- "asNeeded",
- "timing",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "asNeededFor",
+ "asNeeded",
+ "timing",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -491,23 +451,18 @@ def rate(self):
base="rate",
)
- @field_validator(
- *(
- "quantity",
- "schedule",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "schedule",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -576,44 +531,39 @@ class NutritionOrderEnteralFormula(BackboneElement):
alias="_administrationInstruction",
)
- @field_validator(
- *(
- "administrationInstruction",
- "maxVolumeToDeliver",
- "administration",
- "routeOfAdministration",
- "caloricDensity",
- "additive",
- "deliveryDevice",
- "baseFormulaProductName",
- "baseFormulaType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "administrationInstruction",
+ "maxVolumeToDeliver",
+ "administration",
+ "routeOfAdministration",
+ "caloricDensity",
+ "additive",
+ "deliveryDevice",
+ "baseFormulaProductName",
+ "baseFormulaType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -812,60 +762,55 @@ class NutritionOrder(DomainResource):
default="NutritionOrder",
)
- @field_validator(
- *(
- "note",
- "enteralFormula",
- "supplement",
- "oralDiet",
- "outsideFoodAllowed",
- "excludeFoodModifier",
- "foodPreferenceModifier",
- "allergyIntolerance",
- "performer",
- "orderer",
- "dateTime",
- "supportingInformation",
- "encounter",
- "subject",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "basedOn",
- "instantiates",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "enteralFormula",
+ "supplement",
+ "oralDiet",
+ "outsideFoodAllowed",
+ "excludeFoodModifier",
+ "foodPreferenceModifier",
+ "allergyIntolerance",
+ "performer",
+ "orderer",
+ "dateTime",
+ "supportingInformation",
+ "encounter",
+ "subject",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "basedOn",
+ "instantiates",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_product.py b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_product.py
index da07aa52..019f5d40 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/nutrition_product.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/nutrition_product.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -59,23 +59,18 @@ class NutritionProductNutrient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -97,23 +92,18 @@ class NutritionProductIngredient(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,14 +167,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -262,38 +253,33 @@ class NutritionProductInstance(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "biologicalSourceEvent",
- "useBy",
- "expiry",
- "lotNumber",
- "name",
- "identifier",
- "quantity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "biologicalSourceEvent",
+ "useBy",
+ "expiry",
+ "lotNumber",
+ "name",
+ "identifier",
+ "quantity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -405,47 +391,42 @@ class NutritionProduct(DomainResource):
default="NutritionProduct",
)
- @field_validator(
- *(
- "note",
- "instance",
- "characteristic",
- "knownAllergen",
- "ingredient",
- "nutrient",
- "manufacturer",
- "category",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "instance",
+ "characteristic",
+ "knownAllergen",
+ "ingredient",
+ "nutrient",
+ "manufacturer",
+ "category",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/observation.py b/fhircraft/fhir/resources/datatypes/R5/core/observation.py
index fe80d5ec..9cf01bb2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/observation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/observation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,26 +80,21 @@ class ObservationTriggeredBy(BackboneElement):
alias="_reason",
)
- @field_validator(
- *(
- "reason",
- "type",
- "observation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reason",
+ "type",
+ "observation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -146,38 +141,33 @@ class ObservationReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "normalValue",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "normalValue",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -224,38 +214,33 @@ class ObservationComponentReferenceRange(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "age",
- "appliesTo",
- "type",
- "normalValue",
- "high",
- "low",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "age",
+ "appliesTo",
+ "type",
+ "normalValue",
+ "high",
+ "low",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -369,29 +354,24 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "referenceRange",
- "interpretation",
- "dataAbsentReason",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "referenceRange",
+ "interpretation",
+ "dataAbsentReason",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -724,85 +704,78 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "component",
- "derivedFrom",
- "hasMember",
- "referenceRange",
- "device",
- "specimen",
- "method",
- "bodyStructure",
- "bodySite",
- "note",
- "interpretation",
- "dataAbsentReason",
- "performer",
- "issued",
- "encounter",
- "focus",
- "subject",
- "code",
- "category",
- "status",
- "partOf",
- "triggeredBy",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "derivedFrom",
+ "hasMember",
+ "referenceRange",
+ "device",
+ "specimen",
+ "method",
+ "bodyStructure",
+ "bodySite",
+ "note",
+ "interpretation",
+ "dataAbsentReason",
+ "performer",
+ "issued",
+ "encounter",
+ "focus",
+ "subject",
+ "code",
+ "category",
+ "status",
+ "partOf",
+ "triggeredBy",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("specimen",), mode="after", check_fields=None)
- @classmethod
- def FHIR_obs_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_obs_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("specimen",),
expression="(reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)",
human="If Observation.specimen is a reference to Group, the group can only have specimens",
key="obs-9",
severity="error",
)
- @field_validator(*("referenceRange",), mode="after", check_fields=None)
- @classmethod
- def FHIR_obs_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_obs_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("referenceRange",),
expression="low.exists() or high.exists() or text.exists()",
human="Must have at least a low or a high or text",
key="obs-3",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/observation_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/observation_definition.py
index 533e1f62..404c70dd 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/observation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/observation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -136,53 +136,48 @@ class ObservationDefinitionQualifiedValue(BackboneElement):
alias="_criticalCodedValueSet",
)
- @field_validator(
- *(
- "criticalCodedValueSet",
- "abnormalCodedValueSet",
- "normalCodedValueSet",
- "validCodedValueSet",
- "range",
- "rangeCategory",
- "condition",
- "gestationalAge",
- "age",
- "gender",
- "appliesTo",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criticalCodedValueSet",
+ "abnormalCodedValueSet",
+ "normalCodedValueSet",
+ "validCodedValueSet",
+ "range",
+ "rangeCategory",
+ "condition",
+ "gestationalAge",
+ "age",
+ "gender",
+ "appliesTo",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -279,53 +274,48 @@ class ObservationDefinitionComponentQualifiedValue(BackboneElement):
alias="_criticalCodedValueSet",
)
- @field_validator(
- *(
- "criticalCodedValueSet",
- "abnormalCodedValueSet",
- "normalCodedValueSet",
- "validCodedValueSet",
- "range",
- "rangeCategory",
- "condition",
- "gestationalAge",
- "age",
- "gender",
- "appliesTo",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "criticalCodedValueSet",
+ "abnormalCodedValueSet",
+ "normalCodedValueSet",
+ "validCodedValueSet",
+ "range",
+ "rangeCategory",
+ "condition",
+ "gestationalAge",
+ "age",
+ "gender",
+ "appliesTo",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -362,29 +352,24 @@ class ObservationDefinitionComponent(BackboneElement):
)
)
- @field_validator(
- *(
- "qualifiedValue",
- "permittedUnit",
- "permittedDataType",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualifiedValue",
+ "permittedUnit",
+ "permittedDataType",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -710,85 +695,79 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "component",
- "hasMember",
- "qualifiedValue",
- "permittedUnit",
- "preferredReportName",
- "device",
- "specimen",
- "method",
- "bodySite",
- "multipleResultsAllowed",
- "permittedDataType",
- "code",
- "category",
- "performerType",
- "subject",
- "derivedFromUri",
- "derivedFromCanonical",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "hasMember",
+ "qualifiedValue",
+ "permittedUnit",
+ "preferredReportName",
+ "device",
+ "specimen",
+ "method",
+ "bodySite",
+ "multipleResultsAllowed",
+ "permittedDataType",
+ "code",
+ "category",
+ "performerType",
+ "subject",
+ "derivedFromUri",
+ "derivedFromCanonical",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("component",), mode="after", check_fields=None)
- @classmethod
- def FHIR_obd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_obd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("component",),
expression="permittedUnit.exists() implies (permittedDataType = 'Quantity').exists()",
human="If permittedUnit exists, then permittedDataType=Quantity must exist.",
key="obd-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/operation_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/operation_definition.py
index f612641b..619eb162 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/operation_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/operation_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,23 +68,18 @@ class OperationDefinitionParameterBinding(BackboneElement):
alias="_valueSet",
)
- @field_validator(
- *(
- "valueSet",
- "strength",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "valueSet",
+ "strength",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -116,23 +111,18 @@ class OperationDefinitionParameterReferencedFrom(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "source",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "source",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -248,56 +238,51 @@ class OperationDefinitionParameter(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "part",
- "referencedFrom",
- "binding",
- "searchType",
- "targetProfile",
- "allowedType",
- "type",
- "documentation",
- "max",
- "min",
- "scope",
- "use",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "referencedFrom",
+ "binding",
+ "searchType",
+ "targetProfile",
+ "allowedType",
+ "type",
+ "documentation",
+ "max",
+ "min",
+ "scope",
+ "use",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -329,23 +314,18 @@ class OperationDefinitionOverload(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "parameterName",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "parameterName",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -663,126 +643,116 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "overload",
- "parameter",
- "outputProfile",
- "inputProfile",
- "instance",
- "type",
- "system",
- "resource",
- "base",
- "comment",
- "code",
- "affectsState",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "kind",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "overload",
+ "parameter",
+ "outputProfile",
+ "inputProfile",
+ "instance",
+ "type",
+ "system",
+ "resource",
+ "base",
+ "comment",
+ "code",
+ "affectsState",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "kind",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="type.exists() or part.exists()",
human="Either a type must be provided, or parts",
key="opd-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="searchType.exists() implies type = 'string'",
human="A search type can only be specified for parameters of type string",
key="opd-2",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="targetProfile.exists() implies (type = 'Reference' or type = 'canonical' or type.memberOf('http://hl7.org/fhir/ValueSet/resource-types'))",
human="A targetProfile can only be specified for parameters of type Reference, Canonical, or a Resource",
key="opd-3",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_opd_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_opd_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="(use = 'out') implies searchType.empty()",
human="SearchParamType can only be specified on in parameters",
key="opd-4",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/operation_outcome.py b/fhircraft/fhir/resources/datatypes/R5/core/operation_outcome.py
index f6df649b..36d7dfd2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/operation_outcome.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/operation_outcome.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -86,35 +86,30 @@ class OperationOutcomeIssue(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "location",
- "diagnostics",
- "details",
- "code",
- "severity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "location",
+ "diagnostics",
+ "details",
+ "code",
+ "severity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -185,38 +180,33 @@ class OperationOutcome(DomainResource):
default="OperationOutcome",
)
- @field_validator(
- *(
- "issue",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issue",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/organization.py b/fhircraft/fhir/resources/datatypes/R5/core/organization.py
index 8ce926eb..74e4a5da 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/organization.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/organization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,29 +65,24 @@ class OrganizationQualification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "issuer",
- "period",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issuer",
+ "period",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -214,71 +209,64 @@ class Organization(DomainResource):
default="Organization",
)
- @field_validator(
- *(
- "qualification",
- "endpoint",
- "partOf",
- "contact",
- "description",
- "alias",
- "name",
- "type",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "qualification",
+ "endpoint",
+ "partOf",
+ "contact",
+ "description",
+ "alias",
+ "name",
+ "type",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="telecom.where(use = 'home').empty()",
human="The telecom of an organization can never be of use 'home'",
key="org-3",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="address.where(use = 'home').empty()",
human="The address of an organization can never be of use 'home'",
key="org-4",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/organization_affiliation.py b/fhircraft/fhir/resources/datatypes/R5/core/organization_affiliation.py
index 118ee25b..2015d17b 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/organization_affiliation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/organization_affiliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -146,73 +146,66 @@ class OrganizationAffiliation(DomainResource):
default="OrganizationAffiliation",
)
- @field_validator(
- *(
- "endpoint",
- "contact",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "network",
- "participatingOrganization",
- "organization",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "contact",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "network",
+ "participatingOrganization",
+ "organization",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="telecom.where(use = 'home').empty()",
human="The telecom of an organization can never be of use 'home'",
key="org-3",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_org_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_org_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="address.where(use = 'home').empty()",
human="The address of an organization can never be of use 'home'",
key="org-4",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/packaged_product_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/packaged_product_definition.py
index ddf10ad6..cbb44375 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/packaged_product_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/packaged_product_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,23 +61,18 @@ class PackagedProductDefinitionLegalStatusOfSupply(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "jurisdiction",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "jurisdiction",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,14 +127,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -170,23 +166,18 @@ class PackagedProductDefinitionPackagingContainedItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "item",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "item",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -256,50 +247,45 @@ class PackagedProductDefinitionPackaging(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "packaging",
- "containedItem",
- "property_",
- "manufacturer",
- "shelfLifeStorage",
- "alternateMaterial",
- "material",
- "quantity",
- "componentPart",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "packaging",
+ "containedItem",
+ "property_",
+ "manufacturer",
+ "shelfLifeStorage",
+ "alternateMaterial",
+ "material",
+ "quantity",
+ "componentPart",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -354,14 +340,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -521,52 +508,47 @@ class PackagedProductDefinition(DomainResource):
default="PackagedProductDefinition",
)
- @field_validator(
- *(
- "characteristic",
- "packaging",
- "attachedDocument",
- "manufacturer",
- "copackagedIndicator",
- "marketingStatus",
- "legalStatusOfSupply",
- "description",
- "containedItemQuantity",
- "statusDate",
- "status",
- "packageFor",
- "type",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "characteristic",
+ "packaging",
+ "attachedDocument",
+ "manufacturer",
+ "copackagedIndicator",
+ "marketingStatus",
+ "legalStatusOfSupply",
+ "description",
+ "containedItemQuantity",
+ "statusDate",
+ "status",
+ "packageFor",
+ "type",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/parameters.py b/fhircraft/fhir/resources/datatypes/R5/core/parameters.py
index 2b2192a2..8ce24ec1 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/parameters.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/parameters.py
@@ -5,7 +5,7 @@
from typing import Literal, Optional, Union
# Pydantic modules
-from pydantic import BaseModel, Field, field_validator, model_validator
+from pydantic import BaseModel, Field, model_validator
from pydantic.fields import FieldInfo
import fhircraft
@@ -426,23 +426,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "part",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "part",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -530,7 +525,9 @@ class Parameters(Resource):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Parameters"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Parameters"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -559,28 +556,27 @@ class Parameters(Resource):
default="Parameters",
)
- @field_validator(
- *("parameter", "language", "implicitRules", "meta"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("parameter",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("parameter",),
expression="(part.exists() and value.empty() and resource.empty()) or (part.empty() and (value.exists() xor resource.exists()))",
human="A parameter must have one and only one of (value, resource, part)",
key="inv-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/patient.py b/fhircraft/fhir/resources/datatypes/R5/core/patient.py
index e9d9a7a8..a469ffc6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/patient.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/patient.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -85,38 +85,33 @@ class PatientContact(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "organization",
- "gender",
- "address",
- "telecom",
- "name",
- "relationship",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "organization",
+ "gender",
+ "address",
+ "telecom",
+ "name",
+ "relationship",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -143,23 +138,18 @@ class PatientCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,23 +176,18 @@ class PatientLink(BackboneElement):
alias="_type",
)
- @field_validator(
- *(
- "type",
- "other",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "other",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -390,63 +375,57 @@ def multipleBirth(self):
base="multipleBirth",
)
- @field_validator(
- *(
- "link",
- "managingOrganization",
- "generalPractitioner",
- "communication",
- "contact",
- "photo",
- "maritalStatus",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "managingOrganization",
+ "generalPractitioner",
+ "communication",
+ "contact",
+ "photo",
+ "maritalStatus",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("contact",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pat_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pat_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contact",),
expression="name.exists() or telecom.exists() or address.exists() or organization.exists()",
human="SHALL at least contain a contact's details or a reference to an organization",
key="pat-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/payment_notice.py b/fhircraft/fhir/resources/datatypes/R5/core/payment_notice.py
index 9cc49445..8fc3b98d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/payment_notice.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/payment_notice.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -161,49 +161,44 @@ class PaymentNotice(DomainResource):
default="PaymentNotice",
)
- @field_validator(
- *(
- "paymentStatus",
- "amount",
- "recipient",
- "payee",
- "paymentDate",
- "payment",
- "reporter",
- "created",
- "response",
- "request",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "paymentStatus",
+ "amount",
+ "recipient",
+ "payee",
+ "paymentDate",
+ "payment",
+ "reporter",
+ "created",
+ "response",
+ "request",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/payment_reconciliation.py b/fhircraft/fhir/resources/datatypes/R5/core/payment_reconciliation.py
index fe77380d..df3e5e3d 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/payment_reconciliation.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/payment_reconciliation.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -130,53 +130,48 @@ def targetItem(self):
base="targetItem",
)
- @field_validator(
- *(
- "amount",
- "payee",
- "responsible",
- "date",
- "response",
- "submitter",
- "type",
- "account",
- "encounter",
- "target",
- "predecessor",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "payee",
+ "responsible",
+ "date",
+ "response",
+ "submitter",
+ "type",
+ "account",
+ "encounter",
+ "target",
+ "predecessor",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -217,23 +212,18 @@ class PaymentReconciliationProcessNote(BackboneElement):
alias="_text",
)
- @field_validator(
- *(
- "text",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "text",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -471,66 +461,61 @@ class PaymentReconciliation(DomainResource):
default="PaymentReconciliation",
)
- @field_validator(
- *(
- "processNote",
- "formCode",
- "allocation",
- "paymentIdentifier",
- "amount",
- "returnedAmount",
- "tenderedAmount",
- "authorization",
- "referenceNumber",
- "processor",
- "expirationDate",
- "accountNumber",
- "cardBrand",
- "method",
- "location",
- "date",
- "disposition",
- "outcome",
- "requestor",
- "request",
- "paymentIssuer",
- "issuerType",
- "enterer",
- "created",
- "period",
- "kind",
- "status",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "processNote",
+ "formCode",
+ "allocation",
+ "paymentIdentifier",
+ "amount",
+ "returnedAmount",
+ "tenderedAmount",
+ "authorization",
+ "referenceNumber",
+ "processor",
+ "expirationDate",
+ "accountNumber",
+ "cardBrand",
+ "method",
+ "location",
+ "date",
+ "disposition",
+ "outcome",
+ "requestor",
+ "request",
+ "paymentIssuer",
+ "issuerType",
+ "enterer",
+ "created",
+ "period",
+ "kind",
+ "status",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/permission.py b/fhircraft/fhir/resources/datatypes/R5/core/permission.py
index 6a9b4a92..a2cca3df 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/permission.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/permission.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -49,23 +49,18 @@ class PermissionJustification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "evidence",
- "basis",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "evidence",
+ "basis",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -92,23 +87,18 @@ class PermissionRuleDataResource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "meaning",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "meaning",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -138,29 +128,24 @@ class PermissionRuleData(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "period",
- "security",
- "resource",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "period",
+ "security",
+ "resource",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -186,26 +171,21 @@ class PermissionRuleActivity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "purpose",
- "action",
- "actor",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "purpose",
+ "action",
+ "actor",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -240,29 +220,24 @@ class PermissionRule(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "limit",
- "activity",
- "data",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "limit",
+ "activity",
+ "data",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -372,44 +347,39 @@ class Permission(DomainResource):
default="Permission",
)
- @field_validator(
- *(
- "rule",
- "combining",
- "justification",
- "validity",
- "date",
- "asserter",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "combining",
+ "justification",
+ "validity",
+ "date",
+ "asserter",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/person.py b/fhircraft/fhir/resources/datatypes/R5/core/person.py
index 0f1d1efa..636c5db6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/person.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -63,23 +63,18 @@ class PersonCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -106,23 +101,18 @@ class PersonLink(BackboneElement):
alias="_assurance",
)
- @field_validator(
- *(
- "assurance",
- "target",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assurance",
+ "target",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -277,49 +267,44 @@ def deceased(self):
base="deceased",
)
- @field_validator(
- *(
- "link",
- "managingOrganization",
- "communication",
- "photo",
- "maritalStatus",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "link",
+ "managingOrganization",
+ "communication",
+ "photo",
+ "maritalStatus",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/plan_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/plan_definition.py
index 636aaa5f..01f10c64 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/plan_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/plan_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -123,23 +123,18 @@ def detail(self):
base="detail",
)
- @field_validator(
- *(
- "due",
- "measure",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "due",
+ "measure",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -198,38 +193,33 @@ class PlanDefinitionGoal(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "target",
- "documentation",
- "addresses",
- "start",
- "priority",
- "description",
- "category",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "documentation",
+ "addresses",
+ "start",
+ "priority",
+ "description",
+ "category",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -269,29 +259,24 @@ class PlanDefinitionActorOption(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "role",
- "typeReference",
- "typeCanonical",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "role",
+ "typeReference",
+ "typeCanonical",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -327,26 +312,21 @@ class PlanDefinitionActor(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "option",
- "description",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "option",
+ "description",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -373,23 +353,18 @@ class PlanDefinitionActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -425,26 +400,21 @@ class PlanDefinitionActionInput(BackboneElement):
alias="_relatedData",
)
- @field_validator(
- *(
- "relatedData",
- "requirement",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedData",
+ "requirement",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -480,26 +450,21 @@ class PlanDefinitionActionOutput(BackboneElement):
alias="_relatedData",
)
- @field_validator(
- *(
- "relatedData",
- "requirement",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedData",
+ "requirement",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -555,26 +520,21 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "endRelationship",
- "relationship",
- "targetId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endRelationship",
+ "relationship",
+ "targetId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -636,35 +596,30 @@ class PlanDefinitionActionParticipant(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "function",
- "role",
- "typeReference",
- "typeCanonical",
- "type",
- "actorId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "function",
+ "role",
+ "typeReference",
+ "typeCanonical",
+ "type",
+ "actorId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -691,23 +646,18 @@ class PlanDefinitionActionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -962,119 +912,112 @@ def definition(self):
base="definition",
)
- @field_validator(
- *(
- "action",
- "dynamicValue",
- "transform",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "location",
- "relatedAction",
- "output",
- "input",
- "condition",
- "trigger",
- "goalId",
- "documentation",
- "reason",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "dynamicValue",
+ "transform",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "location",
+ "relatedAction",
+ "output",
+ "input",
+ "condition",
+ "trigger",
+ "goalId",
+ "documentation",
+ "reason",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("input",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pld_0_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pld_0_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("input",),
expression="requirement.exists() xor relatedData.exists()",
human="Input data elements must have a requirement or a relatedData, but not both",
key="pld-0",
severity="error",
)
- @field_validator(*("output",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pld_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pld_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("output",),
expression="requirement.exists() xor relatedData.exists()",
human="Output data element must have a requirement or a relatedData, but not both",
key="pld-1",
@@ -1445,81 +1388,75 @@ def asNeeded(self):
base="asNeeded",
)
- @field_validator(
- *(
- "action",
- "actor",
- "goal",
- "library",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "usage",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "type",
- "subtitle",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "actor",
+ "goal",
+ "library",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "usage",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "type",
+ "subtitle",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/practitioner.py b/fhircraft/fhir/resources/datatypes/R5/core/practitioner.py
index 3650e3df..4e277629 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/practitioner.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/practitioner.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -69,29 +69,24 @@ class PractitionerQualification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "issuer",
- "period",
- "code",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "issuer",
+ "period",
+ "code",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -120,23 +115,18 @@ class PractitionerCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -283,47 +273,42 @@ def deceased(self):
base="deceased",
)
- @field_validator(
- *(
- "communication",
- "qualification",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "qualification",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/practitioner_role.py b/fhircraft/fhir/resources/datatypes/R5/core/practitioner_role.py
index d39306e8..0c5a9b13 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/practitioner_role.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/practitioner_role.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -155,51 +155,46 @@ class PractitionerRole(DomainResource):
default="PractitionerRole",
)
- @field_validator(
- *(
- "endpoint",
- "availability",
- "communication",
- "characteristic",
- "contact",
- "healthcareService",
- "location",
- "specialty",
- "code",
- "organization",
- "practitioner",
- "period",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endpoint",
+ "availability",
+ "communication",
+ "characteristic",
+ "contact",
+ "healthcareService",
+ "location",
+ "specialty",
+ "code",
+ "organization",
+ "practitioner",
+ "period",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/procedure.py b/fhircraft/fhir/resources/datatypes/R5/core/procedure.py
index 5387c145..8a3fe776 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/procedure.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/procedure.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,29 +68,24 @@ class ProcedurePerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "onBehalfOf",
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "onBehalfOf",
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -112,23 +107,18 @@ class ProcedureFocalDevice(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "manipulated",
- "action",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "manipulated",
+ "action",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -380,75 +370,69 @@ def reported(self):
base="reported",
)
- @field_validator(
- *(
- "supportingInfo",
- "used",
- "focalDevice",
- "note",
- "followUp",
- "complication",
- "report",
- "outcome",
- "bodySite",
- "reason",
- "location",
- "performer",
- "recorder",
- "recorded",
- "encounter",
- "focus",
- "subject",
- "code",
- "category",
- "statusReason",
- "status",
- "partOf",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "supportingInfo",
+ "used",
+ "focalDevice",
+ "note",
+ "followUp",
+ "complication",
+ "report",
+ "outcome",
+ "bodySite",
+ "reason",
+ "location",
+ "performer",
+ "recorder",
+ "recorded",
+ "encounter",
+ "focus",
+ "subject",
+ "code",
+ "category",
+ "statusReason",
+ "status",
+ "partOf",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("performer",), mode="after", check_fields=None)
- @classmethod
- def FHIR_prc_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_prc_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("performer",),
expression="onBehalfOf.exists() and actor.resolve().exists() implies actor.resolve().where($this is Practitioner or $this is PractitionerRole).empty()",
human="Procedure.performer.onBehalfOf can only be populated when performer.actor isn't Practitioner or PractitionerRole",
key="prc-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/provenance.py b/fhircraft/fhir/resources/datatypes/R5/core/provenance.py
index d7d83886..2b886c9f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/provenance.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/provenance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -63,29 +63,24 @@ class ProvenanceAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -115,29 +110,24 @@ class ProvenanceEntityAgent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "onBehalfOf",
- "who",
- "role",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "onBehalfOf",
+ "who",
+ "role",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -168,26 +158,21 @@ class ProvenanceEntity(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "agent",
- "what",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "agent",
+ "what",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -332,85 +317,77 @@ def occurred(self):
base="occurred",
)
- @field_validator(
- *(
- "signature",
- "entity",
- "agent",
- "encounter",
- "patient",
- "basedOn",
- "activity",
- "authorization",
- "location",
- "policy",
- "recorded",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "signature",
+ "entity",
+ "agent",
+ "encounter",
+ "patient",
+ "basedOn",
+ "activity",
+ "authorization",
+ "location",
+ "policy",
+ "recorded",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("agent",), mode="after", check_fields=None)
- @classmethod
- def FHIR_prov_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_prov_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("agent",),
expression="who.resolve().exists() and onBehalfOf.resolve().exists() implies who.resolve() != onBehalfOf.resolve()",
human="Who and onBehalfOf cannot be the same",
key="prov-1",
severity="error",
)
- @field_validator(*("agent",), mode="after", check_fields=None)
- @classmethod
- def FHIR_prov_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_prov_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("agent",),
expression="who.resolve().ofType(PractitionerRole).practitioner.resolve().exists() and onBehalfOf.resolve().ofType(Practitioner).exists() implies who.resolve().practitioner.resolve() != onBehalfOf.resolve()",
human="If who is a PractitionerRole, onBehalfOf can't reference the same Practitioner",
key="prov-2",
severity="error",
)
- @field_validator(*("agent",), mode="after", check_fields=None)
- @classmethod
- def FHIR_prov_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_prov_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("agent",),
expression="who.resolve().ofType(Organization).exists() and onBehalfOf.resolve().ofType(PractitionerRole).organization.resolve().exists() implies who.resolve() != onBehalfOf.resolve().organization.resolve()",
human="If who is an organization, onBehalfOf can't be a PractitionerRole within that organization",
key="prov-3",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/questionnaire.py b/fhircraft/fhir/resources/datatypes/R5/core/questionnaire.py
index f38f24f5..d9415dca 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/questionnaire.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/questionnaire.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -157,23 +157,18 @@ def answer(self):
base="answer",
)
- @field_validator(
- *(
- "operator",
- "question",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operator",
+ "question",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -267,16 +262,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("initialSelected", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "initialSelected",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -560,95 +554,88 @@ class QuestionnaireItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "initial",
- "answerOption",
- "answerValueSet",
- "answerConstraint",
- "maxLength",
- "readOnly",
- "repeats",
- "required",
- "disabledDisplay",
- "enableBehavior",
- "enableWhen",
- "type",
- "text",
- "prefix",
- "code",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "initial",
+ "answerOption",
+ "answerValueSet",
+ "answerConstraint",
+ "maxLength",
+ "readOnly",
+ "repeats",
+ "required",
+ "disabledDisplay",
+ "enableBehavior",
+ "enableWhen",
+ "type",
+ "text",
+ "prefix",
+ "code",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("linkId",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_15_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_15_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("linkId",),
expression="$this.length() <= 255",
human="Link ids should be 255 characters or less",
key="que-15",
severity="warning",
)
- @field_validator(*("enableWhen",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("enableWhen",),
expression="operator = 'exists' implies (answer is boolean)",
human="If the operator is 'exists', the value must be a boolean",
key="que-7",
@@ -907,240 +894,220 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "item",
- "code",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "subjectType",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "code",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "subjectType",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1a_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1a_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type='group' and %resource.status='complete') implies item.empty().not()",
human="Group items must have nested items when Questionanire is complete",
key="que-1a",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type='group' implies item.empty().not()",
human="Groups should have items",
key="que-1b",
severity="warning",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_1c_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_1c_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type='display' implies item.empty()",
human="Display items cannot have child items",
key="que-1c",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or code.empty()",
human='Display items cannot have a "code" asserted',
key="que-3",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or answerValueSet.empty()",
human="A question cannot have both answerOption and answerValueSet",
key="que-4",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type='coding' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())",
human="Only coding, decimal, integer, date, dateTime, time, string or quantity items can have answerOption or answerValueSet",
key="que-5",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or (required.empty() and repeats.empty())",
human="Required and repeat aren't permitted for display items",
key="que-6",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type!='group' and type!='display') or initial.empty()",
human="Initial values can't be specified for groups or display items",
key="que-8",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="type!='display' or readOnly.empty()",
human='Read-only can\'t be specified for "display" items',
key="que-9",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url')) or answerConstraint='optionOrString' or maxLength.empty()",
human="Maximum length can only be declared for simple question types",
key="que-10",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerOption.empty() or initial.empty()",
human="If one or more answerOption is present, initial cannot be present. Use answerOption.initialSelected instead",
key="que-11",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="enableWhen.count() > 1 implies enableBehavior.exists()",
human="If there are more than one enableWhen, enableBehavior must be specified",
key="que-12",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="repeats=true or initial.count() <= 1",
human="Can only have multiple initial values for repeating items",
key="que-13",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_que_14_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_que_14_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="answerConstraint.exists() implies answerOption.exists() or answerValueSet.exists()",
human="Can only have answerConstraint if answerOption or answerValueSet are present. (This is a warning because extensions may serve the same purpose)",
key="que-14",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/questionnaire_response.py b/fhircraft/fhir/resources/datatypes/R5/core/questionnaire_response.py
index 620f9794..d2b2a060 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/questionnaire_response.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/questionnaire_response.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -151,14 +151,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("item", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -229,32 +230,27 @@ class QuestionnaireResponseItem(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "item",
- "answer",
- "text",
- "definition",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "answer",
+ "text",
+ "definition",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -380,72 +376,65 @@ class QuestionnaireResponse(DomainResource):
default="QuestionnaireResponse",
)
- @field_validator(
- *(
- "item",
- "source",
- "author",
- "authored",
- "encounter",
- "subject",
- "status",
- "questionnaire",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "item",
+ "source",
+ "author",
+ "authored",
+ "encounter",
+ "subject",
+ "status",
+ "questionnaire",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_qrs_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_qrs_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="(answer.exists() and item.exists()).not()",
human="Item cannot contain both item and answer",
key="qrs-1",
severity="error",
)
- @field_validator(*("item",), mode="after", check_fields=None)
- @classmethod
- def FHIR_qrs_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_qrs_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("item",),
expression="repeat(answer|item).select(item.where(answer.value.exists()).linkId.isDistinct()).allTrue()",
human="Repeated answers are combined in the answers array of a single item",
key="qrs-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/regulated_authorization.py b/fhircraft/fhir/resources/datatypes/R5/core/regulated_authorization.py
index 5d28b58c..23d147aa 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/regulated_authorization.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/regulated_authorization.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -83,29 +83,24 @@ def date(self):
base="date",
)
- @field_validator(
- *(
- "application",
- "status",
- "type",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "application",
+ "status",
+ "type",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -251,52 +246,47 @@ class RegulatedAuthorization(DomainResource):
default="RegulatedAuthorization",
)
- @field_validator(
- *(
- "case",
- "attachedDocument",
- "regulator",
- "holder",
- "basis",
- "intendedUse",
- "indication",
- "validityPeriod",
- "statusDate",
- "status",
- "region",
- "description",
- "type",
- "subject",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "case",
+ "attachedDocument",
+ "regulator",
+ "holder",
+ "basis",
+ "intendedUse",
+ "indication",
+ "validityPeriod",
+ "statusDate",
+ "status",
+ "region",
+ "description",
+ "type",
+ "subject",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/related_person.py b/fhircraft/fhir/resources/datatypes/R5/core/related_person.py
index ba4a9670..907fa2c6 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/related_person.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/related_person.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -63,23 +63,18 @@ class RelatedPersonCommunication(BackboneElement):
alias="_preferred",
)
- @field_validator(
- *(
- "preferred",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preferred",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -209,49 +204,44 @@ class RelatedPerson(DomainResource):
default="RelatedPerson",
)
- @field_validator(
- *(
- "communication",
- "period",
- "photo",
- "address",
- "birthDate",
- "gender",
- "telecom",
- "name",
- "relationship",
- "patient",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "communication",
+ "period",
+ "photo",
+ "address",
+ "birthDate",
+ "gender",
+ "telecom",
+ "name",
+ "relationship",
+ "patient",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/request_orchestration.py b/fhircraft/fhir/resources/datatypes/R5/core/request_orchestration.py
index 21042764..d2b38891 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/request_orchestration.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/request_orchestration.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,23 +70,18 @@ class RequestOrchestrationActionCondition(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "kind",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "kind",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -122,26 +117,21 @@ class RequestOrchestrationActionInput(BackboneElement):
alias="_relatedData",
)
- @field_validator(
- *(
- "relatedData",
- "requirement",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedData",
+ "requirement",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -177,26 +167,21 @@ class RequestOrchestrationActionOutput(BackboneElement):
alias="_relatedData",
)
- @field_validator(
- *(
- "relatedData",
- "requirement",
- "title",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relatedData",
+ "requirement",
+ "title",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -252,26 +237,21 @@ def offset(self):
base="offset",
)
- @field_validator(
- *(
- "endRelationship",
- "relationship",
- "targetId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endRelationship",
+ "relationship",
+ "targetId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -344,32 +324,27 @@ def actor(self):
base="actor",
)
- @field_validator(
- *(
- "function",
- "role",
- "typeReference",
- "typeCanonical",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "function",
+ "role",
+ "typeReference",
+ "typeCanonical",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -405,23 +380,18 @@ class RequestOrchestrationActionDynamicValue(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "expression",
- "path",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "path",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -656,116 +626,109 @@ def definition(self):
base="definition",
)
- @field_validator(
- *(
- "action",
- "dynamicValue",
- "transform",
- "resource",
- "cardinalityBehavior",
- "precheckBehavior",
- "requiredBehavior",
- "selectionBehavior",
- "groupingBehavior",
- "type",
- "participant",
- "location",
- "relatedAction",
- "output",
- "input",
- "condition",
- "goal",
- "documentation",
- "code",
- "priority",
- "textEquivalent",
- "description",
- "title",
- "prefix",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "dynamicValue",
+ "transform",
+ "resource",
+ "cardinalityBehavior",
+ "precheckBehavior",
+ "requiredBehavior",
+ "selectionBehavior",
+ "groupingBehavior",
+ "type",
+ "participant",
+ "location",
+ "relatedAction",
+ "output",
+ "input",
+ "condition",
+ "goal",
+ "documentation",
+ "code",
+ "priority",
+ "textEquivalent",
+ "description",
+ "title",
+ "prefix",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("input",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pld_0_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pld_0_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("input",),
expression="requirement.exists() xor relatedData.exists()",
human="Input data elements must have a requirement or a relatedData, but not both",
key="pld-0",
severity="error",
)
- @field_validator(*("output",), mode="after", check_fields=None)
- @classmethod
- def FHIR_pld_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_pld_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("output",),
expression="requirement.exists() xor relatedData.exists()",
human="Output data element must have a requirement or a relatedData, but not both",
key="pld-1",
@@ -952,67 +915,61 @@ class RequestOrchestration(DomainResource):
default="RequestOrchestration",
)
- @field_validator(
- *(
- "action",
- "note",
- "goal",
- "reason",
- "author",
- "authoredOn",
- "encounter",
- "subject",
- "code",
- "priority",
- "intent",
- "status",
- "groupIdentifier",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "note",
+ "goal",
+ "reason",
+ "author",
+ "authoredOn",
+ "encounter",
+ "subject",
+ "code",
+ "priority",
+ "intent",
+ "status",
+ "groupIdentifier",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_rqg_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_rqg_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="resource.exists() != action.exists()",
human="Must have resource or action but not both",
key="rqg-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/requirements.py b/fhircraft/fhir/resources/datatypes/R5/core/requirements.py
index 57322131..e68e62bc 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/requirements.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/requirements.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -137,47 +137,42 @@ class RequirementsStatement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "reference",
- "satisfiedBy",
- "parent",
- "derivedFrom",
- "requirement",
- "conditionality",
- "conformance",
- "label",
- "key",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "reference",
+ "satisfiedBy",
+ "parent",
+ "derivedFrom",
+ "requirement",
+ "conditionality",
+ "conformance",
+ "label",
+ "key",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -419,69 +414,63 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "statement",
- "actor",
- "reference",
- "derivedFrom",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "statement",
+ "actor",
+ "reference",
+ "derivedFrom",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/research_study.py b/fhircraft/fhir/resources/datatypes/R5/core/research_study.py
index 3efc776c..f15f7de3 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/research_study.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/research_study.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -65,23 +65,18 @@ class ResearchStudyLabel(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -120,32 +115,27 @@ class ResearchStudyAssociatedParty(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "party",
- "classifier",
- "period",
- "role",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "party",
+ "classifier",
+ "period",
+ "role",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -176,26 +166,21 @@ class ResearchStudyProgressStatus(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "period",
- "actual",
- "state",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "period",
+ "actual",
+ "state",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -235,29 +220,24 @@ class ResearchStudyRecruitment(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actualGroup",
- "eligibility",
- "actualNumber",
- "targetNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actualGroup",
+ "eligibility",
+ "actualNumber",
+ "targetNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -310,35 +290,30 @@ class ResearchStudyComparisonGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "observedGroup",
- "intendedExposure",
- "description",
- "type",
- "name",
- "linkId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "observedGroup",
+ "intendedExposure",
+ "description",
+ "type",
+ "name",
+ "linkId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -374,26 +349,21 @@ class ResearchStudyObjective(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -433,29 +403,24 @@ class ResearchStudyOutcomeMeasure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "reference",
- "description",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "reference",
+ "description",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -690,69 +655,64 @@ class ResearchStudy(DomainResource):
default="ResearchStudy",
)
- @field_validator(
- *(
- "result",
- "outcomeMeasure",
- "objective",
- "comparisonGroup",
- "recruitment",
- "whyStopped",
- "progressStatus",
- "associatedParty",
- "classifier",
- "note",
- "site",
- "period",
- "description",
- "descriptionSummary",
- "region",
- "keyword",
- "condition",
- "focus",
- "studyDesign",
- "phase",
- "primaryPurposeType",
- "status",
- "date",
- "relatedArtifact",
- "partOf",
- "protocol",
- "label",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "result",
+ "outcomeMeasure",
+ "objective",
+ "comparisonGroup",
+ "recruitment",
+ "whyStopped",
+ "progressStatus",
+ "associatedParty",
+ "classifier",
+ "note",
+ "site",
+ "period",
+ "description",
+ "descriptionSummary",
+ "region",
+ "keyword",
+ "condition",
+ "focus",
+ "studyDesign",
+ "phase",
+ "primaryPurposeType",
+ "status",
+ "date",
+ "relatedArtifact",
+ "partOf",
+ "protocol",
+ "label",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/research_subject.py b/fhircraft/fhir/resources/datatypes/R5/core/research_subject.py
index 4ff8ea9a..062b38da 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/research_subject.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/research_subject.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,35 +80,30 @@ class ResearchSubjectProgress(BackboneElement):
alias="_endDate",
)
- @field_validator(
- *(
- "endDate",
- "startDate",
- "reason",
- "milestone",
- "subjectState",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "endDate",
+ "startDate",
+ "reason",
+ "milestone",
+ "subjectState",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -226,46 +221,41 @@ class ResearchSubject(DomainResource):
default="ResearchSubject",
)
- @field_validator(
- *(
- "consent",
- "actualComparisonGroup",
- "assignedComparisonGroup",
- "subject",
- "study",
- "period",
- "progress",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "consent",
+ "actualComparisonGroup",
+ "assignedComparisonGroup",
+ "subject",
+ "study",
+ "period",
+ "progress",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/resource.py b/fhircraft/fhir/resources/datatypes/R5/core/resource.py
index 0097953e..9c5275cc 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/resource.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/resource.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -38,7 +38,9 @@ class Resource(Base):
)
meta: Optional[Meta] = Field(
description="Metadata about the resource.",
- default_factory=lambda: Meta(profile=["http://hl7.org/fhir/StructureDefinition/Resource"]),
+ default_factory=lambda: Meta(
+ profile=["http://hl7.org/fhir/StructureDefinition/Resource"]
+ ),
)
implicitRules: Optional[Uri] = Field(
description="A set of rules under which this content was created",
@@ -63,14 +65,15 @@ class Resource(Base):
default="Resource",
)
- @field_validator(
- *("language", "implicitRules", "meta"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/risk_assessment.py b/fhircraft/fhir/resources/datatypes/R5/core/risk_assessment.py
index 7cac5b3d..f9de20ea 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/risk_assessment.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/risk_assessment.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -110,29 +110,24 @@ def when(self):
base="when",
)
- @field_validator(
- *(
- "rationale",
- "relativeRisk",
- "qualitativeRisk",
- "outcome",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rationale",
+ "relativeRisk",
+ "qualitativeRisk",
+ "outcome",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -307,64 +302,58 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "note",
- "mitigation",
- "prediction",
- "basis",
- "reason",
- "performer",
- "condition",
- "encounter",
- "subject",
- "code",
- "method",
- "status",
- "parent",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "mitigation",
+ "prediction",
+ "basis",
+ "reason",
+ "performer",
+ "condition",
+ "encounter",
+ "subject",
+ "code",
+ "method",
+ "status",
+ "parent",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("prediction",), mode="after", check_fields=None)
- @classmethod
- def FHIR_ras_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ras_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("prediction",),
expression="probability.empty() or ((probability is decimal) implies ((probability as decimal) <= 100))",
human="Probability as a deciml must be <= 100",
key="ras-2",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/schedule.py b/fhircraft/fhir/resources/datatypes/R5/core/schedule.py
index ad779eff..c0a94e3c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/schedule.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/schedule.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -150,46 +150,41 @@ class Schedule(DomainResource):
default="Schedule",
)
- @field_validator(
- *(
- "comment",
- "planningHorizon",
- "actor",
- "name",
- "specialty",
- "serviceType",
- "serviceCategory",
- "active",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "planningHorizon",
+ "actor",
+ "name",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "active",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/search_parameter.py b/fhircraft/fhir/resources/datatypes/R5/core/search_parameter.py
index 1a93c23e..6b0a8833 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/search_parameter.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/search_parameter.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,23 +67,18 @@ class SearchParameterComponent(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "definition",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "definition",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -415,79 +410,73 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "component",
- "chain",
- "modifier",
- "comparator",
- "multipleAnd",
- "multipleOr",
- "target",
- "constraint",
- "processingMode",
- "expression",
- "type",
- "base",
- "code",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "component",
+ "chain",
+ "modifier",
+ "comparator",
+ "multipleAnd",
+ "multipleOr",
+ "target",
+ "constraint",
+ "processingMode",
+ "expression",
+ "type",
+ "base",
+ "code",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/service_request.py b/fhircraft/fhir/resources/datatypes/R5/core/service_request.py
index 48a77cdd..eadd665a 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/service_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/service_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -103,14 +103,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -149,23 +150,18 @@ class ServiceRequestOrderDetail(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "parameter",
- "parameterFocus",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "parameterFocus",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -486,67 +482,62 @@ def asNeeded(self):
base="asNeeded",
)
- @field_validator(
- *(
- "relevantHistory",
- "patientInstruction",
- "note",
- "bodyStructure",
- "bodySite",
- "specimen",
- "supportingInfo",
- "insurance",
- "reason",
- "location",
- "performer",
- "performerType",
- "requester",
- "authoredOn",
- "encounter",
- "focus",
- "subject",
- "orderDetail",
- "code",
- "doNotPerform",
- "priority",
- "category",
- "intent",
- "status",
- "requisition",
- "replaces",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "relevantHistory",
+ "patientInstruction",
+ "note",
+ "bodyStructure",
+ "bodySite",
+ "specimen",
+ "supportingInfo",
+ "insurance",
+ "reason",
+ "location",
+ "performer",
+ "performerType",
+ "requester",
+ "authoredOn",
+ "encounter",
+ "focus",
+ "subject",
+ "orderDetail",
+ "code",
+ "doNotPerform",
+ "priority",
+ "category",
+ "intent",
+ "status",
+ "requisition",
+ "replaces",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/slot.py b/fhircraft/fhir/resources/datatypes/R5/core/slot.py
index cdf4f727..bc897b64 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/slot.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/slot.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -167,48 +167,43 @@ class Slot(DomainResource):
default="Slot",
)
- @field_validator(
- *(
- "comment",
- "overbooked",
- "end",
- "start",
- "status",
- "schedule",
- "appointmentType",
- "specialty",
- "serviceType",
- "serviceCategory",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "overbooked",
+ "end",
+ "start",
+ "status",
+ "schedule",
+ "appointmentType",
+ "specialty",
+ "serviceType",
+ "serviceCategory",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/specimen.py b/fhircraft/fhir/resources/datatypes/R5/core/specimen.py
index 5c45f601..896328dd 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/specimen.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/specimen.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -57,23 +57,18 @@ class SpecimenFeature(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -150,38 +145,33 @@ def fastingStatus(self):
base="fastingStatus",
)
- @field_validator(
- *(
- "bodySite",
- "procedure",
- "device",
- "method",
- "quantity",
- "duration",
- "collector",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "bodySite",
+ "procedure",
+ "device",
+ "method",
+ "quantity",
+ "duration",
+ "collector",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -250,26 +240,21 @@ def time(self):
base="time",
)
- @field_validator(
- *(
- "additive",
- "method",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additive",
+ "method",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -304,26 +289,21 @@ class SpecimenContainer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "specimenQuantity",
- "location",
- "device",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "specimenQuantity",
+ "location",
+ "device",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -469,53 +449,48 @@ class Specimen(DomainResource):
default="Specimen",
)
- @field_validator(
- *(
- "note",
- "condition",
- "container",
- "processing",
- "collection",
- "feature",
- "role",
- "combined",
- "request",
- "parent",
- "receivedTime",
- "subject",
- "type",
- "status",
- "accessionIdentifier",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "condition",
+ "container",
+ "processing",
+ "collection",
+ "feature",
+ "role",
+ "combined",
+ "request",
+ "parent",
+ "receivedTime",
+ "subject",
+ "type",
+ "status",
+ "accessionIdentifier",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/specimen_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/specimen_definition.py
index 5623040b..98ba8bb2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/specimen_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/specimen_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -144,38 +144,33 @@ def minimumVolume(self):
base="minimumVolume",
)
- @field_validator(
- *(
- "preparation",
- "additive",
- "capacity",
- "description",
- "cap",
- "type",
- "material",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "preparation",
+ "additive",
+ "capacity",
+ "description",
+ "cap",
+ "type",
+ "material",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,29 +214,24 @@ class SpecimenDefinitionTypeTestedHandling(BackboneElement):
alias="_instruction",
)
- @field_validator(
- *(
- "instruction",
- "maxDuration",
- "temperatureRange",
- "temperatureQualifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "instruction",
+ "maxDuration",
+ "temperatureRange",
+ "temperatureQualifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -315,47 +305,42 @@ class SpecimenDefinitionTypeTested(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "testingDestination",
- "handling",
- "rejectionCriterion",
- "singleUse",
- "retentionTime",
- "requirement",
- "container",
- "preference",
- "type",
- "isDerived",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "testingDestination",
+ "handling",
+ "rejectionCriterion",
+ "singleUse",
+ "retentionTime",
+ "requirement",
+ "container",
+ "preference",
+ "type",
+ "isDerived",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -646,63 +631,58 @@ def subject(self):
base="subject",
)
- @field_validator(
- *(
- "typeTested",
- "collection",
- "timeAspect",
- "patientPreparation",
- "typeCollected",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFromUri",
- "derivedFromCanonical",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "typeTested",
+ "collection",
+ "timeAspect",
+ "patientPreparation",
+ "typeCollected",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFromUri",
+ "derivedFromCanonical",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/structure_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/structure_definition.py
index 3687e789..a9174dce 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/structure_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/structure_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -87,29 +87,24 @@ class StructureDefinitionMapping(BackboneElement):
alias="_comment",
)
- @field_validator(
- *(
- "comment",
- "name",
- "uri",
- "identity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "comment",
+ "name",
+ "uri",
+ "identity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -141,23 +136,18 @@ class StructureDefinitionContext(BackboneElement):
alias="_expression",
)
- @field_validator(
- *(
- "expression",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "expression",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,38 +165,37 @@ class StructureDefinitionSnapshot(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="binding.empty() or binding.valueSet.exists() or binding.description.exists()",
human="provide either a binding reference or a description (or both)",
key="sdf-10",
severity="error",
)
- @field_validator(*("element",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_28_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_28_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("element",),
expression="slicing.exists().not() or (slicing.discriminator.exists() or slicing.description.exists())",
human="If there are no discriminators, there must be a definition",
key="sdf-28",
@@ -224,14 +213,15 @@ class StructureDefinitionDifferential(BackboneElement):
default=None,
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "element",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -525,185 +515,170 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "differential",
- "snapshot",
- "derivation",
- "baseDefinition",
- "type",
- "contextInvariant",
- "context",
- "abstract",
- "kind",
- "mapping",
- "fhirVersion",
- "keyword",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "differential",
+ "snapshot",
+ "derivation",
+ "baseDefinition",
+ "type",
+ "contextInvariant",
+ "context",
+ "abstract",
+ "kind",
+ "mapping",
+ "fhirVersion",
+ "keyword",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("mapping",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("mapping",),
expression="name.exists() or uri.exists()",
human="Must have at least a name or a uri (or both)",
key="sdf-2",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="%resource.kind = 'logical' or element.all(definition.exists() and min.exists() and max.exists())",
human="Each element definition in a snapshot must have a formal definition and cardinalities, unless model is a logical model",
key="sdf-3",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="(%resource.kind = 'logical' or element.first().path = %resource.type) and element.tail().all(path.startsWith(%resource.snapshot.element.first().path&'.'))",
human="All snapshot elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_24_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_24_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.where(type.where(code='Reference').exists() and path.endsWith('.reference') and type.targetProfile.exists() and (path.substring(0,$this.path.length()-10) in %context.element.where(type.where(code='CodeableReference').exists()).path)).exists().not()",
human="For CodeableReference elements, target profiles must be listed on the CodeableReference, not the CodeableReference.reference",
key="sdf-24",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_25_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_25_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.where(type.where(code='CodeableConcept').exists() and path.endsWith('.concept') and binding.exists() and (path.substring(0,$this.path.length()-8) in %context.element.where(type.where(code='CodeableReference').exists()).path)).exists().not()",
human="For CodeableReference elements, bindings must be listed on the CodeableReference, not the CodeableReference.concept",
key="sdf-25",
severity="error",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_26_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_26_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="$this.where(element[0].mustSupport='true').exists().not()",
human="The root element of a profile should not have mustSupport = true",
key="sdf-26",
severity="warning",
)
- @field_validator(*("snapshot",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8b_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8b_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("snapshot",),
expression="element.all(base.exists())",
human="All snapshot elements must have a base definition",
key="sdf-8b",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_20_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_20_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="element.where(path.contains('.').not()).slicing.empty()",
human="No slicing on the root element",
key="sdf-20",
severity="error",
)
- @field_validator(*("differential",), mode="after", check_fields=None)
- @classmethod
- def FHIR_sdf_8a_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_sdf_8a_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("differential",),
expression="(%resource.kind = 'logical' or element.first().path.startsWith(%resource.type)) and (element.tail().empty() or element.tail().all(path.startsWith(%resource.differential.element.first().path.replaceMatches('\\..*','')&'.')))",
human="In any differential, all the elements must start with the StructureDefinition's specified type for non-logical models, or with the same type name for logical models",
key="sdf-8a",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/structure_map.py b/fhircraft/fhir/resources/datatypes/R5/core/structure_map.py
index 002f0e3d..a728879e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/structure_map.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/structure_map.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -90,29 +90,24 @@ class StructureMapStructure(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "alias",
- "mode",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "alias",
+ "mode",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -144,23 +139,18 @@ class StructureMapConst(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -210,29 +200,24 @@ class StructureMapGroupInput(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "mode",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "mode",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -345,50 +330,45 @@ class StructureMapGroupRuleSource(BackboneElement):
alias="_logMessage",
)
- @field_validator(
- *(
- "logMessage",
- "check",
- "condition",
- "variable",
- "listMode",
- "element",
- "defaultValue",
- "type",
- "max",
- "min",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "logMessage",
+ "check",
+ "condition",
+ "variable",
+ "listMode",
+ "element",
+ "defaultValue",
+ "type",
+ "max",
+ "min",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -555,38 +535,33 @@ class StructureMapGroupRuleTarget(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "parameter",
- "transform",
- "listRuleId",
- "listMode",
- "variable",
- "element",
- "context",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "transform",
+ "listRuleId",
+ "listMode",
+ "variable",
+ "element",
+ "context",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -708,23 +683,18 @@ class StructureMapGroupRuleDependent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "parameter",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "parameter",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -772,47 +742,41 @@ class StructureMapGroupRule(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "dependent",
- "rule",
- "target",
- "source",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "dependent",
+ "rule",
+ "target",
+ "source",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("target",), mode="after", check_fields=None)
- @classmethod
- def FHIR_smp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_smp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("target",),
expression="element.exists() implies context.exists()",
human="Can only have an element if you have a context",
key="smp-1",
@@ -870,35 +834,30 @@ class StructureMapGroup(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "rule",
- "input",
- "documentation",
- "typeMode",
- "extends",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "rule",
+ "input",
+ "documentation",
+ "typeMode",
+ "extends",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1130,69 +1089,63 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "group",
- "const",
- "import_",
- "structure",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "group",
+ "const",
+ "import_",
+ "structure",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/subscription.py b/fhircraft/fhir/resources/datatypes/R5/core/subscription.py
index 892ef54f..518eceb4 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/subscription.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/subscription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -94,32 +94,27 @@ class SubscriptionFilterBy(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "modifier",
- "comparator",
- "filterParameter",
- "resourceType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "modifier",
+ "comparator",
+ "filterParameter",
+ "resourceType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -151,23 +146,18 @@ class SubscriptionParameter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -357,66 +347,60 @@ class Subscription(DomainResource):
default="Subscription",
)
- @field_validator(
- *(
- "maxCount",
- "content",
- "contentType",
- "timeout",
- "heartbeatPeriod",
- "parameter",
- "endpoint",
- "channelType",
- "filterBy",
- "reason",
- "managingEntity",
- "end",
- "contact",
- "topic",
- "status",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "maxCount",
+ "content",
+ "contentType",
+ "timeout",
+ "heartbeatPeriod",
+ "parameter",
+ "endpoint",
+ "channelType",
+ "filterBy",
+ "reason",
+ "managingEntity",
+ "end",
+ "contact",
+ "topic",
+ "status",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("filterBy",), mode="after", check_fields=None)
- @classmethod
- def FHIR_scr_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_scr_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("filterBy",),
expression="(comparator.exists() and modifier.exists()).not()",
human="Subscription filters may only contain a modifier or a comparator",
key="scr-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/subscription_status.py b/fhircraft/fhir/resources/datatypes/R5/core/subscription_status.py
index 008274f8..c831cc8b 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/subscription_status.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/subscription_status.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -71,29 +71,24 @@ class SubscriptionStatusNotificationEvent(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "additionalContext",
- "focus",
- "timestamp",
- "eventNumber",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "additionalContext",
+ "focus",
+ "timestamp",
+ "eventNumber",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,44 +203,39 @@ class SubscriptionStatus(DomainResource):
default="SubscriptionStatus",
)
- @field_validator(
- *(
- "error",
- "topic",
- "subscription",
- "notificationEvent",
- "eventsSinceSubscriptionStart",
- "type",
- "status",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "error",
+ "topic",
+ "subscription",
+ "notificationEvent",
+ "eventsSinceSubscriptionStart",
+ "type",
+ "status",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/subscription_topic.py b/fhircraft/fhir/resources/datatypes/R5/core/subscription_topic.py
index 1098f7da..8330d24f 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/subscription_topic.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/subscription_topic.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -96,32 +96,27 @@ class SubscriptionTopicResourceTriggerQueryCriteria(BackboneElement):
alias="_requireBoth",
)
- @field_validator(
- *(
- "requireBoth",
- "resultForDelete",
- "current",
- "resultForCreate",
- "previous",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requireBoth",
+ "resultForDelete",
+ "current",
+ "resultForCreate",
+ "previous",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -175,32 +170,27 @@ class SubscriptionTopicResourceTrigger(BackboneElement):
alias="_fhirPathCriteria",
)
- @field_validator(
- *(
- "fhirPathCriteria",
- "queryCriteria",
- "supportedInteraction",
- "resource",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "fhirPathCriteria",
+ "queryCriteria",
+ "supportedInteraction",
+ "resource",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,26 +226,21 @@ class SubscriptionTopicEventTrigger(BackboneElement):
alias="_resource",
)
- @field_validator(
- *(
- "resource",
- "event",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "event",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -323,35 +308,30 @@ class SubscriptionTopicCanFilterBy(BackboneElement):
alias="_modifier",
)
- @field_validator(
- *(
- "modifier",
- "comparator",
- "filterDefinition",
- "filterParameter",
- "resource",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifier",
+ "comparator",
+ "filterDefinition",
+ "filterParameter",
+ "resource",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -392,26 +372,21 @@ class SubscriptionTopicNotificationShape(BackboneElement):
alias="_revInclude",
)
- @field_validator(
- *(
- "revInclude",
- "include",
- "resource",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "revInclude",
+ "include",
+ "resource",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -669,61 +644,56 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "notificationShape",
- "canFilterBy",
- "eventTrigger",
- "resourceTrigger",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "derivedFrom",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "notificationShape",
+ "canFilterBy",
+ "eventTrigger",
+ "resourceTrigger",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "derivedFrom",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance.py b/fhircraft/fhir/resources/datatypes/R5/core/substance.py
index cc07a09a..b11be4e0 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,14 +68,15 @@ def substance(self):
base="substance",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -207,46 +208,41 @@ class Substance(DomainResource):
default="Substance",
)
- @field_validator(
- *(
- "ingredient",
- "quantity",
- "expiry",
- "description",
- "code",
- "category",
- "status",
- "instance",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "ingredient",
+ "quantity",
+ "expiry",
+ "description",
+ "code",
+ "category",
+ "status",
+ "instance",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_definition.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_definition.py
index 5b4fabde..fd28c1ce 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_definition.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_definition.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -109,38 +109,33 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "measurementType",
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "name",
- "identifier",
- "role",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "measurementType",
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "name",
+ "identifier",
+ "role",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -184,29 +179,24 @@ class SubstanceDefinitionCharacterization(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "file",
- "description",
- "form",
- "technique",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "file",
+ "description",
+ "form",
+ "technique",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -261,14 +251,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -303,26 +294,21 @@ class SubstanceDefinitionMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -348,26 +334,21 @@ class SubstanceDefinitionStructureMolecularWeight(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "type",
- "method",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "type",
+ "method",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -402,29 +383,24 @@ class SubstanceDefinitionStructureRepresentation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "document",
- "format",
- "representation",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "document",
+ "format",
+ "representation",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -480,41 +456,36 @@ class SubstanceDefinitionStructure(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "representation",
- "sourceDocument",
- "technique",
- "molecularWeight",
- "molecularFormulaByMoiety",
- "molecularFormula",
- "opticalActivity",
- "stereochemistry",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "representation",
+ "sourceDocument",
+ "technique",
+ "molecularWeight",
+ "molecularFormulaByMoiety",
+ "molecularFormula",
+ "opticalActivity",
+ "stereochemistry",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -553,32 +524,27 @@ class SubstanceDefinitionCode(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "note",
- "statusDate",
- "status",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "note",
+ "statusDate",
+ "status",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -609,26 +575,21 @@ class SubstanceDefinitionNameOfficial(BackboneElement):
alias="_date",
)
- @field_validator(
- *(
- "date",
- "status",
- "authority",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "date",
+ "status",
+ "authority",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -696,50 +657,45 @@ class SubstanceDefinitionName(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "official",
- "translation",
- "synonym",
- "jurisdiction",
- "domain",
- "language",
- "preferred",
- "status",
- "type",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "official",
+ "translation",
+ "synonym",
+ "jurisdiction",
+ "domain",
+ "language",
+ "preferred",
+ "status",
+ "type",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -817,32 +773,27 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "source",
- "comparator",
- "ratioHighLimitAmount",
- "isDefining",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "comparator",
+ "ratioHighLimitAmount",
+ "isDefining",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -894,32 +845,27 @@ class SubstanceDefinitionSourceMaterial(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "countryOfOrigin",
- "part",
- "species",
- "genus",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "countryOfOrigin",
+ "part",
+ "species",
+ "genus",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1092,61 +1038,56 @@ class SubstanceDefinition(DomainResource):
default="SubstanceDefinition",
)
- @field_validator(
- *(
- "sourceMaterial",
- "protein",
- "polymer",
- "nucleicAcid",
- "relationship",
- "name",
- "code",
- "structure",
- "molecularWeight",
- "referenceInformation",
- "property_",
- "characterization",
- "moiety",
- "supplier",
- "manufacturer",
- "note",
- "informationSource",
- "description",
- "grade",
- "domain",
- "classification",
- "status",
- "version",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceMaterial",
+ "protein",
+ "polymer",
+ "nucleicAcid",
+ "relationship",
+ "name",
+ "code",
+ "structure",
+ "molecularWeight",
+ "referenceInformation",
+ "property_",
+ "characterization",
+ "moiety",
+ "supplier",
+ "manufacturer",
+ "note",
+ "informationSource",
+ "description",
+ "grade",
+ "domain",
+ "classification",
+ "status",
+ "version",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_nucleic_acid.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_nucleic_acid.py
index a0d3998e..b1285d28 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_nucleic_acid.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_nucleic_acid.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -70,29 +70,24 @@ class SubstanceNucleicAcidSubunitLinkage(BackboneElement):
alias="_residueSite",
)
- @field_validator(
- *(
- "residueSite",
- "name",
- "identifier",
- "connectivity",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "residueSite",
+ "name",
+ "identifier",
+ "connectivity",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -128,26 +123,21 @@ class SubstanceNucleicAcidSubunitSugar(BackboneElement):
alias="_residueSite",
)
- @field_validator(
- *(
- "residueSite",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "residueSite",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -208,41 +198,36 @@ class SubstanceNucleicAcidSubunit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "sugar",
- "linkage",
- "threePrime",
- "fivePrime",
- "sequenceAttachment",
- "length",
- "sequence",
- "subunit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sugar",
+ "linkage",
+ "threePrime",
+ "fivePrime",
+ "sequenceAttachment",
+ "length",
+ "sequence",
+ "subunit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -339,42 +324,37 @@ class SubstanceNucleicAcid(DomainResource):
default="SubstanceNucleicAcid",
)
- @field_validator(
- *(
- "subunit",
- "oligoNucleotideType",
- "areaOfHybridisation",
- "numberOfSubunits",
- "sequenceType",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subunit",
+ "oligoNucleotideType",
+ "areaOfHybridisation",
+ "numberOfSubunits",
+ "sequenceType",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_polymer.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_polymer.py
index 13086364..886b6c9c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_polymer.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_polymer.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -67,29 +67,24 @@ class SubstancePolymerMonomerSetStartingMaterial(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "amount",
- "isDefining",
- "category",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "amount",
+ "isDefining",
+ "category",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -113,23 +108,18 @@ class SubstancePolymerMonomerSet(BackboneElement):
)
)
- @field_validator(
- *(
- "startingMaterial",
- "ratioType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "startingMaterial",
+ "ratioType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -174,29 +164,24 @@ class SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation(BackboneElement):
alias="_high",
)
- @field_validator(
- *(
- "high",
- "low",
- "average",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "high",
+ "low",
+ "average",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -231,29 +216,24 @@ class SubstancePolymerRepeatRepeatUnitStructuralRepresentation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attachment",
- "format",
- "representation",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attachment",
+ "format",
+ "representation",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -301,32 +281,27 @@ class SubstancePolymerRepeatRepeatUnit(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "structuralRepresentation",
- "degreeOfPolymerisation",
- "amount",
- "orientation",
- "unit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "structuralRepresentation",
+ "degreeOfPolymerisation",
+ "amount",
+ "orientation",
+ "unit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -357,26 +332,21 @@ class SubstancePolymerRepeat(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "repeatUnit",
- "repeatUnitAmountType",
- "averageMolecularFormula",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "repeatUnit",
+ "repeatUnitAmountType",
+ "averageMolecularFormula",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -476,44 +446,39 @@ class SubstancePolymer(DomainResource):
default="SubstancePolymer",
)
- @field_validator(
- *(
- "repeat",
- "monomerSet",
- "modification",
- "copolymerConnectivity",
- "geometry",
- "class_",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "repeat",
+ "monomerSet",
+ "modification",
+ "copolymerConnectivity",
+ "geometry",
+ "class_",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_protein.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_protein.py
index ccceab3f..077e55e4 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_protein.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_protein.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -96,41 +96,36 @@ class SubstanceProteinSubunit(BackboneElement):
alias="_cTerminalModification",
)
- @field_validator(
- *(
- "cTerminalModification",
- "cTerminalModificationId",
- "nTerminalModification",
- "nTerminalModificationId",
- "sequenceAttachment",
- "length",
- "sequence",
- "subunit",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "cTerminalModification",
+ "cTerminalModificationId",
+ "nTerminalModification",
+ "nTerminalModificationId",
+ "sequenceAttachment",
+ "length",
+ "sequence",
+ "subunit",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -223,41 +218,36 @@ class SubstanceProtein(DomainResource):
default="SubstanceProtein",
)
- @field_validator(
- *(
- "subunit",
- "disulfideLinkage",
- "numberOfSubunits",
- "sequenceType",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subunit",
+ "disulfideLinkage",
+ "numberOfSubunits",
+ "sequenceType",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_reference_information.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_reference_information.py
index 2c094a4d..e2d48f64 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_reference_information.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_reference_information.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -53,26 +53,21 @@ class SubstanceReferenceInformationGene(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "gene",
- "geneSequenceOrigin",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "gene",
+ "geneSequenceOrigin",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -98,26 +93,21 @@ class SubstanceReferenceInformationGeneElement(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "source",
- "element",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "element",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -183,38 +173,33 @@ def amount(self):
base="amount",
)
- @field_validator(
- *(
- "source",
- "amountType",
- "organismType",
- "organism",
- "interaction",
- "type",
- "target",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "source",
+ "amountType",
+ "organismType",
+ "organism",
+ "interaction",
+ "type",
+ "target",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -313,41 +298,36 @@ class SubstanceReferenceInformation(DomainResource):
default="SubstanceReferenceInformation",
)
- @field_validator(
- *(
- "target",
- "geneElement",
- "gene",
- "comment",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "target",
+ "geneElement",
+ "gene",
+ "comment",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/substance_source_material.py b/fhircraft/fhir/resources/datatypes/R5/core/substance_source_material.py
index 6a0621fe..9f50940c 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/substance_source_material.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/substance_source_material.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -51,23 +51,18 @@ class SubstanceSourceMaterialFractionDescription(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "materialType",
- "fraction",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "materialType",
+ "fraction",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -94,23 +89,18 @@ class SubstanceSourceMaterialOrganismAuthor(BackboneElement):
alias="_authorDescription",
)
- @field_validator(
- *(
- "authorDescription",
- "authorType",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "authorDescription",
+ "authorType",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,32 +154,27 @@ class SubstanceSourceMaterialOrganismHybrid(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "hybridType",
- "paternalOrganismName",
- "paternalOrganismId",
- "maternalOrganismName",
- "maternalOrganismId",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "hybridType",
+ "paternalOrganismName",
+ "paternalOrganismId",
+ "maternalOrganismName",
+ "maternalOrganismId",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -219,29 +204,24 @@ class SubstanceSourceMaterialOrganismOrganismGeneral(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "order",
- "class_",
- "phylum",
- "kingdom",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "order",
+ "class_",
+ "phylum",
+ "kingdom",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -292,41 +272,36 @@ class SubstanceSourceMaterialOrganism(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "organismGeneral",
- "hybrid",
- "author",
- "intraspecificDescription",
- "intraspecificType",
- "species",
- "genus",
- "family",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "organismGeneral",
+ "hybrid",
+ "author",
+ "intraspecificDescription",
+ "intraspecificType",
+ "species",
+ "genus",
+ "family",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -348,23 +323,18 @@ class SubstanceSourceMaterialPartDescription(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "partLocation",
- "part",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partLocation",
+ "part",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -500,50 +470,45 @@ class SubstanceSourceMaterial(DomainResource):
default="SubstanceSourceMaterial",
)
- @field_validator(
- *(
- "partDescription",
- "organism",
- "fractionDescription",
- "developmentStage",
- "geographicalLocation",
- "countryOfOrigin",
- "parentSubstanceName",
- "parentSubstanceId",
- "organismName",
- "organismId",
- "sourceMaterialState",
- "sourceMaterialType",
- "sourceMaterialClass",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "partDescription",
+ "organism",
+ "fractionDescription",
+ "developmentStage",
+ "geographicalLocation",
+ "countryOfOrigin",
+ "parentSubstanceName",
+ "parentSubstanceId",
+ "organismName",
+ "organismId",
+ "sourceMaterialState",
+ "sourceMaterialType",
+ "sourceMaterialClass",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/supply_delivery.py b/fhircraft/fhir/resources/datatypes/R5/core/supply_delivery.py
index d8101915..8a8b9424 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/supply_delivery.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/supply_delivery.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -61,14 +61,15 @@ def item(self):
base="item",
)
- @field_validator(
- *("quantity", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "quantity",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -213,47 +214,42 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "receiver",
- "destination",
- "supplier",
- "suppliedItem",
- "type",
- "patient",
- "status",
- "partOf",
- "basedOn",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "receiver",
+ "destination",
+ "supplier",
+ "suppliedItem",
+ "type",
+ "patient",
+ "status",
+ "partOf",
+ "basedOn",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/supply_request.py b/fhircraft/fhir/resources/datatypes/R5/core/supply_request.py
index b1d25efd..f029d420 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/supply_request.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/supply_request.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -82,14 +82,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -264,52 +265,47 @@ def occurrence(self):
base="occurrence",
)
- @field_validator(
- *(
- "deliverTo",
- "deliverFrom",
- "reason",
- "supplier",
- "requester",
- "authoredOn",
- "parameter",
- "quantity",
- "item",
- "deliverFor",
- "priority",
- "category",
- "basedOn",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "deliverTo",
+ "deliverFrom",
+ "reason",
+ "supplier",
+ "requester",
+ "authoredOn",
+ "parameter",
+ "quantity",
+ "item",
+ "deliverFor",
+ "priority",
+ "category",
+ "basedOn",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/task.py b/fhircraft/fhir/resources/datatypes/R5/core/task.py
index 90684c58..57f4c158 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/task.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/task.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -98,23 +98,18 @@ class TaskPerformer(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "actor",
- "function",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "actor",
+ "function",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -145,26 +140,21 @@ class TaskRestriction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "recipient",
- "period",
- "repetitions",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recipient",
+ "period",
+ "repetitions",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -500,14 +490,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -907,14 +898,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1222,70 +1214,65 @@ class Task(DomainResource):
default="Task",
)
- @field_validator(
- *(
- "output",
- "input",
- "restriction",
- "relevantHistory",
- "note",
- "insurance",
- "reason",
- "location",
- "performer",
- "owner",
- "requestedPerformer",
- "requester",
- "lastModified",
- "authoredOn",
- "executionPeriod",
- "requestedPeriod",
- "encounter",
- "for_",
- "focus",
- "description",
- "code",
- "doNotPerform",
- "priority",
- "intent",
- "businessStatus",
- "statusReason",
- "status",
- "partOf",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "output",
+ "input",
+ "restriction",
+ "relevantHistory",
+ "note",
+ "insurance",
+ "reason",
+ "location",
+ "performer",
+ "owner",
+ "requestedPerformer",
+ "requester",
+ "lastModified",
+ "authoredOn",
+ "executionPeriod",
+ "requestedPeriod",
+ "encounter",
+ "for_",
+ "focus",
+ "description",
+ "code",
+ "doNotPerform",
+ "priority",
+ "intent",
+ "businessStatus",
+ "statusReason",
+ "status",
+ "partOf",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/terminology_capabilities.py b/fhircraft/fhir/resources/datatypes/R5/core/terminology_capabilities.py
index cd5aa983..90993581 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/terminology_capabilities.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/terminology_capabilities.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -68,23 +68,18 @@ class TerminologyCapabilitiesSoftware(BackboneElement):
alias="_version",
)
- @field_validator(
- *(
- "version",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "version",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -116,23 +111,18 @@ class TerminologyCapabilitiesImplementation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -164,23 +154,18 @@ class TerminologyCapabilitiesCodeSystemVersionFilter(BackboneElement):
alias="_op",
)
- @field_validator(
- *(
- "op",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "op",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -243,35 +228,30 @@ class TerminologyCapabilitiesCodeSystemVersion(BackboneElement):
alias="_property",
)
- @field_validator(
- *(
- "property_",
- "filter",
- "language",
- "compositional",
- "isDefault",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "filter",
+ "language",
+ "compositional",
+ "isDefault",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -316,29 +296,24 @@ class TerminologyCapabilitiesCodeSystem(BackboneElement):
alias="_subsumption",
)
- @field_validator(
- *(
- "subsumption",
- "content",
- "version",
- "uri",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subsumption",
+ "content",
+ "version",
+ "uri",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -370,23 +345,18 @@ class TerminologyCapabilitiesExpansionParameter(BackboneElement):
alias="_documentation",
)
- @field_validator(
- *(
- "documentation",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "documentation",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -440,32 +410,27 @@ class TerminologyCapabilitiesExpansion(BackboneElement):
alias="_textFilter",
)
- @field_validator(
- *(
- "textFilter",
- "parameter",
- "incomplete",
- "paging",
- "hierarchical",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "textFilter",
+ "parameter",
+ "incomplete",
+ "paging",
+ "hierarchical",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -488,16 +453,15 @@ class TerminologyCapabilitiesValidateCode(BackboneElement):
alias="_translations",
)
- @field_validator(
- *("translations", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translations",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -520,14 +484,15 @@ class TerminologyCapabilitiesTranslation(BackboneElement):
alias="_needsMap",
)
- @field_validator(
- *("needsMap", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "needsMap",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -550,16 +515,15 @@ class TerminologyCapabilitiesClosure(BackboneElement):
alias="_translation",
)
- @field_validator(
- *("translation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "translation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -825,111 +789,102 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "closure",
- "translation",
- "validateCode",
- "codeSearch",
- "expansion",
- "codeSystem",
- "lockedDate",
- "implementation",
- "software",
- "kind",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "closure",
+ "translation",
+ "validateCode",
+ "codeSearch",
+ "expansion",
+ "codeSystem",
+ "lockedDate",
+ "implementation",
+ "software",
+ "kind",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("codeSystem",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tcp_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tcp_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeSystem",),
expression="version.count() > 1 implies version.all(code.exists())",
human="If there is more than one version, a version code must be defined",
key="tcp-1",
severity="error",
)
- @field_validator(*("codeSystem",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tcp_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tcp_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeSystem",),
expression="version.code.isDistinct()",
human="Each version.code element must be distinct for a particular code system.",
key="tcp-7",
severity="error",
)
- @field_validator(*("codeSystem",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tcp_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tcp_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("codeSystem",),
expression="version.where(isDefault = true).count() <= 1",
human="A codeSystem element instance may have at most one version.isDefault element with a value of 'true'.",
key="tcp-8",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/test_plan.py b/fhircraft/fhir/resources/datatypes/R5/core/test_plan.py
index 5ef31c8e..1f8bf329 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/test_plan.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/test_plan.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -64,23 +64,18 @@ class TestPlanDependency(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "predecessor",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "predecessor",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -107,23 +102,18 @@ class TestPlanTestCaseDependency(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "predecessor",
- "description",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "predecessor",
+ "description",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -161,14 +151,15 @@ def source(self):
base="source",
)
- @field_validator(
- *("language", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "language",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -204,23 +195,18 @@ class TestPlanTestCaseTestRun(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "script",
- "narrative",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "script",
+ "narrative",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -262,23 +248,18 @@ def source(self):
base="source",
)
- @field_validator(
- *(
- "content",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "content",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -313,26 +294,21 @@ class TestPlanTestCaseAssertion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "result",
- "object",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "result",
+ "object",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -375,35 +351,30 @@ class TestPlanTestCase(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assertion",
- "testData",
- "testRun",
- "dependency",
- "scope",
- "sequence",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assertion",
+ "testData",
+ "testRun",
+ "dependency",
+ "scope",
+ "sequence",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -648,71 +619,65 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "testCase",
- "exitCriteria",
- "dependency",
- "testTools",
- "scope",
- "category",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "testCase",
+ "exitCriteria",
+ "dependency",
+ "testTools",
+ "scope",
+ "category",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/test_report.py b/fhircraft/fhir/resources/datatypes/R5/core/test_report.py
index 451fc9ba..ef1decc8 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/test_report.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/test_report.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -72,26 +72,21 @@ class TestReportParticipant(BackboneElement):
alias="_display",
)
- @field_validator(
- *(
- "display",
- "uri",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "display",
+ "uri",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -132,26 +127,21 @@ class TestReportSetupActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -237,29 +227,24 @@ class TestReportSetupActionAssert(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "requirement",
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requirement",
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -281,23 +266,18 @@ class TestReportSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -315,26 +295,26 @@ class TestReportSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="inv-1",
@@ -375,26 +355,21 @@ class TestReportTestActionOperation(BackboneElement):
alias="_detail",
)
- @field_validator(
- *(
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -480,29 +455,24 @@ class TestReportTestActionAssert(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "requirement",
- "detail",
- "message",
- "result",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requirement",
+ "detail",
+ "message",
+ "result",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -524,23 +494,18 @@ class TestReportTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -576,38 +541,32 @@ class TestReportTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_inv_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_inv_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="inv-2",
@@ -625,16 +584,15 @@ class TestReportTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -652,14 +610,15 @@ class TestReportTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -809,49 +768,44 @@ class TestReport(DomainResource):
default="TestReport",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "participant",
- "issued",
- "tester",
- "score",
- "result",
- "testScript",
- "status",
- "name",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "participant",
+ "issued",
+ "tester",
+ "score",
+ "result",
+ "testScript",
+ "status",
+ "name",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/test_script.py b/fhircraft/fhir/resources/datatypes/R5/core/test_script.py
index 03c4ccf8..476bf207 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/test_script.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/test_script.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -75,26 +75,21 @@ class TestScriptOrigin(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -130,26 +125,21 @@ class TestScriptDestination(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "profile",
- "index",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "profile",
+ "index",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -181,23 +171,18 @@ class TestScriptMetadataLink(BackboneElement):
alias="_description",
)
- @field_validator(
- *(
- "description",
- "url",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "description",
+ "url",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -274,38 +259,33 @@ class TestScriptMetadataCapability(BackboneElement):
alias="_capabilities",
)
- @field_validator(
- *(
- "capabilities",
- "link",
- "destination",
- "origin",
- "description",
- "validated",
- "required",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capabilities",
+ "link",
+ "destination",
+ "origin",
+ "description",
+ "validated",
+ "required",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -327,23 +307,18 @@ class TestScriptMetadata(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "capability",
- "link",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "capability",
+ "link",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -374,26 +349,21 @@ class TestScriptScope(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "phase",
- "conformance",
- "artifact",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "phase",
+ "conformance",
+ "artifact",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -429,26 +399,21 @@ class TestScriptFixture(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "resource",
- "autodelete",
- "autocreate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "resource",
+ "autodelete",
+ "autocreate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -534,41 +499,36 @@ class TestScriptVariable(BackboneElement):
alias="_sourceId",
)
- @field_validator(
- *(
- "sourceId",
- "path",
- "hint",
- "headerField",
- "expression",
- "description",
- "defaultValue",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceId",
+ "path",
+ "hint",
+ "headerField",
+ "expression",
+ "description",
+ "defaultValue",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -600,23 +560,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -773,68 +728,63 @@ class TestScriptSetupActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1109,92 +1059,87 @@ class TestScriptSetupActionAssert(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "requirement",
- "warningOnly",
- "value",
- "validateProfileId",
- "stopTestOnFail",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "defaultManualCompletion",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requirement",
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "stopTestOnFail",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "defaultManualCompletion",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1216,71 +1161,62 @@ class TestScriptSetupAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_7_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_7_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' |'search' | 'transaction' | 'history'))",
human="Setup operation SHALL contain either sourceId or targetId or params or url.",
key="tst-7",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_5_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_5_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) or (((expression.count() + minimumId.count() <=2) or (expression.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1)) or (((path.count() + minimumId.count() <=2) or (path.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1))",
human="Only a single assertion SHALL be present within setup action assert element.",
key="tst-5",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Setup action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-10",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_12_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_12_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Setup action assert response and responseCode SHALL be empty when direction equals request",
key="tst-12",
@@ -1298,26 +1234,26 @@ class TestScriptSetup(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Setup action SHALL contain either an operation or assert but not both.",
key="tst-1",
@@ -1349,23 +1285,18 @@ class TestScriptSetupActionOperationRequestHeader(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "field",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "field",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1522,68 +1453,63 @@ class TestScriptTestActionOperation(BackboneElement):
alias="_url",
)
- @field_validator(
- *(
- "url",
- "targetId",
- "sourceId",
- "responseId",
- "requestId",
- "requestHeader",
- "params",
- "origin",
- "method",
- "encodeRequestUrl",
- "destination",
- "contentType",
- "accept",
- "description",
- "label",
- "resource",
- "type",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "url",
+ "targetId",
+ "sourceId",
+ "responseId",
+ "requestId",
+ "requestHeader",
+ "params",
+ "origin",
+ "method",
+ "encodeRequestUrl",
+ "destination",
+ "contentType",
+ "accept",
+ "description",
+ "label",
+ "resource",
+ "type",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1858,92 +1784,87 @@ class TestScriptTestActionAssert(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "requirement",
- "warningOnly",
- "value",
- "validateProfileId",
- "stopTestOnFail",
- "sourceId",
- "responseCode",
- "response",
- "resource",
- "requestURL",
- "requestMethod",
- "path",
- "operator",
- "navigationLinks",
- "minimumId",
- "headerField",
- "expression",
- "defaultManualCompletion",
- "contentType",
- "compareToSourcePath",
- "compareToSourceExpression",
- "compareToSourceId",
- "direction",
- "description",
- "label",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "requirement",
+ "warningOnly",
+ "value",
+ "validateProfileId",
+ "stopTestOnFail",
+ "sourceId",
+ "responseCode",
+ "response",
+ "resource",
+ "requestURL",
+ "requestMethod",
+ "path",
+ "operator",
+ "navigationLinks",
+ "minimumId",
+ "headerField",
+ "expression",
+ "defaultManualCompletion",
+ "contentType",
+ "compareToSourcePath",
+ "compareToSourceExpression",
+ "compareToSourceId",
+ "direction",
+ "description",
+ "label",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1965,71 +1886,62 @@ class TestScriptTestAction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "assert_",
- "operation",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "assert_",
+ "operation",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_8_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_8_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Test operation SHALL contain either sourceId or targetId or params or url.",
key="tst-8",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="extension.exists() or (contentType.count() + expression.count() + headerField.count() + minimumId.count() + navigationLinks.count() + path.count() + requestMethod.count() + resource.count() + responseCode.count() + response.count() + validateProfileId.count() <=1) or (((expression.count() + minimumId.count() <=2) or (expression.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1)) or (((path.count() + minimumId.count() <=2) or (path.count() + validateProfileId.count() <=2)) and (expression.count() + path.count() <=1) and (minimumId.count() + validateProfileId.count() <=1))",
human="Only a single assertion SHALL be present within test action assert element.",
key="tst-6",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="compareToSourceId.empty() xor (compareToSourceExpression.exists() or compareToSourcePath.exists())",
human="Test action assert SHALL contain either compareToSourceId and compareToSourceExpression, compareToSourceId and compareToSourcePath or neither.",
key="tst-11",
severity="error",
)
- @field_validator(*("assert_",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_13_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_13_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("assert_",),
expression="(response.empty() and responseCode.empty() and direction = 'request') or direction.empty() or direction = 'response'",
human="Test action assert response and response and responseCode SHALL be empty when direction equals request",
key="tst-13",
@@ -2065,38 +1977,32 @@ class TestScriptTest(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "action",
- "description",
- "name",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "description",
+ "name",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("action",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("action",),
expression="operation.exists() xor assert.exists()",
human="Test action SHALL contain either an operation or assert but not both.",
key="tst-2",
@@ -2114,28 +2020,26 @@ class TestScriptTeardownAction(BackboneElement):
default=None,
)
- @field_validator(
- *("operation", "modifierExtension", "extension"),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "operation",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("operation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("operation",),
expression="sourceId.exists() or (targetId.count() + url.count() + params.count() = 1) or (type.code in ('capabilities' | 'search' | 'transaction' | 'history'))",
human="Teardown operation SHALL contain either sourceId or targetId or params or url.",
key="tst-9",
@@ -2153,14 +2057,15 @@ class TestScriptTeardown(BackboneElement):
default=None,
)
- @field_validator(
- *("action", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "action",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -2416,99 +2321,91 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "teardown",
- "test",
- "setup",
- "variable",
- "profile",
- "fixture",
- "scope",
- "metadata",
- "destination",
- "origin",
- "copyrightLabel",
- "copyright",
- "purpose",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "teardown",
+ "test",
+ "setup",
+ "variable",
+ "profile",
+ "fixture",
+ "scope",
+ "metadata",
+ "destination",
+ "origin",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
severity="warning",
)
- @field_validator(*("metadata",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_4_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_4_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("metadata",),
expression="capability.required.exists() or capability.validated.exists()",
human="TestScript metadata capability SHALL contain required or validated or both.",
key="tst-4",
severity="error",
)
- @field_validator(*("variable",), mode="after", check_fields=None)
- @classmethod
- def FHIR_tst_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_tst_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("variable",),
expression="expression.empty() or headerField.empty() or path.empty()",
human="Variable can only contain one of expression, headerField or path.",
key="tst-3",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/transport.py b/fhircraft/fhir/resources/datatypes/R5/core/transport.py
index b7f6f5c5..8f09029e 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/transport.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/transport.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -107,26 +107,21 @@ class TransportRestriction(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "recipient",
- "period",
- "repetitions",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "recipient",
+ "period",
+ "repetitions",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -462,14 +457,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -869,14 +865,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("type", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "type",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1180,69 +1177,64 @@ class Transport(DomainResource):
default="Transport",
)
- @field_validator(
- *(
- "history",
- "reason",
- "currentLocation",
- "requestedLocation",
- "output",
- "input",
- "restriction",
- "relevantHistory",
- "note",
- "insurance",
- "location",
- "owner",
- "performerType",
- "requester",
- "lastModified",
- "authoredOn",
- "completionTime",
- "encounter",
- "for_",
- "focus",
- "description",
- "code",
- "priority",
- "intent",
- "statusReason",
- "status",
- "partOf",
- "groupIdentifier",
- "basedOn",
- "instantiatesUri",
- "instantiatesCanonical",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "history",
+ "reason",
+ "currentLocation",
+ "requestedLocation",
+ "output",
+ "input",
+ "restriction",
+ "relevantHistory",
+ "note",
+ "insurance",
+ "location",
+ "owner",
+ "performerType",
+ "requester",
+ "lastModified",
+ "authoredOn",
+ "completionTime",
+ "encounter",
+ "for_",
+ "focus",
+ "description",
+ "code",
+ "priority",
+ "intent",
+ "statusReason",
+ "status",
+ "partOf",
+ "groupIdentifier",
+ "basedOn",
+ "instantiatesUri",
+ "instantiatesCanonical",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/value_set.py b/fhircraft/fhir/resources/datatypes/R5/core/value_set.py
index cf3f304b..b967e229 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/value_set.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/value_set.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -80,29 +80,24 @@ class ValueSetComposeIncludeConceptDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "additionalUse",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "additionalUse",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -138,38 +133,32 @@ class ValueSetComposeIncludeConcept(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "designation",
- "display",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "designation",
+ "display",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("designation",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_11_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_11_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("designation",),
expression="additionalUse.exists() implies use.exists()",
human="Must have a value for concept.designation.use if concept.designation.additionalUse is present",
key="vsd-11",
@@ -210,26 +199,21 @@ class ValueSetComposeIncludeFilter(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "op",
- "property_",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "op",
+ "property_",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -287,35 +271,30 @@ class ValueSetComposeInclude(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -373,35 +352,30 @@ class ValueSetComposeExclude(BackboneElement):
alias="_copyright",
)
- @field_validator(
- *(
- "copyright",
- "valueSet",
- "filter",
- "concept",
- "version",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "copyright",
+ "valueSet",
+ "filter",
+ "concept",
+ "version",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -450,68 +424,60 @@ class ValueSetCompose(BackboneElement):
alias="_property",
)
- @field_validator(
- *(
- "property_",
- "exclude",
- "include",
- "inactive",
- "lockedDate",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "property_",
+ "exclude",
+ "include",
+ "inactive",
+ "lockedDate",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="valueSet.exists() or system.exists()",
human="A value set include/exclude SHALL have a value set or a system",
key="vsd-1",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_2_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_2_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="(concept.exists() or filter.exists()) implies system.exists()",
human="A value set with concepts or filters SHALL include a system",
key="vsd-2",
severity="error",
)
- @field_validator(*("include",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_3_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_3_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("include",),
expression="concept.empty() or filter.empty()",
human="Cannot have both concept and filter",
key="vsd-3",
@@ -604,14 +570,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("name", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "name",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -652,23 +619,18 @@ class ValueSetExpansionProperty(BackboneElement):
alias="_uri",
)
- @field_validator(
- *(
- "uri",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "uri",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -708,29 +670,24 @@ class ValueSetExpansionContainsDesignation(BackboneElement):
alias="_value",
)
- @field_validator(
- *(
- "value",
- "additionalUse",
- "use",
- "language",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "value",
+ "additionalUse",
+ "use",
+ "language",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -818,14 +775,15 @@ def value(self):
base="value",
)
- @field_validator(
- *("code", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "code",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -926,23 +884,18 @@ def value(self):
base="value",
)
- @field_validator(
- *(
- "subProperty",
- "code",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "subProperty",
+ "code",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1031,44 +984,39 @@ class ValueSetExpansionContains(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "property_",
- "designation",
- "display",
- "code",
- "version",
- "inactive",
- "abstract",
- "system",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "property_",
+ "designation",
+ "display",
+ "code",
+ "version",
+ "inactive",
+ "abstract",
+ "system",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1139,77 +1087,69 @@ class ValueSetExpansion(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "contains",
- "property_",
- "parameter",
- "offset",
- "total",
- "timestamp",
- "next",
- "identifier",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "contains",
+ "property_",
+ "parameter",
+ "offset",
+ "total",
+ "timestamp",
+ "next",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_6_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_6_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or display.exists()",
human="SHALL have a code or a display",
key="vsd-6",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_9_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_9_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.exists() or abstract = true",
human="SHALL have a code if not abstract",
key="vsd-9",
severity="error",
)
- @field_validator(*("contains",), mode="after", check_fields=None)
- @classmethod
- def FHIR_vsd_10_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_vsd_10_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("contains",),
expression="code.empty() or system.exists()",
human="SHALL have a system if a code is present",
key="vsd-10",
@@ -1241,23 +1181,18 @@ class ValueSetScope(BackboneElement):
alias="_exclusionCriteria",
)
- @field_validator(
- *(
- "exclusionCriteria",
- "inclusionCriteria",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "exclusionCriteria",
+ "inclusionCriteria",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -1535,78 +1470,72 @@ def versionAlgorithm(self):
base="versionAlgorithm",
)
- @field_validator(
- *(
- "scope",
- "expansion",
- "compose",
- "relatedArtifact",
- "endorser",
- "reviewer",
- "editor",
- "author",
- "topic",
- "effectivePeriod",
- "lastReviewDate",
- "approvalDate",
- "copyrightLabel",
- "copyright",
- "purpose",
- "immutable",
- "jurisdiction",
- "useContext",
- "description",
- "contact",
- "publisher",
- "date",
- "experimental",
- "status",
- "title",
- "name",
- "version",
- "identifier",
- "url",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "scope",
+ "expansion",
+ "compose",
+ "relatedArtifact",
+ "endorser",
+ "reviewer",
+ "editor",
+ "author",
+ "topic",
+ "effectivePeriod",
+ "lastReviewDate",
+ "approvalDate",
+ "copyrightLabel",
+ "copyright",
+ "purpose",
+ "immutable",
+ "jurisdiction",
+ "useContext",
+ "description",
+ "contact",
+ "publisher",
+ "date",
+ "experimental",
+ "status",
+ "title",
+ "name",
+ "version",
+ "identifier",
+ "url",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
severity="error",
)
- @field_validator(*("url",), mode="after", check_fields=None)
- @classmethod
- def FHIR_cnl_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_cnl_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=("url",),
expression="exists() implies matches('^[^|# ]+$')",
human="URL should not contain | or # - these characters make processing canonical references problematic",
key="cnl-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/verification_result.py b/fhircraft/fhir/resources/datatypes/R5/core/verification_result.py
index 0445fe6e..92b41371 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/verification_result.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/verification_result.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -79,38 +79,33 @@ class VerificationResultPrimarySource(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "pushTypeAvailable",
- "canPushUpdates",
- "validationDate",
- "validationStatus",
- "communicationMethod",
- "type",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "pushTypeAvailable",
+ "canPushUpdates",
+ "validationDate",
+ "validationStatus",
+ "communicationMethod",
+ "type",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -171,41 +166,36 @@ class VerificationResultAttestation(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "sourceSignature",
- "proxySignature",
- "proxyIdentityCertificate",
- "sourceIdentityCertificate",
- "date",
- "communicationMethod",
- "onBehalfOf",
- "who",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "sourceSignature",
+ "proxySignature",
+ "proxyIdentityCertificate",
+ "sourceIdentityCertificate",
+ "date",
+ "communicationMethod",
+ "onBehalfOf",
+ "who",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -236,26 +226,21 @@ class VerificationResultValidator(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "attestationSignature",
- "identityCertificate",
- "organization",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "attestationSignature",
+ "identityCertificate",
+ "organization",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -403,51 +388,46 @@ class VerificationResult(DomainResource):
default="VerificationResult",
)
- @field_validator(
- *(
- "validator",
- "attestation",
- "primarySource",
- "failureAction",
- "nextScheduled",
- "lastPerformed",
- "frequency",
- "validationProcess",
- "validationType",
- "statusDate",
- "status",
- "need",
- "targetLocation",
- "target",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "validator",
+ "attestation",
+ "primarySource",
+ "failureAction",
+ "nextScheduled",
+ "lastPerformed",
+ "frequency",
+ "validationProcess",
+ "validationType",
+ "statusDate",
+ "status",
+ "need",
+ "targetLocation",
+ "target",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/R5/core/vision_prescription.py b/fhircraft/fhir/resources/datatypes/R5/core/vision_prescription.py
index 9c2018fb..8aaa91a2 100644
--- a/fhircraft/fhir/resources/datatypes/R5/core/vision_prescription.py
+++ b/fhircraft/fhir/resources/datatypes/R5/core/vision_prescription.py
@@ -2,7 +2,7 @@
import fhircraft.fhir.resources.validators as fhir_validators
# Pydantic modules
-from pydantic import Field, field_validator, model_validator, BaseModel
+from pydantic import Field, model_validator, BaseModel
from pydantic.fields import FieldInfo
# Standard modules
@@ -66,23 +66,18 @@ class VisionPrescriptionLensSpecificationPrism(BackboneElement):
alias="_base",
)
- @field_validator(
- *(
- "base",
- "amount",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "base",
+ "amount",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -202,59 +197,54 @@ class VisionPrescriptionLensSpecification(BackboneElement):
default=None,
)
- @field_validator(
- *(
- "note",
- "brand",
- "color",
- "duration",
- "diameter",
- "backCurve",
- "power",
- "add",
- "prism",
- "axis",
- "cylinder",
- "sphere",
- "eye",
- "product",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- "modifierExtension",
- "extension",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "note",
+ "brand",
+ "color",
+ "duration",
+ "diameter",
+ "backCurve",
+ "power",
+ "add",
+ "prism",
+ "axis",
+ "cylinder",
+ "sphere",
+ "eye",
+ "product",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ "modifierExtension",
+ "extension",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
@@ -368,45 +358,40 @@ class VisionPrescription(DomainResource):
default="VisionPrescription",
)
- @field_validator(
- *(
- "lensSpecification",
- "prescriber",
- "dateWritten",
- "encounter",
- "patient",
- "created",
- "status",
- "identifier",
- "modifierExtension",
- "extension",
- "text",
- "language",
- "implicitRules",
- "meta",
- ),
- mode="after",
- check_fields=None,
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ele_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "lensSpecification",
+ "prescriber",
+ "dateWritten",
+ "encounter",
+ "patient",
+ "created",
+ "status",
+ "identifier",
+ "modifierExtension",
+ "extension",
+ "text",
+ "language",
+ "implicitRules",
+ "meta",
+ ),
expression="hasValue() or (children().count() > id.count())",
human="All FHIR elements must have a @value or children",
key="ele-1",
severity="error",
)
- @field_validator(
- *("modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ext_1_constraint_validator(cls, value):
+ @model_validator(mode="after")
+ def FHIR_ext_1_constraint_validator(self):
return fhir_validators.validate_element_constraint(
- cls,
- value,
+ self,
+ elements=(
+ "modifierExtension",
+ "extension",
+ ),
expression="extension.exists() != value.exists()",
human="Must have either extensions or value[x], not both",
key="ext-1",
diff --git a/fhircraft/fhir/resources/datatypes/__init__.py b/fhircraft/fhir/resources/datatypes/__init__.py
index 95ef7bcd..a019a048 100644
--- a/fhircraft/fhir/resources/datatypes/__init__.py
+++ b/fhircraft/fhir/resources/datatypes/__init__.py
@@ -1,7 +1,11 @@
-from .utils import get_complex_FHIR_type, get_fhir_primitive_type, get_fhir_resource_type
+from .utils import (
+ get_complex_FHIR_type,
+ get_fhir_primitive_type,
+ get_fhir_resource_type,
+)
__all__ = [
"get_complex_FHIR_type",
"get_fhir_primitive_type",
"get_fhir_resource_type",
-]
\ No newline at end of file
+]
diff --git a/fhircraft/fhir/resources/definitions/structure_definition.py b/fhircraft/fhir/resources/definitions/structure_definition.py
index 04fdc441..522dd5ef 100644
--- a/fhircraft/fhir/resources/definitions/structure_definition.py
+++ b/fhircraft/fhir/resources/definitions/structure_definition.py
@@ -195,19 +195,19 @@ class StructureDefinitionDifferential(BackboneElement):
description="Definition of elements in the resource (if no StructureDefinition)",
)
- @field_validator(
- *("element", "modifierExtension", "extension"), mode="after", check_fields=None
- )
- @classmethod
- def FHIR_ele_1_constraint_validator(cls, value):
- return fhir_validators.validate_element_constraint(
- cls,
- value,
- expression="hasValue() or (children().count() > id.count())",
- human="All FHIR elements must have a @value or children",
- key="ele-1",
- severity="error",
- )
+ # @field_validator(
+ # *("element", "modifierExtension", "extension"), mode="after", check_fields=None
+ # )
+ # @classmethod
+ # def FHIR_ele_1_constraint_validator(cls, value):
+ # return fhir_validators.validate_element_constraint(
+ # cls,
+ # value,
+ # expression="hasValue() or (children().count() > id.count())",
+ # human="All FHIR elements must have a @value or children",
+ # key="ele-1",
+ # severity="error",
+ # )
class StructureDefinition(FHIRBaseModel):
diff --git a/fhircraft/fhir/resources/factory.py b/fhircraft/fhir/resources/factory.py
index c403d41c..4963988c 100644
--- a/fhircraft/fhir/resources/factory.py
+++ b/fhircraft/fhir/resources/factory.py
@@ -133,27 +133,24 @@ def add_element_constraint_validator(
# Construct function name for validator
constraint_name = constraint.key.replace("-", "_")
validator_name = f"FHIR_{constraint_name}_constraint_validator"
+ # If base model has a validator with the same name, modify the validator name to avoid conflicts
+ if base and validator_name in base.__pydantic_decorators__.field_validators:
+ validator_name = f"{base.__name__}_diff_{validator_name}"
# Check if validator has already been constructed for another field
validate_fields = [field]
# Get the list of fields already being validated by this constraint
if validator_name in self._validators:
validator = self._validators.get(validator_name)
if validator:
- validate_fields.extend(validator.decorator_info.fields)
- # Get the list of fields already being validated by this constraint in base model
- if base and validator_name in base.__pydantic_decorators__.field_validators:
- validate_fields.extend(
- base.__pydantic_decorators__.field_validators[
- validator_name
- ].info.fields
- )
+ validate_fields.extend(validator.keywords.get("elements", []))
# Add the current field to the list of validated fields
if constraint.expression:
- self._validators[validator_name] = field_validator(
- *validate_fields, mode="after"
+ self._validators[validator_name] = model_validator(
+ mode="after"
)(
partial(
fhir_validators.validate_element_constraint,
+ elements=validate_fields,
expression=constraint.expression,
human=constraint.human,
key=constraint.key,
diff --git a/fhircraft/fhir/resources/validators.py b/fhircraft/fhir/resources/validators.py
index 6b3479dc..c3c98265 100644
--- a/fhircraft/fhir/resources/validators.py
+++ b/fhircraft/fhir/resources/validators.py
@@ -3,7 +3,7 @@
import warnings
# Standard modules
-from typing import TYPE_CHECKING, Any, List, TypeVar, Union
+from typing import TYPE_CHECKING, Any, List, TypeVar, Union, Sequence
from pydantic import BaseModel
@@ -16,7 +16,7 @@
def _validate_FHIR_element_constraint(
- value: Any, expression: str, human: str, key: str, severity: str
+ value: Any, expression: str, human: str, key: str, severity: str, element: str | None = None
):
"""
Validate FHIR element constraint against a FHIRPath expression.
@@ -75,7 +75,9 @@ def _validate_FHIR_element_constraint(
for item in ensure_list(value):
try:
valid = fhirpath.parse(expression).single(item, default=True)
- error_message = f'{human}. [{key}] -> "{expression}"'
+ error_message = f'[{key}] {human}. -> {expression}'
+ if element:
+ error_message = f'{element}\n\t{error_message}'
if effective_severity == "warning" and not valid:
warnings.warn(error_message, FhirPathWarning)
else:
@@ -94,14 +96,14 @@ def _validate_FHIR_element_constraint(
def validate_element_constraint(
- cls, value: Any, expression: str, human: str, key: str, severity: str
-) -> Any:
+ instance: T, elements: Sequence[str], expression: str, human: str, key: str, severity: str
+) -> T:
"""
Validates a FHIR element constraint based on a FHIRPath expression.
Args:
- cls (Any): Placeholder for an argument that is not used in the function.
- value (Any): The value to be validated.
+ instance (T): The instance to be validated.
+ elements (Sequence[str]): The elements to be validated.
expression (str): The FHIRPath expression to evaluate.
human (str): A human-readable description of the constraint.
key (str): The key associated with the constraint.
@@ -114,7 +116,12 @@ def validate_element_constraint(
AssertionError: If the validation fails and severity is not `warning`.
Warning: If the validation fails and severity is `warning`.
"""
- return _validate_FHIR_element_constraint(value, expression, human, key, severity)
+ for element in elements:
+ value = getattr(instance, element)
+ if not value:
+ continue
+ _validate_FHIR_element_constraint(value, expression, human, key, severity)
+ return instance
def validate_model_constraint(