/usr/include/m-acr.h is in libmdc2-dev 0.13.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* filename: m-acr.h *
* *
* UTIL C-source: Medical Image Conversion Utility *
* *
* purpose : m-acr.c header file *
* *
* project : (X)MedCon by Erik Nolf *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* $Id: m-acr.h,v 1.35 2013/06/23 21:51:19 enlf Exp $
*/
/*
Copyright (C) 1997-2013 by Erik Nolf
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
59 Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef __M_ACR_H__
#define __M_ACR_H__
/****************************************************************************
D E F I N E S
****************************************************************************/
#define MDC_ACR_TAG_SIZE 8 /* length of the group, element, length fields */
#define MDC_MAX_CHARS 100 /* our PrintTag limit */
#define MDC_SIZE_E0000 12 /* size of element 0x0000 in all groups */
#define MDC_SIZE_E0001 12 /* size of element 0x0001 in group 0x0008 */
/* basic structure of each ACR-NEMA format */
typedef struct MdcAcrTag_t{
Uint16 group;
Uint16 element;
Uint32 length;
Uint8 *data;
} MDC_ACR_TAG;
typedef struct MdcSeqTag_T{
Uint16 group;
Uint16 element;
} MDC_SEQ_TAG;
/* things for the DICOM reader */
#define MDC_VECT_ENERGYWINDOW 0 /* 0x0054:0x0010 */
#define MDC_VECT_DETECTOR 1 /* 0x0054:0x0020 */
#define MDC_VECT_PHASE 2 /* 0x0054:0x0030 */
#define MDC_VECT_ROTATION 3 /* 0x0054:0x0050 */
#define MDC_VECT_RRINTERVAL 4 /* 0x0054:0x0060 */
#define MDC_VECT_TIMESLOT 5 /* 0x0054:0x0070 */
#define MDC_VECT_SLICE 6 /* 0x0054:0x0080 */
#define MDC_VECT_ANGULARVIEW 7 /* 0x0054:0x0090 */
#define MDC_VECT_TIMESLICE 8 /* 0x0054:0x0100 */
#define MDC_VECT_TOTAL 9 /* last + 1 */
typedef struct MdcDicomStuff_t {
MDC_MODALITY modality;
Int8 INVERT;
Int16 sign, type;
/* window / rescale */
float si_slope;
float si_intercept;
/* vectors */
Int8 VectDO[MDC_VECT_TOTAL];
Uint16 VectNR[MDC_VECT_TOTAL];
Uint32 acqnr, dynnr;
/* detector */
Int16 motion;
/* gated stuff */
float timeslottime, frametime, framestart, frameduration, nrframes;
float window_low, window_high, scan_arc;
float intervals_acquired, intervals_rejected;
Int16 heart_rate;
/* mosaic images */
Int8 MOSAIC;
Int8 mosaic_interlaced;
Uint32 mosaic_width;
Uint32 mosaic_height;
Uint32 mosaic_number;
}MDC_DICOM_STUFF_T;
/****************************************************************************
F U N C T I O N S
****************************************************************************/
int MdcCheckACR(FILEINFO *fi);
void MdcSwapTag(MDC_ACR_TAG *tag);
int MdcFindAcrInfo(FILEINFO *fi,Uint32 filesize, Uint32 *BeginAddress);
int MdcGetAcrInfo(FILEINFO *fi, Uint32 filesize, Uint32 offset);
char *MdcHackACR(FILEINFO *fi);
const char *MdcReadACR(FILEINFO *fi);
void MdcPrintTag(FILEINFO *fi, MDC_ACR_TAG *tag, char *fmt, ...);
int MdcGetStrVM(char *dest,char *src, Uint32 nr);
void MdcDicomInitStuff(MDC_DICOM_STUFF_T *dicom);
void MdcDicomCheckVect(MDC_DICOM_STUFF_T *dicom, MDC_ACR_TAG *tag, int VECTOR);
Uint32 MdcDicomNrOfVect(MDC_DICOM_STUFF_T *dicom, Uint16 nr, int VECTOR);
int MdcDicomDoAcqData(FILEINFO *fi, MDC_DICOM_STUFF_T *dicom);
int MdcDicomSOPClass(char *sopclass);
int MdcGetHHMMSS(char *time, Int16 *hour, Int16 *minute, Int16 *second);
char *MdcDoTag(MDC_SEQ_TAG *seq, MDC_ACR_TAG *tag, FILEINFO *fi, Uint32 index);
void MdcPutGroupLength(FILE *fp,Uint16 group, Uint32 gbegin);
int MdcPutTag(FILE *fp,Uint16 group,Uint16 elem,Uint32 length,Uint8 *data);
int MdcPutGroup(FILEINFO *fi, Uint16 group, Uint32 img);
const char *MdcWriteACR(FILEINFO *fi);
#endif
|