本文整理汇总了Java中org.dcm4che2.data.Tag类的典型用法代码示例。如果您正苦于以下问题:Java Tag类的具体用法?Java Tag怎么用?Java Tag使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Tag类属于org.dcm4che2.data包,在下文中一共展示了Tag类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: CFIND
import org.dcm4che2.data.Tag; //导入依赖的package包/类
public CFIND(String name) {
device = new Device(name);
executor = new NewThreadExecutor(name);
remoteAE.setInstalled(true);
remoteAE.setAssociationAcceptor(true);
remoteAE.setNetworkConnection(new NetworkConnection[] { remoteConn });
device.setNetworkApplicationEntity(ae);
device.setNetworkConnection(conn);
ae.setNetworkConnection(conn);
ae.setAssociationInitiator(true);
ae.setAETitle(name);
for (int i = 0; i < RETURN_KEYS.length; i++) {
keys.putNull(RETURN_KEYS[i], null);
}
keys.putNestedDicomObject(Tag.RequestedProcedureCodeSequence,
new BasicDicomObject());
keys.putNestedDicomObject(Tag.ScheduledProcedureStepSequence, spsKeys);
for (int i = 0; i < SPS_RETURN_KEYS.length; i++) {
spsKeys.putNull(SPS_RETURN_KEYS[i], null);
}
spsKeys.putNestedDicomObject(Tag.ScheduledProtocolCodeSequence,
new BasicDicomObject());
}
示例2: readValue
import org.dcm4che2.data.Tag; //导入依赖的package包/类
public boolean readValue(DicomInputStream in) throws IOException {
//System.out.println("-"+TagUtils.toString(in.tag())+"-");
switch (in.tag()) {
case Tag.Item:
if (in.sq().vr() != VR.SQ && in.valueLength() != -1) {
outFragment(in);
} else {
outItem(in);
}
break;
case Tag.ItemDelimitationItem:
case Tag.SequenceDelimitationItem:
if (in.level() > 0)
outItem(in);
break;
default:
outElement(in);
}
return true;
}
示例3: outValue
import org.dcm4che2.data.Tag; //导入依赖的package包/类
private void outValue(DicomInputStream in) throws IOException {
// System.out.println("outvalue");
int tag = in.tag();
VR vr = in.vr();
byte[] val = in.readBytes(in.valueLength());
DicomObject dcmobj = in.getDicomObject();
boolean bigEndian = in.getTransferSyntax().bigEndian();
line.append(" [xxx ");
vr.promptValue(val, bigEndian, dcmobj.getSpecificCharacterSet(),
cbuf, maxValLen, line);
line.append("xxx]");
if (tag == Tag.SpecificCharacterSet
|| tag == Tag.TransferSyntaxUID
|| TagUtils.isPrivateCreatorDataElement(tag)) {
dcmobj.putBytes(tag, vr, val, bigEndian);
}
if (tag == 0x00020000) {
in.setEndOfFileMetaInfoPosition(
in.getStreamPosition() + vr.toInt(val, bigEndian));
}
}
示例4: getRangeFromDicomObjects
import org.dcm4che2.data.Tag; //导入依赖的package包/类
public static ShortRange getRangeFromDicomObjects(ArrayList<DicomObject> dicomList) {
short min = Short.MAX_VALUE;
short max = Short.MIN_VALUE;
for (DicomObject dicomObject : dicomList) {
short[] buffer = dicomObject.getShorts(Tag.PixelData);
for (short value : buffer) {
if (value < min)
min = value;
if (value > max)
max = value;
}
}
return new ShortRange(min, max);
}
示例5: getWindowing
import org.dcm4che2.data.Tag; //导入依赖的package包/类
public static ShortBuffer getWindowing(ArrayList<DicomObject> dicomList, ShortRange range) {
ShortBuffer windowing = ShortBuffer.allocate(dicomList.size() * 2);
for (DicomObject dicomObject : dicomList) {
short winCenter = (short) dicomObject.getFloat(Tag.WindowCenter);
short winWidth = (short) dicomObject.getFloat(Tag.WindowWidth);
if (winCenter == 0 && winWidth == 0) {
winWidth = (short) Math.min(range.getDelta(), Short.MAX_VALUE);
winCenter = (short) (range.getMin() + range.getDelta() / 2);
}
windowing.put(winCenter);
windowing.put(winWidth);
}
windowing.rewind();
return windowing;
}
示例6: getImageOrientationPatient
import org.dcm4che2.data.Tag; //导入依赖的package包/类
public static float[] getImageOrientationPatient(DicomObject o, int frame)
{
float[] iop;
if ((iop = o.getFloats(Tag.ImageOrientationPatient)) != null)
return iop;
// Check the shared first in the case of image orientation
int[] tagPath = {
Tag.SharedFunctionalGroupsSequence, 0,
Tag.PlaneOrientationSequence, 0,
Tag.ImageOrientationPatient };
if ((iop = o.getFloats(tagPath)) != null)
return iop;
tagPath[0] = Tag.PerFrameFunctionalGroupsSequence;
tagPath[1] = frame;
return o.getFloats(tagPath);
}
示例7: maybeGetProxyRawImage
import org.dcm4che2.data.Tag; //导入依赖的package包/类
protected RawImageImpl maybeGetProxyRawImage() {
DicomObject imgMetadata = getDicomImageMetaData();
String transferSyntaxUID = imgMetadata.getString(Tag.TransferSyntaxUID);
//logger.debug(getImageKey());
//logger.debug("transferSyntaxUID : " + transferSyntaxUID);
//jpeg or rle compressed
if (transferSyntaxUID != null &&
(transferSyntaxUID.startsWith("1.2.840.10008.1.2.4") ||
transferSyntaxUID.startsWith("1.2.840.10008.1.2.5")))
return null;
int pixelType = getPixelType(imgMetadata);
if (pixelType == RawImage.PIXEL_TYPE_NOT_SUPPORTED)
return null;
int pixelFormat = getPixelFormat(imgMetadata);
if (pixelFormat == RawImage.PIXEL_FORMAT_NOT_SUPPORTED)
return null;
int width = imgMetadata.getInt(Tag.Columns);
int height = imgMetadata.getInt(Tag.Rows);
return new RawImageImpl(width, height, pixelFormat, pixelType, null);
}
示例8: setUsedPixelValuesRange
import org.dcm4che2.data.Tag; //导入依赖的package包/类
protected void setUsedPixelValuesRange() {
FloatRange range = super.getUsedPixelValuesRange();
//correct for RescaleSlope/-Intercept Tags
float min = range.getMin();
float max = range.getMax();
DicomObject metadata = getDicomImageMetaData();
if (metadata.contains(Tag.RescaleSlope) && metadata.contains(Tag.RescaleIntercept)) {
float rscSlope = metadata.getFloat(Tag.RescaleSlope);
float rscIntercept = metadata.getFloat(Tag.RescaleIntercept);
min = (int) (rscSlope * min + rscIntercept);
max = (int) (rscSlope * max + rscIntercept);
}
usedPixelValuesRange = new FloatRange(min, max);
}
示例9: getTimeZone
import org.dcm4che2.data.Tag; //导入依赖的package包/类
/**
* Returns TimeZone or default TimeZone if not set in the Dicom File
*/
public TimeZone getTimeZone()
{
DicomElement tzOffset = dicom.get(Tag.TimezoneOffsetFromUTC);
if (tzOffset == null)
{
return defaultTZ; // TimeZone.getDefault(); //
// TimeZone.getTimeZone("UTC");
}
String tzStr = element2String(tzOffset, null);
// [+|-]HHMM
// int tzInt=element2Int(tzOffset, 0);
char c = tzStr.charAt(0);
if ((c != '-') && (c != '+'))
tzStr = "+" + tzStr;
TimeZone tz = TimeZone.getTimeZone("GMT" + tzStr);
return tz;
}
示例10: testCreateDicomBytes
import org.dcm4che2.data.Tag; //导入依赖的package包/类
@Test
public void testCreateDicomBytes() throws Exception
{
// Test empty dicom
DicomObject dicom = DicomUtil.createNewDicom(true);
DicomWrapper wrap = new DicomWrapper(dicom, null);
wrap.setIsModifyable(true);
String uid = "1.0";
wrap.setTag(Tag.StudyInstanceUID, uid);
Assert.assertEquals(wrap.getStudyInstanceUID(), uid);
byte bytes[] = wrap.getBytes();
Assert.assertTrue("bytes created from empty dicom object doesnt contain 'DICM' magic", DicomUtil.hasDicomMagic(bytes));
DicomObject dicom2 = DicomUtil.readDicom(bytes);
DicomWrapper wrap2 = new DicomWrapper(dicom2, null);
Assert.assertEquals("Re-created Dicom Object must contain similar StudyInstanceUID", uid, wrap2.getStudyInstanceUID());
}
示例11: TestHashStringTags
import org.dcm4che2.data.Tag; //导入依赖的package包/类
@Test
public void TestHashStringTags() throws Exception
{
String dicomConfig = "Group,Element,VR,Name,Keep,Option\n"
+ "0x0010,0x0010,PN,\"Patient Name\",1,HASH\n"
+ "0x0010,0x0020,LO,\"Patient ID\",1,HASH\n";
DicomTags tags = DicomTags.createFromText(dicomConfig);
DicomProcessor defProc = new DicomProcessor(tags, DicomTestUtil.createDefaultProcOpts("testid", "12345"));
// ID and single component of a PatientName may not exceed 64 bytes!
// 32 byte hash = 44 character base64 encoded String.
testProcessStringTag(defProc, "patientId", Tag.PatientID, "OQ7j3Pylj4ePLwafb62s15Iw05sjNlwXU7lWooz/5Ic=", 44);
testProcessStringTag(defProc, "patientName", Tag.PatientName, "+mdCPEZtV/tIzprOh3gBRU8n1kGfUxpcp2BXkEwwI18=", 44);
}
示例12: TestHashUIDStringTags
import org.dcm4che2.data.Tag; //导入依赖的package包/类
@Test
public void TestHashUIDStringTags() throws Exception
{
String dicomConfig = "Group,Element,VR,Name,Keep,Option\n"
+ "0x0020,0x000D,UI,\"Study Instance UID\",1,HASH_UID\n"
+ "0x0020,0x000E,UI,\"Series Instance UID\",1,HASH_UID\n";
DicomTags tags = DicomTags.createFromText(dicomConfig);
DicomProcessor defProc = new DicomProcessor(tags, DicomTestUtil.createDefaultProcOpts("testid", "12345"));
// ID and single component of a PatientName may not exceed 64 bytes!
// 32 byte hash = 44 character base64 encoded String.
testProcessStringTag(defProc, "1.2.3.4.5", Tag.StudyInstanceUID, "99.4204629107754314596487061406589837754705824752771508063909",
61);
testProcessStringTag(defProc, "1.2.3.4.5.6", Tag.SeriesInstanceUID,
"99.4546193923923468677598443730882976073381443147326160939328", 61);
}
示例13: TestEncryptHashUIDStringTags
import org.dcm4che2.data.Tag; //导入依赖的package包/类
@Test
public void TestEncryptHashUIDStringTags() throws Exception
{
String dicomConfig = "Group,Element,VR,Name,Keep,Option\n"
+ "0x0020,0x000D,UI,\"Study Instance UID\",1,ENCRYPT_HASH_UID\n"
+ "0x0020,0x000E,UI,\"Series Instance UID\",1,ENCRYPT_HASH_UID\n";
DicomTags tags = DicomTags.createFromText(dicomConfig);
DicomProcessor defProc = new DicomProcessor(tags, DicomTestUtil.createDefaultProcOpts("testid", "12345"));
// ID and single component of a PatientName may not exceed 64 bytes!
// 32 byte hash = 44 character base64 encoded String.
testProcessStringTag(defProc, "1.2.3.4.5", Tag.StudyInstanceUID, "99.4172487386883469284013742100485763316631486852937852953349",
61);
testProcessStringTag(defProc, "1.2.3.4.5.6", Tag.SeriesInstanceUID,
"99.5865990744155969053175599961344212888999959344684303397440", 61);
}
示例14: doGetTotalFrameNumber
import org.dcm4che2.data.Tag; //导入依赖的package包/类
protected int doGetTotalFrameNumber() {
// extract the frame count from the getDicomObject() by default.
ImageReader reader;
int numFrames;
ImageInputStream in;
try {
DicomObject dcmObj = getDicomObject();
ByteArrayOutputStream bos = new ByteArrayOutputStream(200000);
DicomOutputStream dos = new DicomOutputStream(bos);
String tsuid = dcmObj.getString(Tag.TransferSyntaxUID);
if (null == tsuid) {
tsuid = UID.ImplicitVRLittleEndian;
}
FileMetaInformation fmi = new FileMetaInformation(dcmObj);
fmi = new FileMetaInformation(fmi.getMediaStorageSOPClassUID(), fmi.getMediaStorageSOPInstanceUID(), tsuid);
dos.writeFileMetaInformation(fmi.getDicomObject());
dos.writeDataset(dcmObj, tsuid);
dos.close();
reader = new DicomImageReaderSpi().createReaderInstance();
in = ImageIO.createImageInputStream(new ByteArrayInputStream(bos.toByteArray()));
if (null == in) {
throw new IllegalStateException(
"The DICOM image I/O filter (from dcm4che1) must be available to read images.");
}
try {
reader.setInput(in);
numFrames = reader.getNumImages(true);
} finally {
in.close();
}
}
catch (IOException e) {
throw new IllegalStateException("error reading DICOM object from " + getKey(), e);
}
return numFrames;
}
示例15: getBackendDicomImageMetaData
import org.dcm4che2.data.Tag; //导入依赖的package包/类
/**
* Same as {@link #getBackendDicomObject() }, but for the DICOM metadata ({@link #getDicomImageMetaData() }).
* Default implementation extracts the metadata from the getBackendDicomObject().
*
* @return
*/
protected DicomObject getBackendDicomImageMetaData() {
// even though the getDicomObject() could serve as the metadata object
// (it's a superset of it -- essentially, it's the metadata plus the pixel data),
// we extract the metadata subset and return that, because it will be much smaller
// in terms of memory footprint and thus many more of these objects fit in the
// dicomMetadataCache. Alternatively, we might also not have a dicomMetadataCache
// at all and always return the getDicomObject() directly, relying on its cache --
// but it contains fewer elements, and the returned complete getDicomObject()s
// would be large and may consume large amounts of heap space depending on how
// long the caller keeps those DicomObjects referenced
DicomObject result = new BasicDicomObject();
getBackendDicomObject().subSet(0, Tag.PixelData - 1).copyTo(result); // make a deep copy so no reference to the PixelData is kept
return result;
}