dcmjs icon indicating copy to clipboard operation
dcmjs copied to clipboard

Release version 1.0 with API updates

Open wayfarer3130 opened this issue 10 months ago • 3 comments

This issue is for a beta-1 release process. The planned changes for this include API updates which will be incompatible with the 0.XX stream.

@pieper - I've created an issue for a release stream of dcmjs, as well as a stream beta-1 to contain the updates for the 1.0 version.

The planned changes for the 1.0 release include:

  1. Full set of type definitions for dcmjs
  2. Remove proxy definitions for all attributes, instead changing to use a consistent definition/object instance that:
  • maps data using adapters to provide missing data (to map to incoming data values and add accessors)
  • Maps vm to instance attribute such that vm===1 means the attribute gets assigned as a singleton rather than an array
  • Add attribute get methods to get consistent types, eg: element.tagValue.array to get as an array element.tagValue.first to get the first value element.tagValue.get(index) to get the nth value element.tagValue.firstNumber/firstString/firstDate
  1. Add frame/instance attribute to get tag value at given frame number or "virtual" frame number to hide shared/per frame data
  2. Add private tag handling for items.
  3. Build only esm modules using bun/rsbuild for faster build setup
  4. Add log4js logging bindings to allow logs to be set to various levels and/or redirected.

wayfarer3130 avatar Feb 24 '25 22:02 wayfarer3130

@pieper - I've created an initial thought for a 1.0 release for dcmjs. I'm not sure it has quite the right stuff in it, but I think it is close. Do you think we could also combine the naturalized/normalized version into a single object rather than having those as separate items? We will probably need to run with the beta release for some length of time to make sure it works - I'm figuring close to a year.

wayfarer3130 avatar Feb 24 '25 22:02 wayfarer3130

Thanks for jumping in on this @wayfarer3130 🙏 These sound like good improvements and yes, some transition time is good. I would add a few things like fixing the examples and documentation as best practices for the release. I'm not sure how much time I'll personally be able to invest in this process but it's great to see it move forward.

pieper avatar Feb 25 '25 16:02 pieper

Regarding naturalize yes, that could be a base feature. Normalizing is a bit different as it operates on collections of datasets.

pieper avatar Feb 25 '25 16:02 pieper