CN113505254B - 服务器高效存储数字切片的方法和装置 - Google Patents
服务器高效存储数字切片的方法和装置 Download PDFInfo
- Publication number
- CN113505254B CN113505254B CN202110782049.7A CN202110782049A CN113505254B CN 113505254 B CN113505254 B CN 113505254B CN 202110782049 A CN202110782049 A CN 202110782049A CN 113505254 B CN113505254 B CN 113505254B
- Authority
- CN
- China
- Prior art keywords
- information
- slice
- server
- file
- tile
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 180
- 230000000007 visual effect Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 13
- 238000003672 processing method Methods 0.000 claims description 10
- 238000012217 deletion Methods 0.000 claims description 8
- 230000037430 deletion Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001575 pathological effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种服务器高效存储数字切片的方法和装置,方法包括以下步骤:服务器端创建数据接收接口;切片扫描仪客户端创建HTTP服务的公共类;切片扫描仪客户端进行数字切片扫描;根据扫描数字切片的存储格式将切片信息存储至服务器。本发明利用网络传输将数字切片信息边扫描边上传到服务器的,不仅满足了数字切片的网络应用对存储时效性要求,而且节约了存储空间及时间成本。
Description
技术领域
本发明涉及一种服务器高效存储数字切片的方法和装置,属于图像传输技术领域。
背景技术
数字切片是利用数字切片扫描仪将传统的玻璃切片转化为数字信息并存储在计算机中,医生可以对数字切片进行任意的放大和缩小,并且可以利用数字切片观测到玻璃切片上任意的位置,医生在计算机中对数字切片的操作如同在显微镜上一样。数字切片避免了传统玻片易碎、保存成本高、不便邮寄运输的烦恼,它的出现代替了依靠显微镜观察病理切片的方式,同时它也可以利用网络,进行远程的数据传输和诊断。
在数字切片的网络应用中,一般先将数字切片保存到本地,然后将切片文件进行上传,这样会造成在网络应用时等待时间过长。为了满足网络应用的及时性,需要实时将切片信息存储到服务器。连接服务器是通过HTTP协议,HTTP的连接过程主要分为三步:发起TCP的3次握手建立连接、开始通讯和关闭连接。由于一张切片的瓦片图数量巨大,大约在200M-2G,如果每张瓦片图都通过HTTP请求存储到服务器,需要进行频繁的建立连接、关闭连接操作,影响存储效率。
因此,为了减少HTTP连接次数、提升存储效率,本发明在提出了一种高效的服务器存储数字切片的方法。
发明内容
为了解决上述问题,本发明提出了一种服务器高效存储数字切片的方法和装置,能够满足数字切片的网络应用对存储时效性要求,节约存储空间及时间成本。
本发明解决其技术问题采取的技术方案是:
第一方面,本发明实施例提供的一种服务器高效存储数字切片的方法,包括:
服务器端创建数据接收接口;
切片扫描仪客户端创建HTTP服务的公共类;
切片扫描仪客户端进行数字切片扫描;
根据扫描数字切片的存储格式将切片信息存储至服务器。
作为本实施例一种可能的实现方式,所述服务器端创建数据接收接口,包括:
在服务器端创建用于处理HTTP Web请求的处理请求方法,通过请求输入读取请求参数,并将请求参数反序列化,根据切片上传到服务器的需求来调用不同的处理方法。
作为本实施例一种可能的实现方式,所述调用不同的处理方法至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述切片扫描仪客户端创建HTTP服务的公共类,包括:
切片扫描仪客户端通过HttpClient的HttpPost方法将请求发送到服务器,所述HttpPost方法包含请求地址、请求信息、响应信息三个参数。
作为本实施例一种可能的实现方式,所述HTTP服务的公共类至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述切片扫描仪客户端进行数字切片扫描,包括:
切片扫描仪客户端接收到当前扫描文件名,调用连接服务器方法判断服务器是否连通,连通后判断文件名是否存在;
如果文件名不存在,调用创建文件方法(CreateNetFile)在服务器创建当前扫描的文件名;如果存在则先删除已有文件再创建新文件名;
创建好文件名后开启扫描线程进行扫描,首先获得当前视野列表,然后进行图像采集、分割图片形成瓦片图,得到瓦片图后开启保存瓦片图的线程进行保存。
作为本实施例一种可能的实现方式,在切片扫描仪客户端进行数字切片扫描过程中,将扫描的数字切片信息存储在列表,所述列表包括:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表;所述存储格式包括:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置;所述根据扫描数字切片的存储格式将切片信息存储至服务器,包括:
将所有瓦片图保存,并通过分组的形式上传至服务器;
存储瓦片位置信息,并通过分组的形式上传至服务器;
将数字切片基本信息通追加到服务器;
存储扫描视野信息及标记信息;
存储各个信息索引段在文件中的起始位置。
作为本实施例一种可能的实现方式,所述将所有瓦片图保存,并通过分组的形式上传至服务器,包括:
步骤S411,设定初始分组大小为m;
步骤S412,获取瓦片图并添加至瓦片图列表;
步骤S413,判断图片是否分割完毕、瓦片图列表是否为空,如果图片分割完毕并且瓦片图列表为空则存储瓦片位置信息,并通过分组的形式上传至服务器;
步骤S414,否则判断瓦片图列表是否大于m,
如果瓦片图列表小于m并且图片未分割完成,则转至步骤S412;如果瓦片图列表小于m并且图片分割完成,则调用AppendData方法将瓦片图列表所有数据追加到服务器中,追加完数据后调用GetFilePosition方法更新切片文件的位置ulFilePosition,存储瓦片位置信息,并通过分组的形式上传至服务器;
如果瓦片图列大于m,则定义瓦片字节数组listByteTile、瓦片大小数组listULTileSize,取瓦片图列表的前m个数据,转换成二进制字节数据后转为Base64字符串存到listByteTile;同时将前m个瓦片图的大小信息存到listULTileSize中;记录传输开始时间startTime,调用AppendData方法向服务器追加数据,追加完数据后删除瓦片图列表中前m个数据,然后调用GetFilePosition方法更新切片文件的位置ulFilePosition,并返回添加成功的信息,记录结束时间endTime;计算时间差time=startTime-endTime,如果time小于设定阈值s则m=m+m/2,否则m=m-m/2;转到步骤S412。
作为本实施例一种可能的实现方式,所述存储瓦片位置信息,并通过分组的形式上传至服务器,包括:
步骤S421,定义初始分组大小为n;
步骤S422,获取瓦片位置信息并将信息添加至位置列表listTile;
步骤S423,获取瓦片信息段的开始位置positionSliceInfo,判断开始位置是否为空、瓦片位置信息是否为空,如果开始位置为空并且瓦片位置信息为空则将数字切片基本信息通追加到服务器。
步骤S424,否则判断listTile数量是否大于n,
如果listTile数量小于n,并且开始位置positionSliceInfo为空,调用AppendData方法将瓦片位置信息上传至服务器;瓦片位置信息保存到服务器后,调用GetFilePosition方法获取当前文件流的位置作为当前信息段的最终位置ulEndPosition;如果listTile数量小于n,并且开始位置positionSliceInfo不为空,转至步骤S422;
如果listTile数量大于n,并且positionSliceInfo不为空,将listTile中前n个瓦片序号、大小、位置通过“&&”拼接,再将每个瓦片信息通过“@@”拼接,拼接后的字符串通过Base64编码为strNetSavedInfo;记录传输开始时间startSiteTime,调用AppendData方法向服务器追加数据,追加完数据后删除listTile的前n条数据并更新瓦片位置段的最终位置ulFilePosition,并返回添加成功的信息,记录结束时间endSiteTime;计算时间差timeSite=startSiteTime-endSiteTime,如果timeSite小于设定阈值t则n=n+n/2,否则n=n-n/2,转到步骤S422。
作为本实施例一种可能的实现方式,所述将数字切片基本信息通追加到服务器,包括:
获取文件段信息及开始位置,循环添加文件段中信息至服务器,最后调用GetFilePosition方法获取当前文件流的最终位置保存为切片基本信息的最终位置ulSliceInfoEndPosition。
作为本实施例一种可能的实现方式,所述存储扫描视野信息及标记信息,包括:获取当前扫描视野的信息及标记信息,调用AppendData方法追加到服务器,添加后调用GetFilePosition方法获取当前文件流的位置作为视野信息的最终位置ulViewEndPosition。
作为本实施例一种可能的实现方式,所述存储各个信息索引段在文件中的起始位置,包括调用GetFilePosition方法获取当前文件流的位置ulFileEndPosition,调用AppendData方法将切片基本信息结束位置ulSliceInfoEndPosition、文件位置信息段结束位置ulEndPosition、视野结束位置ulViewEndPosition、切片文件结束位置ulFileEndPosition追加到文件末尾。
第二方面,本发明实施例提供的一种服务器高效存储数字切片的装置,包括:
接口创建模块,用于在服务器端创建数据接收接口;
公共类创建模块,用于在切片扫描仪客户端创建HTTP服务的公共类;
切片扫描模块,用于切片扫描仪客户端进行数字切片扫描;
信息存储模块,用于根据扫描数字切片的存储格式将切片信息存储至服务器。
作为本实施例一种可能的实现方式,所述接口创建模块,具有用于在服务器端创建用于处理HTTP Web请求的处理请求方法,通过请求输入读取请求参数,并将请求参数反序列化,根据切片上传到服务器的需求来调用不同的处理方法。
作为本实施例一种可能的实现方式,所述公共类创建模块,具体用于在切片扫描仪客户端通过HttpClient的HttpPost方法将请求发送到服务器,所述HttpPost方法包含请求地址、请求信息、响应信息三个参数。
作为本实施例一种可能的实现方式,所述调用不同的处理方法至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述HTTP服务的公共类至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述切片扫描模块,具体用于:
切片扫描仪客户端接收到当前扫描文件名,调用连接服务器方法判断服务器是否连通,连通后判断文件名是否存在;
如果文件名不存在,调用创建文件方法(CreateNetFile)在服务器创建当前扫描的文件名;如果存在则先删除已有文件再创建新文件名;
创建好文件名后开启扫描线程进行扫描,首先获得当前视野列表,然后进行图像采集、分割图片形成瓦片图,得到瓦片图后开启保存瓦片图的线程进行保存。
作为本实施例一种可能的实现方式,所述切片扫描模块在切片扫描仪客户端进行数字切片扫描过程中,将扫描的数字切片信息存储在列表,所述列表包括:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表。
作为本实施例一种可能的实现方式,所述存储格式包括:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置。
作为本实施例一种可能的实现方式,所述信息存储模块,具体用于:
将所有瓦片图保存,并通过分组的形式上传至服务器;
存储瓦片位置信息,并通过分组的形式上传至服务器;
将数字切片基本信息通追加到服务器;
存储扫描视野信息及标记信息;
存储各个信息索引段在文件中的起始位置。
本发明实施例的技术方案可以具有的有益效果如下:
为了减少HTTP连接次数、提升存储效率,本发明在存储瓦片图、切片详细信息时提出了将所有的瓦片图或切片详细信息通过分组的形式传输到服务器的方法,利用网络传输将数字切片信息边扫描边上传到服务器的,不仅满足了数字切片的网络应用对存储时效性要求,而且节约了存储空间及时间成本。
附图说明:
图1是根据一示例性实施例示出的一种服务器高效存储数字切片的方法流程图;
图2是根据一示例性实施例示出的一种数字切片扫描及存储的流程图;
图3是根据一示例性实施例示出的一种数字切片的瓦片图的保存流程图;
图4是根据一示例性实施例示出的一种服务器高效存储数字切片的装置的结构图。
具体实施方式
下面结合附图与实施例对本发明做进一步说明:
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
图1是根据一示例性实施例示出的一种服务器高效存储数字切片的方法流程图。如图1所示,本发明实施例提供的一种服务器高效存储数字切片的方法,包括:
S1,服务器端创建数据接收接口。
由于客户端与服务器通过HTTP协议进行数据传输,所以需要在服务器定义接收数据的接口,其中包含ProcessRequest(HttpContext)方法用于处理HTTP Web请求,方法中的参数HttpContext是提供给内部服务器对象的引用。ProcessRequest(HttpContext)方法中首先通过Request.InputStream读取请求参数,并将请求参数反序列化,根据切片上传到服务器的具体需求来调用不同的处理方法。其中包括建立连接方法(ConnectServer)、创建文件方法
(CreateFile)、删除文件方法(DeleteFile)、文件保存完成方法(CompleteSave)、追加数据方法(AppendData)、获得当前文件流位置方法(GetFilePosition)。每个方法完成后,通过Response.Write()将响应返回给客户端。
由于保存切片信息数据类型的多样性,在追加数据的方法中需要根据数据类型的不同调用不同的方法追加。追加数据方法(AppendData)中数据类型分为int类型、long类型、string类型、byte[]类型及多种类型字符串拼接(multi),因为不同数据类型调用的写入文件的方法不同,所以服务器要根据解析出的数据类型调用不同的方法将数据写入文件。多种类型字符串拼接(multi)的数据结构为"数据内容&&数据类型@@",当追加的数据为多种类型字符串拼接时,需要将字符串通过分隔符"@@"分割,再遍历分割后的字符串数组,每次遍历再用分隔符"&&"分割当前字符串,获取到当前字符串的数据类型及数据内容,再根据数据类型利用不同的方法将数据内容写入文件。利用此方式进行存储可以简化数据结构,用统一方式完成数据的组合处理。
S2,切片扫描仪客户端创建HTTP服务的公共类。
由于客户端需要频繁向服务器发送请求,所以需要在切片扫描仪客户端创建HTTP服务的公共类NetStoreData。其中包含连接服务器的方法(ConnectServer)、创建文件的方法(CreateFile)、删除当前文件的方法(DeleteFile)、当前文件保存完成的方法(CompleteSave)、将数据添加到末尾的方法(AppendData)、获得当前服务器操作的文件指针位置的方法(GetFilePosition)。这些方法主要通过HttpClient的HttpPost方法将请求发送到服务器。HttpPost方法中包含请求地址(strServerURL)、请求信息(charRequestInfo)、响应信息(strResponse)三个参数。请求信息为组合出来的数据字符串,该字符串进行Base64编码,这样编码数据中不含有分割符(@和&)。
S3,切片扫描仪客户端进行数字切片扫描。
切片扫描仪客户端开始一个扫描过程,如图2所示。用户输入当前文件名后开始扫描,首先调用NetStoreData的连接服务器方法(ConnectServer)判断服务器是否连通;如果没有连通则提示并停止扫描过程;如果连通,则判断文件名是否存在,如果文件不存在则调用NetStoreData的创建文件方法(CreateFile)在服务器创建当前扫描的切片文件。若存在则提示是否覆盖已有文件,若不覆盖则停止扫描,若覆盖则先删除已有文件再创建新文件。创建好文件后开启扫描线程进行扫描,扫描时需要判断是否能得到扫描视野列表,若没有得到视野列表则调用NetStoreData的删除文件方法(DeleteFile)删除当前切片文件并停止扫描;若得到视野列表则进行图像采集、分割图片形成瓦片图等,得到瓦片图后开启保存瓦片图的线程SaveTilePictureThread进行保存。
步骤S4,根据扫描数字切片的存储格式将切片信息存储至服务器。
根据志盈切片文件格式的顺序存储切片数据。切片图像存储的文件格式为:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置。在扫描过程中信息存在列表中,各个文件段对应相应的列表,分别为:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表。
步骤S4具体包括以下步骤:
步骤S41,首先将所有瓦片图保存,其流程如图3所示。由于一张数字切片的瓦片图数量巨大,所以在存储瓦片图时是通过分组的形式上传至服务器。
步骤S411,设定初始分组大小为m。
步骤S412,获取瓦片图并添加至瓦片图列表。
步骤S413,判断图片是否分割完毕、瓦片图列表是否为空。如果图片分割完毕并且瓦片图列表为空则转至步骤S42。
步骤S414,否则判断瓦片图列表是否大于m。
如果小于m并且图片未分割完成,则转至步骤S412;如果小于m并且图片分割完成,则调用AppendData方法将瓦片图列表所有数据追加到服务器中,追加完数据后调用GetFilePosition方法更新切片文件的位置ulFilePosition,转到步骤S42。
如果大于m,则定义瓦片字节数组listByteTile、瓦片大小数组listULTileSize,取瓦片图列表的前m个数据,转换成二进制字节数据后转为Base64字符串存到listByteTile。同时将前m个瓦片图的大小信息存到listULTileSize中。记录传输开始时间startTime,调用AppendData方法向服务器追加数据,追加完数据后删除瓦片图列表中前m个数据,然后调用GetFilePosition方法更新切片文件的位置ulFilePosition,并返回添加成功的信息,记录结束时间endTime。计算时间差time=startTime-endTime,如果time小于设定阈值s则m=m+m/2,否则m=m-m/2。转到步骤S412。
步骤S42,瓦片图数据存储完成后,存储瓦片位置信息。瓦片图的位置信息也是通过分组的形式上传至服务器。
步骤S421,定义初始分组大小为n。
步骤S422,获取瓦片位置信息并将信息添加至位置列表listTile。
步骤S423,获取瓦片信息段的开始位置positionSliceInfo,判断开始位置是否为空、瓦片位置信息是否为空。如果开始位置为空并且瓦片位置信息为空则转到步骤S43。
步骤S424,否则判断listTile数量是否大于n。
如果listTile数量小于n,并且开始位置positionSliceInfo为空。调用AppendData方法将瓦片位置信息上传至服务器。瓦片位置信息保存到服务器后,调用GetFilePosition方法获取当前文件流的位置作为当前信息段的最终位置ulEndPosition。如果listTile数量小于n,并且开始位置positionSliceInfo不为空,转至步骤S422。
如果listTile数量大于n,并且positionSliceInfo不为空。将listTile中前n个瓦片序号、大小、位置通过“&&”拼接,再将每个瓦片信息通过”@@”拼接,拼接后的字符串通过Base64编码为strNetSavedInfo。记录传输开始时间startSiteTime,调用AppendData方法向服务器追加数据,追加完数据后删除listTile的前n条数据并更新瓦片位置段的最终位置ulFilePosition,并返回添加成功的信息,记录结束时间endSiteTime。计算时间差timeSite=startSiteTime-endSiteTime,如果timeSite小于设定阈值t则n=n+n/2,否则n=n-n/2。转到步骤S422。
步骤S43,将数字切片基本信息通过AppendData方法追加到服务器。与步骤S42类似,首先获取文件段信息及开始位置,循环添加文件段中信息至服务器,最后调用GetFilePosition方法获取当前文件流的最终位置保存为切片基本信息的最终位置ulSliceInfoEndPosition。
步骤S44,存储扫描视野信息及标记信息。获取当前扫描视野的信息及标记信息,调用AppendData方法追加到服务器,添加后调用GetFilePosition方法获取当前文件流的位置作为视野信息的最终位置ulViewEndPosition。
步骤S45,存储各个信息索引段在文件中的起始位置。调用GetFilePosition方法获取当前文件流的位置ulFileEndPosition,调用AppendData方法将切片基本信息结束位置ulSliceInfoEndPosition、文件位置信息段结束位置ulEndPosition、视野结束位置ulViewEndPosition、切片文件结束位置ulFileEndPosition追加到文件末尾。
步骤S46,发送结束命令。调用CompleteSave方法将服务器的切片文件流关闭,当前文件保存完成。
如图4所示,本发明实施例提供的一种服务器高效存储数字切片的装置,包括:
接口创建模块,用于在服务器端创建数据接收接口;
公共类创建模块,用于在切片扫描仪客户端创建HTTP服务的公共类;
切片扫描模块,用于切片扫描仪客户端进行数字切片扫描;
信息存储模块,用于根据扫描数字切片的存储格式将切片信息存储至服务器。
作为本实施例一种可能的实现方式,所述接口创建模块,具有用于在服务器端创建用于处理HTTP Web请求的处理请求方法,通过请求输入读取请求参数,并将请求参数反序列化,根据切片上传到服务器的需求来调用不同的处理方法。
作为本实施例一种可能的实现方式,所述公共类创建模块,具体用于在切片扫描仪客户端通过HttpClient的HttpPost方法将请求发送到服务器,所述HttpPost方法包含请求地址、请求信息、响应信息三个参数。
作为本实施例一种可能的实现方式,所述调用不同的处理方法至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述HTTP服务的公共类至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
作为本实施例一种可能的实现方式,所述切片扫描模块,具体用于:
切片扫描仪客户端接收到当前扫描文件名,调用连接服务器方法判断服务器是否连通,连通后判断文件名是否存在;
如果文件名不存在,调用创建文件方法(CreateNetFile)在服务器创建当前扫描的文件名;如果存在则先删除已有文件再创建新文件名;
创建好文件名后开启扫描线程进行扫描,首先获得当前视野列表,然后进行图像采集、分割图片形成瓦片图,得到瓦片图后开启保存瓦片图的线程进行保存。
作为本实施例一种可能的实现方式,所述切片扫描模块在切片扫描仪客户端进行数字切片扫描过程中,将扫描的数字切片信息存储在列表,所述列表包括:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表。
作为本实施例一种可能的实现方式,所述存储格式包括:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置。
作为本实施例一种可能的实现方式,所述信息存储模块,具体用于:
将所有瓦片图保存,并通过分组的形式上传至服务器;
存储瓦片位置信息,并通过分组的形式上传至服务器;
将数字切片基本信息通追加到服务器;
存储扫描视野信息及标记信息;
存储各个信息索引段在文件中的起始位置。
利用本发明所述的装置将数字切片存储到服务器的过程如下。
步骤S1,在服务器端创建接收数据的接口,接口中包含检查服务器是否连通的方法ConnectServer、创建文件的方法CreateFile、获取当前文件流位置的方法GetFilePosition、向文件中追加信息的方法AppendData、删除文件的方法DeleteFile。其中向文件中追加信息的方法包含两个参数:追加数据、数据类型,服务器根据数据类型判断用不同的方法将追加的数据写入文件。数据类型分为整型(int)、长整型(long)、字节数组型(byte[])、字符串型(string)、多种数据字符串型(multi)。如果追加的数据为多种数据字符串型,需要将追加数据分类并追加。多种数据字符串型的数据结构为“数据内容&&数据类型”,每组数据通过“@@”分割。具体的数据类型分为string、int、byte[],分别用1、2、3表示,根据数据类型不同调用不同写入方法将数据内容追加。
步骤S2,在扫描仪客户端创建向服务器发送请求的公共类NetStoreData,其中包含的方法与服务器接收数据的方法一致。客户端主要通过HttpClient的HttpPost方法将请求发送到服务器,HttpPost方法包含三个参数:请求地址、请求信息、响应信息。请求地址为服务器接收数据的地址,请求信息包括请求方法、请求的数据及数据类型等,响应信息用来接收此次请求的响应结果。
步骤S3,在切片扫描仪客户端输入当前扫描的切片名,调用NetStoreData的连接服务器方法(ConnectServer)判断服务器是否连通,连通后判断文件名是否存在;切片名不存在,调用NetStoreData的创建文件方法(CreateNetFile)在服务器创建当前扫描的切片文件。创建好文件后开启扫描线程进行扫描,首先获得当前视野列表,然后进行图像采集、分割图片形成瓦片图等,得到瓦片图后开启保存瓦片图的线程SaveTilePictureThread进行保存。
步骤S4,根据切片信息存储的格式将切片信息存储至服务器。
步骤S41,存储瓦片图信息。
步骤S411,设定初始分组大小为4。
步骤S412,获取瓦片图并添加至瓦片图列表。
步骤S413,判断图片是否分割完毕、瓦片图列表是否为空。如果图片分割完毕并且瓦片图列表为空则转到步骤S42。
步骤S414,否则判断瓦片图列表数量是否大于4。
如果瓦片图列表数量小于4并且图片未分割完成,则转至步骤S412;
如果瓦片图列表数量大于4,则定义瓦片字节数组listByteTile、瓦片大小数组listULTileSize,取瓦片图列表的前4个数据,转换成二进制字节数据后转为Base64字符串存到listByteTile。同时将前4个瓦片图的大小信息存到listULTileSize中。记录传输开始时间startTime,调用AppendData方法向服务器追加数据,追加完数据后删除瓦片图列表的前4条数据并调用GetFilePosition方法更新切片文件的位置ulFilePosition,记录结束时间endTime。计算时间差time=startTime-endTime,如果time小于设定阈值500ms则设置m=m+m/2即6,否则设置m=m-m/2即2。转到步骤S412。
如果瓦片图列表数量小于当前设置的m值并且图片分割完成,即最后一次追加瓦片图数据,调用AppendData方法向服务器追加数据并调用GetFilePosition方法更新切片文件的位置ulFilePosition。
步骤S42,存储瓦片位置信息。
步骤S421,定义初始分组大小为1000。
步骤S422,获取瓦片位置信息并将信息添加至位置列表listTile。
步骤S423,获取瓦片信息段的开始位置positionSliceInfo,判断开始位置是否为空、瓦片位置信息是否为空。
步骤S424,开始位置不为空,判断listTile数量是否大于1000。
如果listTile数量小于1000,并且开始位置positionSliceInfo不为空,转至步骤S422。
如果listTile数量大于1000,并且positionSliceInfo不为空。将listTile中前n个瓦片序号、大小、位置通过“&&”拼接,再将每个瓦片信息通过”@@”拼接,拼接后的字符串通过Base64编码为strNetSavedInfo。记录传输开始时间startSiteTime,调用AppendData方法向服务器追加数据,追加完数据后删除listTile的前n条数据并更新瓦片位置段的最终位置ulFilePosition,记录结束时间endSiteTime。计算时间差timeSite=startSiteTime-endSiteTime,如果timeSite小于设定阈值100ms则设置n=n+n/2为1500,否则设置n=n-n/2为500。转到步骤S422。
如果listTile数量小于当前设置的n,并且开始位置positionSliceInfo为空。调用AppendData方法将瓦片位置信息上传至服务器。瓦片位置信息保存到服务器后,调用GetFilePosition方法获取当前文件流的位置作为当前信息段的最终位置ulEndPosition。
步骤S43,保存数字切片基本信息。与步骤S42类似,首先得到文件段信息及开始位置,循环添加文件段中信息至服务器,最后获取当前文件流的最终位置ulFilePosition。
步骤S44,存储扫描视野信息及标记信息。得到原始图片对应的扫描仪的位置信息、图片在整个切片中的虚拟坐标信息等,调用AppendData方法追加到服务器,添加后调用GetFilePosition方法获取当前文件流的位置作为视野信息的最终位置ulViewEndPosition。
步骤S45,存储各个信息索引段在文件中的起始位置。调用GetFilePosition方法获取当前文件流的位置为切片文件结束位置ulFileEndPosition,然后再调用AppendData方法将切片基本信息结束位置ulSliceInfoEndPosition、文件位置信息段结束位置ulEndPosition、视野结束位置ulViewEndPosition、切片文件结束位置ulFileEndPosition追加到文件末尾。
步骤S46,关闭当前切片文件。调用CompleteSave方法将当前文件关闭,文件保存完成。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (9)
1.一种服务器高效存储数字切片的方法,其特征是,包括:
服务器端创建数据接收接口;
切片扫描仪客户端创建HTTP服务的公共类;
切片扫描仪客户端进行数字切片扫描;
根据扫描数字切片的存储格式将切片信息存储至服务器;
在切片扫描仪客户端进行数字切片扫描过程中,将扫描的数字切片信息存储在列表,所述列表包括:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表;所述存储格式包括:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置;所述根据扫描数字切片的存储格式将切片信息存储至服务器,包括:
将所有瓦片图保存,并通过分组的形式上传至服务器;
存储瓦片位置信息,并通过分组的形式上传至服务器;
将数字切片基本信息通追加到服务器;
存储扫描视野信息及标记信息;
存储各个信息索引段在文件中的起始位置。
2.根据权利要求1所述的服务器高效存储数字切片的方法,其特征是,所述服务器端创建数据接收接口,包括:
在服务器端创建用于处理HTTP Web请求的处理请求方法,通过请求输入读取请求参数,并将请求参数反序列化,根据切片上传到服务器的需求来调用不同的处理方法。
3.根据权利要求2所述的服务器高效存储数字切片的方法,其特征是,所述调用不同的处理方法至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
4.根据权利要求1所述的服务器高效存储数字切片的方法,其特征是,所述切片扫描仪客户端创建HTTP服务的公共类,包括:
切片扫描仪客户端通过HttpClient的HttpPost方法将请求发送到服务器,所述HttpPost方法包含请求地址、请求信息、响应信息三个参数。
5.根据权利要求4所述的服务器高效存储数字切片的方法,其特征是,所述HTTP服务的公共类至少包括建立连接方法、创建文件方法、删除文件方法、文件保存完成方法、追加数据方法和获得当前文件流位置方法。
6.根据权利要求1所述的服务器高效存储数字切片的方法,其特征是,所述切片扫描仪客户端进行数字切片扫描,包括:
切片扫描仪客户端接收到当前扫描文件名,调用连接服务器方法判断服务器是否连通,连通后判断文件名是否存在;
如果文件名不存在,调用创建文件方法在服务器创建当前扫描的文件名;如果存在则先删除已有文件再创建新文件名;
创建好文件名后开启扫描线程进行扫描,首先获得当前视野列表,然后进行图像采集、分割图片形成瓦片图,得到瓦片图后开启保存瓦片图的线程进行保存。
7.一种服务器高效存储数字切片的装置,其特征是,包括:
接口创建模块,用于在服务器端创建数据接收接口;
公共类创建模块,用于在切片扫描仪客户端创建HTTP服务的公共类;
切片扫描模块,用于切片扫描仪客户端进行数字切片扫描;
信息存储模块,用于根据扫描数字切片的存储格式将切片信息存储至服务器;
在切片扫描仪客户端进行数字切片扫描过程中,将扫描的数字切片信息存储在列表,所述列表包括:瓦片图列表、瓦片图位置信息列表、数字切片基本信息列表、扫描视野及标记信息列表;所述存储格式包括:瓦片图、瓦片图的位置信息、数字切片的基本信息、扫描视野信息及标记信息、各个信息索引段在文件中的起始位置;所述根据扫描数字切片的存储格式将切片信息存储至服务器,包括:
将所有瓦片图保存,并通过分组的形式上传至服务器;
存储瓦片位置信息,并通过分组的形式上传至服务器;
将数字切片基本信息通追加到服务器;
存储扫描视野信息及标记信息;
存储各个信息索引段在文件中的起始位置。
8.根据权利要求7所述的服务器高效存储数字切片的装置,其特征是,所述接口创建模块,具有用于在服务器端创建用于处理HTTP Web请求的处理请求方法,通过请求输入读取请求参数,并将请求参数反序列化,根据切片上传到服务器的需求来调用不同的处理方法。
9.根据权利要求7所述的服务器高效存储数字切片的装置,其特征是,所述公共类创建模块,具体用于在切片扫描仪客户端通过HttpClient的HttpPost方法将请求发送到服务器,所述HttpPost方法包含请求地址、请求信息、响应信息三个参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110782049.7A CN113505254B (zh) | 2021-07-08 | 2021-07-08 | 服务器高效存储数字切片的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110782049.7A CN113505254B (zh) | 2021-07-08 | 2021-07-08 | 服务器高效存储数字切片的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505254A CN113505254A (zh) | 2021-10-15 |
CN113505254B true CN113505254B (zh) | 2024-01-23 |
Family
ID=78012254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110782049.7A Active CN113505254B (zh) | 2021-07-08 | 2021-07-08 | 服务器高效存储数字切片的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505254B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0991227A2 (en) * | 1998-09-30 | 2000-04-05 | Hewlett-Packard Company | Network scan server support method using a web browser |
CN103997520A (zh) * | 2014-05-15 | 2014-08-20 | 广州华银医学检验中心有限公司 | 远程病理诊断切片数字图像处理及传输技术 |
CN104239509A (zh) * | 2014-09-15 | 2014-12-24 | 国家电网公司 | 多版本gis切片服务系统 |
JP2016125913A (ja) * | 2015-01-05 | 2016-07-11 | キヤノン株式会社 | 画像取得装置及び画像取得装置の制御方法 |
CN108172277A (zh) * | 2017-12-19 | 2018-06-15 | 浙江大学 | 一种多倍率数字切片图像存储与浏览的方法和系统 |
CN112697789A (zh) * | 2020-12-09 | 2021-04-23 | 山东志盈医学科技有限公司 | 数字切片扫描仪的图像聚焦方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546427B2 (en) * | 2005-09-30 | 2009-06-09 | Cleversafe, Inc. | System for rebuilding dispersed data |
US8767824B2 (en) * | 2011-07-11 | 2014-07-01 | Sharp Kabushiki Kaisha | Video decoder parallelization for tiles |
US10102219B2 (en) * | 2015-05-22 | 2018-10-16 | Box, Inc. | Rendering high resolution images using image tiling and hierarchical image tile storage structures |
JP6950408B2 (ja) * | 2017-09-28 | 2021-10-13 | 京セラドキュメントソリューションズ株式会社 | 情報処理システム、画像形成装置、および情報処理方法 |
-
2021
- 2021-07-08 CN CN202110782049.7A patent/CN113505254B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0991227A2 (en) * | 1998-09-30 | 2000-04-05 | Hewlett-Packard Company | Network scan server support method using a web browser |
CN103997520A (zh) * | 2014-05-15 | 2014-08-20 | 广州华银医学检验中心有限公司 | 远程病理诊断切片数字图像处理及传输技术 |
CN104239509A (zh) * | 2014-09-15 | 2014-12-24 | 国家电网公司 | 多版本gis切片服务系统 |
JP2016125913A (ja) * | 2015-01-05 | 2016-07-11 | キヤノン株式会社 | 画像取得装置及び画像取得装置の制御方法 |
CN108172277A (zh) * | 2017-12-19 | 2018-06-15 | 浙江大学 | 一种多倍率数字切片图像存储与浏览的方法和系统 |
CN112697789A (zh) * | 2020-12-09 | 2021-04-23 | 山东志盈医学科技有限公司 | 数字切片扫描仪的图像聚焦方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113505254A (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100890236B1 (ko) | 카메라핸드폰을 컴퓨터의 카메라로 사용하여비디오데이터를 취득하는 방법 | |
US5544317A (en) | Method for continuing transmission of commands for interactive graphics presentation in a computer network | |
US6535228B1 (en) | Method and system for sharing images using a digital media frame | |
CN106453572B (zh) | 基于云服务器同步图像的方法及系统 | |
CN106851386B (zh) | 基于Android系统的电视终端中增强现实的实现方法及装置 | |
EP2559270A2 (en) | Method and apparatus for generating and playing animation message | |
WO2015080386A1 (ko) | 멀티플랫폼 환경의 실시간 웹 화이트보드 제공방법 | |
CN114038541B (zh) | 数字病理图像的数据流的处理系统 | |
JPWO2010113670A1 (ja) | 通信システム、通信端末、サーバ、データ保存方法および記録媒体 | |
US20160142778A1 (en) | Network camera, network camera control terminal, and video recording/delivering system | |
CN109272449A (zh) | 图片显示方法及装置、计算机装置及可读存储介质 | |
CN113505254B (zh) | 服务器高效存储数字切片的方法和装置 | |
CN114330610A (zh) | 一种基于二维码视频的高效数据传输方法 | |
CN105100893A (zh) | 一种视频分享的方法和装置 | |
CN107295243A (zh) | 移动终端采集图像的方法和移动终端 | |
WO2015053568A1 (ko) | 멀티미디어 카드 서비스 시스템 및 서비스 방법 | |
US10949087B2 (en) | Method for rapid reference object storage format for chroma subsampled images | |
CN112818635A (zh) | 一种文档多人同步共享浏览方法及处理终端 | |
CN112351420A (zh) | 终端设备的组网身份创建方法、设备及可读存储介质 | |
KR20090124177A (ko) | 대용량 이미지 처리 장치 및 그 방법 | |
CN114584783B (zh) | 图片解码方法、装置、终端设备及可读存储介质 | |
CN106210594B (zh) | 同步显示的方法及系统 | |
JP2007207027A (ja) | 情報管理装置、端末装置、情報管理システム及び情報管理方法 | |
CN204795253U (zh) | 一种显微图像标准化封装系统 | |
CN115118719B (zh) | 一种云桌面的摄像头设备连接的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |