nazrulworld / fhir.resources

FHIR Resources https://www.hl7.org/fhir/resourcelist.html
https://pypi.org/project/fhir.resources/
Other
373 stars 104 forks source link

switch the type of Element.id from id to string for R4B #160

Open cybernop opened 1 month ago

cybernop commented 1 month ago

According to the FHIR documentation Element.id should be of type string.

StructureDefinitions with type slicing will have entries in the differential and snapshot part in the format like Observation.category:VSCat. This is valid according to the specification. But before the element was of type id which caused validation errors when parsing StructureDefinitions like this.

nazrulworld commented 1 month ago

@cybernop Thanks a lot for your PR. Please have a look here https://github.com/nazrulworld/fhir.resources?tab=readme-ov-file#resourceid-aka-fhirtypesid-constraint-extensibility

Here is an example of patch https://github.com/nazrulworld/fhir.resources/blob/main/fhir/resources/core/patch/patch_r4b_test.py

cybernop commented 1 month ago

@cybernop Thanks a lot for your PR. Please have a look here https://github.com/nazrulworld/fhir.resources?tab=readme-ov-file#resourceid-aka-fhirtypesid-constraint-extensibility

Here is an example of patch https://github.com/nazrulworld/fhir.resources/blob/main/fhir/resources/core/patch/patch_r4b_test.py

@nazrulworld Thanks for the reply. But I do not fully understand what you are trying to tell me. Do you want to tell me error is on the user side or should should I add a test case? I do not want to to change the length of Id nor do I want to create a patch for something. I just wanted to fix an error in the data type definition.

In my opinion the type of Element.id in R4B is incorrect. In the definition it is of type string and all other version (DSTU2, STU3 and R5) use the correct data type for Element.id. Only in R4B id was used incorrectly which prevents using the library in my project because of invalid parsing errors.

cybernop commented 1 month ago

I just want to stress that this is an issue of incorrect type and not the length of ID