Release notes¶
0.5.2¶
CP-1570 / TID 3465 compliance:
OrthodonticPhotographnow buildsAcquisitionContextSequencefrom typedOrthoViewfields mapping directly to TID 3465 rows (OrthognathicFunctionalCondition, FindingByInspection, ObservableEntity, DentalOcclusion, and optional LongitudinalTemporalEventType + Offset viaset_treatment_progress()).Build-time code generation: replaced runtime CSV parsing with a code-generation pipeline (
tools/generate_codes.py). Readscodes.csvandviews.csvand emitsdicom4ortho/_generated_codes.py— a committed lock file of typed Python constants (DicomCode,OrthoView). No network I/O at runtime.Typed data layer: two new frozen dataclasses in
m_dent_oip.py—DicomCode(withto_dataset()/to_sequence()) andOrthoView(all 73 view definitions with typed fields for every DICOM attribute).Incomplete-view enforcement: views with a variable
ViewCodeSequence(IV28, IV30, EV40) now raiseTypeErrorimmediately at construction unlessview_code_keywordis supplied.set_view_code()fills the slot and auto-attaches any predefinedViewModifierCodeSequence.codes.csv / views.csv corrections:
OrthognathicFunctionalConditionsconcept-name code corrected (ZZZZZZ→130325, DCM, per CP-1570);closeupkeyword mismatch fixed; IV29 givenprojection_frontalas its fixed ViewCode.CLI fix:
dicom4ortho list-image-typesnow works correctly (fixedTypeError: 'PosixPath' object is not iterableinprint_image_types()); help text updated to show the full command.CLI cleanup: removed
--url-codes/--url-viewsflags (broken since the refactor; resource updates are now a build-time operation viamake update_resources).Dev environment:
flake.nixrewritten to use pip/pyproject.toml as the single source of truth for Python deps;dciodvfyanddcmtkadded to the Nix shell.Makefile:
make update_resourcesnow only regenerates_generated_codes.pyfrom committed CSVs; newmake fetch_resourcestarget does the upstream curl downloads separately. Newmake helpdefault target.Tests: 29 new tests in
test/test_generated_codes.pycovering CSV consistency, all 73 view attribute correctness, and theview_code_keyword/set_view_code()API.
0.5.1¶
Rename
get/set_image_type_code_sequence→get/set_image_type_code_datasetfor consistency with pydicom naming conventions.Add tests for image type code dataset handling in
OrthodonticPhotograph.Refactor test files for improved organisation and logging consistency.
0.4.7¶
Fix default Series and Study Date and Time to empty.
0.4.2¶
Add partial support for EXIF metadata: copy tags from EXIF to DICOM according to standard. Only Manufacturer related and date related tags are copied.
0.4¶
Add support for DICOM MWL (Modality Worklist): copy tags from MWL
Add support for using InstanceNumber and ScheduledProtocolCode to define image type
Add method to decode the image type from the InstanceNumber and ScheduledProtocolCodeSequence
Remove code related to teeth
Add setters for Series and Instance Numbers
0.2¶
Add BurnedInAnnotation, Operator, Institution and Performing Physician tags
Load views and codes from ADA-1107
Fix Patient, Doctor and Operator names
Add support for JPEG2000
UID is now generated from hashing the input file
Other bug fixes