Mercurial > hg > minc-tools
changeset 1265:85a8de40f9bf
Added -e option to allow reading data streams with explicit VR.
author | neelin <neelin> |
---|---|
date | Mon, 01 May 2000 13:59:55 +0000 |
parents | a3df3eef40e2 |
children | e105b2b096d2 |
files | conversion/Acr_nema/dump_acr_nema.c conversion/Acr_nema/extract_acr_nema.c |
diffstat | 2 files changed, 30 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/conversion/Acr_nema/dump_acr_nema.c +++ b/conversion/Acr_nema/dump_acr_nema.c @@ -6,7 +6,10 @@ @CREATED : November 24, 1993 (Peter Neelin) @MODIFIED : * $Log: dump_acr_nema.c,v $ - * Revision 6.2 2000-04-28 15:02:01 neelin + * Revision 6.3 2000-05-01 13:59:55 neelin + * Added -e option to allow reading data streams with explicit VR. + * + * Revision 6.2 2000/04/28 15:02:01 neelin * Added more general argument processing (but not with ParseArgv). * Added support for ignoring non-fatal protocol errors. * Added support for user-specified byte-order. @@ -83,6 +86,7 @@ char *maxidstr = NULL; int ignore_errors = FALSE; Acr_byte_order byte_order = ACR_UNKNOWN_ENDIAN; + Acr_VR_encoding_type vr_encoding = ACR_IMPLICIT_VR; FILE *fp; Acr_File *afp; Acr_Group group_list; @@ -92,7 +96,7 @@ char *ptr; int iarg, argcounter; char *arg; - char *usage = "Usage: %s [-h] [-i] [-b] [-l] [<file> [<max group>]]\n"; + char *usage = "Usage: %s [-h] [-i] [-b] [-l] [-e] [<file> [<max group>]]\n"; /* Check arguments */ pname = argv[0]; @@ -110,9 +114,11 @@ (void) fprintf(stderr, " -h:\tPrint this message\n"); (void) fprintf(stderr, " -i:\tIgnore protocol errors\n"); (void) fprintf(stderr, " -b:\tAssume big-endian data\n"); - (void) fprintf(stderr, " -l:\tAssume little-endian data\n\n"); + (void) fprintf(stderr, " -l:\tAssume little-endian data\n"); + (void) fprintf(stderr, " -e:\tAssume explicit VR encoding\n\n"); (void) fprintf(stderr, usage, pname); exit(EXIT_FAILURE); + break; case 'i': ignore_errors = TRUE; break; @@ -122,6 +128,9 @@ case 'b': byte_order = ACR_BIG_ENDIAN; break; + case 'e': + vr_encoding = ACR_EXPLICIT_VR; + break; default: (void) fprintf(stderr, "Unrecognized option %s\n", arg); exit(EXIT_FAILURE); @@ -176,6 +185,7 @@ else { acr_set_byte_order(afp, byte_order); } + acr_set_vr_encoding(afp, vr_encoding); /* Read in group list */ status = acr_input_group_list(afp, &group_list, maxid);
--- a/conversion/Acr_nema/extract_acr_nema.c +++ b/conversion/Acr_nema/extract_acr_nema.c @@ -6,7 +6,10 @@ @CREATED : November 24, 1993 (Peter Neelin) @MODIFIED : * $Log: extract_acr_nema.c,v $ - * Revision 6.2 2000-04-28 15:02:01 neelin + * Revision 6.3 2000-05-01 13:59:55 neelin + * Added -e option to allow reading data streams with explicit VR. + * + * Revision 6.2 2000/04/28 15:02:01 neelin * Added more general argument processing (but not with ParseArgv). * Added support for ignoring non-fatal protocol errors. * Added support for user-specified byte-order. @@ -70,6 +73,7 @@ char *elemstr = NULL; int ignore_errors = FALSE; Acr_byte_order byte_order = ACR_UNKNOWN_ENDIAN; + Acr_VR_encoding_type vr_encoding = ACR_IMPLICIT_VR; FILE *fp; Acr_File *afp; Acr_Group group_list; @@ -80,7 +84,7 @@ int iarg, argcounter; char *arg; char *usage = - "Usage: %s [-h] [-i] [-b] [-l] [<file>] <group id> <element id>\n"; + "Usage: %s [-h] [-i] [-b] [-l] [-e] [<file>] <group id> <element id>\n"; /* Check arguments */ pname = argv[0]; @@ -98,9 +102,11 @@ (void) fprintf(stderr, " -h:\tPrint this message\n"); (void) fprintf(stderr, " -i:\tIgnore protocol errors\n"); (void) fprintf(stderr, " -b:\tAssume big-endian data\n"); - (void) fprintf(stderr, " -l:\tAssume little-endian data\n\n"); + (void) fprintf(stderr, " -l:\tAssume little-endian data\n"); + (void) fprintf(stderr, " -e:\tAssume explicit VR encoding\n\n"); (void) fprintf(stderr, usage, pname); exit(EXIT_FAILURE); + break; case 'i': ignore_errors = TRUE; break; @@ -110,6 +116,9 @@ case 'b': byte_order = ACR_BIG_ENDIAN; break; + case 'e': + vr_encoding = ACR_EXPLICIT_VR; + break; default: (void) fprintf(stderr, "Unrecognized option %s\n", arg); exit(EXIT_FAILURE); @@ -135,6 +144,10 @@ } /* Get element id (group and element) */ + if ((grpstr == NULL) || (elemstr == NULL)) { + (void) fprintf(stderr, usage, pname); + exit(EXIT_FAILURE); + } element_id = MALLOC(sizeof(*element_id)); element_id->group_id = strtol(grpstr, &ptr, 0); if (ptr == grpstr) { @@ -169,6 +182,7 @@ else { acr_set_byte_order(afp, byte_order); } + acr_set_vr_encoding(afp, vr_encoding); /* Read in group list up to group */ (void) acr_input_group_list(afp, &group_list, element_id->group_id);