{"version":3,"sources":["webpack:///./src/views/AlternativeQuestionnaire/AlternativeQuestionnaire.scss?6e3a","webpack:///./src/views/AlternativeQuestionnaire/AlternativeQuestionnaire.vue?f59b","webpack:///./src/views/AlternativeQuestionnaire/AlternativeQuestionnaire.ts","webpack:///./src/views/AlternativeQuestionnaire/AlternativeQuestionnaire.ts?2341","webpack:///./src/views/AlternativeQuestionnaire/AlternativeQuestionnaire.vue","webpack:///./src/services/question.service.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","on","$event","preventDefault","onSubmit","_v","_s","$t","errorMessage","_l","question","index","key","attrs","onIsInputNumberValid","error","_e","class","showBackButton","$router","go","staticRenderFns","AlternativeQuestionnaire","_Vue","_this","_classCallCheck","questions","isMonthValueOk","_inherits","_createClass","value","_this2","partId","Number","$route","params","store","state","isAuthenticated","QuestionService","fetchProQuestions","then","response","fetchQuestions","_onSubmit","_asyncToGenerator","regeneratorRuntime","mark","_callee","isParticipant","wrap","_context","prev","next","$isInRole","McsisRole","Participant","sent","postQuestions","isSimpleConsentUsedFromSU","screening","postProQuestions","DocumentService","preparePDF","$i18n","locale","sendToQueue","stop","apply","arguments","_this3","ParticipantService","LocalStoreService","setItem","localItemKeys","inclusionType","push","name","get","length","some","x","answer","isDirectRefusal","Vue","__decorate","Component","components","Question","InputText","component","_fetchQuestions","alternativeQuestionnaire","url","concat","process","ApiService","data","abrupt","_x","_fetchProQuestions","_callee2","_context2","_x2","_x3","_postQuestions","_callee3","isRefusal","isSimpleConsent","isExclusion","isInclusion","participantInclusionType","_args3","_context3","undefined","post","_x4","_x5","_x6","_x7","_x8","_x9","_postProQuestions","_callee4","proInclusion","_context4","_x10","_x11","_x12","_x13"],"mappings":"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","file":"js/alternativeQuestionnaire.js","sourcesContent":["import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./AlternativeQuestionnaire.scss?vue&type=style&index=0&id=49cdf04a&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./AlternativeQuestionnaire.scss?vue&type=style&index=0&id=49cdf04a&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"regular-wrapper alternative\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit($event)}}},[_c('h1',[_vm._v(_vm._s(_vm.$t('pages.alternativeQuestionnaire')))]),_c('p',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errorMessage))]),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.$t('alternativeQuestionnaire.nonParticipationLabel')))]),_vm._l((_vm.questions),function(question,index){return _c('div',{key:index,staticClass:\"single-questions\"},[_c('Question',{attrs:{\"question\":question,\"boolean-type\":\"checkbox\"},on:{\"is-input-number-valid\":_vm.onIsInputNumberValid}})],1)})],2),(!_vm.error)?_c('div',{staticClass:\"bottom-buttons\",class:[ _vm.showBackButton ? '' : 'flex-end']},[(_vm.showBackButton)?_c('a',{staticClass:\"button button-prev\",on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_vm._v(_vm._s(_vm.$t('buttons.back')))]):_vm._e(),(_vm.showValidateButton)?_c('button',{staticClass:\"button-next\",attrs:{\"type\":\"submit\"}},[_vm._v(_vm._s(_vm.$t('buttons.sendForm')))]):_vm._e()]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator';\r\nimport Question from '@/components/Question/Question';\r\nimport { QuestionDTO } from '@/models/QuestionDTO';\r\nimport QuestionService from '@/services/question.service';\r\nimport InputText from '@/components/inputs/InputText/InputText';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport ParticipantService from '@/services/participant.service';\r\nimport { store } from '@/store/store';\r\nimport { ProQuestionDTO } from '@/models/ProQuestionDTO';\r\nimport { McsisRole } from '@/models/constants/McsisRole';\r\nimport DocumentService from '@/services/documentService';\r\nimport { isSimpleConsentUsedFromSU } from '@/config/app.config';\r\n\r\n@Component({\r\n components: {\r\n Question,\r\n InputText,\r\n },\r\n})\r\nexport default class AlternativeQuestionnaire extends Vue {\r\n public questions: QuestionDTO[] = [];\r\n public partId!: number;\r\n public errorMessage: string = '';\r\n public error: boolean = false;\r\n public isMonthValueOk: boolean = true;\r\n\r\n public get showValidateButton(): boolean {\r\n return this.questions.length > 0\r\n && this.questions.some((x) => x.answer === '1') && this.isMonthValueOk;\r\n }\r\n\r\n public get showBackButton(): boolean {\r\n return !store.state.isDirectRefusal;\r\n }\r\n\r\n protected mounted() {\r\n this.partId = Number(this.$route.params.partId);\r\n\r\n if (store.state.isAuthenticated) {\r\n QuestionService.fetchProQuestions(this.partId, true)\r\n .then((response: ProQuestionDTO) => {\r\n this.questions = response.questions;\r\n });\r\n } else {\r\n QuestionService.fetchQuestions(true)\r\n .then((response) => {\r\n this.questions = response;\r\n });\r\n }\r\n }\r\n\r\n protected async onSubmit(): Promise {\r\n const isParticipant = await this.$isInRole(McsisRole.Participant);\r\n\r\n if (isParticipant) {\r\n await QuestionService.postQuestions(\r\n this.questions,\r\n this.partId,\r\n true,\r\n isSimpleConsentUsedFromSU(this.$route.params.screening),\r\n false,\r\n false);\r\n } else {\r\n await QuestionService.postProQuestions(this.questions, this.partId, true, null);\r\n }\r\n\r\n await DocumentService.preparePDF(this.partId, this.$i18n.locale, true, this.$route.params.screening);\r\n this.sendToQueue();\r\n }\r\n\r\n protected sendToQueue(): void {\r\n ParticipantService.sendToQueue(this.partId)\r\n .then(() => {\r\n // Set type of inclusion: 'Inclusion' / 'Exclusion' / 'Refusal'\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.inclusionType, 'Refusal');\r\n this.$router.push({\r\n name: 'confirmation',\r\n params: {\r\n screening: this.$route.params.screening,\r\n },\r\n });\r\n });\r\n }\r\n\r\n protected onIsInputNumberValid(value: boolean): void {\r\n this.isMonthValueOk = value;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./AlternativeQuestionnaire.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./AlternativeQuestionnaire.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlternativeQuestionnaire.vue?vue&type=template&id=49cdf04a&scoped=true&\"\nimport script from \"./AlternativeQuestionnaire.ts?vue&type=script&lang=ts&\"\nexport * from \"./AlternativeQuestionnaire.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./AlternativeQuestionnaire.scss?vue&type=style&index=0&id=49cdf04a&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"49cdf04a\",\n null\n \n)\n\nexport default component.exports","import ApiService from './api.service';\r\nimport { QuestionDTO } from '../models/QuestionDTO';\r\nimport { ProInclusionDTO } from '../models/ProInclusionDTO';\r\nimport { ProQuestionDTO } from '@/models/ProQuestionDTO';\r\nimport LocalStoreService from '@/store/local.store';\r\n\r\nexport default class QuestionService {\r\n\r\n /**\r\n * Get the questions configuration\r\n * @param {boolean} alternativeQuestionnaire - Flag to get configuration for alternative questionnaire\r\n * @returns {QuestionDTO[]} a list of QuestionDTO object\r\n */\r\n public static async fetchQuestions(alternativeQuestionnaire: boolean): Promise {\r\n let url = `${process.env.VUE_APP_PUBLIC_ROOT_API}/questions`;\r\n if (alternativeQuestionnaire) {\r\n url = url + `/alternatives`;\r\n }\r\n return await ApiService.get(url)\r\n .then((response: any) => {\r\n return response.data as QuestionDTO[];\r\n });\r\n }\r\n\r\n /**\r\n * Get the questions configuration for a pro user\r\n * @param {number} partId - The participant ID\r\n * @param {boolean} alternativeQuestionnaire - Flag to get configuration for alternative questionnaire\r\n * @returns {ProQuestionDTO} a list of QuestionDTO object and the pro inclusion\r\n */\r\n public static async fetchProQuestions(partId: number, alternativeQuestionnaire: boolean): Promise {\r\n let url = `${process.env.VUE_APP_PUBLIC_ROOT_API}/questions/${partId}`;\r\n if (alternativeQuestionnaire) {\r\n url = url + `/alternatives`;\r\n }\r\n\r\n return await ApiService.get(url)\r\n .then((response: any) => {\r\n return response.data as ProQuestionDTO;\r\n });\r\n }\r\n\r\n\r\n /**\r\n * Save inclusion data depending on the answered questions\r\n * @param {QuestionDTO[]} questions The list of questions to save\r\n * @param {number} partId The participant ID\r\n * @param {boolean} isRefusal Flag to indicate the type of questionnaire we are saving\r\n * (true for the alternative questionnaire)\r\n */\r\n public static async postQuestions(\r\n questions: QuestionDTO[],\r\n partId: number,\r\n isRefusal: boolean,\r\n isSimpleConsent: boolean,\r\n isExclusion: boolean,\r\n isInclusion: boolean,\r\n participantInclusionType: string = '') {\r\n await ApiService.post(`${process.env.VUE_APP_PUBLIC_ROOT_API}/questions`,\r\n {\r\n partId,\r\n questions,\r\n isRefusal,\r\n participantInclusionType,\r\n isSimpleConsent: !isRefusal && !isExclusion && isInclusion && isSimpleConsent,\r\n })\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => {});\r\n }\r\n\r\n /**\r\n * Save inclusion data depending on the answered questions (for pro user)\r\n * @param {QuestionDTO[]} questions The list of questions to save\r\n * @param {number} partId The participant ID\r\n * @param {boolean} isRefusal Flag to indicate the type of questionnaire we are saving\r\n * (true for the alternative questionnaire)\r\n * @param {ProInclusionDTO} proInclusion contains the data such as weight, height, consultation type..\r\n */\r\n public static async postProQuestions(\r\n questions: QuestionDTO[], partId: number, isRefusal: boolean,\r\n proInclusion: ProInclusionDTO|null) {\r\n await ApiService.post(`${process.env.VUE_APP_PUBLIC_ROOT_API}/questions/${partId}`,\r\n {\r\n partId,\r\n questions,\r\n isRefusal,\r\n proInclusion,\r\n isSimpleConsent: false,\r\n })\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\r\n }\r\n}\r\n"],"sourceRoot":""}