dependencies dependencies cluster_BasicReportPreparatorModule cluster_BasicReportPreparatorModule_providers cluster_BasicReportPreparatorModule_imports DataVisualizationModule DataVisualizationModule BasicReportPreparatorModule BasicReportPreparatorModule DataVisualizationModule->BasicReportPreparatorModule QuestionnaireModule QuestionnaireModule QuestionnaireModule->BasicReportPreparatorModule QuestionReportPreparator QuestionReportPreparator QuestionReportPreparator->BasicReportPreparatorModule

File

lib/features/src/basic-report-preparators/basic-report-preparators.module.ts

import 	{
			NgModule,
			Injectable
		}								from '@angular/core'

import	{
			Question,
			Report,
			Schedule,
		}								from '@rcc/core'

import	{
			Questionnaire,
			QuestionnaireModule
		}								from '../questions'

import	{
			DataVisualizationModule,
			Dataset,
			ReportPreparator
		}								from '../data-visualization'





@Injectable()
export class QuestionReportPreparator extends ReportPreparator {

	constructor(
		public questionnaire: Questionnaire
	){
		super()
	}



	async prepare(report: Report): Promise<Dataset[]> {

		const questions = await this.questionnaire.get(report.questionIds)

		return 	questions.map( question => ({
					question,
					datapoints:	report.entries
								.filter( 	entry =>  	entry.questionId == question.id)
								.filter(	entry =>	entry.targetDay )
								.filter(	entry =>	entry.answer !== null)
								.filter(	entry =>	entry.answer !== undefined)
								.map( 		entry => 	({
															value: 	entry.answer,
															note: 	entry.note,
															date:	entry.targetDay
														})
								)
				}))


	}
}



@NgModule({
	imports: [
		QuestionnaireModule,
		DataVisualizationModule.forChild( [QuestionReportPreparator] )
	],
	providers: [
		QuestionReportPreparator,
	]

})
export class BasicReportPreparatorModule {}

results matching ""

    No results matching ""