Comments (2)
@simonvadee thank you so much for raising this issue and sorry for any inconvenience.
note: Enum values can be used in validation, but use in your own responsibilities, read official FHIR documentation.
Means this validation is not part of built-in model validation, in other words not implemented (but possible to make custom validation depends on project needs (I will give example for this))
Why not ENUM validation included:
- first of all FHIR specification doesnโt enforce this kind of validation, on the other hand enums are generated by parsing string, so all enums are not trusted. You will find that some enum list contains value '+', which means more value could be acceptable.
- I think it is possible to give other value, rather than only from the enum list by adding a new extension.
- If we add this enum validation as core part that could be a disaster for any project.
But we have that flexibility kept to make custom validation, moreover, it will be possible extend enum values!
Example:
from typing import Dict
from fhir.resources.patient import Patient
def validate_gender(cls, values: Dict):
if not values:
return values
enums = cls.__fields__["gender"].field_info.extra["enum_values"]
if "gender" in values and values["gender"] not in enums:
raise ValueError("write your message")
return values
Patient.add_root_validator(validate_gender, pre=True)
Here you will find, about better way to add custom validator #17 (comment)
from fhir.resources.
Thank you for the example, now I understand why (and how) enum validation is not enforced by default!
from fhir.resources.
Related Issues (20)
- urn not supported in Url
- FHIR resource as pydantic request model in FastAPI
- Pydantic 2.0 Migration Plan HOT 17
- Restrict Pydantic to <2.0.0 HOT 3
- Sample code execution error HOT 3
- Use warnings.warn() instead of logging the warning about the ignored extra parameters passed to json() and dict()
- Improve documentation of orjson HOT 1
- Parsing XML byte string MESH acknowledgment response HOT 2
- Instant on DocumentReference not properly output on json HOT 1
- Resource / element to be json-serializable HOT 2
- How to override validation HOT 2
- Handling FHIR Versions
- Error in ID length on EPIC Sandbox data HOT 4
- A way to get list of all resources and their inner elements, help needed in getting sub elements of inner elements HOT 1
- Security vulnerability in orjson package: CVE-2024-27454
- AllergyIntolerance object gives "Extra fields not permitted" error for reaction object.
- Update pydantic version for FHIR R4 or fhir.resources == 6.4.0
- Parsing error for StructureDefinitions with type slicing in R4B HOT 1
- Incorrect validation of Task HOT 1
- parsing yaml instructions HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fhir.resources.