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>*,RowResultData[];
    subgroups?: SubgroupResult[{];
}

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


RESULT_DATA: {
    estimable: true|false,
    logScale: true|false,
    mean: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES)// 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: boolean;
    selogScale: 0.0,boolean;
    ciStartmean: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES)number;
    se: number;
    ciStart: number;
    ciEnd: 0.0, (NOTE: ON THE SCALE OF ANALYSIS, SO LOG SCALE FOR LOG SCALE OUTCOMES)number;
    piStart: number;
    piEnd: number;
    weight: 0.0number;
}


ROW_RESULT_DATAexport interface RowResultData extends RESULT_DATA:ResultData {
    id: "<studyDataRowId>", (NOTE: thisstring; // This is not included in the meta-analysis API output, but is added by ReviewDB.)
    studyId,: string;
    applicability?: "SUBGROUP_ONLY" | "OVERALL_ONLY" | "SUBGROUP_AND_OVERALL",;
      (notIncludedInTotal?: true)? (NOTE: usedboolean; // Used to indicate that a subgroup row is not included in the calculation of the total)
}

SUBGROUP_RESULT_DATAexport interface SubgroupResultData extends RESULT_DATA:ResultData {
    id: "<subgroupAnalysisId>", (NOTE: thisstring; // 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_FOR_SUBGROUP>*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: {number;
    d?: 0.0,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
 (NOTE: both// 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.) 

INPUT: [
export interface IntInput {
    options: {InputOptions;
    dataRows?: InputData[];
   dataType: "DICHOTOMOUS"|"CONTINUOUS"|"CONTRAST"|"OBSERVED_EXPECTED", (NOTE: CONTRAST maps to INVERSE_VARIANCE in RM5 and CONTRAST_LEVEL in Review DB)
     subgroups?: InputSubgroup[];
}

export interface InputOptions {
    dataType: InputDataType;
    method: "MH"|"GIV"|"PETO",
    InputMethod;
    effectMeasure: "MD"|"SMD"|"LOR"|"LRR"|"RD"|"PetoLOR"|"Generic",InputEffectMeasure;
        model: "FIXED"|"RANDOM",
   Model;
     heterogeneityEstimator?: "DL" | "REML",HeterogeneityEstimator;
        ciLevelRows: 0.90|0.95|0.99,ciMethod: CIMethod;
        ciLevelTotalsciLevel: 0.90 | 0.95 | 0.99,;
        swapEvents: true|false,boolean;
        logData: true|false,
   boolean;
     totals: "YES"|"SUB"|"NO"
    },    Totals;
}

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


DICHOTOMOUS_DATA:InputData[];
}

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?: 
CONTINUOUS_DATA:Applicability;
}

export interface ContinuousInputData {
    studyId,: string;
      experimentalexperimental: {
        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;
      estimateestimate: 0.0,number;
    se: 0.0number;
    (experimental?: {
        total: 0number;
    },;
    control?: {
        total: 0number;
    })?;
    applicability?: Applicability;
}

OBSERVED_EXPECTED_DATA:export interface ObservedExpectedInputData {
    studyId,: string;
      oeoe: 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;
}