Revision history for Perl distribution Convert-Pheno

0.32 2026-07-22T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Added OMOP SPECIMEN quantity mapping to structured BFF biosample measurements
 - Added --source-info/--no-source-info to control raw source provenance in BFF info
 - Sanitized whitespace in OMOP vocabulary prefixes used as ontology ids
 - Included API bridge files in CPAN distributions so JSON bridge tests can run
 - Migrated project documentation from MkDocs to Docusaurus
 - Hardened API and library isolation, failure cleanup, and atomic output handling
 - Made Docker builds reproducible from the selected checkout and release version

0.31 2026-04-17XXT00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Deprecated pyperler and updated Python binding
 - Refactored Perl/Python APIs with structured multi-entity JSON support
 - Added experimental OMOP SPECIMEN -> BFF biosamples conversion to entity-aware output
 - Fixed OMOP concept_id fallback when the local CONCEPT input is incomplete
 - Harmonized nomenclature across multi-output formats
 - Removed 'metaData' from BFF 'info'; now only present in PXF to reduce payload size
 - Added initial openEHR canonical JSON to BFF support:
   - Multi-composition aggregation into one individual and first-class diseases, measures, phenotypicFeatures, interventionsOrProcedures, and treatments arrays

0.30 2026-04-14XXT00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Refactored BFF internals to support entity-aware and multi-entity conversion
 - Added BFF entity output mode via --entities/--out-dir/--out-entity while keeping legacy -obff behavior for individuals
 - PXF input can now emit first-class biosamples, and datasets/cohorts can be synthesized from the normalized individuals collection
 - Refactored the mapping file to an entity-aware layout with beacon.individuals plus optional beacon.{datasets,cohorts,biosamples}
 - Refreshed mapping tables and improved mapping-file documentation
 - Improved PXF <-> BFF round-trip mapping and preserved/restored Phenopackets vitalStatus
 - Added configurable fallback for PXF subject.vitalStatus via --default-vital-status
 - Added --search-audit-tsv and improved SQLite exact-search reporting
 - Reworked CLI internals, expanded test coverage and removed the legacy RDF module

0.29 2025-12-23XXT00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Updated icd10.db SQLite database
 - Fixed typo in t/redcap2bff/in/redcap_mapping.yaml

0.28 2025-04-18T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Internal parameter 'ncpuhost' renamed to 'threadshost'
 - BFF.pm renamed to Bff2Pxf.pm
 - Organized some modules into DB and Utils
 - <--slq2csv> CSVs now mantain the order of header fields from <.sql>  (i.e., easier csv import)
 - OMOP information moved from OMOP.pm to OMOP::Definitions.pm
 - String similarity functions moved to Similarity.pm
 - Added --search <fuzzy> mode (default: 0.9 token-based  + 0.1 Levenshtein distance)
 - Added --levenshtein-weight parameter
 - In 'omop2bff' conversion:
   - Added property '_visit' to 'interventionsOrProcedures' term
   - Added 'P' string to age (to conform with ISO8601) generated via condition_start_date + birth_datetime
   - Added DateTime::Format::ISO8601 module to simplify ome time-related calculations
 - Added "basic" 'bff2omop' conversion. To be further tested and improved in next releases
 - Added 'visitId' property to 'mapping.json' schema that lands in '_visit.id' on array-based terms

0.27 2025-01-16T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - DockerHub images now support Linux amd64 and arm64 (M-based Macs)

0.26 2024-12-18T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Fixed issue with excluded/negated boolean values in <pxf2bff>

0.25 2024-11-09T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Changed the default 'ontology_term' from {id => 'NCIT:NA0000', label => 'NA'} to {id => 'NCIT:C126101', label => 'Not Available'}
 - Expanded coverage for 'procedure' term in omop2bff*/bff2pxf
 - omop2bff now accepts measurements with empty values '\\N' and assigns defaults when needed

0.24 2024-07-18T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Switched read_csv from Text::CSV_XS functional interface to incremental reading to reduce RAM usage

0.23 2024-07-17T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Reduced RAM usage in -iomop -stream when loading mandatory tables from PostgreSQL dump

0.22 2024-07-13T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Reduced memory usage in -iomop -stream by emptying CONCEPT, PERSON and VISIT_OCCURRENCE during AoH -> HoH step 
 - Reduced memory usage in -iomop -no-stream by avoiding data duplication during transposition
 - Added Devel::Size to production for use with -verbose (+ added to cpanfile/Makefile.PL)
 - Implemented --max-lines-sql option to --stream mode

0.21 2024-06-01T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Updated the default value for the 'treatment.interval' object
 - Fixed a warning that occurred in exact searches when the string contained leading numbers
 - Modified database search behavior to exclude numbers from the search
 - Fixed an OMOP --stream mode error where processing a single table with undefined values 
   incorrectly flagged entries as duplicates, yielding only one individual

0.20 2024-05-23T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Encapsulated default values in Default.pm
 - Refactored REDCap.pm code to be used with CSV.pm
 - Implemented basic <csv2bff> and <csv2pxf> conversions (experimental)
 - Mapping file changes:
    o Required properties in mappind file now only are 'project','id' and 'sex'
    o Added project.baselineFieldsToPropagate
    o Added new properties along with their schemas, This is the current list:
      * age,ageOfOnset,assignTermIdFromHeader,bodySite,dateOfProcedure,dictionary,drugDose,drugUnit,duration,durationUnit,familyHistory,fields,mapping,procedureCodeLabel,selector,terminology,unit
 - Fixed issue with hpo.db that had leading and trailing white spaces in columns

0.19 2024-04-24T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Updated how to obtain nproc for FreeBSD
 - Moved t/{ohdsi,protobuff}.t to xt/
 - Added experimental -ojsond (JSON-LD) (to be used with -i{bff|pxf}
 - Extended Unicode support
 - Separated Windows builds into a distinct workflow due to JSONLD dependency issues
 - Dynamically load JSONLD module with require (if installed)

0.18 2024-02-29T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Updated resources in PXF.pm
 - Added info.REDCap_columns to REDCap.pm
 - Renamed keys in REDCap mapping (schema|src|files):
   o radio -> selector
   o dict  -> dictionary 
   o map   -> mapping
 - Added info.convertPheno to individuals.json
 - Added project.version to mapping (schema|src|files)
 - Refactored CSV.pm and IO.pm to IO::CSVHandler and IO::FileIO
 - Implemented -o{csv,jsonf} (to be used with -i{bff|pxf}

0.17 2024-02-03T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Fixed typo in _info.VISIT_OCCURENCE -> _info.VISIT_OCCURRENCE

0.16 2023-12-26T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Implemented restriction on I/O format duplication (ibff->obff)

0.15 2023-11-30T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Changed 'windows-latest' to 'windows-2019' in GHA build-and-test.yml
 - Refactored .pm to improve readibility and maintanability

0.14 2023-11-21T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Fixed error on pxf.{json,yaml} @pxf-tools-cli examples (v1.0.0-RC3)
   o label": "Vitamin E" -> label": "atorvastatin"

0.13 2023-09-12T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Pushing new version after passing all tests

0.12_3 2023-09-12T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Added support for Windows Server OS
 - Added changes to pass windows-latest tests in GitHub
   o Replaced PerlIO::gzip by core IO::Uncompress::G[un]zip
   o Adapted t/{args,cli.t}

0.12_2 2023-09-07T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Added Data::Leaf::Walker to cpanfile/Makefile.PL

0.12_1 2023-09-06T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Extended the documentation (e.g., docs/tbl/*md)
 - Excluded unnecessary files in CPAN via MANIFEST.SKIP
 - Changed Google Drive location of ohdsi.db
 - Increased coverage of PXF<-->BFF term mapping
 - Added READMEs to t/*/in/
 - Updated t/pxf2bff/in/pxf.json and added YAML version

0.12 2023-07-19T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Pushing new version after passing all tests

0.11_4 2023-07-17T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Modified t/args.t to make it 'MSWin32' and 'cygwin' compatible

0.11_3 2023-07-17T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Changed getpwuid to $ENV{'USERNAME'} to make 'MSWin32' compatible

0.11_2 2023-07-10T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Modified Python binding to work in Conda env
 - Increased Perl version from 5.16 to 5.26

0.11_1 2023-07-09T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)

 - Reverted change in Makefile.PL for 'IO::Socket::SSL'
 - IO::Socker::SSL only is used if installed

0.11  2023-07-09T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)
 - Uncommented 'IO::Socket::SSL' in Makefile.PL to pass self-validation of mapping schema in t/
 - Changed cnag.crg.eu to cnag.eu
 
0.10  2023-07-03T00:00:00Z (Manuel Rueda <mrueda@cpan.org>)
 - Added share/db/{omim,hpo}.db SQLite databases
 - Modified source to accomodate such dbs

Note: Versions < 0.10 were primarily for testing deployment on CPAN
