首页 > 其他分享 >PACS-医学影像创建连接、接收参数

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

时间:2023-06-03 11:01:46浏览次数:46  
标签:var1 var3 var2 int PACS VR 医学影像 DicomElement 接收

一、创建连接


二、接收参数


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;

    }

标签:var1,var3,var2,int,PACS,VR,医学影像,DicomElement,接收
From: https://blog.51cto.com/u_16102274/6407589

相关文章

  • Visual C++ 6.0环境开发PACS影像系统的技术指标和精准算法
    1.技术指标图像文件格式:DCM、JPG、BMP、TIF等可支持显示属性设置:24/32位真彩;256位色(黑白)可支持监视器分辨率:1024﹡768;1280﹡1024;1600﹡1280;1280﹡1600(立式);1536﹡2048(立式);2560﹡2048(立式)图像分辨率:1024﹡1024;512﹡512;256﹡256静态或动态操作平台windowsxpPACS系统-图像处理高级精准算法对图像......
  • 卫星定位北斗芯片AT6558一款高性能BDS/GNSS多模卫星导航接收机SOC单芯片
    1芯片简介AT6558R是一款高性能BDS/GNSS多模卫星导航接收机SOC单芯片,片上集成射频前端,数字基带处理器,32位的RISCCPU,电源管理功能。芯片支持多种卫星导航系统,包括中国的北斗卫星导航系统BDS,美国的GPS,俄罗斯GLONASS,并实现多系统联合定位。1.2主要特征■功能规范●支持BDS/GPS/GLO......
  • AT6558R导航接收芯片GPS/GNSS卫星soc单芯片
    AT6558R是一颗GNSS导航接收SOC单芯片一、芯片简介AT6558R是一款高性能BDS/GNSS多模卫星导航接收机SOC单芯片,片上集成射频前端,数字基带处理器,32位的RISCCPU,电源管理功能。芯片支持多种卫星导航系统,包括中国的北斗卫星导航系统BDS,美国的GPS,俄罗斯的GLONASS,并实现多系统......
  • 如何通过手机远程监控PLC并接收故障报警信息
    PLC在自动化生产制造中应用越来越广泛,对其进行监控和管理的需求也越来越高。以前,我们想要看到现场设备的实时数据,必须在控制室内通过工控机、电脑、触摸屏等这些上位机设备才能看到,同理PLC维护也需要工程师在现场进行编程调试工作,非常不方便。 在工业物联网技术的支持下,我们可以随......
  • MS SQL Server 中的存储过程是一种预编译的代码块,可以接收输入参数并返回输出结果,用于
    MSSQLServer中的存储过程是一种预编译的代码块,可以接收输入参数并返回输出结果,用于完成特定的数据库操作。它们是SQLServer中存储逻辑业务的一种常见方式。下面是存储过程的优势和劣势:优势:更高的性能:存储过程在首次执行时会被编译和优化,然后将编译后的执行计划缓存起来,......
  • 如何自动转发接收的请求报头?
    了解OpenTelemetry的朋友应该知道,为了将率属于同一个请求的多个操作(Span)串起来,上游应用会生成一个唯一的TraceId。在进行跨应用的Web调用时,这个TraceId和代表跟踪操作标识的SpanID一并发给目标应用,W3C还专门指定了一份名为TraceContext的标准,该标准确定了一个名为trace-parent的......
  • C# WebApi接收参数的常用方式
    C#后端开发请求相关知识C#WebApi接收参数的常用方式查询字符串参数:查询字符串是通过HTTPGET请求中的URL中传递的键值对。在WebAPI中,可以使用以下方式获取查询字符串参数://使用Request.QueryString获取单个查询字符串参数stringname=Request.QueryString["name......
  • 【Socket】基于UDP的发送端和接收端
    UDP和TCP的差异UDP相比TCP,无需在连接状态下交换数据,因此UDP的server端和client端无需经过连接过程,即不必调用listen()和accept()函数。UDP中只有创建套接字和数据交换的过程。基于UDP的接收和发送函数当创建好TCP套接字后,传输数据时无需再添加地址信息,因此TCP套接字会保持与对......
  • Qt实现两个窗口之间信号发送与接收
    主要使用了信号与槽的相关实现方法目录1、实现过程2、运行效果1、实现过程1、新建一个Widget,然后再建一个QMainWindow。2、在mainwindow.h头文件中自定义信号,声明的时候要用signals关键字,在public、private和protect等限定符,因为信号默认是public函数。3、在mianwindow.ui中添......
  • 05]ApiMateRadStudio.exe上传xls,自动生成pacsal代码
    ApiMateRadStudio.exe链接:https://pan.baidu.com/s/1Sd-teDIRX9ZV48j6Jgc_wQ提取码:7nk4 procedureTForm4.Button1Click(Sender:TObject);varxls:TXlsFile;beginxls:=TXlsFile.Create(true);tryCreateExcelFile(xls);//将文件保存为XLSifO......