Skip to content

Latest commit

 

History

History
485 lines (331 loc) · 22 KB

CHANGELOG.md

File metadata and controls

485 lines (331 loc) · 22 KB

NAACCR XML Version History

Version 11.3

  • Changed type of pediatricId from mixed to text in NAACCR 25 dictionary.
  • Changed type of pediatricIdVersionCurrent from digits to numeric in NAACCR 25 dictionary.
  • Changed type of pediatricIdVersionOriginal from digits to numeric in NAACCR 25 dictionary.
  • Changed type of pdl1 from mixed to text in NAACCR 25 dictionary.
  • Changed type of whiteBloodCellCount from digits to text in NAACCR 25 dictionary.

Version 11.2

  • The minimum Java version of the library is now Java 11; Java 8 is no longer supported (this doesn't apply to the SAS macros).
  • Updated XStream dependency from version 1.4.20 to version 1.4.21.

Version 11.1

  • Fixed two minor mistakes in the NAACCR 25 base dictionary.

Version 11.0

  • Added support for NAACCR 25.
  • Added support for new specification version 1.8 (added support for new dateTime type).
  • Re-compiled SAS library under Java 8; it is no longer compatible with Java 7.

Version 10.2

  • Changed data level errors from an exception to a validation error reported on the item.
  • Fixed behavior of the reading SAS macro when it deals with fields that have a value too long in the XML file.
  • Added new 'specs' parameter to allow writing a provided specifications version instead of the default library one.

Version 10.1

  • Optimized read SAS macro.
  • Fixed a major issue with the write SAS macro.

Version 10.0

  • Added support for NAACCR 24.
  • Added support for new specification version 1.7 (removed trim attribute and some padding options); only NAACCR 24 dictionary will use that version for now).
  • Removed standalone program (the removal was announced a year ago when support for NAACCR 23 was added).
  • Re-wrote the SAS macro to use a temp fixed-column file instead of a temp CSV file to resolve a maxed-out line length issue.

Version 9.1

  • Fixed specification version not correctly used when provided in the options.
  • Updated XStream dependency from version 1.4.19 to version 1.4.20.

Version 9.0

  • Added support for NAACCR 23.
  • Added support for new specification version 1.6 (removed allowUnlimitedText and groupedItems); only NAACCR 23 dictionary will use that version for now.
  • Items that need to be zero-padded are now only padded if they contain a numeric value.
  • Fixed an issue with the SAS macro where path to CSV dictionary would not work properly if it contained spaces.
  • Updated embedded JRE to Java 17.0.4 (this only affects the standalone program).

Version 8.10

  • Added new optional parameter to the read SAS macro to allow creating the grouped items in the target SAS data set.
  • Updated XStream dependency from version 1.4.18 to version 1.4.19.
  • Updated embedded JRE to Java 17.0.3 (this only affects the standalone program).

Version 8.9

  • Added new utility method "xmlToXml" in NaaccrXmlUtils class to allow a file to be re-created while applying some logic to each patient it contains.
  • Improve validation of start columns for N18 dictionaries and prior.
  • Fixed validation of user-defined dictionaries not detecting grouped items.
  • Re-added support for providing a user-defined dictionary when processing a flat file (Standalone program only).
  • Updated embedded JRE to Java 17.0.2 (this only affects the standalone program).

Version 8.8

  • Fixed an error in standalone program preventing it from using multiple user-defined dictionaries.
  • Updated embedded JRE to Java 17.0.1 (this only affects the standalone program).
  • Added new optional parameter to the write SAS macro to allow disabling tumor grouping.

Version 8.7

  • Fixed an error in SAS macros preventing them from using multiple user-defined dictionaries.

Version 8.6

  • Improved help and feedback of SAS macros.

Version 8.5

  • Upgraded all base dictionaries to specification v1.5; added new dateLastModified attribute.

Version 8.4

  • Removed left-zero-padded attributes for reportingFacility in all base dictionaries.
  • Changed length of dcStateFileNumber in NAACCR 22 base dictionary.
  • Tweaked code that loads dictionaries to not always report a missing default namespace as an error.

Version 8.3

  • Fixed default namespace not always written for dictionaries.

Version 8.2

  • Dictionary validation will now fail if the expected default namespace is not provided.
  • Fixed non-standard root attributes not written on their own line.
  • Updated XStream dependency from version 1.4.17 to version 1.4.18.
  • Updated commons-lang3 dependency from version 3.11 to version 3.12.0.
  • Updated commons-io dependency from version 2.7 to version 2.11.0.

Version 8.1

  • Fixed error that prevented the standalone program from loading. That error also affected other parts of the library.

Version 8.0

  • Added support for NAACCR 22.
  • Added support for new specification version 1.5 (base dictionaries were NOT upgraded to that version yet).
  • Fixed dictionary validation not reporting unknown/invalid XML attributes.
  • Updated embedded JRE to Java 11.0.12 (this only affects the standalone program).

Version 7.13

  • Updated embedded JRE to Java 11.0.11 (this only affects the standalone program).
  • Updated XStream dependency from version 1.4.16 to version 1.4.17.
  • Improved output of the SAS library in SAS logs.

Version 7.12

  • Fixed validation of text values containing new lines.
  • Improved SAS macros, added ability to provide items to include as a CSV file.
  • Improved read SAS macro, added ability to process compressed files inside a source ZIP file.

Version 7.11

  • Added new method utility method to stream a given dictionary to a given reader.

Version 7.10

  • Updated XStream dependency from version 1.4.15 to version 1.4.16.

Version 7.9

  • Added new parameter to write SAS macro to write NAACCR numbers; optional, defaults to not writing them.
  • Changed padding of ca199PretxLabValue to be leftBlank in base N21 dictionary.
  • Changed padding of sentinelLymphNodesExamined, sentinelLymphNodesPositive and phase1DosePerFraction to be leftZero in base N18 and N21 dictionaries.

Version 7.8

  • Improved error message in SAS macros when referencing an invalid CSV dictionary.
  • Fixed default filename when exporting a dictionary to a CSV file in standalone program.
  • Updated embedded JRE to Java 11.0.10 (this only affects the standalone program).

Version 7.7

  • Changed "latest" format (which represents the default format for the library) to 210.
  • Updated XStream dependency from version 1.4.14 to version 1.4.15.

Version 7.6

  • Changed data type for item physicianPrimarySurg from digits to text in all base dictionaries.
  • Added new option for the reader to throw an exception for missing user-defined dictionaries; default is to not throw the exception.
  • Updated embedded JRE to Java 11.0.9 (this only affects the standalone program).
  • Updated XStream dependency from version 1.4.13 to version 1.4.14.

Version 7.5

  • Added logic to automatically move dateOfLastCancerStatus and dateOfLastCancerStatusFlag to each tumor when reading them at the Patient level.

Version 7.4

  • Changed data level of dateOfLastCancerStatus and dateOfLastCancerStatusFlag from Patient to Tumor in N18 and N21 dictionaries.
  • Added support for unlimited text fields in dictionary editor (this only affects the standalone program).
  • Improved dictionary validation: unlimited text attribute can only be used with text items.

Version 7.3

  • Fixed an error in the write SAS macro that prevented it from correctly running.
  • Now writing each root attribute on its own line when creating NAACCR XML data files.
  • Updated XStream dependency from version 1.4.12 to version 1.4.13.
  • Updated commons-lang3 dependency from version 3.10 to version 3.11.

Version 7.2

  • Added changelog in comment block on top if N18 and N21 dictionaries.
  • Changed padding of ki67 to be leftBlank instead of rightBlank in N21 and N18 base dictionary; it was changed by mistake.

Version 7.1

  • Changed type of ki67 to be text in N21 and N18 base dictionary.
  • Changed type of tnmEditionNumber to be text in N21 and N18 base dictionary.
  • Changed type of morphCodingSysCurrent/Original to be mixed in N21 and N18 base dictionary.
  • Changed type of figoStage to be text in N21 base dictionary.
  • Changed data level from Tumor to Patient for 3 COVID data items in N21 base dictionary.
  • Now handling blank values instead of missing attribute for optional attributes.
  • Updated embedded JRE to Java 11.0.8 (this only affects the standalone program).

Version 7.0

  • Added support for NAACCR 21; that version is not final yet and it's possible it will change in a future release.
  • Fixed the name of a few data items in NAACCR N18 dictionary.
  • Added a NaaccrFormat.NAACCR_VERSION_LATEST constant, it is set to version 18 in this release.
  • Added a disclaimer to base dictionaries mentioning those should not be modified.
  • Fixed wrong padding for ruralurbanContinuum2013 and censusOccCode2010 in N18 dictionary.
  • Updated XStream dependency from version 1.4.11.1 to version 1.4.12.
  • Updated commons-io dependency from version 2.6 to version 2.7.
  • Updated commons-lang3 dependency from version 3.9 to version 3.10.

Version 6.8

  • Added a new option to allow a user-defined dictionary URI to be translated when read from an XML data file.

Version 6.7

  • Fixed an infinite loop in Java code called by the SAS macros; tweaked the macros a bit.
  • Updated conflict resolution for duplicate items in multiple user-defined dictionaries.
  • Updated embedded JRE to Java 11.0.7 (this only affects the standalone program).

Version 6.6

  • Added missing specification 1.4 XSD files, they are identical to the specification 1.3 XSD files.
  • It is now possible to generate XML ID from item name in the dictionary editor.
  • Updated embedded JRE to Java 11.0.6 (this only affects the standalone program).

Version 6.5

  • Added support for reporting end lines for Patient and Tumor entities.
  • Added support for selecting multiple user-defined dictionaries in the standalone program.
  • Dictionary selection dialog will now default to same folder as selected data file (standalone program).
  • Updated commons-lang3 dependency from version 3.7 to version 3.9.

Version 6.4

  • Improved the feedback when processing an XML file referencing a missing user-defined dictionary.
  • Updated embedded JRE to Java 11.0.5 (this only affects the standalone program).

Version 6.3

  • Now always applying space padding rules when writing fixed-columns; the padding options only applies to zero-padding.
  • Fixed cell editing issue in the items table of the standalone program.

Version 6.2

  • Improved support for NAACCR XML extensions; added ability to report line number on embedded extensions.
  • Updated embedded JRE to Java 12.0.2 (this only affects the standalone program).

Version 6.1

  • Added a new option to allow N18 renamed item IDs to be automatically translated by the library when reading XML data.
  • Added a new option to allow provided item IDs to be automatically translated by the library when reading XML data.
  • Updated LICENSE file that is included with the standalone program.

Version 6.0

  • Updated default specification version from 1.3 to 1.4.
  • Changed maximum length of NAACCR IDs from 50 to 32 characters (specification 1.4).
  • Renamed a bunch of IDs in N18 dictionary to comply with new maximum length.

Version 5.4

  • Fixed a few items being included by mistake in the confidential format in the version 18 dictionary.

Version 5.3

  • Fixed parent XML element to be Tumor instead of Patient for seerCaseSpecificCod (1914) and seerOtherCod (1915) in N18 dictionary.
  • Now applying default value for dataType, padding and trim attributes when reading a dictionary from XML.
  • Added new methods on Patient and Tumor to remove a given data item.
  • Added option to standalone program to extract user-defined dictionaries into CSV files.
  • Updated embedded JRE to Java 12.0.1 (this only affects the standalone program).

Version 5.2

  • Fixed wrong expected length for Confidential format.
  • Updated embedded JRE to Java 12 (this only affects the standalone program).
  • Now setting the line number of the root naaccrData objects.

Version 5.1

  • Fixed recordNumberRecode item in base 18 dictionary to have Tumor instead of Patient as its ParentXmlTag.
  • Added missing validation on record type attribute when loading a dictionary.
  • Updated embedded JRE to Java 11.0.2 (this only affects the standalone program).

Version 5.0

  • Changed the release of the standalone program, it now contains an embedded JRE.
  • Invalid TimeGenerated is now reported as a validation error instead of an exception.

Version 4.15

  • The ampersand is now considered as a word separator when generating an NAACCR ID from a data item name.
  • Changed data types of RUCA/URIC from digits to mixed.
  • Fixed warnings in the console about unsafe access to private fields.
  • Updated XStream dependency from version 1.4.10 to version 1.4.11.1.

Version 4.14

  • Changed dictionary validation methods to return all errors instead of just the first one.
  • Added setTumors on Patient class and setPatients on NaaccrData class.
  • Removed dependency to XZ compression since it does not look like anyone uses it.
  • Fixed first two new lines characters in data files not honoring the new line character option.

Version 4.13

  • Removed dependency to JAXB API; this library now uses the standard date/time classes to deal with ISO 8601 dates.
  • Added an option to specify the end-of-line characters when writing flat or XML data (does not apply to dictionaries).
  • Set NAACCR ID and value on NaaccrValidationError object for CODE_BAD_NAACCR_ID errors

Version 4.12

  • Fixed alignment for items circumferentialResectionMargin (#3823) and hcgPostOrchiectomyLabValue (#3846).

Version 4.11

  • The 'naaccrName' attribute is now enforced to be up to 50 characters.
  • Standalone GUI now shows the number of written Patient and Tumor when creating XML files.
  • Added new menu item to standalone GUI to save a given dictionary as CSV file.
  • Added support for user-defined dictionary to SAS module.
  • Updated commons-lang3 dependency from version 3.6 to version 3.7.
  • Updated commons-io dependency from version 2.5 to version 2.6.
  • Updated XZ compression library from version 1.6 to version 1.8.

Version 4.10

  • Added maximum length of 50 characters for NaaccrId attribute in the dictionaries.
  • Added new DuplicateItemException to deal with duplicate items, which are never allowed in this standard.
  • Writing unknown items is now tied to the 'unknownItemHandling' option.
  • Improved handling of CDATA sections when reading/writing XML for SAS.

Version 4.9

  • Added a missing flush to the PatientFlatWriter.closeAndKeepAlive method.
  • Now replacing a single CR (without a LF) by a space when writing to a flat file.
  • Fixed an exception happening when trying to write XML with padding turned ON.
  • PatientReader and PatientWriter interfaces are now extending Closeable instead of AutoCloseable.
  • Added support for creating SAS definition file in the standalone GUI interface.

Version 4.8

  • Fixed padding, alignment and dataType attributes for items in NAACCR dictionaries

Version 4.7

  • Fixed typos in NAACCR ID of new NAACCR 18 data item from 'ceaPretreatmentIntrepretation' to 'ceaPretreatmentInterpretation'.
  • Fixed wrong NAACCR ID and name for item #1788 in version 15 dictionary.

Version 4.6

  • Final version of the NAACCR 18 dictionary.

Version 4.5

  • Added support for NAACCR 18; that version is not final yet and it's possible it will change in a future release.
  • Extensions now return their line number if the class implements NaaccrXmlExtension.
  • Added a new dictionary editor in the standalone GUI.
  • Added new jaxb-api (version 2.3.0) dependency required by Java 9.

Version 4.4

  • Fixed an exception in new validation method added in version 4.3.

Version 4.3

  • Added a new dictionary utility method that validates a combination of dictionaries instead of a single one.
  • The patient readers/writers are now implementing a common reader/writer interface.
  • Improved handling of extension to allow several extension objects per data level instead of a single one.
  • Improved the algorithm that generate NAACCR XML ID from names so it handles roman numerals better.
  • Improved user-defined dictionaries validation; an error will now be reported if two dictionaries define overlapping columns.
  • Added a proper security environment to XStream by limiting the classes that it can create when loading XML files.
  • Updated XStream dependency from version 1.4.9 to version 1.4.10.
  • Updated commons-lang3 dependency from version 3.4 to version 3.6.
  • Updated XZ compression library from version 1.5 to version 1.6.

Version 4.2

  • Fixed a bug in the dictionary validation that would not flag as invalid a dictionary with a missing URI attribute.
  • Added support in NaaccrXmlUtils for new lineToPatient and patientToLine methods.

Version 4.1

  • Addressed a bug crashing the Standalone GUI when minimizing the application.

Version 4.0

  • Updated default specification version from 1.2 to 1.3.
  • Relaxed the validation of the NAACCR numbers in user-defined dictionaries (specification 1.3).
  • Relaxed the rule requiring all the user dictionaries from data files to be provided to the library.
  • Changed type of causeOfDeath in all base dictionaries from digits to text.
  • Fixed start column of grouped item extendOfDisease10Dig in all base dictionaries.
  • Now display the number of Patient and Tumor tags found in the source XML file in the GUI.
  • Added an option to the GUI for extracting the dictionaries as CSV files.

Version 3.0

  • Updated default specification version from 1.1 to 1.2.
  • Added the ability to cache a runtime dictionary when using the XML reader/writer inside a loop.
  • Added 'getDefault()' method to options and configuration objects.
  • Now caching the internal dictionaries (base and default user) in the dictionary utility class.
  • Added support for multiple user dictionaries (specification 1.2).
  • Added support for grouped items definition in the base dictionaries (specification 1.2).
  • Relaxed the type of many items in standard base dictionaries (specification 1.2).
  • Removed support for "regexValidation" in dictionaries (specification 1.2).
  • Added full support for extensions (user-defined XML blocks) at the NaaccrData, Patient and Tumor levels.
  • Added better support for non-printable control characters; those will be ignored by default when writing item values; an error can be thrown instead by setting the 'ignoreControlCharacters' options to false.
  • Carriage Returns (CR) are now translated to Line Feed (LF) when writing item values; this library was writing it as ' ' which it technically correct but was causing some confusion.
  • Added proper support for namespaces.

Version 2.3

  • Fixed wrong item length for seerMets in version 16, was defined as length 1 instead of 2.

Version 2.2

  • Fixed wrong item number in 14, 15 and 16 default user dictionaries for reserved 17 item.
  • Fixed wrong item number in 16 base dictionary for items derivedSeerCmbNSrc and derivedSeerCmbMSrc.

Version 2.1

  • Fixed NAACCR ID of Item Numbers 272 and 282; those should not have been renamed from NAACCR 15.
  • Removed Class-Path attribute from generated JAR.

Version 2.0

  • Updated default specification version from 1.0 to 1.1.
  • Removed "any-attribute" from the XSD since those are not properly supported; only kept the one for the NaaccrData tag.
  • Added line number on the item object; populated only when reading items.
  • Validation errors for specific items are now reported directly on those items instead of the parent entity.
  • Added included/excluded list of items to the options of the standalone GUI.
  • Fixed a bug where values too long were not correctly reported as errors, or not correctly truncated.
  • Added optional attribute "allowUnlimitedText" to the dictionary item tag (specification 1.1).
  • Made start column optional in user-defined dictionaries (specification 1.1).
  • Made NAACCR version optional in user-defined dictionaries specification 1.1).
  • Added optional attribute "specificationVersion" to the root dictionary and data XML tags, now set to 1.1 by default.
  • Updated commons-lang3 dependency to version 3.4.
  • Updated commons-io dependency to version 2.5.
  • Updated XStream dependency to version 1.4.9.
  • Library now requires Java 8 at minimum.

Version 1.3

  • Added new option to control whether or not the padding rules should be applied, by default they won't be applied (since they actually change data and it's rarely desired).
  • Added new option to specify which items need to be processed (this option is not available in the GUI yet).
  • Fixed some bad data types in all base dictionaries.
  • Fixed a bug in the dictionary validation preventing a standard item from the default user dictionary to be re-defined.

Version 1.2

  • Improved the dictionary page in the standalone GUI.
  • Stopped using exception when validating a dictionary.
  • Fixed bug related to caching items on each abstract entities.
  • Fixed two bad item ID (and name) in NAACCR 16 dictionary.

Version 1.1

  • Fixed wrong path to the main GUI class in the JAR's manifest.

Version 1.0

  • Added support for NAACCR 16.
  • Renamed root packages from "org.naaccr.xml" to "com.imsweb.naaccrxml"
  • Changed padding rules for the 5 physician fields so they are not 0-padded anymore.
  • Added a non-gui batch mode (BatchProcessor).

Version 0.8 (beta)

  • Added LICENSE file to the created JAR.
  • Fixed some data types in both dictionaries.

Version 0.7 (beta)

  • Fixed window sizing issues and other minor bugs.
  • Added a simple Help page.
  • The 'timeGenerated' attribute is now optional.
  • Library is now writing a namespace in the root attributes, to comply with the XSD.

Version 0.6 (beta)

  • Added support for XZ compression.
  • Added the XSD files to the released JAR file.
  • Added proper support for padding values in the library.
  • Now presenting the options before the analysis phase in the GUI.
  • Added an About dialog.
  • Now displaying a summary of the validation errors in the GUI.
  • Switched to a centralized class of validation errors.

Version 0.5 (beta)

  • Now using a deterministic way to create the NAACCR IDs from the item names.
  • Added a Validate XML page.
  • Removed Samples page.