0
点赞
收藏
分享

微信扫一扫

PACS-医学影像创建连接、接收参数

NicoalsNC 2023-06-03 阅读 78

一、创建连接


二、接收参数


1.DicomObject


2.接收dicom文件


一、创建连接

public class PacsMain {

  
    private DcmQR dcmqr;

  
  
     /**

     * 下载数据的方法

     *

     * @param queryLevel  查询级别

     * @param matchingKey 查询条件

     */

    public List<DicomObject> download(PacsInfo pacsInfo, DcmQR.QueryRetrieveLevel queryLevel, Map<String, String> matchingKey) throws Exception {

        List<DicomObject> returnList;

        // 设置参数

        creatInstance(pacsInfo.getScpAE(), pacsInfo.getScpHostname(), pacsInfo.getScpPort(), pacsInfo.getScuAE());

        setQueryLevel(queryLevel);

        setMatchingKey(matchingKey);

        returnList = downloadImage();

        dcmqr.start();

        dcmqr.open();

        dcmqr.close();

        dcmqr.stop();

        return returnList;

    }

  
  
    /**

     * 创建查询、下载请求功能类

     * @param scpAE 服务端AE

     * @param scpHost 服务端IP

     * @param scpPort 服务端PORT

     * @param scuAE 客户端AE

     */

    public synchronized void creatInstance(String scpAE, String scpHost,

                                           int scpPort, String scuAE) {

  
        dcmqr = new DcmQR(scuAE);

        dcmqr.setCalledAET(scpAE, false);

        dcmqr.setRemoteHost(scpHost);

        dcmqr.setRemotePort(scpPort);

        dcmqr.setPackPDV(true);

        dcmqr.setTcpNoDelay(true);

        dcmqr.setMaxOpsInvoked(1);

        dcmqr.setMaxOpsPerformed(0);

        dcmqr.setCFind(true);

        dcmqr.setCGet(false);

        dcmqr.setMoveDest(scuAE);

        dcmqr.addDefReturnKeys();

        dcmqr.configureTransferCapability(false);

    }

  
  
    public void setQueryLevel(DcmQR.QueryRetrieveLevel queryRetrieveLevel) {

        dcmqr.setQueryLevel(queryRetrieveLevel);

    }

  
    public void setMatchingKey(Map<String, String> matchConf) {

        for (Map.Entry<String, String> entry : matchConf.entrySet()) {

            dcmqr.addMatchingKey(Tag.toTagPath(entry.getKey()),

                    entry.getValue());

        }

    }

 

二、接收参数

1.DicomObject

//

// Source code recreated from a .class file by IntelliJ IDEA

// (powered by FernFlower decompiler)

//

  
package org.dcm4che2.data;

  
import java.io.IOException;

import java.io.ObjectOutputStream;

import java.io.Serializable;

import java.util.Date;

import java.util.Iterator;

  
public interface DicomObject extends Serializable {

    int size();

  
    boolean isEmpty();

  
    void clear();

  
    DicomObject getRoot();

  
    boolean isRoot();

  
    DicomObject getParent();

  
    void setParent(DicomObject var1);

  
    SpecificCharacterSet getSpecificCharacterSet();

  
    Iterator<DicomElement> iterator();

  
    Iterator<DicomElement> iterator(int var1, int var2);

  
    Iterator<DicomElement> commandIterator();

  
    Iterator<DicomElement> fileMetaInfoIterator();

  
    Iterator<DicomElement> datasetIterator();

  
    int getItemPosition();

  
    void setItemPosition(int var1);

  
    long getItemOffset();

  
    void setItemOffset(long var1);

  
    VR vrOf(int var1);

  
    String nameOf(int var1);

  
    int resolveTag(int var1, String var2);

  
    int resolveTag(int var1, String var2, boolean var3);

  
    String getPrivateCreator(int var1);

  
    int vm(int var1);

  
    boolean contains(int var1);

  
    boolean containsValue(int var1);

  
    boolean containsAll(DicomObject var1);

  
    boolean accept(DicomObject.Visitor var1);

  
    void add(DicomElement var1);

  
    DicomElement remove(int var1);

  
    DicomElement remove(int[] var1);

  
    DicomElement get(int var1);

  
    DicomElement get(int var1, VR var2);

  
    DicomElement get(int[] var1);

  
    DicomElement get(int[] var1, VR var2);

  
    byte[] getBytes(int var1, boolean var2);

  
    byte[] getBytes(int var1);

  
    byte[] getBytes(int[] var1, boolean var2);

  
    byte[] getBytes(int[] var1);

  
    DicomObject getNestedDicomObject(int var1);

  
    DicomObject getNestedDicomObject(int[] var1);

  
    int getInt(int var1);

  
    int getInt(int var1, VR var2);

  
    int getInt(int var1, int var2);

  
    int getInt(int var1, VR var2, int var3);

  
    int getInt(int[] var1);

  
    int getInt(int[] var1, VR var2);

  
    int getInt(int[] var1, int var2);

  
    int getInt(int[] var1, VR var2, int var3);

  
    int[] getInts(int var1);

  
    int[] getInts(int var1, VR var2);

  
    int[] getInts(int var1, int[] var2);

  
    int[] getInts(int var1, VR var2, int[] var3);

  
    int[] getInts(int[] var1);

  
    int[] getInts(int[] var1, VR var2);

  
    int[] getInts(int[] var1, int[] var2);

  
    int[] getInts(int[] var1, VR var2, int[] var3);

  
    short[] getShorts(int var1);

  
    short[] getShorts(int var1, VR var2);

  
    short[] getShorts(int var1, short[] var2);

  
    short[] getShorts(int var1, VR var2, short[] var3);

  
    short[] getShorts(int[] var1);

  
    short[] getShorts(int[] var1, VR var2);

  
    short[] getShorts(int[] var1, short[] var2);

  
    short[] getShorts(int[] var1, VR var2, short[] var3);

  
    float getFloat(int var1);

  
    float getFloat(int var1, VR var2);

  
    float getFloat(int var1, float var2);

  
    float getFloat(int var1, VR var2, float var3);

  
    float getFloat(int[] var1);

  
    float getFloat(int[] var1, VR var2);

  
    float getFloat(int[] var1, float var2);

  
    float getFloat(int[] var1, VR var2, float var3);

  
    float[] getFloats(int var1);

  
    float[] getFloats(int var1, VR var2);

  
    float[] getFloats(int var1, float[] var2);

  
    float[] getFloats(int var1, VR var2, float[] var3);

  
    float[] getFloats(int[] var1);

  
    float[] getFloats(int[] var1, VR var2);

  
    float[] getFloats(int[] var1, float[] var2);

  
    float[] getFloats(int[] var1, VR var2, float[] var3);

  
    double getDouble(int var1);

  
    double getDouble(int var1, VR var2);

  
    double getDouble(int var1, double var2);

  
    double getDouble(int var1, VR var2, double var3);

  
    double getDouble(int[] var1);

  
    double getDouble(int[] var1, VR var2);

  
    double getDouble(int[] var1, double var2);

  
    double getDouble(int[] var1, VR var2, double var3);

  
    double[] getDoubles(int var1);

  
    double[] getDoubles(int var1, VR var2);

  
    double[] getDoubles(int var1, double[] var2);

  
    double[] getDoubles(int var1, VR var2, double[] var3);

  
    double[] getDoubles(int[] var1);

  
    double[] getDoubles(int[] var1, VR var2);

  
    double[] getDoubles(int[] var1, double[] var2);

  
    double[] getDoubles(int[] var1, VR var2, double[] var3);

  
    String getString(int var1);

  
    String getString(int var1, VR var2);

  
    String getString(int var1, String var2);

  
    String getString(int var1, VR var2, String var3);

  
    String getString(int[] var1);

  
    String getString(int[] var1, VR var2);

  
    String getString(int[] var1, String var2);

  
    String getString(int[] var1, VR var2, String var3);

  
    String[] getStrings(int var1);

  
    String[] getStrings(int var1, VR var2);

  
    String[] getStrings(int var1, String[] var2);

  
    String[] getStrings(int var1, VR var2, String[] var3);

  
    String[] getStrings(int[] var1);

  
    String[] getStrings(int[] var1, VR var2);

  
    String[] getStrings(int[] var1, String[] var2);

  
    String[] getStrings(int[] var1, VR var2, String[] var3);

  
    Date getDate(int var1);

  
    Date getDate(int var1, VR var2);

  
    Date getDate(int var1, Date var2);

  
    Date getDate(int var1, VR var2, Date var3);

  
    Date getDate(int var1, int var2);

  
    Date getDate(int var1, int var2, Date var3);

  
    Date getDate(int[] var1);

  
    Date getDate(int[] var1, VR var2);

  
    Date getDate(int[] var1, Date var2);

  
    Date getDate(int[] var1, VR var2, Date var3);

  
    Date getDate(int[] var1, int var2, int var3);

  
    Date getDate(int[] var1, int var2, int var3, Date var4);

  
    Date[] getDates(int var1);

  
    Date[] getDates(int var1, VR var2);

  
    Date[] getDates(int var1, Date[] var2);

  
    Date[] getDates(int var1, VR var2, Date[] var3);

  
    Date[] getDates(int var1, int var2);

  
    Date[] getDates(int var1, int var2, Date[] var3);

  
    Date[] getDates(int[] var1);

  
    Date[] getDates(int[] var1, VR var2);

  
    Date[] getDates(int[] var1, Date[] var2);

  
    Date[] getDates(int[] var1, VR var2, Date[] var3);

  
    Date[] getDates(int[] var1, int var2, int var3);

  
    Date[] getDates(int[] var1, int var2, int var3, Date[] var4);

  
    DateRange getDateRange(int var1);

  
    DateRange getDateRange(int var1, VR var2);

  
    DateRange getDateRange(int var1, DateRange var2);

  
    DateRange getDateRange(int var1, VR var2, DateRange var3);

  
    DateRange getDateRange(int var1, int var2);

  
    DateRange getDateRange(int var1, int var2, DateRange var3);

  
    DateRange getDateRange(int[] var1);

  
    DateRange getDateRange(int[] var1, VR var2);

  
    DateRange getDateRange(int[] var1, DateRange var2);

  
    DateRange getDateRange(int[] var1, VR var2, DateRange var3);

  
    DateRange getDateRange(int[] var1, int var2, int var3);

  
    DateRange getDateRange(int[] var1, int var2, int var3, DateRange var4);

  
    DicomElement putNull(int var1, VR var2);

  
    DicomElement putBytes(int var1, VR var2, byte[] var3);

  
    DicomElement putBytes(int var1, VR var2, byte[] var3, boolean var4);

  
    DicomElement putNestedDicomObject(int var1, DicomObject var2);

  
    DicomElement putInt(int var1, VR var2, int var3);

  
    DicomElement putInts(int var1, VR var2, int[] var3);

  
    DicomElement putShorts(int var1, VR var2, short[] var3);

  
    DicomElement putFloat(int var1, VR var2, float var3);

  
    DicomElement putFloats(int var1, VR var2, float[] var3);

  
    DicomElement putDouble(int var1, VR var2, double var3);

  
    DicomElement putDoubles(int var1, VR var2, double[] var3);

  
    DicomElement putString(int var1, VR var2, String var3);

  
    DicomElement putStrings(int var1, VR var2, String[] var3);

  
    DicomElement putDate(int var1, VR var2, Date var3);

  
    DicomElement putDates(int var1, VR var2, Date[] var3);

  
    DicomElement putDateRange(int var1, VR var2, DateRange var3);

  
    DicomElement putSequence(int var1);

  
    DicomElement putSequence(int var1, int var2);

  
    DicomElement putFragments(int var1, VR var2, boolean var3);

  
    DicomElement putFragments(int var1, VR var2, boolean var3, int var4);

  
    DicomElement putNull(int[] var1, VR var2);

  
    DicomElement putBytes(int[] var1, VR var2, byte[] var3);

  
    DicomElement putBytes(int[] var1, VR var2, byte[] var3, boolean var4);

  
    DicomElement putNestedDicomObject(int[] var1, DicomObject var2);

  
    DicomElement putInt(int[] var1, VR var2, int var3);

  
    DicomElement putInts(int[] var1, VR var2, int[] var3);

  
    DicomElement putShorts(int[] var1, VR var2, short[] var3);

  
    DicomElement putFloat(int[] var1, VR var2, float var3);

  
    DicomElement putFloats(int[] var1, VR var2, float[] var3);

  
    DicomElement putDouble(int[] var1, VR var2, double var3);

  
    DicomElement putDoubles(int[] var1, VR var2, double[] var3);

  
    DicomElement putString(int[] var1, VR var2, String var3);

  
    DicomElement putStrings(int[] var1, VR var2, String[] var3);

  
    DicomElement putDate(int[] var1, VR var2, Date var3);

  
    DicomElement putDates(int[] var1, VR var2, Date[] var3);

  
    DicomElement putDateRange(int[] var1, VR var2, DateRange var3);

  
    DicomElement putSequence(int[] var1);

  
    DicomElement putSequence(int[] var1, int var2);

  
    DicomElement putFragments(int[] var1, VR var2, boolean var3);

  
    DicomElement putFragments(int[] var1, VR var2, boolean var3, int var4);

  
    void shareElements();

  
    void serializeElements(ObjectOutputStream var1) throws IOException;

  
    void copyTo(DicomObject var1);

  
    boolean matches(DicomObject var1, boolean var2);

  
    boolean cacheGet();

  
    void cacheGet(boolean var1);

  
    boolean cachePut();

  
    void cachePut(boolean var1);

  
    boolean bigEndian();

  
    void bigEndian(boolean var1);

  
    DicomObject command();

  
    DicomObject dataset();

  
    DicomObject fileMetaInfo();

  
    DicomObject subSet(DicomObject var1);

  
    DicomObject subSet(int var1, int var2);

  
    DicomObject subSet(int[] var1);

  
    DicomObject exclude(int[] var1);

  
    DicomObject excludePrivate();

  
    void initFileMetaInformation(String var1);

  
    void initFileMetaInformation(String var1, String var2, String var3);

  
    int toStringBuffer(StringBuffer var1, DicomObjectToStringParam var2);

  
    public interface Visitor {

        boolean visit(DicomElement var1);

    }

}

2.接收dicom文件

代码如下(示例):


private List<DicomObject> downloadImage() throws IOException, InterruptedException {

  
        List<DicomObject> result = Collections.singletonList(dcmqr.getKeys());

        if (dcmqr.isCMove()) {

            dcmqr.move(result);

        } else if (dcmqr.isCGet()) {

            dcmqr.get(result);

        }

  
        return result;

    }

举报

相关推荐

0 条评论