What UFC Version Is This HDF5 File From - UVA-CAMA/NICUHDF5Viewer GitHub Wiki

So you have an hdf5 file and you want to know where it came from. Here is how you can find out!

Go to matlab and type in the following to find the build number (note: you have to change PathToYourFile below to the actual file path!):

h5readatt('PathToYourFile','/','Build Number')

The build number can be matched with the UFC release using the table below:

UFC fmtcnv build Layout Version UFC Release Date fmtcnv Release Date
1.4.0 4.3.2 7eecb17b 4.1.1 March 30, 2021 March 29, 2021
1.2.0 4.3.0 0119e4b3 4.1.1 July 15, 2020 July 9, 2020
1.1.7 4.1.3 74f27f7f 4.1.0 Oct 28, 2019 Oct 18, 2019
1.1.6 4.1.1 7ba06b96 4.1.0 July 25, 2019 July 24, 2019
1.1.5 4.1.0 61e5b5ac July 8, 2019
1.1.4 4.1.0 666ff97f 4.1.0 May 22, 2019 May 22, 2019
1.1.3 4.0.9 dde933d1 4.1.0 April 24, 2019 March 27, 2019
1.1.2 4.0.8 f0cfce4e 4.0.1 Feb 26, 2019 Feb 23, 2019
1.1.1 4.0.6 a54a8465 4.0.1 Oct 29, 2018 Oct 26, 2018
1.1.0 4.0.5 ee05b9a6 4.0.0 Sept 26, 2018

FYI, if you are curious how the above table was created:

  1. Open the windows command window (type cmd into start).
  2. Change the directory to the location where the UFC code is stored. Example: cd UFC_v1.2.0
  3. Change the directory to the fmtcnv which is in that directory. Example: cd fmtcnv_v4.3.0
  4. Run formatconverter.exe without any input arguments. Example: formatconverter.exe.

The output will look like this (where you can see the build number!)

X:\Amanda\UFC_v1.2.0\fmtcnv_v4.3.0>formatconverter.exe
formatconverter version 4.3.0; build 0119e4b3
no file specified
Syntax: formatconverter --to <format> <file>...
    -f or --from <input format>
    -t or --to <output format>
    -z or --compression <compression level (0-9, default: 6)>
    -s or --sqlite <db file>
    -q or --quiet
    -1 or --stop-after-one
    -l or --localtime
    -Z or --offset <time string (MM/DD/YYYY) or seconds since 01/01/1970>
    -S or --opening-date <time string (MM/DD/YYYY) or seconds since 01/01/1970>
    -p or --pattern <naming pattern>
    -n or --no-break or --one-file
    -C or --no-cache
    -T or --time-step (store timing information as offset from start of file
    -a or --anonymize, --anon, or --anonymous
    -w or --skip-waves
    -m or --tmpdir <directory>
    -R or --release (show release information and exit)
    Valid input formats: wfdb, hdf5, stpxml, stpge, stpp, cpcxml, stpjson, tdms, medi, dwc, zl
    Valid output formats: wfdb, hdf5, mat, csv
    the --sqlite option will create/add metadata to a sqlite database
    the --pattern option recognizes these format specifiers:
      %p - patient ordinal
      %i - input filename (without directory or extension)
      %d - input directory (with trailing separator)
      %C - current directory (with trailing separator)
      %x - input extension
      %m - modified date of input file
      %c - creation date of input file
      %D - date of conversion
      %s - date of first data point
      %e - date of last data point
      %o - output file ordinal
      %t - the --to option's extension (e.g., hdf5, csv)
      all dates are output in YYYYMMDD format
    the --no-break option will ignore end of day/end of patient events, and name the output file(s) from the input file (or pattern)
    the --offset option will shift dates by the desired amount
    the --opening-date option will shift dates so that the first time in the output is the given date
    if file is -, stdin is read for input
⚠️ **GitHub.com Fallback** ⚠️