Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titleAnalysis results model
RESULT:export interface IntResult {
    result: <OVERALL_RESULT_DATA>,OverallResultData;
    (dataRows?: <ROW_RESULT_DATA>*|subgroups: [ RowResultData[];
    subgroups?: SubgroupResult[];
}

export interface SubgroupResult {
    result: SubgroupResultData;
    resultdataRows: <SUBGROUP_RESULT_DATA>
        dataRows: <ROW_RESULT_DATA>*
    }])
}


RESULT_DATA:RowResultData[];
}

// mean, ciStart, ciEnd, piStart, piEnd, CiStartOther, and ciEndOther are
// on the scale of analysis, so log scale for log scale outcomes.
export interface ResultData {
    estimable: true|false,boolean;
    mean: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES)logScale: boolean;
    mean: number;
    se: number;
    ciStart: number;
    seciEnd: 0.0,number;
    ciStartpiStart: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES) number;
    piEnd: number;
    weight: number;
}

export interface RowResultData extends ResultData {
    ciEndid: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES) string; // This is not included in the meta-analysis API output, but is added by ReviewDB.
    studyId: string;
    weightapplicability?: 0.0
}


ROW_RESULT_DATA extends RESULT_DATA: {
    id: "<studyDataRowId>"
}

SUBGROUP_RESULT_DATA extends RESULT_DATA:"SUBGROUP_ONLY" | "OVERALL_ONLY" | "SUBGROUP_AND_OVERALL";
    notIncludedInTotal?: boolean; // Used to indicate that a subgroup row is not included in the calculation of the total
}

export interface SubgroupResultData extends ResultData {
    id: "<subgroupAnalysisId>", string; // This is not included in the meta-analysis API output, but is added by ReviewDB.
    heterogeneity: {
        chiSquared: 0.0,number;
        degreesOfFreedom: 0,number;
        iSquared: 0.0,number;
        p: 0.0,number;
        (tauSquared: 0.0)? (NOTE: FOR RANDOM EFFECTS)number;
    },
    overallEffectciEstimable?: {boolean;
        zciStart?: 0.0,number;
        pciEnd?: 0.0number;
    },
    (experimentalciStartSign?: {string;
        totalciEndSign?: 0string;
    },;
    controloverallEffect: {
        totalz: 0number;
      })?
}

OVERALL_RESULT_DATA extends SUBGROUP_RESULT_DATA: {   p: number;
    };
    (subgroupDifferencesexperimental: {
        chiSquaredevents?: 0.0,number;
        degreesOfFreedomtotal: 0,number;
    };
    iSquaredcontrol: 0.0,{
        pevents?: 0.0},)?number;
    (experimental    total: {number;
    };
    totaldataRows: 0
    },RowResultData[];
}

export interface OverallResultData extends SubgroupResultData {
    controlsubgroupDifferences: {
        totalchiSquared: 0number;
    })?
}
Code Block
titleDTA Analysis result model
RESULT: {
    diagnosticDataRows: [
        <DIAGNOSTIC_RESULT_TEST_DATA_ROW>*
    degreesOfFreedom: number;
        ]iSquared: |number;
    diagnosticSubgroups: [{
    p: number;
   meanD: 0.0,
    }
}


Code Block
titleDTA Analysis result model
export interface DtaResult {
     adiagnosticSubgroups: 0.0,
   DtaSubgroupResult[];
}

export interface DtaSubgroupResult {
     ba: 0.0,number;
        diagnosticDataRowsb: [number;
            <DIAGNOSTIC_RESULT_TEST_DATA_ROW>*meanD: number;
    diagnosticDataRows: DtaDataRowResult[];
}

export interface DtaDataRowsResult ]{
 
    },...]diagnosticDataRows: DtaDataRowResult[];
}

DIAGNOSTIC_RESULT_TEST_DATA_ROW:export interface DtaDataRowResult {
      sensitivitysensitivity: 0.0,number;
    sensCiStart: 0.0,number;
     sensCiEnd: 0.0,number;
    specificity: 0.0,number;
    specCiStart: 0.0,number;
    specCiEnd: 0.0
}

DIAGNOSTIC_RESULT_TEST_DATA_ROW_FOR_SUBGROUP extends DIAGNOSTIC_RESULT_TEST_DATA_ROW: {
    d: 0.0,number;
    d?: number;
    s?: 0.0,number;
     weight?: 0.0,number;
    scaleSpec?: 0.0,
number;
     scaleSens?: 0.0number;
}

Platforms/protocol for analysis backend

...

Code Block
titleInput structure
INPUT: [{
    options: {
        dataType: "DICHOTOMOUS"|"CONTINUOUS"|"CONTRAST"|"OBSERVED_EXPECTED", (NOTE: CONTRAST maps to INVERSE_VARIANCE in RM5/Review DB) // Both dataRows and subgroups should be provided when the overall results should be based on a separate analysis, e.g. subgroups with studies split by intervention.
export interface IntInput {
    options: InputOptions;
   method: "MH"|"GIV"|"PETO",
        effectMeasure: "MD"|"SMD"|"LOR"|"LRR"|"RD"|"PetoLOR"|"Generic", dataRows?: InputData[];
    subgroups?: InputSubgroup[];
}

export interface InputOptions {
    dataType: InputDataType;
    method: InputMethod;
    modeleffectMeasure: "FIXED"|"RANDOM",InputEffectMeasure;
    model: Model;
   ciLevelRows: 0.90|0.95|0.99, heterogeneityEstimator?: HeterogeneityEstimator;
    ciMethod: CIMethod;
    ciLevelTotalsciLevel: 0.90 | 0.95 | 0.99,;
        swapEvents: true|false,boolean;
        totals: "YES"|"SUB"|"NO"logData: boolean;
    },    
    dataRowstotals: [
        <DICHOTOMOUS_DATA>*|<CONTINUOUS_DATA>*|<CONTRAST_DATA>*|<OBSERVED_EXPECTED_DATA>*
    ]|
    subgroups: [{
    Totals;
}

export interface InputSubgroup {
    dataRows: InputData[
	        <DICHOTOMOUS_DATA>*|<CONTINUOUS_DATA>*|<CONTRAST_DATA>*|<OBSERVED_EXPECTED_DATA>*
        ]
    },...]
}]


DICHOTOMOUS_DATA: {];
}

export type InputData = DichotomousInputData | ContinuousInputData | ContrastInputData | ObservedExpectedInputData;

export interface DichotomousInputData {
    studyId: string;
    experimental: {
        events: 0,number;
        total: 0number;
    },;
    control: {
        events: 0,number;
        total: 0number;
    };
    applicability?: Applicability;
}

export interface ContinuousInputData  
CONTINUOUS_DATA{
    studyId: {string;
    experimental: {
        total: 0,number;
        mean: 0.0,number;
        sd: 0.0number;
    },
    control: {
        total: 0,number;
        mean: 0.0,number;
        sd: 0.0number;
    }
    applicability?: Applicability;
}


CONTRAST_DATA: {export interface ContrastInputData {
    studyId: string;
    estimate: 0.0,number;
    se: 0.0number;
    (experimental?: {
        total: 0number;
    },;
    control?: {
        total: 0number;
    })?;
    applicability?: Applicability;
}


OBSERVED_EXPECTED_DATA: {export interface ObservedExpectedInputData {
    studyId: string;
    oe: 0.0,number;
    variance: 0.0,number;
    (experimental?: {
         events: 0,number;
         total: 0number;
     },;
     control?: {
         events: 0,number;
         total: 0number;
    })? };
    applicability?: Applicability;
}


Code Block
titleDTA input structure
INPUT: [{
    diagnosticOptions: {
export interface DtaInput {
    diagnosticOptions: DtaInputOptions;
    scalediagnosticDataRows?: "EQUAL" | "SAMPLE_SIZE" | "INVERSE_SE" | "COVARIATE"
   DtaTestDataRowInput[];
    diagnosticSubgroups?: DtaSubgroupInput[];
}

export interface DtaInputOptions {
     weight: "EQUAL" | "SAMPLE_SIZE" | "INVERSE_V",
    scale: Scale;
    weight: Weight;
    ciLevel: 0.90 | 0.95 | 0.99;
    },
    diagnosticDataRows: [
        <DIAGNOSTIC_TEST_DATA_ROW>*
    ] |
	diagnosticSubgroups: [
export interface DtaSubgroupInput {
        diagnosticDataRows: DtaTestDataRowInput[
            <DIAGNOSTIC_TEST_DATA_ROW>*
        ]
    },...]
}]

DIAGNOSTIC_TEST_DATA_ROW:];
}

export interface DtaTestDataRowInput {
    tp: 0,number;
    fp: 0,number;
    fn: 0,number;
    tn: 0,number;
      covariateScaleValuecovariateScaleValue?: 0.0number;
}