Location>code7788 >text

How to implement non-row, non-column testing in a laboratory information management system?

Popularity:967 ℃/2024-08-15 09:22:47

preamble

Laboratory Information Management System, or LIMS (Laboratory Information Management System), is composed of computers and application software that can accomplish the collection, analysis, reporting and management of laboratory data and information. Most of the early LIMS systems are based on computer LAN, designed specifically for the overall environment of a laboratory, and is an efficient integrated system including signal acquisition equipment, data communication software, database management software.

LIMS system is centered on the laboratory, combining the business process, environment, personnel, instrumentation, specimen, chemical reagent, standard method, library, documentation, customer management and other data factors affecting the analysis of the laboratory, adopting advanced computer network technology, database technology and standardized laboratory management ideas to form a comprehensive and standardized management system, which provides technical support for the realization of online scheduling of analytical data, automatic collection and rapid distribution of analytical data, information sharing, paperless analysis report, smooth implementation of quality assurance system, strict cost control, quantitative assessment of personnel and overall improvement of laboratory management level. The realization of online scheduling of analytical data, automatic collection of analytical data, rapid distribution, information sharing, paperless analytical reports, the smooth implementation of quality assurance system, strict cost control, quantitative assessment of personnel, laboratory management to improve the overall level of technical support, is the connection between the laboratory, sampling site, regulatory authorities and the customer information information information platform, and at the same time, the introduction of advanced mathematical and statistical techniques, such as ANOVA, correlation and regression analysis, significance test, cumulative and control charts, sampling test, etc., to assist the functional departments in timely detection and control of key factors affecting product quality.

Pain point issues faced in LIMS systems:

Pain point one:

LIMS system in the report analysis often meet such a problem: the number of rows and columns of the report of the experimental template is fixed, but the number of detectives and detection methods is not fixed, as a simple example, as shown in the figure below, [ion chromatography determination of the original record] table detection method has 20 rows, a total of 7 columns of detectives.

However, in practice, the detection method has 24 rows of data, the detection of 7 columns, this time can not meet the report of the existing rows and columns of the template pattern, like the above example of this example of less data, you can manually modify manually, but when the data is too large (thousands or even tens of thousands of columns of data), manual modification will be a waste of time and time-consuming and laborious.

Pain Point Two:

Formulas configured in cells also need to be automatically expanded, and the cells referenced by the formulas need to change relatively:

cure

In the face of such a demand, it is possible to take advantage of Grapevine'sSpreadJS Online Form Editorto address these pain points:

1. First of all, through the data binding to complete the fixed cell data rendering and filling:

2. Facing the problem that the total number of rows and columns exceeds the total number of templates, the idea is to divide the test data according to the total number of rows and columns of the template, copy the existing template to the new sheet according to the divided data, and put the divided data into the new sheet to realize paging, but of course, in the actual business, some rows and columns are divided into two parts.

3. Formula functions are realized by api filling:

Core code sharing

1. According to the total number of template rows and columns, dynamic processing of data sources:

// Based on the total number of template rows and columns,Dynamic processing of data sources
        processBindData() {
             = ((data));
            delete ;
            let test1, test2, test3, test4
            // The actual project needs to be based on the template rows and columns to dynamically determine whether the need for paging,In this example20classifier for objects in rows such as words,7columns
            if ( > 20 && ([0]).length > 7) {
                test1 = (0, 20);
                ((item, index) => {
                    test1[index] = pickByIndex(item, 0, 6)
                })
                .test1 = test1;
                test2 = (0, 9).concat((20, ));
                ((item, index) => {
                    test2[index] = pickByIndex(item, 0, 6)
                })
                .test2 = test2;
                test3 = (0, 20);
                ((item, index) => {
                    test3[index] = (pickByIndex(item, 0, 1), pickByIndex(item, 7, 8))
                })
                .test3 = test3;
                test4 = (0, 9).concat((20, ));
                ((item, index) => {
                    test4[index] = (pickByIndex(item, 0, 1), pickByIndex(item, 7, 8))
                })
                .test4 = test4;
                ();
                ();
            }
            // })
        },
2. Based on processed data,Dynamically generate newsheet,Dynamically populated data
 // Based on processed data,Dynamically generate newsheet,Dynamically populated data
        templatePagination() {
            let sheetJSON = (0).toJSON();
            for (let i = 1; i < 5; i++) {
                if (i == 1) {
                    (0)
                }
                let newSheet = new ("(prefix indicating ordinal number, e.g. first, number two etc)" + i + "leaf");
                ((), newSheet);
                (sheetJSON);
                ("(prefix indicating ordinal number, e.g. first, number two etc)" + i + "leaf");
                (1, 6, "common4leaf,(prefix indicating ordinal number, e.g. first, number two etc)" + i + "leaf");
                var tableColumns = [],
                    names = ([test${i}][0]),
                    labels = ([test${i}][0]);
                var table = (test${i}, 6, 0, [test${i}].length + 1, ([test${i}][0]).length);
                (false);
                (function (name, index) {
                    var tableColumn = new ();
                    (labels[index]);
                    (name);
                    (tableColumn);
                });

                (tableColumns);
                (test${i});
                ();
                (false);
                let source = new ();
                (source);
                const sRange = new (7, 3, 1, 1);
                const fRange = new (7, 3, [test${i}].length, 1);
                (sRange, fRange, {
                    fillType: ,
                    series: ,
                    fillDirection: ,
                });
                 = false;
            }
        },

2. Formula function fill logic:

const sRange = new (7, 3, 1, 1);
                const fRange = new (7, 3, [test${i}].length, 1);
                (sRange, fRange, {
                    fillType: ,
                    series: ,
                    fillDirection: ,
                });

Finally a link to the full code

/GrapeCity/lims

Extended Links:

[Dry Goods Release] The key points of financial statement collation analysis, read all in one article!

Why aren't your financial statements great? It's recommended that you understand these four design points and

Pure front-end Excel spreadsheet control for reporting and analyzing scenarios