在这个话题▼

医疗Web查看器自定义缓存

总结

LEADTOOLS HTML5医疗Web查看器服务利用缓存机制来加速读取DICOM数据集图像和信息的数据访问。默认的缓存实现是磁盘缓存,使用cache-as- sor的缓存模式,将缓存当作主要的记录系统来使用。该模式将SOR读写活动委托给缓存,因此应用程序代码不直接负责处理缓存细节。

缓存机制在Leadtools.Dicom.Imaging组装。此库通常仅供LEADTOOLS Medical Web Viewer Web Services内部使用。但是,该库包含一个公共接口,允许您提供自定义缓存实现来替换内置实现。

要创建自己的自定义缓存实现,需要实现IDataCacheProvider接口,定义为:

IDataCacheProvider接口
公共接口IDataCacheProvider保龄球包含(字符串id);无效写< T > (字符串id, T obj,对象选项,日期时间?到期);T读< T > (字符串id,对象选项);无效Remove (字符串id);无效RemoveAll (字符串id);保龄球IsWritable ();保龄球IsReadable ();保龄球IsRemovable ();}

使用模式是:

c#
///创建一个提供者(IDataCacheProvider)vardataCache =Leadtools.Dicom.Imaging.DiskDataCacheProvider (Leadtools.Dicom.Imaging.DiskDataCacheStorage (settings.Storage));///将其传递给代理vardicomSourceProxy =加上了dataCache DicomSourceProxy ();

要创建自己的缓存提供程序,只需实现IDataCacheProvider接口,并将其传递给DicomSourceProxy

的示例实现IDataCacheProvider接口。这个例子使用ServiceStack与软件包对话复述,服务器。Redis是最常用的缓存解决方案之一,它有一个Windows实现,并且很容易从。net (c#)代码中使用。为了使用Redis:

  1. 安装Redis server for windows
  2. 创建一个新的c#类库项目
  3. 添加Nuget包ServiceStack
  4. 添加对leadtools . dicom . image .dll的引用

示例Redis缓存实现,带有注释

c#
公共SampleRedisCacheProvider: IDataCacheProviderRedisEndpoint _redisEndpoint;公共SampleRedisCacheProvider ()//创建到redis服务器的连接,使用安装服务器时使用的配置值_redisEndpoint =RedisEndpoint (“localhost”, 6379);}///<摘要>///检查由(id)标识的对象是否在缓存中可用///> < /总结///要查找的对象id///,如果找到对象,则返回true,否则返回false公共保龄球包含(字符串id)使用var客户=RedisClient (_redisEndpoint))返回client.ContainsKey (id);}}///<摘要>///将类型为T的对象写入缓存。///> < /总结///对象的类型///对象id///要写入的对象/// . name="options">保留将来使用///绝对过期时间。如果该参数为空,则该对象将不会过期,当不再需要该缓存项时,由提供程序来释放该缓存项。公共无效写< T > (字符串id, T obj,对象选项,日期时间?到期)使用var客户=RedisClient (_redisEndpoint))varTimeout =过期。HasValue吗?到期。取值-日期时间。现在:时间跨度为零;client.As T < >()。SetValue(id, obj, timeout);}}///<摘要>///从缓存中读取类型为T的对象。///> < /总结///对象的类型///对象id/// . name="options">保留将来使用///公共T读< T > (字符串id,对象选项)T结果=默认的(T);使用(RedisClient客户端=RedisClient (_redisEndpoint))varwrapper = client.As();result = wrapper.GetValue(id);}返回结果;}///<摘要>///从缓存中删除项。///> < /总结///要删除的项id无效IDataCacheProvider。Remove (字符串id)使用(RedisClient客户端=RedisClient (_redisEndpoint))client.Remove (id);}}///<摘要>///该方法对给定的id执行通配符/模糊匹配,并删除所有相关的缓存对象。///> < /总结///要删除的项id///这是一个可选的方法,这里没有实现公共无效RemoveAll (字符串id)返回}///<摘要>///检查是否有可用的写能力。///> < /总结///,如果可写则为true,否则为false///例如,如果缓存存储已满,则应该返回false公共保龄球IsWritable ()返回真正的}///<摘要>///检查读取能力是否可用。///> < /总结///,如果可读则为true,否则为false公共保龄球IsReadable ()返回真正的}///<摘要>///检查删除功能是否可用。///> < /总结///<返回>如果remove可用,则返回true,否则返回false公共保龄球IsRemovable ()返回真正的}}

缓存项id说明:

id用于标识缓存对象的格式总是如下:

xxxxxxx / xxxxxxx xxxxxxx

您可以将其作为一个整体使用,也可以将其分成3个部分,用'/'字符分隔。

188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领先科技有限公司版权所有。