/// <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); } }
/// <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); } }