Web Front-End Based Digital Pathology Slide Upload Method and Device

Through an intelligent slice upload method that cuts the digital pathological slice data stream into multiple data segments and sets the index value, the problem of failure or interruption of digital pathological slice upload is solved, reliable uploading and accurate previewing in the case of network instability is achieved, remote diagnosis efficiency is improved and the risk of medical accidents is reduced.

CN119052232BActive Publication Date: 2025-05-27SHENZHEN SHENGQIANG TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411523427.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-30
Publication Date
2025-05-27
Estimated Expiration
2044-10-30

AI Technical Summary

Technical Problem

When uploading digital pathological slices to the web front end, due to large file formats and unstable networks, the upload fails or interrupts, affecting the efficiency of remote diagnosis and may lead to the misupport of data from other patients, causing medical accidents.

Method used

The intelligent slice upload method based on index values ​​is adopted to cut the data stream into multiple data fragments, and the index value is set for each data fragment to upload the data fragments in the order of small to large index values. During the upload process, the latest completed data fragment index and upload identifier are recorded in real time to ensure that the interruption can be continued after the network is interrupted.

Benefits of technology

It realizes the reliability and efficiency of data upload in the face of network instability, avoids resource waste caused by duplicate uploads, and ensures the accuracy of data transmission through the back-end preview plug-in, reducing the risk of mis-uploading.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119052232B_ABST
    Figure CN119052232B_ABST
Patent Text Reader

Abstract

The present application proposes a method and device for uploading digital pathological slices based on the web front-end, including the following steps: constructing a data unit storing digital pathological slices into a data object and saving it to the web front-end database, and obtaining at least one data stream storing digital pathological slices based on the data object; setting a unique upload identifier for each data stream, and uploading the data streams one by one in a predetermined order based on the slice upload method; during the slice upload process, recording in real time the index value of the latest uploaded completed data segment and the corresponding upload identifier as the resume upload position, and when the upload is interrupted and needs to be resumed, starting the resumed upload from the data segment with the index value + 1 in the resume upload position; merging the upload results of all data streams to complete the upload of digital pathological slices. This solution uploads the data stream in slices and sets an index for each data segment, so that even if the upload is interrupted in a weak network, the breakpoint resume upload can be accurately performed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of front-end technology, and in particular to a method and device for uploading digital pathological slices based on a web front-end. Background Art

[0002] Digital pathology sections are a technology that converts traditional glass pathology sections into digital images through a high-resolution scanner. Digital pathology sections are usually saved in files or folders of different formats. Digital pathology sections are generally uploaded to the web front end for medical staff to view. However, since the format of digital pathology sections is generally large and the upload time is long, there may be a possibility of accidentally closing the web page during the upload process, resulting in an inability to continue uploading, or the upload may fail due to a timeout in a weak network state, thereby affecting the efficiency of remote diagnosis and wasting a lot of time and network resources.

[0003] In addition, when uploading digital pathology sections to the web front end, it is impossible to preview the digital pathology sections during the uploading process, so there is a possibility that the digital pathology sections of other patients may be uploaded by mistake, resulting in medical accidents. Therefore, there is an urgent need for a method that can continue uploading after closing the web page and preview the digital pathology sections while uploading. Summary of the invention

[0004] The embodiment of the present application provides a method and device for uploading digital pathology slices based on a web front end. By slicing the data stream for uploading and setting an index for each data segment, even if the upload is interrupted by a weak network, the breakpoint can be accurately resumed to ensure the success of the upload.

[0005] In a first aspect, an embodiment of the present application provides a method for uploading digital pathological sections based on a web front end, the method comprising:

[0006] The data unit storing the digital pathology slices is constructed as a data object and saved in a web front-end database, and at least one data stream storing the digital pathology slices is obtained based on the data object;

[0007] A unique upload identifier is set for each data stream, and the data streams are uploaded one by one in a predetermined order based on a slicing upload method. The slicing upload method is: cutting the data stream into multiple data segments, and setting an index value for each data segment, and uploading the data segments in the order of the index value from small to large;

[0008] During the slice upload process, the index value of the latest uploaded data segment at the time node and the corresponding upload identifier are recorded in real time as the resume position. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resume position is used to resume the upload.

[0009] The upload results of all data streams are merged to complete the upload of digital pathology sections.

[0010] In a second aspect, a method for uploading digital pathological sections based on a web front end includes:

[0011] When the web front end is closed and not reopened, the back end obtains the upload permission and uploads the data stream using the slice upload method described in Example 1;

[0012] The backend transmits the upload progress to the web frontend in real time via websocket.

[0013] In a third aspect, the embodiment of the present application provides a digital pathology slice uploading device based on a web front end, comprising:

[0014] A construction module, used to construct the data unit storing the digital pathology slices into a data object and save it to the web front-end database, and obtain at least one data stream storing the digital pathology slices based on the data object;

[0015] An upload module, used to set a unique upload identifier for each data stream, and upload the data streams one by one in a predetermined order based on a slicing upload method, wherein the slicing upload method is: cutting the data stream into multiple data segments, setting an index value for each data segment, and uploading the data segments in the order of the index value from small to large;

[0016] The resuming module is used to record the latest uploaded data segment index value and the corresponding upload identifier as the resuming position in real time during the slice uploading process. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resuming position is started to be resumed;

[0017] The merging module is used to merge the upload results of all data streams to complete the upload of digital pathology sections.

[0018] In a fourth aspect, an embodiment of the present application provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute a method for uploading digital pathology sections based on a web front end.

[0019] In a fifth aspect, an embodiment of the present application provides a readable storage medium, in which a computer program is stored. The computer program includes a program code for controlling a process to execute a process, and the process includes a method for uploading digital pathology sections based on a web front end.

[0020] The main contributions and innovations of the present invention are as follows:

[0021] The embodiment of the present application sets a unique upload identifier for each data stream, and records the latest completed fragment index and upload identifier during the upload process, ensuring that the transmission can be resumed from the breakpoint even when the network is unstable, avoiding resource waste caused by repeated uploading; the present solution introduces an intelligent resume strategy based on index values, which can automatically detect the last unfinished upload task and continue from the interruption point, thereby ensuring the upload effect in a weak network environment; the present solution establishes a link between the web front end and the back end by building a preview plug-in, so that the digital pathology slices can be previewed through the back end using local resources to ensure the accuracy of the transmission.

[0022] Details of one or more embodiments of the present application are set forth in the following drawings and description to make other features, objects, and advantages of the present application more readily apparent. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0024] Figure 1 It is a flow chart of a method for uploading digital pathology slices based on a web front end according to an embodiment of the present application;

[0025] Figure 2 is a schematic diagram of a folder storing digital pathology sections according to an embodiment of the present application;

[0026] Figure 3 is a flowchart of uploading digital pathology sections when a data unit is a file according to an embodiment of the present application;

[0027] Figure 4 This is a flowchart of uploading digital pathology sections when a data unit is a folder according to an embodiment of the present application;

[0028] Figure 5 It is a structural block diagram of a digital pathology slice uploading device based on a web front end according to an embodiment of the present application;

[0029] Figure 6 It is a schematic diagram of the hardware structure of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0030] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of this specification. Instead, they are merely examples of devices and methods consistent with some aspects of one or more embodiments of this specification as detailed in the appended claims.

[0031] It should be noted that: in other embodiments, the steps of the corresponding method are not necessarily performed in the order shown and described in this specification. In some other embodiments, the steps included in the method may be more or less than those described in this specification. In addition, a single step described in this specification may be decomposed into multiple steps for description in other embodiments; and multiple steps described in this specification may be combined into a single step for description in other embodiments.

[0032] Embodiment 1

[0033] The embodiment of the present application provides a method for uploading digital pathology slices based on a web front end, by slicing the data stream and uploading it, and setting an index for each data segment, even if the upload is interrupted by a weak network, the breakpoint can be accurately resumed. Specifically, refer to Figure 1 , the method comprising:

[0034] The data unit storing the digital pathology slices is constructed as a data object and saved in a web front-end database, and at least one data stream storing the digital pathology slices is obtained based on the data object;

[0035] A unique upload identifier is set for each data stream, and the data streams are uploaded one by one in a predetermined order based on a slicing upload method. The slicing upload method is: cutting the data stream into multiple data segments, and setting an index value for each data segment, and uploading the data segments in the order of the index value from small to large;

[0036] During the slice upload process, the index value of the latest uploaded data segment at the time node and the corresponding upload identifier are recorded in real time as the resume position. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resume position is used to resume the upload.

[0037] The upload results of all data streams are merged to complete the upload of digital pathology sections.

[0038] That is to say, through the digital pathology section uploading method of this scheme, if the upload is stopped due to the accidental closure of the browser or a weak network, there is no need to restart the upload when the browser is opened again for uploading. The upload can be resumed based on the latest uploaded data segment index value and the corresponding upload identifier at the real-time recording time node.

[0039] For example, when the data segment with upload identifier A and index a in the data stream is uploaded, the resume position Aa is saved in the web front-end database. At this time, if the user accidentally closes the browser, the upload can be resumed when the browser is opened again, that is, uploading from the data segment with upload identifier A and index a+1.

[0040] In some specific embodiments, the data unit may be a file or a folder. When the data unit is a file, it indicates that the digital pathology slice is saved in a single file. When the data unit is a folder, it indicates that the digital pathology slice is divided into multiple files and saved in the folder.

[0041] In this solution, a data object is constructed based on the handle of the data unit and saved in the web front-end database.

[0042] Exemplarily, the Browser-FS-Access tool is used to select a file storing digital pathology slides or a folder storing digital pathology slides, and then a data object is constructed based on the handle of the file or folder together with related information and saved in the web front-end database.

[0043] Furthermore, the web front-end database is an IndexDB database.

[0044] In some specific embodiments, the file names in the files storing digital pathology slices are all numerically sorted. For example, the slices are composed of file header information PicHead + patient information PersonInfo + additional information ExtraInfo + macroscopic image information and its image Jpeg data + thumbnail information and its image Jpeg data + each level information and its tile data. Therefore, the files of each level are named with a unified prefix + level number + file format, and files with other information are named with a unified prefix + specific English + file format, which is used as the basis for the back-end slices to be parsed into images. The level numbers in the hierarchical files are the numerical sorting.

[0045] In this solution, when the data unit is a folder, the data object consists of the folder name, a keyword for determining whether the data unit is a folder, the random number of the folder, and the file name with the last number in the folder sorted.

[0046] That is to say, when the data unit is a folder, the data stream obtained by this solution is the files in the folder. Through the constructed data object, the files in the user file system can be accessed more directly in the client, reducing network latency and bandwidth consumption, and improving the response speed and performance of the application.

[0047] For example, when the data unit is a folder, the data object consists of directoryName and uuidDirectoryName, which is unique to the folder. DirectoryName is the folder name. uuidDirectoryName includes SliceFolderDir (a keyword for determining that the data is a folder), uuid (a random number for the folder), and the last file name is the number in the folder. For example, a folder storing digital pathology slides is Figure 2 As shown, the file name last in the numerical sorting is 20240123_142654_0_Layer7.dcm, and the data object is \'sdpcX20":\"sliceFolderDir / b134a3d6-dcf-404d-9c50-5658a308384 / 20240123_142654_0_Layer7.dcm. den\"l, that is, when obtaining the data stream based on the data object, if the data stream with the file name 20240123_142654_0_Layer7.dcm is obtained, it means that the data stream in this folder has been obtained.

[0048] In this solution, when the data unit is a file, the data object consists of the name of the folder to which the file belongs, a keyword for determining that the data unit is a file, a random number of the file, and the file name.

[0049] Compared to the data unit being a folder, a file is a separate part, so when only one data stream is obtained, the data object does not need to contain the file name that is sorted numerically at the end, but can be replaced with the file name itself.

[0050] In this solution, the data stream of each file in the data unit is obtained through the handle.getFile() function.

[0051] In this solution, any data stream can be accurately located through a unique upload identifier, so when resuming the upload, the resuming position can be relocated based on the upload identifier, without having to start uploading from the beginning, saving a lot of uploading time. Specifically, the upload identifier is represented by UploadId.

[0052] In some specific embodiments, the predetermined order is the digital ordering of files corresponding to the data stream. Since the data stream is the file content in the acquired data unit, and in the storage of data pathology slices, each file will have a digital ordering. For example, the hierarchical files are named with a unified prefix + a hierarchical number + a file format, and the hierarchical number here is the digital ordering of the files.

[0053] In the step of "cutting the data stream into multiple data fragments", each data stream is cut according to a set size to obtain multiple data fragments of the same size. If the size of the remaining data is smaller than the set size, it is regarded as one data fragment.

[0054] Furthermore, in this solution, the upload identifier of the data stream and the index value of each data segment are stored in the web front-end database to ensure that the corresponding data segment can be accurately found according to the resume position when resuming the data.

[0055] Furthermore, after “cutting the data stream into multiple data segments”, each data segment is verified to ensure that data is not lost.

[0056] Exemplarily, this solution will cut the data stream with a set size of 10mb. When the size of the data stream is 95mb, the data stream will be cut into 10 data fragments, and the size of the last data fragment is 5mb. After the cutting is completed, each data fragment will be matched with the verification code uploaded by the front end to complete the verification of each data fragment. The index value of the data fragment starts from 0.

[0057] In this solution, the upload progress of each data stream is recorded and saved in the web front-end database, where upload progress = size of each data segment * (current index value index+1) / data stream size.

[0058] In some specific embodiments, an upload status is set for each data stream in a web front-end database, the upload status of a data stream that has been cut into multiple data segments is set to ready to upload, the upload status of a data stream being uploaded is set to uploading, and the upload status of a data stream whose upload has been completed is set to upload completed.

[0059] During the upload process, the user can issue instructions at any time to control the upload process. For example, when the user chooses to pause during the upload process, the upload request will be canceled, and the upload status of the data stream being uploaded will be set to paused. When the user chooses to resume the upload after pausing, the upload will be resumed based on the method mentioned above, and the upload status of the data stream with the paused upload status will be set to uploading.

[0060] For example, a data stream is cut into 50 10 MB data segments. During the slice upload process, the data segment uploaded at the time node is recorded in real time as the 11th. Then, when resuming the upload, jump to the address of the 12th data segment (10*1024*1024*11=115343360B, 10 represents the data block size, the subsequent two 1024s represent converting 10MB into bytes, 11 represents the current file block position, and 115343360B represents the position in the file) for resuming the upload.

[0061] When the user chooses to retransmit during the upload process, a unique upload identifier is set for each data stream, and the data streams are uploaded one by one in a predetermined order based on the slice upload method.

[0062] That is to say, if the user chooses to retransmit during the upload process, a unique upload identifier will be set for each data stream, so the data stream will be cut into multiple data segments again.

[0063] When the user chooses to cancel the upload during the upload process, all relevant information will be deleted according to the upload identifier of each data stream.

[0064] During the upload process, the window life cycle is monitored. When the program executes window.onbeforeunload, it is considered that the user refreshes the page. When the user refreshes the page, it is determined that the upload is interrupted and resumed.

[0065] In this solution, when the user refreshes the page, the upload status of the data stream being uploaded is set to paused, and after the upload is resumed, the upload status of the data stream with the paused upload status is set to uploading.

[0066] In some specific embodiments, when the data unit is a file, the digital pathology slide upload flow chart is as follows: Figure 3 As shown, since the data unit is a file, the uploading of the entire digital pathology section is completed when all data segments are uploaded.

[0067] In some specific embodiments, when the data unit is a folder, the digital pathology slide upload flow chart is as follows: Figure 4 As shown, when the digital sorting in the folder is completed and the last file is uploaded, all the uploaded results are merged to complete the upload of the digital pathology slides.

[0068] In some specific embodiments, since the digital pathology slice protocols of different manufacturers are inconsistent or not open, and the web front end cannot directly call the C / C++ or C# parsing class library to parse the digital pathology slice, the content of the digital pathology slice cannot be previewed during the upload process. In this solution, a preview plug-in is constructed, and the preview plug-in obtains the path address of the digital pathology slice and sends it to the back end. The back end parses the pathology slice according to the path address of the digital pathology slice to obtain preview information. After the web front end is linked to the back end, the preview information is previewed through the preview plug-in.

[0069] Specifically, since there are many formats of slices, such as .sdpc, .svs, dcm, .dcmz, .tiff, etc., and the web front-end can only preview digital pathology slices in sdpc format, in order to ensure that all formats of pathology slices can be previewed, this solution builds a preview plug-in and parses the content of the digital pathology slices through the back-end. Then, by linking the web front-end with the back-end, the web front-end can preview all formats of digital pathology slices.

[0070] Specifically, the pathological slice information is the structural data and metadata of the pathological slice, such as tile size, level information, etc., and the preview position information is the specific position and level to be previewed, including the current preview field of view position, zoom ratio and size.

[0071] Specifically, due to the inherent performance limitations of the web front-end, intensive image processing cannot be performed through web programs, so this solution uses the back-end to call local resources such as memory, CPU, and graphics card to return tile data to the front-end for preview.

[0072] In some specific embodiments, if the web front end requests preview from the back end multiple times, higher resource requirements will be placed on the back end, and the cost will also increase, so the back end caches the original data of the digital pathology slices on a local disk.

[0073] Furthermore, the original data in the local disk adopts the LFU or LRU elimination strategy to eliminate the common unused data in the past, saving disk resources. At the same time, for the commonly used data, the local background service is directly hit in the future, without requesting network resources again, saving bandwidth, CPU, memory resources, etc.

[0074] Embodiment 2

[0075] A backend uploading method for digital pathological sections based on a web front end, comprising:

[0076] When the web front end is closed and not reopened, the back end obtains the upload permission and the address and interface of the target server, and uploads the data stream using the slice upload method described in Example 1;

[0077] The backend transmits the upload progress to the web frontend in real time via websocket.

[0078] Furthermore, when uploading data streams, the web front-end will send a file resource management list to the local background service, that is, the back-end, and transfer the upload permission to the background service by encrypting the address and interface of the target server. The background service will also use the file segmentation and address jumping method of the first method to read and upload the file and record the data in the local MySQL database. At the same time, the upload progress will be transmitted back to the web front-end logged in to the account in real time through websocket to ensure that the data will not be transmitted back to other accounts. The target server is the storage location of the uploaded digital pathology sections.

[0079] Specifically, under the premise of complying with the protocol, this solution is fully compatible with different software platform automatic backgrounds, such as: internal platform reading meetings, remote diagnosis platforms, etc. or third-party platforms.

[0080] Specifically, since the backend does not know to which storage service of the remote server the web frontend will transfer the slice data when the upload starts, and how the local backend service upload notifies the remote backend service of the web page of the upload status information, this solution passes the address and interface of the target server to the backend in json text encryption. The backend obtains the data and parses the upload interface, and the strategy automatically creates a call service for automatic notification.

[0081] Specifically, when the upload is completed, the link between the backend and the target server is automatically destroyed.

[0082] In some other embodiments, the link between the backend and the target server is set to auto-start mode to ensure that the upload can be automatically performed even when the computer is restarted, thereby adding a layer of guaranteed service.

[0083] Embodiment 3

[0084] Based on the same idea, refer to Figure 5 , the present application also proposes a digital pathology slice uploading device based on a web front end, comprising:

[0085] A construction module, used to construct the data unit storing the digital pathology slices into a data object and save it to the web front-end database, and obtain at least one data stream storing the digital pathology slices based on the data object;

[0086] An upload module, used to set a unique upload identifier for each data stream, and upload the data streams one by one in a predetermined order based on a slicing upload method, wherein the slicing upload method is: cutting the data stream into multiple data segments, setting an index value for each data segment, and uploading the data segments in the order of the index value from small to large;

[0087] The resuming module is used to record the latest uploaded data segment index value and the corresponding upload identifier as the resuming position in real time during the slice uploading process. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resuming position is started to be resumed;

[0088] The merging module is used to merge the upload results of all data streams to complete the upload of digital pathology sections.

[0089] Embodiment 4

[0090] This embodiment also provides an electronic device, referring to Figure 6 , comprises a memory 404 and a processor 402, wherein the memory 404 stores a computer program, and the processor 402 is configured to run the computer program to execute the steps in any of the above method embodiments.

[0091] Specifically, the processor 402 may include a central processing unit (CPU), or an application specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiments of the present application.

[0092] Among them, the memory 404 may include a large capacity memory 404 for data or instructions. For example, but not limitation, the memory 404 may include a hard disk drive (HDD), a floppy disk drive, a solid state drive (SSD), a flash memory, an optical disk, a magneto-optical disk, a tape, or a universal serial bus (USB) drive, or a combination of two or more of these. In appropriate cases, the memory 404 may include a removable or non-removable (or fixed) medium. In appropriate cases, the memory 404 may be inside or outside the data processing device. In a specific embodiment, the memory 404 is a non-volatile memory. In a specific embodiment, the memory 404 includes a read-only memory (ROM) and a random access memory (RAM). Where appropriate, the ROM may be a mask-programmed ROM, a programmable ROM (Programmable Read-Only Memory, PROM for short), an erasable PROM (Erasable Programmable Read-Only Memory, EPROM for short), an electrically erasable PROM (Electrically Erasable Programmable Read-Only Memory, EEPROM for short), an electrically alterable ROM (Electrically Alterable Read-Only Memory, EAROM for short) or a flash memory (FLASH) or a combination of two or more of these. In appropriate circumstances, the RAM may be a static random access memory (SRAM) or a dynamic random access memory (DRAM), wherein the DRAM may be a fast page mode dynamic random access memory 404 (FPMDRAM), an extended data output dynamic random access memory (EDODRAM), a synchronous dynamic random access memory (SDRAM), etc.

[0093] The memory 404 may be used to store or cache various data files required for processing and / or communication, as well as possible computer program instructions executed by the processor 402 .

[0094] The processor 402 reads and executes the computer program instructions stored in the memory 404 to implement any one of the web-based front-end digital pathology slide uploading methods in the above embodiments.

[0095] Optionally, the electronic device may further include a transmission device 406 and an input / output device 408 , wherein the transmission device 406 is connected to the processor 402 , and the input / output device 408 is connected to the processor 402 .

[0096] The transmission device 406 can be used to receive or send data via a network. Specific examples of the above-mentioned network may include a wired or wireless network provided by a communication provider of the electronic device. In one example, the transmission device includes a network adapter (Network Interface Controller, referred to as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one example, the transmission device 406 can be a radio frequency (Radio Frequency, referred to as RF) module, which is used to communicate with the Internet wirelessly.

[0097] The input / output device 408 is used to input or output information. In this embodiment, the input information may be digital pathology slices, etc., and the output information may be upload results, etc.

[0098] Optionally, in this embodiment, the processor 402 may be configured to perform the following steps through a computer program:

[0099] The data unit storing the digital pathology slices is constructed as a data object and saved in a web front-end database, and at least one data stream storing the digital pathology slices is obtained based on the data object;

[0100] A unique upload identifier is set for each data stream, and the data streams are uploaded one by one in a predetermined order based on a slicing upload method. The slicing upload method is: cutting the data stream into multiple data segments, and setting an index value for each data segment, and uploading the data segments in the order of the index value from small to large;

[0101] During the slice upload process, the index value of the latest uploaded data segment at the time node and the corresponding upload identifier are recorded in real time as the resume position. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resume position is used to resume the upload.

[0102] The upload results of all data streams are merged to complete the upload of digital pathology sections.

[0103] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementation modes, and this embodiment will not be described in detail here.

[0104] In general, various embodiments may be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. Some aspects of the invention may be implemented in hardware, while other aspects may be implemented in firmware or software that may be executed by a controller, microprocessor, or other computing device, but the invention is not limited thereto. Although various aspects of the invention may be shown and described as block diagrams, flow charts, or using some other graphical representation, it should be understood that, as non-limiting examples, the boxes, devices, systems, techniques, or methods described herein may be implemented in hardware, software, firmware, dedicated circuits or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.

[0105] Embodiments of the present invention may be implemented by computer software that is executable by a data processor of a mobile device, such as in a processor entity, or by hardware, or by a combination of software and hardware. Computer software or programs (also referred to as program products) including software routines, applets and / or macros may be stored in any device-readable data storage medium, and they include program instructions for performing specific tasks. A computer program product may include one or more computer executable components configured to perform an embodiment when the program is run. One or more computer executable components may be at least one software code or a portion thereof. In addition, at this point, it should be noted that, for example, Figure 6 Any block of the logic flow in the program may represent program steps, or interconnected logic circuits, blocks and functions, or a combination of program steps and logic circuits, blocks and functions. The software may be stored on physical media such as memory chips or storage blocks implemented within a processor, magnetic media such as hard disks or floppy disks, and optical media such as, for example, DVDs and their data variants, CDs, etc. Physical media are non-transitory media.

[0106] Those skilled in the art should understand that the technical features of the above embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0107] The above embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A method for uploading digital pathological sections based on a web front end, characterized in that: The following steps are involved: The data unit storing the digital pathology slices is constructed as a data object and saved in the web front-end database, wherein the data unit can be a file or a folder. When the data unit is a file, it means that the digital pathology slices are saved in a single file. When the data unit is a folder, it means that the digital pathology slices are divided into multiple files and saved in the folder. A file storing the digital pathology slices or a folder storing the digital pathology slices is selected, and then a data object is constructed based on the handle of the file or folder together with the relevant information and saved in the web front-end database. At least one data stream storing the digital pathology slices is obtained based on the data object, wherein when the data unit is a folder, the data object consists of a folder name, a keyword for judging that the data unit is a folder, a random number of the folder, and a file name whose digital sequence is the last, and the obtained data stream is a file in the folder; A unique upload identifier is set for each data stream, and the data streams are uploaded one by one in a predetermined order based on a slicing upload method. The slicing upload method is: the data stream is cut into multiple data segments, and an index value is set for each data segment, and the data segments are uploaded in ascending order of the index value. When the user chooses to retransmit during the upload process, a unique upload identifier is set for each data stream again, and the data streams are uploaded one by one in a predetermined order based on the slicing upload method. When the user chooses to cancel the upload during the upload process, all relevant information is deleted according to the upload identifier of each data stream. When the user refreshes the page, it is determined that the upload is interrupted and the upload is resumed; During the slice upload process, the index value of the latest uploaded data segment at the time node and the corresponding upload identifier are recorded in real time as the resume position. When the upload is interrupted and needs to be resumed, the data segment with the index value + 1 in the resume position is used to resume the upload. A preview plug-in is constructed. The preview plug-in obtains the path address of the digital pathology slice and sends it to the back end. The back end parses the pathology slice according to the path address of the digital pathology slice to obtain preview information. After the web front end is linked to the back end, the preview information is previewed through the preview plug-in, wherein the preview information is the specific position and level to be previewed, including the current preview field position, zoom factor and size; The upload results of all data streams are merged to complete the upload of digital pathology sections. When the web front end is closed and not reopened, the back end obtains the upload permission and uploads the data stream. The back end transmits the upload progress to the web front end in real time through websocket. When uploading the data stream, the web front end sends a file resource management list to the back end, and transfers the upload permission to the back end in an encrypted manner by transferring the address and interface of the target server. The back end reads and uploads the file and records the data in the local MySQL database. At the same time, the upload progress is transmitted back to the web front end logged in to the same account through websocket in real time to ensure that the data will not be transmitted back to other accounts. The target server is the storage location after the digital pathology sections are uploaded.

2. A method for uploading digital pathological sections based on a web front end according to claim 1, characterized in that: When the data unit is a file, the data object consists of the name of the folder to which the file belongs, a keyword for determining that the data unit is a file, a random number of the file, and the file name.

3. A method for uploading digital pathological sections based on a web front end according to claim 1, characterized in that: In the step of "cutting the data stream into multiple data fragments and setting an index value for each data fragment", each data stream is cut according to the set size to obtain multiple data fragments of the same size. If the remaining data size is smaller than the set size, it is regarded as one data fragment.

4. A digital pathology slice uploading device based on a web front end, characterized in that: include: A construction module, used to construct a data unit storing digital pathology slices into a data object and save it to a web front-end database, wherein the data unit can be a file or a folder. When the data unit is a file, it means that the digital pathology slices are saved in a single file. When the data unit is a folder, it means that the digital pathology slices are divided into multiple files and saved in the folder. A file storing digital pathology slices or a folder storing digital pathology slices is selected, and then a data object is constructed based on the handle of the file or folder together with relevant information and saved in the web front-end database. At least one data stream storing digital pathology slices is obtained based on the data object. When the data unit is a folder, the data object consists of a folder name, a keyword for judging that the data unit is a folder, a random number of the folder, and a file name whose numbers are sorted in the folder, and the obtained data stream is a file in the folder; An upload module, used to set a unique upload identifier for each data stream, and upload the data streams one by one in a predetermined order based on a slicing upload method, wherein the slicing upload method is: cutting the data stream into multiple data segments, and setting an index value for each data segment, and uploading the data segments in ascending order of the index value; when the user chooses to retransmit during the upload process, a unique upload identifier is re-set for each data stream, and the data streams are uploaded one by one in a predetermined order based on the slicing upload method; when the user chooses to cancel the upload during the upload process, all relevant information is deleted according to the upload identifier of each data stream, and when the user refreshes the page, it is determined that the upload is interrupted and the upload is resumed; A resume module is used to record in real time the index value of the latest uploaded data segment and the corresponding upload identifier as the resume position during the slice upload process. When the upload is interrupted and needs to be resumed, the resumed transmission starts with the data segment with the index value + 1 in the resume position. A preview plug-in is constructed. The preview plug-in obtains the path address of the digital pathology slice and sends it to the back end. The back end parses the pathology slice according to the path address of the digital pathology slice to obtain preview information. After the web front end is linked to the back end, the preview information is previewed through the preview plug-in, wherein the preview information is the specific position and level to be previewed, including the current preview field position, zoom factor and size; The merging module is used to merge the upload results of all data streams to complete the upload of digital pathology sections. When the web front end is closed and not reopened, the back end obtains the upload permission and uploads the data stream. The back end transmits the upload progress to the web front end in real time through websocket. When uploading the data stream, the web front end sends a file resource management list to the back end, and transfers the address and interface of the target server to the back end in an encrypted manner. The back end reads and uploads the file and records the data in the local MySQL database. At the same time, the upload progress is transmitted back to the web front end logged in to the same account through websocket in real time to ensure that the data will not be transmitted back to other accounts. The target server is the storage location after the digital pathology sections are uploaded.

5. An electronic device comprising a memory and a processor, characterized in that: The memory stores a computer program, and the processor is configured to run the computer program to execute the method for uploading digital pathology sections based on a web front end as described in any one of claims 1 to 3.

6. A readable storage medium, characterized in that: The readable storage medium stores a computer program, wherein the computer program includes a program code for controlling a process to execute a process, wherein the process includes a method for uploading digital pathology sections based on a web front end according to any one of claims 1 to 3.

Citation Information

Patent Citations

  • Large file slice uploading method and device

    CN115766708A

  • File fragment transmission method and device, equipment and storage medium

    CN116431570A