Example #1
0
        /// <summary>
        /// Retrieve the worklist query as a DICOM file.
        /// </summary>
        /// <param name="context">OrthancPluginContext* </param>
        /// <param name="target">OrthancPluginMemoryBuffer*</param>
        /// <param name="query">const OrthancPluginWorklistQuery*</param>
        /// <returns></returns>
        public static OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(ref OrthancPluginContext context, IntPtr target, IntPtr query)
        {
            IntPtr ptr = IntPtr.Zero;

            try
            {
                _OrthancPluginWorklistQueryOperation pr = new _OrthancPluginWorklistQueryOperation();
                pr.query   = query;
                pr.dicom   = IntPtr.Zero;
                pr.size    = 0;
                pr.isMatch = IntPtr.Zero;
                pr.target  = target;

                int size = Marshal.SizeOf(pr);
                ptr = Marshal.AllocHGlobal(size);
                Marshal.StructureToPtr(pr, ptr, true);

                return(context.InvokeService(ref context, _OrthancPluginService._OrthancPluginService_WorklistGetDicomQuery, ptr));
            }
            catch (Exception ex)
            {
                OrthancPluginLogError(ref context, ex.ToString());
                return(OrthancPluginErrorCode.OrthancPluginErrorCode_InternalError);
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }
Example #2
0
        /// <summary>
        /// Test whether a worklist matches the query.
        /// </summary>
        /// <param name="context">OrthancPluginContext*</param>
        /// <param name="query">const OrthancPluginWorklistQuery*</param>
        /// <param name="dicom">const void*</param>
        /// <param name="size">uint32_t</param>
        /// <returns></returns>
        public static int OrthancPluginWorklistIsMatch(ref OrthancPluginContext context, IntPtr query, IntPtr dicom, uint size)
        {
            IntPtr ptr = IntPtr.Zero;

            try
            {
                int    isMatch    = 0;
                IntPtr ptrIsMatch = new IntPtr(isMatch);

                _OrthancPluginWorklistQueryOperation pr = new _OrthancPluginWorklistQueryOperation();
                pr.query   = query;
                pr.dicom   = dicom;
                pr.size    = size;
                pr.isMatch = ptrIsMatch;
                pr.target  = IntPtr.Zero;

                int ptrSize = Marshal.SizeOf(pr);
                ptr = Marshal.AllocHGlobal(ptrSize);
                Marshal.StructureToPtr(pr, ptr, true);

                if (context.InvokeService(ref context, _OrthancPluginService._OrthancPluginService_WorklistIsMatch, ptr) == OrthancPluginErrorCode.OrthancPluginErrorCode_Success)
                {
                    pr = (_OrthancPluginWorklistQueryOperation)Marshal.PtrToStructure(ptr, typeof(_OrthancPluginWorklistQueryOperation));
                    return(pr.isMatch.ToInt32());
                }

                return(0);
            }
            catch (Exception ex)
            {
                OrthancPluginLogError(ref context, ex.ToString());
                return(-1);
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }
        /// <summary>
        /// Test whether a worklist matches the query.
        /// </summary>
        /// <param name="context">OrthancPluginContext*</param>
        /// <param name="query">const OrthancPluginWorklistQuery*</param>
        /// <param name="dicom">const void*</param>
        /// <param name="size">uint32_t</param>
        /// <returns></returns>
        public static int OrthancPluginWorklistIsMatch(ref OrthancPluginContext context, IntPtr query, IntPtr dicom, uint size)
        {
            IntPtr ptr = IntPtr.Zero;
            try
            {
                int isMatch = 0;
                IntPtr ptrIsMatch = new IntPtr(isMatch);

                _OrthancPluginWorklistQueryOperation pr = new _OrthancPluginWorklistQueryOperation();
                pr.query = query;
                pr.dicom = dicom;
                pr.size = size;
                pr.isMatch = ptrIsMatch;
                pr.target = IntPtr.Zero;

                int ptrSize = Marshal.SizeOf(pr);
                ptr = Marshal.AllocHGlobal(ptrSize);
                Marshal.StructureToPtr(pr, ptr, true);

                if (context.InvokeService(ref context, _OrthancPluginService._OrthancPluginService_WorklistIsMatch, ptr) == OrthancPluginErrorCode.OrthancPluginErrorCode_Success)
                {
                    pr = (_OrthancPluginWorklistQueryOperation)Marshal.PtrToStructure(ptr, typeof(_OrthancPluginWorklistQueryOperation));
                    return pr.isMatch.ToInt32();
                }

                return 0;
            }
            catch (Exception ex)
            {
                OrthancPluginLogError(ref context, ex.ToString());
                return -1;
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }
        /// <summary>
        /// Retrieve the worklist query as a DICOM file.
        /// </summary>
        /// <param name="context">OrthancPluginContext* </param>
        /// <param name="target">OrthancPluginMemoryBuffer*</param>
        /// <param name="query">const OrthancPluginWorklistQuery*</param>
        /// <returns></returns>
        public static OrthancPluginErrorCode OrthancPluginWorklistGetDicomQuery(ref OrthancPluginContext context, IntPtr target, IntPtr query)
        {
            IntPtr ptr = IntPtr.Zero;
            try
            {
                _OrthancPluginWorklistQueryOperation pr = new _OrthancPluginWorklistQueryOperation();
                pr.query = query;
                pr.dicom = IntPtr.Zero;
                pr.size = 0;
                pr.isMatch = IntPtr.Zero;
                pr.target = target;

                int size = Marshal.SizeOf(pr);
                ptr = Marshal.AllocHGlobal(size);
                Marshal.StructureToPtr(pr, ptr, true);

                return context.InvokeService(ref context, _OrthancPluginService._OrthancPluginService_WorklistGetDicomQuery, ptr);
            }
            catch (Exception ex)
            {
                OrthancPluginLogError(ref context, ex.ToString());
                return OrthancPluginErrorCode.OrthancPluginErrorCode_InternalError;
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }