Convert-Pheno
view release on metacpan or search on metacpan
lib/Convert/Pheno/CLI/Args.pm view on Meta::CPAN
unless $supported_tables{$table};
$output_name_overrides{$table} =
_resolve_output_path( $out_dir, $filename );
}
my $out_file =
$out_pxf ? _resolve_output_path( $out_dir, $out_pxf )
: defined $out_bff && length $out_bff ? _resolve_output_path( $out_dir, $out_bff )
: $out_csv ? _resolve_output_path( $out_dir, $out_csv )
: $out_jsonf ? _resolve_output_path( $out_dir, $out_jsonf )
: $out_jsonld ? _resolve_output_path( $out_dir, $out_jsonld )
: $out_omop_selected ? undef
: @entity_list == 1
? catfile( $out_dir, $entity_list[0] . '.json' )
: catfile( $out_dir, 'individuals.json' );
my $log_file =
catfile( $out_dir, ( $log ? $log : 'convert-pheno-log.json' ) );
my $term_audit_file =
defined $term_audit
? _resolve_output_path( $out_dir, $term_audit )
: undef;
my $in_type =
$in_pxf ? 'pxf'
: $in_bff ? 'bff'
: $in_cbioportal ? 'cbioportal'
: $in_redcap ? 'redcap'
: $in_cdiscodm ? 'cdiscodm'
: @datasetjson_files ? 'datasetjson'
: @datasetxml_files ? 'datasetxml'
: @fhir_files ? 'fhir'
: $in_csv ? 'csv'
: @openehr_files ? 'openehr'
: @omop_files ? 'omop'
: 'bff';
my $out_type =
$out_pxf ? 'pxf'
: $out_bff_selected ? 'bff'
: $out_csv ? 'csv'
: $out_jsonf ? 'jsonf'
: $out_jsonld ? 'jsonld'
: $out_omop_selected ? 'omop'
: 'bff';
my $method = $in_type . '2' . $out_type;
$usage_error->("Unsupported conversion <$method>")
unless is_public_conversion($method);
my $conversion_spec = conversion_spec($method);
if ($out_bff_selected) {
my %supported_for_route =
map { $_ => 1 } @{ $conversion_spec->{entities}{supported} };
for my $entity (@entity_list) {
$usage_error->(
"The entity <$entity> is not supported by conversion <$method>"
) unless $supported_for_route{$entity};
}
}
$usage_error->("The conversion <$method> does not support --stream")
if $stream && !$conversion_spec->{streaming};
my $id = time . substr( "00000$$", -5 );
my %data = (
out_dir => $out_dir,
in_textfile => 1,
method => $method,
sql2csv => $sql2csv ? 1 : 0,
exposures_file => $exposures_file,
search => $search,
ohdsi_db => $ohdsi_db ? 1 : 0,
omop_tables => \@omop_tables,
username => $username,
text_similarity_method => $text_similarity_method,
min_text_similarity_score => $min_text_similarity_score,
levenshtein_weight => $levenshtein_weight,
max_lines_sql => $max_lines_sql,
stream => $stream ? 1 : 0,
schema_file => $schema_file,
out_file => $out_file,
id => $id,
test => $test ? 1 : 0,
source_info => $source_info ? 1 : 0,
entities => \@entity_list,
);
$data{output_name_overrides} = \%output_name_overrides if %output_name_overrides;
my $resolved_in_file =
$in_pxf ? $in_pxf
: $in_bff ? $in_bff
: $in_cbioportal ? $in_cbioportal
: $in_redcap ? $in_redcap
: $in_cdiscodm ? $in_cdiscodm
: $in_csv ? $in_csv
: undef;
$data{in_file} = $resolved_in_file if defined $resolved_in_file;
$data{in_files} = \@datasetjson_files if @datasetjson_files;
$data{in_files} = \@datasetxml_files if @datasetxml_files;
$data{in_files} = \@fhir_files if @fhir_files;
$data{in_files} = \@omop_files if @omop_files;
$data{in_files} = \@openehr_files if @openehr_files;
$data{sep} = $sep if defined $sep;
$data{redcap_dictionary} = $redcap_dictionary if defined $redcap_dictionary;
$data{mapping_file} = $mapping_file if defined $mapping_file;
$data{define_xml} = $define_xml if defined $define_xml;
$data{self_validate_schema} = $self_validate_schema if defined $self_validate_schema;
$data{path_to_ohdsi_db} = $path_to_ohdsi_db if defined $path_to_ohdsi_db;
$data{term_audit_file} = $term_audit_file if defined $term_audit_file;
$data{default_vital_status} = $default_vital_status if defined $default_vital_status;
$data{debug} = $debug if defined $debug;
$data{log} = $log if defined $log;
$data{verbose} = $verbose ? 1 : 0 if defined $verbose;
return {
action => 'run',
color => $color,
overwrite => $overwrite,
out_file => $out_file,
( run in 1.480 second using v1.01-cache-2.11-cpan-5c0b1e786e0 )