/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.dicom.codec.macro; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import org.dcm4che3.data.Attributes; import org.dcm4che3.data.Sequence; import org.dcm4che3.data.Tag; import org.dcm4che3.data.VR; public class DigitalSignatures extends Module { public DigitalSignatures(Attributes dcmItems) { super(dcmItems); } public DigitalSignatures() { super(new Attributes()); } public static Collection<DigitalSignatures> toDigitalSignaturesMacros(Sequence seq) { if (seq == null || seq.isEmpty()) { return null; } ArrayList<DigitalSignatures> list = new ArrayList<>(seq.size()); for (Attributes attr : seq) { list.add(new DigitalSignatures(attr)); } return list; } public int getMACIDNumber() { return dcmItems.getInt(Tag.MACIDNumber, -1); } public void setMACIDNumber(int i) { dcmItems.setInt(Tag.MACIDNumber, VR.US, i); } public String getDigitalSignatureUID() { return dcmItems.getString(Tag.DigitalSignatureUID); } public void setDigitalSignatureUID(String s) { dcmItems.setString(Tag.DigitalSignatureUID, VR.UI, s); } public Date getDigitalSignatureDateTime() { return dcmItems.getDate(Tag.DigitalSignatureDateTime); } public void setDigitalSignatureDateTime(Date d) { dcmItems.setDate(Tag.DigitalSignatureDateTime, VR.DT, d); } public String getCertificateType() { return dcmItems.getString(Tag.CertificateType); } public void setCertificateType(String s) { dcmItems.setString(Tag.CertificateType, VR.CS, s); } public byte[] getCertificateOfSigner() throws IOException { return dcmItems.getBytes(Tag.CertificateOfSigner); } public void setCertificateOfSigner(byte[] b) { dcmItems.setBytes(Tag.CertificateOfSigner, VR.OB, b); } public byte[] getSignature() throws IOException { return dcmItems.getBytes(Tag.Signature); } public void setSignature(byte[] b) { dcmItems.setBytes(Tag.Signature, VR.OB, b); } public String getCertifiedTimestampType() { return dcmItems.getString(Tag.CertifiedTimestampType); } public void setCertifiedTimestampType(String s) { dcmItems.setString(Tag.CertifiedTimestampType, VR.CS, s); } public byte[] getCertifiedTimestamp() throws IOException { return dcmItems.getBytes(Tag.CertifiedTimestamp); } public void setCertifiedTimestamp(byte[] b) { dcmItems.setBytes(Tag.CertifiedTimestamp, VR.OB, b); } public Code getDigitalSignaturePurposeCode() { Attributes item = dcmItems.getNestedDataset(Tag.DigitalSignaturePurposeCodeSequence); return item != null ? new Code(item) : null; } public void setDigitalSignaturePurposeCode(Code code) { updateSequence(Tag.DigitalSignaturePurposeCodeSequence, code); } }