import { PopulationGroupResult, CalculationOptions, ExecutionResult } from '../types/Calculator'; import { CompositeScoreType } from '../types/Enums'; import { AbstractMeasureReportBuilder } from './AbstractMeasureReportBuilder'; export type CompositeMeasureReport = fhir4.MeasureReport & { group: (fhir4.MeasureReportGroup & { population: [ fhir4.MeasureReportGroupPopulation & { count: number; }, fhir4.MeasureReportGroupPopulation & { count: number; } ]; })[]; }; /** CompositeGroupData contains information about the scoring type and weights for specific * component within groups defined by a composite measure. The componentMap is keyed by the * Measure component resource canonical with values of either number or Record: * - if the Measure component resource has only one group, then the value is a number that is the weight of the component * - if the Measure component resource has more than one group, then the value is a Record where: * - the key is of type string that is the groupId of the Measure component resource * - the value is of type number that is the weight of the group of the Measure component resource * Example componentMap: * {'http://example.com/Measure/measure-GroupComponentOne|0.0.1': { 'comp-1-group-1': 3 }, * 'http://example.com/Measure/measure-GroupComponentTwo|0.0.1': 1} */ interface CompositeGroupData { compositeScoringType?: string; componentMap: Record>; } export declare class CompositeReportBuilder extends AbstractMeasureReportBuilder { report: CompositeMeasureReport; compositeScoringType: CompositeScoreType | undefined; compositeFraction: { numerator: number; denominator: number; } | Record; components: Record | number>; groups: Record; groupDefinedCompositeMeasure: boolean; constructor(compositeMeasure: fhir4.Measure, options: CalculationOptions); addAllResults(results: ExecutionResult[]): void; private addWeightedResults; addPatientResults(result: ExecutionResult, groupId?: string): void; getReport(): CompositeMeasureReport; } export {};