{"version":3,"sources":["webpack://lib.[name]/webpack/universalModuleDefinition","webpack://lib.[name]/./src/shared/entities/user-query/user-query.entities.ts","webpack://lib.[name]/./src/shared/scripts/table-functions.ts","webpack://lib.[name]/./src/secure/inventory-summary/scripts/inventory-summary.page.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.samples.ts","webpack://lib.[name]/./src/secure/resource/resource.scss?7449","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.navigation.ts","webpack://lib.[name]/./src/secure/inventory-summary/scripts/inventory-lookup.ts","webpack://lib.[name]/./src/secure/sample-search/scripts/sample-search.search-management.ts","webpack://lib.[name]/./src/secure/sample-request/sample-request.scss?0174","webpack://lib.[name]/./src/secure/request-dashboard/scripts/request-dashboard.pdf.ts","webpack://lib.[name]/./src/secure/inventory-summary/inventory-summary.scss?e55d","webpack://lib.[name]/./src/secure/sample-search/sample-search.scss?6ec8","webpack://lib.[name]/./src/shared/scripts/number-functions.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.page.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.components.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.entities.ts","webpack://lib.[name]/./src/secure/request-dashboard/scripts/sample-request-form-data.entities.ts","webpack://lib.[name]/./src/secure/inventory-summary/scripts/inventory-summary.entities.ts","webpack://lib.[name]/./src/secure/request-dashboard/scripts/request-dashboard.statusHistory.ts","webpack://lib.[name]/./src/secure/secure.module.ts","webpack://lib.[name]/./src/secure/home/home.page.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.prepopulate.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.review.ts","webpack://lib.[name]/./src/shared/scripts/array-functions.ts","webpack://lib.[name]/./src/shared/scripts/dropdown-functions.ts","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.validation.ts","webpack://lib.[name]/./src/shared/scripts/table-column-visibility.ts","webpack://lib.[name]/./src/secure/home/home.scss?b053","webpack://lib.[name]/./src/secure/sample-search/scripts/sample-search.entities.ts","webpack://lib.[name]/./src/secure/request-dashboard/scripts/request-dashboard.adminModal.ts","webpack://lib.[name]/./src/secure/request-dashboard/scripts/request-dashboard.samples.ts","webpack://lib.[name]/./src/secure/sample-search/scripts/sample-search.page.ts","webpack://lib.[name]/./src/shared/scripts/date-functions.ts","webpack://lib.[name]/./src/secure/request-dashboard/request-dashboard.page.ts","webpack://lib.[name]/./src/secure/sample-request/submit/submit.scss?973f","webpack://lib.[name]/./src/secure/request-dashboard/request-dashboard.scss?dd41","webpack://lib.[name]/./src/secure/sample-request/scripts/sample-request.specific.ts","webpack://lib.[name]/./src/secure/request-dashboard/scripts/data-table.ts"],"names":[],"mappings":"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","file":"secure.0992ade2f311818bb834.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"secure\"] = factory();\n\telse\n\t\troot[\"lib\"] = root[\"lib\"] || {}, root[\"lib\"][\"secure\"] = factory();\n})(window, function() {\nreturn ","\r\n\r\nexport class UserQuery {\r\n id: number;\r\n queryName: string;\r\n queryJson: string;\r\n humanReadable: string;\r\n}","import dateFormat from \"dateformat\";\r\n\r\n\r\nexport function FormatStringColumnByLength(value: string, wordsOnLine: number): string {\r\n let parts: string[] = value.split(\" \");\r\n let output: string = \"\";\r\n for (let i = 0; i < parts.length; ++i) {\r\n output += parts[i] + \" \";\r\n if (i == (wordsOnLine - 1)) {\r\n output += \"\";\r\n }\r\n }\r\n\r\n if (parts.length < (wordsOnLine - 1)) { output += \"\"; }\r\n return output.trim();\r\n}\r\n\r\n\r\nexport function RenderProgressBar(data, type, row, meta): any {\r\n let output: string;\r\n if (type !== 'display') { output = data; }\r\n else if (data == '-1') { output = \"\" }\r\n else {\r\n output = '
' + Math.round(data * 100.0) + '%
'\r\n }\r\n return output;\r\n}\r\n\r\nexport function RenderProgressValue(data, type, row, meta): any {\r\n let output: string;\r\n if (type !== 'display') { output = data; }\r\n else if (data == '-1' || data == undefined) { output = \"\" }\r\n else {\r\n output = Math.round(data * 100.0) + '%'\r\n }\r\n return output;\r\n}\r\n\r\nexport function RenderNullableNumber(data, type, row, meta): any {\r\n if (data == -1) return \"\";\r\n else return data;\r\n}\r\nexport function RenderNullabledNumberAndRound_1Digit(data, type, row): any {\r\n if (data == -1 || data == undefined) return \"\";\r\n else return (data).toFixed(1);\r\n}\r\n\r\nexport function RenderNullabledNumberAndRound_2Digits(data, type, row): any {\r\n if (data == -1 || data == undefined) return \"\";\r\n else return (+data).toFixed(2);\r\n}\r\n\r\nexport function RenderNullableNumberWithSeparators(data, type, row, meta): any {\r\n if (data == -1 || data == undefined) return \"\";\r\n else return data.toLocaleString(\"en-US\")\r\n}\r\n\r\nexport function RenderDateMDY(data, type, row, meta): any {\r\n\r\n //console.log(\"Render Date:\", data, row);\r\n\r\n if (data == undefined) return \"\";\r\n\r\n let dateString: string = GetDateString(data);\r\n if (dateString == \"\") return \"\";\r\n\r\n let delimiter: string = GetDateDelimiter(dateString);\r\n if (delimiter == \"\") return \"\";\r\n\r\n let date: Date = undefined;\r\n try {\r\n let parts: string[] = (dateString).split(delimiter);\r\n //let date: Date = new Date(data + \" 06:00:00Z-0400\");\r\n date = new Date(Number.parseInt(parts[2]), Number.parseInt(parts[0]) - 1, Number.parseInt(parts[1]), 11, 0);\r\n }\r\n catch (error) {\r\n date = undefined;\r\n }\r\n\r\n if (type == 'sort') {\r\n if (date != undefined) return date.getTime();\r\n else return -1;\r\n }\r\n else {\r\n if (date != undefined) return \"\" + dateFormat(date, \"mmm dd yyyy\") + \"\";\r\n else return \"\";\r\n }\r\n}\r\n\r\nexport function RenderDateYMD(data, type, row, meta): any {\r\n\r\n if (data == undefined) return \"\";\r\n\r\n let dateString: string = GetDateString(data);\r\n if (dateString == \"\") return \"\";\r\n\r\n let delimiter: string = GetDateDelimiter(dateString);\r\n if (delimiter == \"\") return \"\";\r\n\r\n let date: Date = undefined;\r\n try {\r\n let parts: string[] = (dateString).split(delimiter);\r\n //let date: Date = new Date(data + \" 06:00:00Z-0400\");\r\n date = new Date(Number.parseInt(parts[0]), Number.parseInt(parts[1]) - 1, Number.parseInt(parts[2]), 11, 0);\r\n }\r\n catch (error) {\r\n date = undefined;\r\n }\r\n\r\n if (type == 'sort') {\r\n if (date != undefined) return date.getTime();\r\n else return -1;\r\n }\r\n else {\r\n if (date != undefined) return \"\" + dateFormat(date, \"mmm dd yyyy\") + \"\";\r\n else return \"\";\r\n }\r\n}\r\n\r\nexport function GetDateString(data: any): string {\r\n\r\n if (data == undefined || data == -1 || data == \"\") return \"\";\r\n\r\n //to remove trailing time\r\n let dateString: string = data;\r\n if (dateString.indexOf(\" \") != -1) { dateString = dateString.substring(0, dateString.indexOf(\" \")).trim(); }\r\n\r\n return dateString;\r\n}\r\n\r\nexport function GetDateDelimiter(date: string): string {\r\n if (date.indexOf(\"-\") != -1) { return \"-\"; }\r\n else if (date.indexOf(\"/\")! - 1) { return \"/\"; }\r\n else return \"\";\r\n}\r\n","var Highcharts = require('highcharts/highcharts');\r\n\r\nHighcharts.setOptions({\r\n lang: {\r\n thousandsSep: ','\r\n }\r\n})\r\n\r\nimport { plainToClass } from 'class-transformer';\r\nimport { Patient, ComputedDisplayValues, DropdownOption, Sample, Aliquot } from './inventory-summary.entities';\r\nimport { FormatNumberWithCommas } from '../../../shared/scripts/number-functions';\r\nimport { BiorepositoryLookup } from './inventory-lookup';\r\n\r\nexport class InventorySummaryPage {\r\n\r\n allPatients: Patient[];\r\n ageRange: number[] = [];\r\n patientsByVisitChart: any;\r\n patientsBySampleType: any;\r\n samplesByVisitChart: any;\r\n aliquotsByVisitChart: any;\r\n\r\n ageSlider: any;\r\n minMaxAge: number[] = [];\r\n\r\n displayData: ComputedDisplayValues = new ComputedDisplayValues();\r\n\r\n colorBaseline: string = \"#1C7293\"\r\n colorArray: string[] = [\r\n \"#152850\",\r\n \"#AEDCC0\",\r\n \"#628288\",\r\n \"#FBE2B2\",\r\n \"#5B5987\",\r\n \"#9BC8E9\",\r\n \"#A6979C\",\r\n \"#F4B942\"\r\n ]\r\n\r\n timepoints: string[] = [\"Baseline\", \"Day1\", \"Day3\", \"Day7or8\", \"Day14or15\", \"Day29or31\", \"Unscheduled\"];\r\n\r\n totalColorArray: string[] = [];\r\n nonActiv1ColorArray: string[] = [];\r\n constructor(data: any) {\r\n $(() => {\r\n //console.log(data);\r\n\r\n this.allPatients = plainToClass(Patient, data);\r\n this.allPatients.map((patient: Patient) => {\r\n patient.initialize();\r\n return patient;\r\n });\r\n\r\n //console.log(this.allPatients);\r\n this.initializeColorArrays();\r\n this.initializeFilters();\r\n\r\n this.initializeParticipantsByVisitChart();\r\n this.initializeParticipantsBySampleTypeChart();\r\n this.samplesByVisitChart = this.initializeSampleTypeByVisitChart('samples-byvisit-chart', 'Biospecimen');\r\n this.aliquotsByVisitChart = this.initializeSampleTypeByVisitChart('aliquot-byvisit-chart', 'Aliquot');\r\n\r\n this.updateDisplay();\r\n\r\n });\r\n }\r\n\r\n initializeColorArrays(): void {\r\n let colorCount = 0;\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n if (this.timepoints[i] == \"Baseline\") {\r\n this.totalColorArray.push(this.colorBaseline);\r\n }\r\n else {\r\n this.totalColorArray.push(this.colorArray[colorCount]);\r\n colorCount++\r\n if (colorCount >= this.colorArray.length) {\r\n colorCount = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n updateDisplay(): void {\r\n\r\n let studyValues: string[] = ($('#study-dropdown').val());\r\n let extendStudyIds: string[] = [\"8\", \"10\", \"11\"]\r\n let extendStudyMappingIds: string[][] = [[\"8\", \"9\", \"12\", \"13\"], [\"10\", \"9\", \"13\", \"14\"], [\"11\", \"12\", \"13\", \"14\"]];\r\n for (let i = 0; i < studyValues.length; i++) {\r\n if (extendStudyIds.includes(studyValues[i])) {\r\n let mappingVals: string[] = extendStudyMappingIds[extendStudyIds.indexOf(studyValues[i])];\r\n mappingVals.forEach(val => {\r\n if (!studyValues.includes(val)) {\r\n studyValues.push(val);\r\n }\r\n })\r\n \r\n }\r\n }\r\n\r\n this.displayData.Update(this.allPatients, studyValues, ($('#study-type-dropdown').val()), ($('#specimen-status-dropdown').val()), ($('#age-dropdown').val()), ($('#sex-dropdown').val()), ($('#race-dropdown').val()), ($('#ethnicity-dropdown').val()));\r\n\r\n //let data: ComputedDisplayValues = new ComputedDisplayValues(this.allPatients, ($('#study-dropdown').val()), ($('#study-type-dropdown').val()), ($('#specimen-status-dropdown').val()), this.ageRange[0], this.ageRange[1], $('#includeMissingAgeCheckbox').is(\":checked\"), ($('#sex-dropdown').val()), ($('#race-dropdown').val()), ($('#ethnicity-dropdown').val()));\r\n\r\n $('#value-total-participants').text(FormatNumberWithCommas(this.displayData.ParticipantCount + \"\"));\r\n $('#value-total-samples').text(FormatNumberWithCommas(this.displayData.SampleCount + \"\"));\r\n $('#value-total-aliquots').text(FormatNumberWithCommas(this.displayData.AliquotCount + \"\"));\r\n\r\n \r\n let patientsByVisitData: number[] = [];\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n patientsByVisitData.push(this.displayData[`ParticipantsByVisit_${this.timepoints[i]}`])\r\n }\r\n this.patientsByVisitChart.series[0].setData(patientsByVisitData);\r\n\r\n this.patientsBySampleType.series[6].setData(this.displayData.Participants_Timepoint1.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[5].setData(this.displayData.Participants_Timepoint2.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[4].setData(this.displayData.Participants_Timepoint3.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[3].setData(this.displayData.Participants_Timepoint4.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[2].setData(this.displayData.Participants_Timepoint5.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[1].setData(this.displayData.Participants_Timepoint6.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.series[0].setData(this.displayData.Participants_Timepoint7.GetDataArray(), false, true, false);\r\n this.patientsBySampleType.redraw();\r\n\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n this.samplesByVisitChart.series[i].setData(this.displayData[`Samples_Visit${this.timepoints[i]}`].GetDataArray(), false, true, false);\r\n }\r\n\r\n this.samplesByVisitChart.redraw();\r\n\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n this.aliquotsByVisitChart.series[i].setData(this.displayData[`Aliquots_Visit${this.timepoints[i]}`].GetDataArray(), false, true, false);\r\n }\r\n\r\n this.aliquotsByVisitChart.redraw();\r\n }\r\n\r\n initializeFilters(): void {\r\n //let minAge: number = Number.MAX_VALUE;\r\n //let maxAge: number = Number.MIN_VALUE;\r\n let studies: DropdownOption[] = []; let studyIds: number[] = [];\r\n let studyTypes: DropdownOption[] = []; let studyTypeIds: number[] = [];\r\n let specimenStatuses: DropdownOption[] = []; let specimenStatusIds: number[] = [];\r\n let sexes: DropdownOption[] = []; let sexIds: number[] = [];\r\n let races: DropdownOption[] = []; let raceIds: number[] = [];\r\n let ages: DropdownOption[] = []; let ageIds: number[] = [];\r\n\r\n let ethnicities: DropdownOption[] = []; let ethnicityIds: number[] = [];\r\n\r\n this.allPatients.forEach((patient: Patient) => {\r\n //if (patient.Age < minAge) { minAge = patient.Age; }\r\n //if (patient.Age > maxAge) maxAge = patient.Age;\r\n\r\n if (!studyIds.includes(patient.StudyId)) { studies.push(new DropdownOption(patient.StudyId, 'study')); studyIds.push(patient.StudyId); }\r\n if (!studyTypeIds.includes(patient.StudyTypeId)) { studyTypes.push(new DropdownOption(patient.StudyTypeId, 'study-type')); studyTypeIds.push(patient.StudyTypeId); }\r\n if (!sexIds.includes(patient.Sex)) { sexes.push(new DropdownOption(patient.Sex, 'sex')); sexIds.push(patient.Sex); }\r\n if (!raceIds.includes(patient.Race)) { races.push(new DropdownOption(patient.Race, 'race')); raceIds.push(patient.Race); }\r\n if (!ethnicityIds.includes(patient.Ethnicity)) { ethnicities.push(new DropdownOption(patient.Ethnicity, 'ethnicity')); ethnicityIds.push(patient.Ethnicity); }\r\n if (!ageIds.includes(patient.Age)) { ages.push(new DropdownOption(patient.Age, 'age')); ageIds.push(patient.Age); }\r\n\r\n patient.Samples.forEach((sample: Sample) => {\r\n\r\n sample.Aliquots.forEach((aliquot: Aliquot) => {\r\n if (!specimenStatusIds.includes(aliquot.PortalStatus)) { specimenStatuses.push(new DropdownOption(aliquot.PortalStatus, 'specimen-status')); specimenStatusIds.push(aliquot.PortalStatus); }\r\n });\r\n });\r\n\r\n });\r\n\r\n // Remove 'Extra' ACTIV1 Studies\r\n let updatedStudies: DropdownOption[] = [];\r\n let extraActiv1StudyIds: number[] = [9, 12, 13, 14]\r\n studies.forEach(study => {\r\n if (!extraActiv1StudyIds.includes(study.Id)) {\r\n updatedStudies.push(study)\r\n }\r\n })\r\n\r\n //this.initializeAgeSlider(minAge, maxAge);\r\n this.initializeDropdown(\"#age-dropdown\", ages);\r\n this.initializeDropdown('#study-dropdown', updatedStudies);\r\n this.initializeDropdown('#study-type-dropdown', studyTypes);\r\n this.initializeDropdown(\"#specimen-status-dropdown\", specimenStatuses);\r\n this.initializeDropdown('#sex-dropdown', sexes);\r\n this.initializeDropdown('#race-dropdown', races);\r\n this.initializeDropdown('#ethnicity-dropdown', ethnicities);\r\n\r\n }\r\n\r\n initializeDropdown(dropdownId: string, entries: DropdownOption[]): void {\r\n\r\n //console.log(entries);\r\n\r\n $(dropdownId).selectpicker({\r\n dropupAuto: false,\r\n //actionsBox: true,\r\n selectedTextFormat: \"count\",\r\n\r\n countSelectedText: (numSelected, numTotal) => {\r\n if (numSelected == numTotal) { return \"All (n = \" + numSelected + \")\"; }\r\n else { return numSelected + \" of \" + numTotal + \" Selected\"; }\r\n }\r\n });\r\n\r\n $(dropdownId).on('changed.bs.select', (e, clickedIndex, isSelected, previousValue) => { this.updateDisplay(); });\r\n\r\n entries.sort((a, b) => (a.Value > b.Value) ? 1 : -1);\r\n\r\n entries.forEach((element: DropdownOption) => {\r\n let option: any = new Option(element.Value, element.Id + \"\", false, true);\r\n $(dropdownId).append(option);\r\n });\r\n $(dropdownId).selectpicker(\"refresh\");\r\n\r\n }\r\n\r\n initializeAgeSlider(minAge: number, maxAge: number): void {\r\n\r\n this.minMaxAge = [minAge, maxAge];\r\n\r\n this.ageSlider = ($(\"#age-slider\")).slider({\r\n id: \"age-slider\",\r\n min: minAge, max: maxAge,\r\n range: true,\r\n value: [minAge, maxAge],\r\n tooltip: 'hide'\r\n });\r\n $(\"#age-slider\").on(\"slide\", (value: any) => {\r\n $('#age-values').text(value.value[0] + ' to ' + value.value[1]);\r\n });\r\n $(\"#age-slider\").on(\"slideStop\", (value: any) => {\r\n this.ageRange[0] = value.value[0];\r\n this.ageRange[1] = value.value[1];\r\n this.updateDisplay();\r\n });\r\n $('#age-values').text(minAge + ' to ' + maxAge);\r\n this.ageRange = [minAge, maxAge];\r\n }\r\n\r\n initializeParticipantsByVisitChart(): void {\r\n this.patientsByVisitChart = Highcharts.chart('participants-byvisit-chart', {\r\n chart: {\r\n type: 'column',\r\n styledMode: true,\r\n colorCount: 26,\r\n },\r\n credits: { enabled: false },\r\n title: { text: null },\r\n legend: { enabled: false },\r\n xAxis: {\r\n categories: [\r\n 'Baseline', //Baseline\r\n 'Day 1', //1\r\n 'Day 3', //2\r\n 'Day 7/8', //3\r\n 'Day 14/15', //4\r\n 'Day 29/31', //5\r\n 'Unscheduled' //6\r\n //'Treatment
End',\r\n ],\r\n crosshair: true,\r\n labels: {\r\n autoRotation: undefined\r\n },\r\n reversed: false\r\n },\r\n yAxis: {\r\n min: 0,\r\n title: {\r\n text: 'Unique Participants'\r\n },\r\n labels: {\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.value, 0, '.', ',');\r\n }\r\n }\r\n },\r\n tooltip: {\r\n enabled: true,\r\n borderColor: \"black\",\r\n },\r\n plotOptions: {\r\n column: {\r\n pointPadding: 0.2,\r\n borderWidth: 0,\r\n },\r\n series: {\r\n colorByPoint: true,\r\n dataLabels: {\r\n enabled: true,\r\n crop: false,\r\n overflow: 'none',\r\n format: undefined,\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.y, 0, '.', ',');\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n data: new Array(6).fill(0)\r\n }]\r\n });\r\n }\r\n\r\n initializeParticipantsBySampleTypeChart(): void {\r\n\r\n this.patientsBySampleType = Highcharts.chart('participants-bysampletype-chart', {\r\n chart: {\r\n type: 'bar',\r\n },\r\n credits: { enabled: false },\r\n title: { text: null },\r\n xAxis: {\r\n type: 'category',\r\n categories: BiorepositoryLookup.SAMPLE_TYPES,\r\n title: { text: 'Biospecimen Types' },\r\n min: 0,\r\n max: BiorepositoryLookup.SAMPLE_TYPES.length - 1,\r\n tickInterval: 1,\r\n tickLength: 0,\r\n },\r\n yAxis: {\r\n min: 0,\r\n endOnTick: false, // helps with cropping data labels\r\n maxPadding: 0.2, // larger value has more space for data labels (default is 0.05)\r\n reversedStacks: false,\r\n title: { text: 'Participant Count' },\r\n labels: {\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.value, 0, '.', ',');\r\n }\r\n },\r\n stackLabels: {\r\n enabled: true,\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.total, 0, '.', ',');\r\n },\r\n inside: false, //label issues\r\n //crop: false,\r\n //overflow: 'none'\r\n }\r\n },\r\n legend: {\r\n enabled: true,\r\n reversed: false,\r\n title: {\r\n text: '
Number of Biospecimen Timepoints',\r\n },\r\n align: 'center',\r\n verticalAlign: 'top',\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal'\r\n },\r\n bar: {\r\n pointPadding: 0.2,\r\n borderWidth: 0,\r\n dataLabels: { enabled: false },\r\n }\r\n },\r\n series: [\r\n {\r\n name: '7',\r\n data: [4, 9, 2, 2, 1, 8, 9],\r\n legendColor: this.colorArray[5],\r\n color: this.colorArray[5]\r\n },\r\n {\r\n name: '6',\r\n data: [4, 9, 2, 2, 1, 8, 9],\r\n legendColor: this.colorArray[4],\r\n color: this.colorArray[4]\r\n },\r\n {\r\n name: '5',\r\n data: [4, 9, 2, 2, 1, 8, 9],\r\n legendColor: this.colorArray[3],\r\n color: this.colorArray[3]\r\n },\r\n {\r\n name: '4',\r\n data: [4, 9, 2, 2, 1, 8, 9],\r\n legendColor: this.colorArray[2],\r\n color: this.colorArray[2]\r\n },\r\n {\r\n name: '3',\r\n data: [1, 6, 2, 11, 6, 2, 1],\r\n legendColor: this.colorArray[1],\r\n color: this.colorArray[1]\r\n },\r\n {\r\n name: '2',\r\n data: [18, 2, 7, 1, 4, 2, 6],\r\n legendColor: this.colorArray[0],\r\n color: this.colorArray[0]\r\n },\r\n {\r\n name: '1',\r\n data: [8, 5, 3, 9, 2, 5, 8,],\r\n legendColor: this.colorBaseline,\r\n color: this.colorBaseline\r\n }]\r\n });\r\n }\r\n\r\n initializeSampleTypeByVisitChart(chartId: string, label: string): any {\r\n\r\n let chart: any = Highcharts.chart(chartId, {\r\n chart: {\r\n type: 'bar',\r\n styledMode: true,\r\n },\r\n credits: { enabled: false },\r\n title: { text: null },\r\n xAxis: {\r\n type: 'category',\r\n categories: BiorepositoryLookup.SAMPLE_TYPES,\r\n title: { text: 'Biospecimen Types' },\r\n min: 0,\r\n max: BiorepositoryLookup.SAMPLE_TYPES.length - 1,\r\n tickInterval: 1,\r\n tickLength: 0,\r\n },\r\n yAxis: {\r\n min: 0,\r\n endOnTick: false, // helps with cropping data labels\r\n maxPadding: 0.2, // larger value has more space for data labels (default is 0.05)\r\n reversedStacks: false,\r\n title: { text: label + ' Count' },\r\n labels: {\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.value, 0, '.', ',');\r\n }\r\n },\r\n stackLabels: {\r\n enabled: true,\r\n formatter: function () {\r\n return Highcharts.numberFormat(this.total, 0, '.', ',');\r\n },\r\n inside: false, //label issues\r\n //crop: false,\r\n //overflow: 'none'\r\n }\r\n },\r\n legend: {\r\n enabled: false,\r\n reversed: false,\r\n title: {\r\n text: '
Visits',\r\n },\r\n align: 'center',\r\n verticalAlign: 'bottom',\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal'\r\n },\r\n bar: {\r\n pointPadding: 0.2,\r\n borderWidth: 0,\r\n dataLabels: { enabled: false },\r\n },\r\n },\r\n series: [\r\n {\r\n name: 'Baseline',\r\n data: [8, 5, 3, 9, 2, 5, 8,],\r\n legendColor: this.colorBaseline\r\n //legendColor: '#1E7394'\r\n },\r\n {\r\n name: 'Day 1',\r\n data: [18, 2, 7, 1, 4, 2, 6],\r\n legendColor: this.colorArray[0]\r\n //legendColor: '#152850'\r\n },\r\n {\r\n name: 'Day 3',\r\n data: [1, 6, 2, 11, 6, 2, 1],\r\n legendColor: this.colorArray[1]\r\n //legendColor: '#F4B942'\r\n },\r\n {\r\n name: 'Day 7/8',\r\n data: [4, 9, 2, 2, 1, 8, 9],\r\n legendColor: this.colorArray[2]\r\n //legendColor: '#AEDCC0'\r\n },\r\n {\r\n name: 'Day 14/15',\r\n data: [16, 9, 1, 6, 6, 2, 1],\r\n legendColor: this.colorArray[3]\r\n //legendColor: '#A6979C'\r\n },\r\n {\r\n name: 'Day 29/31',\r\n data: [16, 9, 1, 6, 6, 2, 1],\r\n legendColor: this.colorArray[4]\r\n //legendColor: '#A6979C'\r\n }, \r\n {\r\n name: 'Unscheduled',\r\n data: [11, 18, 9, 8, 4, 9, 2],\r\n legendColor: this.colorArray[5]\r\n //legendColor: '#DE4947'\r\n }\r\n ]\r\n });\r\n return chart;\r\n }\r\n\r\n clickedSampleTypeByVisitChartLegend(index: number): void {\r\n\r\n if (this.samplesByVisitChart.series[index].visible) {\r\n this.samplesByVisitChart.series[index].hide();\r\n this.aliquotsByVisitChart.series[index].hide();\r\n $('.item' + index).addClass('inactive');\r\n }\r\n else {\r\n this.samplesByVisitChart.series[index].show();\r\n this.aliquotsByVisitChart.series[index].show();\r\n $('.item' + index).removeClass('inactive');\r\n }\r\n }\r\n\r\n resetFilters(): void {\r\n //$('#includeMissingAgeCheckbox').is(\":checked\")\r\n\r\n ['#study-dropdown', '#study-type-dropdown', '#specimen-status-dropdown', '#sex-dropdown', '#race-dropdown', '#ethnicity-dropdown', '#age-dropdown'].forEach((dropdownId: string) => {\r\n $(dropdownId).selectpicker('selectAll');\r\n $(dropdownId).selectpicker('refresh');\r\n });\r\n\r\n /*this.ageSlider.slider(\"option\", \"values\", this.minMaxAge);\r\n this.ageSlider.slider(\"refresh\");\r\n\r\n $('#age-values').text(this.minMaxAge[0] + ' to ' + this.minMaxAge[1]);\r\n this.ageRange[0] = this.minMaxAge[0];\r\n this.ageRange[1] = this.minMaxAge[1];\r\n\r\n $('#includeMissingAgeCheckbox').prop(\"checked\", true);*/\r\n\r\n this.updateDisplay();\r\n }\r\n}\r\n","import { SampleRow } from './sample-request.entities';\r\nimport { RequestValidation } from \"./sample-request.validation\";\r\nimport { SampleRequestStudy } from './sample-request.entities';\r\n\r\nexport class RequestSamples {\r\n requestValidation: RequestValidation;\r\n sampleRows: SampleRow[];\r\n ACTIV1: SampleRequestStudy;\r\n ACTIV4a: SampleRequestStudy;\r\n ACTIV4c: SampleRequestStudy;\r\n ACTIV4HostTissue: SampleRequestStudy;\r\n\r\n constructor() {\r\n this.requestValidation = new RequestValidation();\r\n this.sampleRows = [];\r\n this.ACTIV1 = {\r\n Name: \"ACTIV1 Immune Modulators\",\r\n SampleType: [\"EDTA Plasma\", \"PAXgene\", \"Serum\"],\r\n Timepoint: [\"Baseline\", \"Day 3\", \"Day 8\", \"Day 15\", \"Day 29\", \"Unscheduled Visits\"],\r\n TreatmentArm: [\"Abatacept and Remdesivir\", \"Cenicriviroc and Remdesivir\", \"Infliximab and Remdesivir\", \"Placebo and Remdesivir\"]\r\n }\r\n\r\n this.ACTIV4a = {\r\n Name: \"ACTIV4a Inpatient\",\r\n SampleType: [\"Citrated Plasma\", \"EDTA Plasma\", \"P100\", \"Packed Cells\", \"PAXgene\",\"Serum\"],\r\n Timepoint: [\"Baseline\", \"Day 3\", \"Day 7\", \"Day 14\"],\r\n TreatmentArm: [\"Crizanlizumab + SGLT2i Inhibitor + SOC\", \"Crizanlizumab + SOC\", \"Prophylactic Heparin\", \"Prophylactic Heparin + No P2Y12 Inhibitor (Arm B)\", \"Prophylactic Heparin + P2Y12 Inhibitor (Arm C)\", \"P2Y12 Inhibitor + SGLT2i Inhibitor + SOC\", \"P2Y12 Inhibitor + SOC\", \"SGLT2i Inhibitor + SOC\", \"SOC\", \"Therapeutic Heparin\", \"Therapeutic Heparin + No P2Y12 Inhibitor (Arm A)\", \"Therapeutic Heparin + P2Y12 Inhibitor (Arm D)\", \"Withdrawal Prior to Treatment\"]\r\n }\r\n\r\n this.ACTIV4c = {\r\n Name: \"ACTIV4c Convalescent\",\r\n SampleType: [\"Citrated Plasma\", \"Dried Blood Spot\", \"EDTA Plasma\", \"P100\", \"Packed Cells\", \"PAXgene\", \"Serum\"],\r\n Timepoint: [\"Baseline\", \"Day 31\"],\r\n TreatmentArm: [\"Apixaban\", \"Placebo\", \"Withdrawal Prior to Treatment\"]\r\n }\r\n\r\n this.ACTIV4HostTissue = {\r\n Name: \"ACTIV4d Host Tissue\",\r\n SampleType: [\"Citrated Plasma\", \"EDTA Plasma\", \"Serum\"],\r\n Timepoint: [\"Baseline\", \"Day 1\", \"Day 3\", \"Day 14\"],\r\n TreatmentArm: [\"TRV027\", \"TXA127\", \"Placebo\", \"Withdrawal Prior to Treatment\"]\r\n }\r\n }\r\n\r\n populateSampleTable(formSampleData: any, savedQueries: any) {\r\n // Biospecimen Rows \"SampleQuery[]\" || length = 0\r\n if (formSampleData.length > 0 && formSampleData != null) {\r\n let sampleRowArr: SampleRow[] = [];\r\n\r\n formSampleData.forEach(sample => {\r\n // convert query ids to query names\r\n let queries = sample.queries.split(\", \").join().split(\",\");\r\n let queryNames = [];\r\n queries.forEach(queryIdString => {\r\n let queryId = parseInt(queryIdString);\r\n if (queryId != NaN) {\r\n let foundQuery = savedQueries.find(query => query.id == queryId);\r\n if (foundQuery != null) {\r\n queryNames.push(foundQuery.queryName);\r\n }\r\n }\r\n });\r\n\r\n\r\n let otherSpecsText = \"\";\r\n if (sample.otherSpecifications != null) {\r\n otherSpecsText = sample.otherSpecifications;\r\n }\r\n\r\n // define new sample row\r\n let newSampleRow: SampleRow = {\r\n Id: sample.id,\r\n Nickname: sample.sampleQueryName,\r\n Study: sample.study,\r\n SampleType: sample.sampleType,\r\n TreatmentArm: sample.treatmentArm,\r\n Quantity: sample.quantity,\r\n Unit: sample.unit,\r\n Volume: sample.volume,\r\n Timepoint: sample.timepoint.split(\", \").join(\",\"),\r\n Queries: queryNames.join(\",\"),\r\n OtherSpecifications: otherSpecsText\r\n };\r\n\r\n // add sample to array (chance that a sample row has no valid queries[deleted])\r\n //console.log(queryNames);\r\n if (queryNames.length > 0) {\r\n sampleRowArr.push(newSampleRow);\r\n }\r\n });\r\n\r\n // show data on page\r\n this.populateSamples(sampleRowArr);\r\n }\r\n }\r\n\r\n populateSamples(sampleRows: SampleRow[]) {\r\n if (sampleRows.length > 0) {\r\n $(\"#no-samples-text\").hide();\r\n\r\n sampleRows.forEach(sample => {\r\n this.sampleRows.push(sample);\r\n });\r\n\r\n this.createTable(this.sampleRows);\r\n }\r\n }\r\n\r\n saveSample() {\r\n // verify that all required fields are filled out correctly\r\n let timepointString = this.sampleTimepointConversion(); // validation checking for timepoint checkboxes\r\n let queryString = this.queryStringConversion(); // validation checking for quereies\r\n let isValid = this.requestValidation.validateForm()\r\n\r\n // if all required fields are validated\r\n if (isValid) {\r\n // create a new sample row object\r\n let newSampleRow: SampleRow = {\r\n Nickname: $(\"#sample-nickname\").val().toString(),\r\n Study: $(\"#sample-study\").val().toString(),\r\n SampleType: $(\"#sample-type\").val().toString(),\r\n TreatmentArm: $(\"#sample-treatment-arm\").val().toString(),\r\n Quantity: $(\"#sample-quantity\").val().toString(),\r\n Unit: $(\"#sample-units\").val().toString(),\r\n Volume: $(\"#sample-volume\").val().toString(),\r\n Timepoint: timepointString,\r\n Queries: queryString,\r\n OtherSpecifications: $(\"#sample-other-specifications\").val().toString()\r\n }\r\n\r\n // add it to the SampleRows array\r\n this.sampleRows.push(newSampleRow);\r\n\r\n // add item to table\r\n this.createTable(this.sampleRows);\r\n\r\n // clear field inputs\r\n let fields = $(\"input, textarea\").filter(\":visible\");\r\n fields.map(function () {\r\n $(this).val(\"\");\r\n })\r\n this.emptyDropdowns($(\"#sample-type\"), $(\"#sample-treatment-arm\"), $(\"#sample-timepoint-group\"));\r\n\r\n // reset query list\r\n $(\"#sample-queries\").children().show();\r\n\r\n // remove no-sample text if necessary\r\n $(\"#no-samples-text\").hide(\"slow\");\r\n\r\n // hide modal\r\n $(\"#new-sample-form\").modal(\"hide\");\r\n } \r\n }\r\n\r\n sampleTimepointConversion(): string {\r\n // find any checked timepoints\r\n let checkedTimepoints = $(\".timepoint-check:checked\").filter(\":visible\");\r\n\r\n // convert to string values\r\n let timepoints = [];\r\n checkedTimepoints.map(function () {\r\n // grab the text value for the label following the checkboxes\r\n timepoints.push($(this).next().text())\r\n })\r\n\r\n let timepointString = timepoints.join(\",\");\r\n\r\n if (timepointString == \"\") {\r\n // make sure there are not multiple error msgs\r\n $(\"#sample-timepoint-group:visible\")?.find(\".error-msg\").remove();\r\n $(\"#sample-timepoint-group:visible\")?.append(`\r\n

Please select at least one timepoint for this request.

\r\n `)\r\n\r\n $(\"#update-timepoint-group:visible\")?.find(\".error-msg\").remove();\r\n $(\"#update-timepoint-group:visible\")?.append(`\r\n

Please select at least one timepoint for this request.

\r\n `)\r\n }\r\n else {\r\n $(\"#sample-timepoint-group:visible\")?.find(\".error-msg\").remove();\r\n $(\"#update-timepoint-group:visible\")?.find(\".error-msg\").remove();\r\n }\r\n\r\n return timepointString;\r\n\r\n }\r\n\r\n queryStringConversion(): string {\r\n // get all listed queries in the box\r\n let queryElements = $(\".added-item:visible\");\r\n let queryElementsArr = [];\r\n queryElements.map(function () {\r\n queryElementsArr.push($(this).children().text());\r\n })\r\n let queryString = queryElementsArr.join(\",\");\r\n\r\n // if no query is selected\r\n if (queryElementsArr.length == 0) {\r\n $(\".multi-check:visible\")?.find(\".error-msg\").remove();\r\n $(\".multi-check:visible\")?.append(`\r\n

Please select at least query for this request.

\r\n `)\r\n $(\".multi-check:visible\")?.find(\"#sample-queries\").addClass(\"is-invalid\");\r\n $(\".multi-check:visible\")?.find(\"#update-queries\").addClass(\"is-invalid\");\r\n }\r\n else {\r\n $(\".multi-check:visible\")?.find(\".error-msg\").remove();\r\n $(\".multi-check:visible\")?.find(\"#sample-queries\").addClass(\"is-valid\");\r\n $(\".multi-check:visible\")?.find(\"#update-queries\").addClass(\"is-valid\");\r\n $(\".multi-check:visible\")?.find(\"#sample-queries\").removeClass(\"is-invalid\");\r\n $(\".multi-check:visible\")?.find(\"#update-queries\").removeClass(\"is-invalid\");\r\n return queryString;\r\n }\r\n }\r\n\r\n // converts the SampleRow Array into an HTML table\r\n createTable(rows) {\r\n // empty current table\r\n $(\"#samples-request\").find(\"tbody\").empty();\r\n\r\n // create new table with data in the array\r\n rows.forEach((rowObj, i) => {\r\n $(\"#samples-request\").find(\"tbody\").append(`\r\n \r\n ${i + 1}\r\n ${rowObj.Nickname}\r\n Review\r\n Delete\r\n \r\n `)\r\n })\r\n\r\n // locally scope class object to use inside of callback\r\n var self = this;\r\n // add functionality to remove line items from table\r\n $(\".rm-line\").click(function() {\r\n self.removeLine($(this));\r\n })\r\n\r\n $(\".review-line\").click(function () {\r\n self.reviewLine($(this));\r\n })\r\n\r\n }\r\n\r\n emptyDropdowns(typeDropdown, treatmentDropdown, timepointDropdown) {\r\n // remove existing dropdown values\r\n typeDropdown.empty();\r\n typeDropdown.append(``);\r\n treatmentDropdown.empty();\r\n treatmentDropdown.append(``);\r\n timepointDropdown.empty();\r\n\r\n // empty query list\r\n let newAddSection = $(\".added-queries\");\r\n newAddSection.empty();\r\n newAddSection.append(`\r\n

No Selected Queries

\r\n `)\r\n\r\n // empty timepoint list\r\n $(\"#sample-timepoint-group\").empty();\r\n\r\n // clear other fields\r\n let otherFields = $(\"#new-sample-form\").find(\"input\");\r\n otherFields.map(function () {\r\n $(this).val(\"\");\r\n })\r\n\r\n // reshow dropdown list of queries\r\n $(\".query-select\").children().show();\r\n }\r\n\r\n // delete rows from the samples table\r\n removeLine(el) {\r\n // get the index of the item\r\n let index = parseInt(el.parent().prev().prev().prev().text()) - 1;\r\n\r\n // remove this index from the SampleRowArray\r\n this.sampleRows.splice(index, 1);\r\n\r\n // re-create table after removing data\r\n this.createTable(this.sampleRows);\r\n\r\n // add text stating to add items if SampleRowArray is empty\r\n if (this.sampleRows.length == 0) {\r\n $(\"#no-samples-text\").show(\"slow\");\r\n }\r\n }\r\n\r\n // updates information in the \"review\" modal for updating existing entered samples\r\n reviewLine(el) {\r\n // remove errors\r\n $(\"#update-sample-form\").find(\".error-msg\").hide();\r\n\r\n // remove .is-invalid and is.valid\r\n $(\"#update-sample-form\").find(\"input, select, textarea\").removeClass(\"is-valid\").removeClass(\"is-invalid\");\r\n\r\n // get the index of the item\r\n let index = parseInt(el.parent().prev().prev().text()) - 1;\r\n\r\n // get the Sample Row associated with this line\r\n let updateinfo = this.sampleRows[index];\r\n\r\n // update dropdowns with correct fields\r\n let selectedStudy = updateinfo.Study;\r\n let updateTypeDropdown = $(\"#update-type\");\r\n let updateTreatmentDropdown = $(\"#update-treatment-arm\");\r\n let updateTimepointDropdown = $(\"#update-timepoint-group\");\r\n\r\n this.createDropdowns(selectedStudy, updateTypeDropdown, updateTreatmentDropdown, updateTimepointDropdown);\r\n\r\n // fill the modal fields with the information from the line\r\n $(\"#update-row-index\").text(index + 1)\r\n $(\"#update-nickname\").val(updateinfo.Nickname);\r\n $(\"#update-study\").val(updateinfo.Study);\r\n $(\"#update-type\").val(updateinfo.SampleType);\r\n $(\"#update-treatment-arm\").val(updateinfo.TreatmentArm);\r\n $(\"#update-quantity\").val(updateinfo.Quantity);\r\n $(\"#update-volume\").val(updateinfo.Volume);\r\n $(\"#update-units\").val(updateinfo.Unit);\r\n $(\"#update-other-specifications\").val(updateinfo.OtherSpecifications);\r\n\r\n // fill in timepoint checkboxes\r\n let timepointArr: string[] = updateinfo.Timepoint.split(\",\");\r\n timepointArr.forEach(el => {\r\n $(`.timepoint-check[value=\"${el}\"]`).prop(\"checked\", true)\r\n })\r\n\r\n // fill in query box\r\n $(\"#update-query-list\").empty();\r\n $(\"#update-query-list\").append(`\r\n

No Selected Queries

\r\n `);\r\n let queryArr: string[] = updateinfo.Queries.split(\",\");\r\n queryArr.forEach(el => {\r\n // make sure there is data in this field\r\n if (el != \"\") {\r\n $(\"#update-query-list\").append(`\r\n
${el}
\r\n `)\r\n $(\"#update-queries\").find(`option[value=\"${el}\"]`).hide();\r\n\r\n // add the event listener to the added queries\r\n $(\"#update-query-list\").last().find(\".rm-item\").click(function () {\r\n // add the removed item back to the dropdown menu\r\n $(`.query-select:visible option[value=\"${$(this).parent().text()}\"]`).show();\r\n\r\n // remove item\r\n let newAddSection = $(this).parent().parent().parent();\r\n $(this).parent().parent().remove();\r\n\r\n\r\n // show placeholder text if necessary\r\n if (newAddSection.children(\".added-item\").length == 0) {\r\n newAddSection.children(\".added-query-placeholder\").show();\r\n }\r\n });\r\n\r\n // remove the added-query-placeholder\r\n $(\".added-query-placeholder\").addClass(\"inactive-section\");\r\n } \r\n })\r\n\r\n\r\n // show modal\r\n $(\"#update-sample-form\").modal(\"show\");\r\n }\r\n\r\n createDropdowns(selectedStudy, typeDropdown, treatmentDropdown, timepointDropdown) {\r\n // remove any existing values in the dropdown menus\r\n this.emptyDropdowns(typeDropdown, treatmentDropdown, timepointDropdown);\r\n\r\n // ACTIV4a\r\n if (selectedStudy == \"ACTIV4a\") {\r\n this.ACTIV4a.SampleType.forEach(el => {\r\n typeDropdown.append(``)\r\n })\r\n typeDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4a.TreatmentArm.forEach(el => {\r\n treatmentDropdown.append(``)\r\n })\r\n treatmentDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4a.Timepoint.forEach(el => {\r\n timepointDropdown.append(`\r\n
\r\n \r\n \r\n
\r\n `)\r\n })\r\n }\r\n\r\n // ACTIV4c\r\n else if (selectedStudy == \"ACTIV4c\") {\r\n this.ACTIV4c.SampleType.forEach(el => {\r\n typeDropdown.append(``)\r\n })\r\n typeDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4c.TreatmentArm.forEach(el => {\r\n treatmentDropdown.append(``)\r\n })\r\n treatmentDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4c.Timepoint.forEach(el => {\r\n timepointDropdown.append(`\r\n
\r\n \r\n \r\n
\r\n `)\r\n })\r\n }\r\n\r\n // ACTIV4 Host Tissue\r\n else if (selectedStudy == \"ACTIV4 Host Tissue\") {\r\n this.ACTIV4HostTissue.SampleType.forEach(el => {\r\n typeDropdown.append(``)\r\n })\r\n typeDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4HostTissue.TreatmentArm.forEach(el => {\r\n treatmentDropdown.append(``)\r\n })\r\n treatmentDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV4HostTissue.Timepoint.forEach(el => {\r\n timepointDropdown.append(`\r\n
\r\n \r\n \r\n
\r\n `)\r\n })\r\n }\r\n\r\n // ACTIV1\r\n else if (selectedStudy == \"ACTIV1\") {\r\n this.ACTIV1.SampleType.forEach(el => {\r\n typeDropdown.append(``)\r\n })\r\n typeDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV1.TreatmentArm.forEach(el => {\r\n treatmentDropdown.append(``)\r\n })\r\n treatmentDropdown.prop(\"disabled\", false);\r\n\r\n this.ACTIV1.Timepoint.forEach(el => {\r\n timepointDropdown.append(`\r\n
\r\n \r\n \r\n
\r\n `)\r\n })\r\n }\r\n\r\n // if none of the sample types are selected, disable the fields\r\n else {\r\n this.disableDropdowns(typeDropdown, treatmentDropdown, timepointDropdown);\r\n }\r\n\r\n // set up checkbox interaction on timepoint checkboxes (accessibility)\r\n $(\".timepoint-check\").on(\"keypress\", function (e) {\r\n if ($(this).is(\":focus\") && e.which == 13) {\r\n if ($(this).is(\":checked\")) {\r\n $(this).prop(\"checked\", false);\r\n }\r\n else {\r\n $(this).prop(\"checked\", true);\r\n }\r\n }\r\n })\r\n }\r\n\r\n disableDropdowns(typeDropdown, treatmentDropdown, timepointDropdown) {\r\n typeDropdown.prop(\"disabled\", true);\r\n treatmentDropdown.prop(\"disabled\", true);\r\n }\r\n\r\n changeStudyNew(selectedElement:any) {\r\n // grab elements\r\n let selectedStudy = selectedElement.val().toString();\r\n let typeDropdown = $(\"#sample-type\");\r\n let treatmentDropdown = $(\"#sample-treatment-arm\");\r\n let timepointDropdown = $(\"#sample-timepoint-group\");\r\n let nickname = $(\"#sample-nickname\").val();\r\n\r\n this.createDropdowns(selectedStudy, typeDropdown, treatmentDropdown, timepointDropdown);\r\n $(\"#sample-nickname\").val(nickname);\r\n }\r\n\r\n changeStudyUpdate(selectedElement:any) {\r\n let selectedStudy = selectedElement.val().toString();\r\n let typeDropdown = $(\"#update-type\");\r\n let treatmentDropdown = $(\"#update-treatment-arm\");\r\n let timepointDropdown = $(\"#update-timepoint-group\");\r\n\r\n this.createDropdowns(selectedStudy, typeDropdown, treatmentDropdown, timepointDropdown);\r\n }\r\n\r\n openNewForm() {\r\n // reset the fields\r\n $(\"#sample-study\").val(\"\");\r\n this.emptyDropdowns($(\"#sample-type\"), $(\"#sample-treatment-arm\"), $(\"#sample-timepoint\"));\r\n this.disableDropdowns($(\"#sample-type\"), $(\"#sample-treatment-arm\"), $(\"#sample-timepoint\"));\r\n\r\n // remove error if present\r\n $(\"#samples-request\").find(\".error-msg\").hide();\r\n\r\n // remove errors\r\n $(\"#new-sample-form\").find(\".error-msg\").hide();\r\n\r\n // remove .is-invalid and is.valid\r\n $(\"#new-sample-form\").find(\"input, select, textarea\").removeClass(\"is-valid\").removeClass(\"is-invalid\");\r\n }\r\n\r\n updateSample() {\r\n // verify that all required fields are filled out correctly\r\n let timepointString = this.sampleTimepointConversion();\r\n let queryString = this.queryStringConversion();\r\n let isValid = this.requestValidation.validateForm();\r\n\r\n // if all required fields are validated\r\n if (isValid) {\r\n let updatedSampleRow: SampleRow;\r\n // see if updated sample has an existing id\r\n let index = parseInt($(\"#update-row-index\").text()) - 1;\r\n let sampleId = this.sampleRows[index].Id;\r\n if (sampleId != undefined && sampleId != null) {\r\n // create a new sample row object with Id\r\n updatedSampleRow = {\r\n Id: sampleId,\r\n Nickname: $(\"#update-nickname\").val().toString(),\r\n Study: $(\"#update-study\").val().toString(),\r\n SampleType: $(\"#update-type\").val().toString(),\r\n TreatmentArm: $(\"#update-treatment-arm\").val().toString(),\r\n Quantity: $(\"#update-quantity\").val().toString(),\r\n Volume: $(\"#update-volume\").val().toString(),\r\n Unit: $(\"#update-units\").val().toString(),\r\n Timepoint: timepointString,\r\n Queries: queryString,\r\n OtherSpecifications: $(\"#update-other-specifications\").val().toString()\r\n }\r\n }\r\n else {\r\n // create a new sample row object without Id\r\n updatedSampleRow = {\r\n Nickname: $(\"#update-nickname\").val().toString(),\r\n Study: $(\"#update-study\").val().toString(),\r\n SampleType: $(\"#update-type\").val().toString(),\r\n TreatmentArm: $(\"#update-treatment-arm\").val().toString(),\r\n Quantity: $(\"#update-quantity\").val().toString(),\r\n Volume: $(\"#update-volume\").val().toString(),\r\n Unit: $(\"#update-units\").val().toString(),\r\n Timepoint: timepointString,\r\n Queries: queryString,\r\n OtherSpecifications: $(\"#update-other-specifications\").val().toString()\r\n }\r\n }\r\n\r\n\r\n // replace the row with the updated row in SampleRows array\r\n this.sampleRows.splice(index, 1, updatedSampleRow);\r\n\r\n // update Table\r\n this.createTable(this.sampleRows);\r\n\r\n // clear field inputs\r\n let fields = $(\"input, textarea\").filter(\":visible\");\r\n fields.map(function () {\r\n $(this).val(\"\");\r\n })\r\n this.emptyDropdowns($(\"#update-type\"), $(\"#update-treatment-arm\"), $(\"#update-timepoint-group\"));\r\n\r\n // reset query list\r\n $(\"#update-queries\").children().show();\r\n\r\n // hide modal\r\n $(\"#update-sample-form\").modal(\"hide\");\r\n }\r\n }\r\n\r\n getSampleRows(): SampleRow[] {\r\n return this.sampleRows;\r\n }\r\n\r\n\r\n}","// extracted by mini-css-extract-plugin","import { RequestReview } from './sample-request.review';\r\nimport { RequestSamples } from './sample-request.samples';\r\n\r\nexport class RequestNavigation {\r\n currentTabNumber: number;\r\n maxTabNumber: number;\r\n requestReview: RequestReview;\r\n\r\n constructor() {\r\n this.currentTabNumber = 0;\r\n this.maxTabNumber = 6;\r\n this.requestReview = new RequestReview();\r\n\r\n }\r\n\r\n // function to move form to the next section. Pass in the current section as a jquery object $(this)\r\n nextSection(currentSectionObj:any, requestSamples: RequestSamples) {\r\n // get current section and next section\r\n let currentSection = currentSectionObj.parent().parent();\r\n let newSection = currentSection.next();\r\n\r\n // compile information into form object \r\n if (currentSectionObj.hasClass(\"review\")) {\r\n this.requestReview.runReview(requestSamples);\r\n }\r\n\r\n // hide the current section and show the new section\r\n currentSection.toggleClass(\"inactive-section\");\r\n currentSection.toggleClass(\"active-section\");\r\n newSection.toggleClass(\"inactive-section\");\r\n newSection.toggleClass(\"active-section\");\r\n\r\n // get the current tab and the new tab\r\n let currentTab = $(\".active-tab\");\r\n let newTab = currentTab.parent().next().children(\"a\");\r\n let newTabParent = newTab.parent();\r\n\r\n // add active status to new tab, remove from current\r\n currentTab.toggleClass(\"active-tab\");\r\n newTab.removeClass(\"disable-tab\"); // if already removed, this will do nothing\r\n newTab.addClass(\"active-tab\");\r\n newTabParent.nextAll().find(\"a\").addClass(\"disable-tab\");\r\n\r\n // get the progressBar\r\n let progressBar = $(\".progress-bar\");\r\n\r\n // add/remove progressBar width classes\r\n if (this.currentTabNumber < this.maxTabNumber) {\r\n let currentWidth = \"pb-\" + this.currentTabNumber;\r\n let nextTabNum = this.currentTabNumber + 1;\r\n let newWidth = \"pb-\" + nextTabNum;\r\n progressBar.removeClass(currentWidth);\r\n progressBar.addClass(newWidth);\r\n }\r\n\r\n // update current tab number\r\n this.currentTabNumber += 1;\r\n\r\n // scroll to top of the page\r\n this.scrollToTop();\r\n }\r\n\r\n previousSection(currentSectionObj:any) {\r\n // get the current section and the prev section\r\n let currentSection = currentSectionObj.parent().parent();\r\n let newSection = currentSection.prev();\r\n\r\n // hide the current section and show the new section\r\n currentSection.toggleClass(\"inactive-section\");\r\n currentSection.toggleClass(\"active-section\");\r\n newSection.toggleClass(\"inactive-section\");\r\n newSection.toggleClass(\"active-section\");\r\n\r\n\r\n // get the current tab and the new tab\r\n let currentTab = $(\".active-tab\");\r\n let newTab = currentTab.parent().prev().children(\"a\");\r\n let newTabParent = newTab.parent();\r\n\r\n // add active status to new tab, remove from current\r\n currentTab.toggleClass(\"active-tab\");\r\n newTab.removeClass(\"disable-tab\"); // if already removed, this will do nothing\r\n newTab.addClass(\"active-tab\");\r\n newTabParent.nextAll().find(\"a\").addClass(\"disable-tab\");\r\n\r\n // update current tab number\r\n this.currentTabNumber -= 1;\r\n\r\n // scroll to top of the page\r\n this.scrollToTop();\r\n }\r\n\r\n tabNavigation(selectedTab: any) {\r\n // get array of classes\r\n let tabClasses = selectedTab.attr(\"class\");\r\n let classArr = tabClasses.split(/\\s+/);\r\n\r\n // update progress tabs\r\n let currentTab = $(\".active-tab\");\r\n let newTab = selectedTab;\r\n currentTab.toggleClass(\"active-tab\");\r\n newTab.toggleClass(\"active-tab\");\r\n let newTabParent = newTab.parent();\r\n\r\n // update selected section\r\n classArr.forEach(el => {\r\n // ignore any classes that may be added to the tag\r\n if (el != \"active-tab\" && el != \"disable-tab\") {\r\n let targetID = \"#\" + el;\r\n\r\n // make current section inactive, and make targeted section active\r\n let currentSection = $(\".active-section\");\r\n let newSection = $(targetID);\r\n\r\n currentSection.toggleClass(\"inactive-section\");\r\n currentSection.toggleClass(\"active-section\");\r\n newSection.toggleClass(\"inactive-section\");\r\n newSection.toggleClass(\"active-section\");\r\n\r\n // update the tab number\r\n let currentWidth = \"pb-\" + this.currentTabNumber;\r\n let nextTabNum = selectedTab.parent().index();\r\n let newWidth = \"pb-\" + nextTabNum;\r\n\r\n // get the progressBar\r\n let progressBar = $(\".progress-bar\");\r\n\r\n // add/remove progressBar width classes\r\n if (this.currentTabNumber < this.maxTabNumber) {\r\n progressBar.removeClass(currentWidth);\r\n progressBar.addClass(newWidth);\r\n this.currentTabNumber = nextTabNum;\r\n }\r\n }\r\n })\r\n\r\n newTabParent.nextAll().find(\"a\").addClass(\"disable-tab\");\r\n\r\n // scroll to top of the page\r\n this.scrollToTop();\r\n }\r\n\r\n reviewNavigation(selectedSection: any) {\r\n // get the specified section\r\n let tabClasses = selectedSection.attr(\"class\");\r\n let classArr = tabClasses.split(/\\s+/);\r\n\r\n // show the correct content\r\n classArr.forEach((cls) => {\r\n if (cls != \"review-link\") {\r\n let targetID = \"#\" + cls;\r\n // hide review section\r\n $(\"#review\").toggleClass(\"active-section\");\r\n $(\"#review\").toggleClass(\"inactive-section\");\r\n // show specified section\r\n $(targetID).toggleClass(\"active-section\");\r\n $(targetID).toggleClass(\"inactive-section\");\r\n\r\n // adjust tabs accordingly\r\n // remove current active tab\r\n let currentTab = $(\".progress-tabs\").find(\".active-tab\");\r\n currentTab.toggleClass(\"active-tab\");\r\n\r\n // set new active tab\r\n let targetClass = \".\" + cls;\r\n let targetTab = $(\".progress-tabs\").find(targetClass);\r\n targetTab.toggleClass(\"active-tab\");\r\n targetTab.parent().nextAll().find(\"a\").addClass(\"disable-tab\");\r\n }\r\n })\r\n\r\n this.scrollToTop();\r\n }\r\n\r\n scrollToTop() {\r\n // scroll to top of the page\r\n $('html, body').animate({\r\n //scrollTop: $(\".request-form\").offset().top\r\n scrollTop: $(\"#show-save-section\").offset().top\r\n }, \"slow\");\r\n }\r\n\r\n\r\n}","\r\n\r\nexport class BiorepositoryLookup {\r\n\r\n //static SAMPLE_TYPES: string[] = [\"Angio-EDTA\", \"Citrate\", \"DBS\", \"EDTA\", \"P100\", \"Packed Cells\", \"PaxGene\", \"Serum\"]; //indices based on values from TaskRunner\r\n static SAMPLE_TYPES: string[] = [\"Angio-EDTA\", \"Citrated Plasma\", \"Dried Blood Spot\", \"EDTA Plasma\", \"P100\", \"Packed Cells\", \"PAXgene\", \"Serum\"]; //indices based on values from TaskRunner\r\n\r\n static GetValueFromIdAndType(id: number, type: string): string {\r\n //console.log(id, type);\r\n\r\n if (type == 'study') {\r\n switch (id) {\r\n case (1): return \"ACTIV4a Inpatient (Phase 1)\";\r\n case (2): return \"ACTIV4a Inpatient (Phase 2: Moderate)\";\r\n case (3): return \"ACTIV4a Inpatient (Phase 2: Severe)\";\r\n case (4): return \"ACTIV4a Inpatient (Phase 3: Moderate)\";\r\n case (5): return \"ACTIV4a Inpatient (Phase 3: Severe)\";\r\n case (6): return \"ACTIV4c Convalescent\";\r\n case (7): return \"ACTIV4d Host Tissue\";\r\n case (8): return \"ACTIV1 Immune Modulators (B)\";\r\n case (9): return \"ACTIV1 Immune Modulators (B, C)\";\r\n case (10): return \"ACTIV1 Immune Modulators (C)\";\r\n case (11): return \"ACTIV1 Immune Modulators (A)\";\r\n case (12): return \"ACTIV1 Immune Modulators (A, B)\";\r\n case (13): return \"ACTIV1 Immune Modulators (A, B, C)\";\r\n case (14): return \"ACTIV1 Immune Modulators (A, C)\";\r\n default: return \"Unknown\";\r\n }\r\n }\r\n else if (type == 'sample-type') {\r\n switch (id) {\r\n case (0): return \"Angio-EDTA\";\r\n case (1): return \"Citrated Plasma\";\r\n case (2): return \"Dried Blood Spot\";\r\n case (3): return \"EDTA Plasma\";\r\n case (4): return \"P100\";\r\n case (5): return \"Packed Cells\";\r\n case (6): return \"PAXgene\";\r\n case (7): return \"Serum\";\r\n default: return \"Unknown\";\r\n }\r\n }\r\n else if (type == 'study-type') {\r\n switch (id) {\r\n case (1): return \"Inpatient\";\r\n case (2): return \"Post-discharge\";\r\n default: return \"Unknown\";\r\n }\r\n }\r\n else if (type == 'specimen-status') {\r\n switch (id) {\r\n case (1): return \"Available\";\r\n case (2): return \"Reserved\";\r\n case (3): return \"Allocated\";\r\n case (9): return \"QC/Other\";\r\n default: return \"Unknown\";\r\n }\r\n }\r\n else if (type == 'sex') {\r\n switch (id) {\r\n case (1): return \"Male\";\r\n case (2): return \"Female\";\r\n case (-99): return \"Unknown\";\r\n default: return \"Missing Value\";\r\n }\r\n }\r\n else if (type == 'race') {\r\n switch (id) {\r\n case (1): return \"White\";\r\n case (2): return \"Asian\";\r\n case (3): return \"Black\";\r\n case (4): return \"American Indian or Alaska Native\";\r\n case (5): return \"Native Hawaiian or Pacific Islander\";\r\n case (6): return \"Aboriginal/First Nations\";\r\n case (7): return \"Middle Eastern/North African\";\r\n case (8): return \"Other\";\r\n case (9): return \"Multiple\";\r\n case (10): return \"Unknown\";\r\n default: return \"Missing Value\";\r\n }\r\n }\r\n else if (type == 'ethnicity') {\r\n switch (id) {\r\n case (1): return \"Hispanic or Latino\";\r\n case (2): return \"Not Hispanic or Latino\";\r\n case (-99): return \"Unknown\";\r\n default: return \"Missing Value\";\r\n }\r\n }\r\n else if (type == 'quality') {\r\n switch (id) {\r\n case (0): return \"Normal\";\r\n case (1): return \"Hemolyzed\";\r\n case (2): return \"Clotted\";\r\n case (3): return \"Separated (DNA)\";\r\n case (4): return \"> 48 Hours\";\r\n case (5): return \"Ineligible\";\r\n case (-99): return \"Unknown\";\r\n default: return \"Missing Value\";\r\n }\r\n }\r\n else if (type == 'age') {\r\n switch (id) {\r\n case (0): return \"18 - <30\";\r\n case (1): return \"30 - <40\";\r\n case (2): return \"40 - <50\";\r\n case (3): return \"50 - <65\";\r\n case (4): return \"65 - <75\";\r\n case (5): return \"75 - <85\";\r\n case (6): return \"85+\"\r\n case (-99): return \"Unknown\";\r\n default: return \"Missing Value\";\r\n }\r\n }\r\n return \"Unknown Type\";\r\n }\r\n}","import { UserQuery } from \"../../../shared/entities/user-query/user-query.entities\";\r\nimport { SampleSearchPage } from \"../../secure.module\";\r\nimport { plainToClass } from \"class-transformer\";\r\n\r\n\r\nexport class SearchManagement {\r\n\r\n savedQueries: UserQuery[];\r\n selectedSearchId: number;\r\n currentSearch: string;\r\n currentHumanReadable: string;\r\n\r\n constructor(savedQueries: any, private page: SampleSearchPage, isAdmin: boolean = false, startInAdmin: boolean = false, queryId: string = \"-1\") {\r\n\r\n this.savedQueries = [];\r\n this.savedQueries = plainToClass(UserQuery, savedQueries);\r\n\r\n //console.log(isAdmin);\r\n //console.log(this.savedQueries);\r\n //console.log(`isAdmin: ${isAdmin}`);\r\n //console.log(`startInAdmin: ${startInAdmin}`);\r\n //console.log(`queryId: ${queryId}`);\r\n\r\n if (isAdmin) {\r\n this.initAdminMode(startInAdmin, queryId);\r\n }\r\n\r\n else {\r\n this.selectedSearchId = 0;\r\n $('#delete-button').hide();\r\n this.currentSearch = \"\";\r\n this.initDropdown();\r\n }\r\n\r\n }\r\n\r\n initDropdown(): void {\r\n\r\n var select = $('#searchOptions');\r\n\r\n select.empty();\r\n select.append($(\"\").attr(\"value\", '0').attr(\"selected\", \"selected\").text('--- New Search ---'));\r\n\r\n this.savedQueries.forEach((entry: UserQuery) => {\r\n select.append($(\"\").attr(\"value\", entry.id).text(entry.queryName));\r\n });\r\n\r\n select.on('change', event => {\r\n let selected: string = $(event.currentTarget).val();\r\n this.querySelected(+selected);\r\n });\r\n }\r\n\r\n querySelected(id: number): void {\r\n\r\n this.selectedSearchId = id;\r\n\r\n if (id == 0) {\r\n $('#delete-button').hide();\r\n this.page.updateQueryBuilder(undefined);\r\n }\r\n else {\r\n $('#delete-button').show();\r\n let selectedQuery: UserQuery = this.savedQueries.find((q: UserQuery) => q.id == id);\r\n if (selectedQuery != undefined) {\r\n this.page.updateQueryBuilder(selectedQuery);\r\n }\r\n }\r\n }\r\n\r\n saveSearch(search: string, humanReadable: string): void {\r\n\r\n this.selectedSearchId = +$('#searchOptions').val();\r\n\r\n this.currentSearch = search;\r\n this.currentHumanReadable = humanReadable;\r\n\r\n //a new search - prompt for name\r\n if (this.selectedSearchId == 0) {\r\n $(\"#inputName\").val('');\r\n $(\"#userQueryTitleModal\").modal({ backdrop: false });\r\n }\r\n else {\r\n this.persistSearch();\r\n }\r\n }\r\n\r\n persistSearch(): void {\r\n\r\n let query: UserQuery;\r\n\r\n if (this.selectedSearchId == 0) {\r\n query = new UserQuery();\r\n query.id = 0;\r\n query.queryName = $(\"#inputName\").val() + \"\";\r\n $(\"#userQueryTitleModal\").modal('hide');\r\n }\r\n else {\r\n query = this.savedQueries.find((q: UserQuery) => q.id == this.selectedSearchId);\r\n }\r\n\r\n query.queryJson = this.currentSearch;\r\n query.humanReadable = this.currentHumanReadable;\r\n\r\n //console.log(\"Query to Persist\", query);\r\n \r\n $.ajax({\r\n type: 'POST',\r\n url: '/secure/sample-search/sample-search?handler=SaveSearch',\r\n dataType: \"json\",\r\n contentType: \"application/json\", \r\n data: JSON.stringify(query),\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() + \"\" },\r\n success: (response) => {\r\n\r\n if (query.id == 0) {\r\n query.id = response;\r\n this.savedQueries.push(query);\r\n $('#searchOptions').append($(\"\").attr(\"value\", query.id).attr(\"selected\", \"selected\").text(query.queryName));\r\n this.querySelected(query.id);\r\n }\r\n\r\n //console && console.log(\"save request succeeded\", payload);\r\n //updateUserQueryMap(payload.id, payload.name, payload.query);\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n //console && console.log(\"save request failed\");\r\n }\r\n //processData: false,\r\n //async: true\r\n });\r\n }\r\n\r\n deleteSearch(): void {\r\n\r\n if (this.selectedSearchId != 0) {\r\n let query: UserQuery = new UserQuery();\r\n query.id = this.selectedSearchId;\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/secure/sample-search/sample-search?handler=DeleteSearch',\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify(query),\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() + \"\" },\r\n success: (response) => {\r\n //response is id of deleted \r\n\r\n this.savedQueries = this.savedQueries.filter((q: UserQuery) => q.id != response);\r\n this.initDropdown();\r\n this.querySelected(0);\r\n\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n //console && console.log(\"save request failed\");\r\n }\r\n //processData: false,\r\n //async: true\r\n });\r\n }\r\n }\r\n\r\n\r\n checkSearchName(): void {\r\n let name = $(\"#inputName\").val().toString().trim();\r\n //if name is empty, don't allow save\r\n if (name.length == 0)\r\n $(\"#userQueryModalSaveButton\").prop('disabled', true);\r\n else {\r\n let isUnique = true;\r\n //if a value entered, make sure is unique for this user\r\n this.savedQueries?.forEach((query: UserQuery) => {\r\n if (query.queryName == name) {\r\n isUnique = false;\r\n }\r\n });\r\n $(\"#userQueryModalSaveButton\").prop('disabled', !isUnique);\r\n }\r\n }\r\n\r\n initAdminMode(startInAdmin: boolean, queryId: string): void {\r\n let self = this;\r\n\r\n $(\"#review-mode-btn\").click(function () {\r\n // switches format for admin mode\r\n self.toggleAdminMode();\r\n });\r\n\r\n // when the user enters content in the input field\r\n $(\"#search-input-id\").on(\"input keypress\", function () {\r\n // remove any error msgs\r\n $(\"#search-by-id-error\").addClass(\"inactive-section\");\r\n $(\"#search-input-id\").removeClass(\"is-invalid\");\r\n\r\n // check that field isn't blank\r\n if ($(this).val() != \"\") {\r\n $(\"#search-by-id-btn\").removeClass(\"disabled\");\r\n }\r\n else {\r\n $(\"#search-by-id-btn\").addClass(\"disabled\");\r\n $(\"#search-by-id-query-name-section\").addClass(\"inactive-section\");\r\n }\r\n });\r\n\r\n // if this page is being opened from the request dashboard, start in admin mode\r\n if (startInAdmin && queryId != \"-1\") {\r\n\r\n // show the admin mode\r\n this.toggleAdminMode();\r\n\r\n // toggle slider\r\n $(\"#review-mode-btn\").prop(\"checked\", true);\r\n\r\n // fill the search field with the Id\r\n $(\"#search-input-id\").val(queryId).trigger(\"keypress\");\r\n\r\n // search by id\r\n this.searchById(queryId);\r\n }\r\n }\r\n\r\n toggleAdminMode(): void {\r\n // remove any error msgs related to admin mode\r\n $(\"#search-by-id-error\").addClass(\"inactive-section\");\r\n $(\"#search-input-id\").removeClass(\"is-invalid\");\r\n $(\"#search-by-id-query-name-section\").addClass(\"inactive-section\");\r\n $(\"#search-by-id-query-name\").text(\"\");\r\n\r\n // reset input value\r\n $(\"#search-input-id\").val(\"\").trigger(\"keypress\");\r\n\r\n // specific function based on on/off\r\n if ($(\".toggle-text\").hasClass(\"on\")) {\r\n\r\n // reset query when turning admin mode off\r\n $('#searchOptions').val(\"0\").change();\r\n }\r\n\r\n // toggle text color/bold\r\n $(\".toggle-text\").toggleClass(\"on\");\r\n\r\n // swap out saved queries for search by id\r\n $(\"#my-searches-section\").toggleClass(\"inactive-section\");\r\n $(\"#search-by-id-section\").toggleClass(\"inactive-section\");\r\n }\r\n\r\n searchById(id: string): void {\r\n // convert to number\r\n let queryId : number = parseInt(id)\r\n\r\n // verify that number is valid (not NaN)\r\n if (queryId != NaN) {\r\n // check the query Database\r\n let selectedQuery: UserQuery = this.savedQueries.find((q: UserQuery) => q.id == queryId);\r\n\r\n // verify that id is valid\r\n if (selectedQuery != undefined) {\r\n // update query builder\r\n this.page.updateQueryBuilder(selectedQuery);\r\n $(\"#search-by-id-query-name\").text(selectedQuery.queryName);\r\n $(\"#search-by-id-query-name-section\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n // if the query can't be found, show error msg\r\n $(\"#search-by-id-error\").removeClass(\"inactive-section\");\r\n $(\"#search-by-id-query-name-section\").addClass(\"inactive-section\");\r\n $(\"#search-by-id-query-name\").text(\"\");\r\n $(\"#search-input-id\").addClass(\"is-invalid\");\r\n }\r\n\r\n }\r\n\r\n // if the queryId is Not a Number, show error msg\r\n else {\r\n $(\"#search-by-id-error\").removeClass(\"inactive-section\");\r\n $(\"#search-input-id\").addClass(\"is-invalid\");\r\n }\r\n }\r\n}","// extracted by mini-css-extract-plugin","export class SampleExportPDF {\r\n styling: string;\r\n\r\n constructor() {\r\n this.styling = `\r\n \r\n `;\r\n }\r\n\r\n public printPDF(title: string, targetId: string, styling: string = this.styling): void {\r\n var divContents = $(`#${targetId}`).html();\r\n var printWindow = window.open('', '', 'height=400,width=800');\r\n printWindow.document.write(`${title}`);\r\n printWindow.document.write(styling);\r\n printWindow.document.write('');\r\n printWindow.document.write(divContents);\r\n printWindow.document.write('');\r\n printWindow.document.close();\r\n printWindow.print();\r\n printWindow.close();\r\n }\r\n\r\n // verifies that all the query numbers are loaded\r\n public readyToPDF(queryHTML: JQuery): boolean {\r\n\r\n let isReady = true;\r\n\r\n queryHTML.each(function () {\r\n if (!$(this).hasClass(\"pdf-ready\")) {\r\n isReady = false;\r\n return false;\r\n }\r\n });\r\n\r\n return isReady;\r\n }\r\n\r\n public openModalPDF(id: string): void {\r\n $(\"#loading-pdf-id\").find(\"span\").text(id);\r\n $(\"#ready-to-pdf\").addClass(\"inactive-section\");\r\n $(\"#loading-icon\").removeClass(\"inactive-section\");\r\n $(\"#sample-info\").modal(\"hide\");\r\n $(\"#loading-pdf-modal\").modal(\"show\");\r\n }\r\n}","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","\r\n\r\n//source: https://blog.abelotech.com/posts/number-currency-formatting-javascript/\r\nexport function FormatNumberWithCommas(value: string): string {\r\n return value.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\r\n}\r\n\r\nexport function Round_1Digit(data: number): any {\r\n return (data).toFixed(1);\r\n}\r\n\r\nexport function Round_2Digits(data: number): any {\r\n return (data).toFixed(2);\r\n}\r\n\r\nexport function ComputePercent(count: number, total: number): number {\r\n if (total == undefined || total == 0) return -1;\r\n else {\r\n let percent: number = (count / total) * 100.0;\r\n return percent;\r\n }\r\n}\r\n","import { RequestNavigation } from \"./sample-request.navigation\";\r\nimport { RequestValidation } from \"./sample-request.validation\";\r\nimport { RequestComponents } from \"./sample-request.components\";\r\nimport { RequestSpecific } from \"./sample-request.specific\";\r\nimport { RequestSamples } from \"./sample-request.samples\";\r\nimport { RequestPrepopulate } from \"./sample-request.prepopulate\";\r\nimport { plainToClass } from 'class-transformer';\r\nimport { SampleRequestFormData, SampleRequestsData } from '../../request-dashboard/scripts/sample-request-form-data.entities';\r\nimport { UserQuery } from '../../../shared/entities/user-query/user-query.entities';\r\nimport { SampleRow, UserContactObj } from './sample-request.entities';\r\n\r\nexport class SampleRequestPage {\r\n requestNavigation: RequestNavigation;\r\n requestValidation: RequestValidation;\r\n requestComponents: RequestComponents;\r\n requestSpecific: RequestSpecific;\r\n requestSamples: RequestSamples;\r\n requestPrepopulate: RequestPrepopulate;\r\n\r\n requestForm: SampleRequestFormData;\r\n requestFormSamples: SampleRequestsData[];\r\n savedQueries: UserQuery[];\r\n userContact: UserContactObj;\r\n\r\n constructor(formData: any, formSamples: any, savedQueries: any, userContact: any) {\r\n this.requestNavigation = new RequestNavigation();\r\n this.requestValidation = new RequestValidation();\r\n this.requestComponents = new RequestComponents();\r\n this.requestSpecific = new RequestSpecific();\r\n this.requestSamples = new RequestSamples();\r\n this.requestPrepopulate = new RequestPrepopulate();\r\n\r\n this.requestForm = plainToClass(SampleRequestFormData, formData);\r\n this.requestFormSamples = plainToClass(SampleRequestsData, formSamples);\r\n this.savedQueries = plainToClass(UserQuery, savedQueries);\r\n this.userContact = plainToClass(UserContactObj, userContact);\r\n\r\n //console.log(this.requestForm);\r\n //console.log(this.requestFormSamples);\r\n //console.log(this.savedQueries);\r\n \r\n //document.ready\r\n $(() => {\r\n $('[data-toggle=\"popover\"]').popover();\r\n\r\n // variable declaration\r\n var requestNavigation: RequestNavigation = this.requestNavigation;\r\n var requestValidation: RequestValidation = this.requestValidation;\r\n var requestComponenets: RequestComponents = this.requestComponents;\r\n var requestSpecific: RequestSpecific = this.requestSpecific;\r\n var requestSamples: RequestSamples = this.requestSamples;\r\n var requestPrepopulate: RequestPrepopulate = this.requestPrepopulate;\r\n\r\n var requestForm: SampleRequestFormData = this.requestForm;\r\n var requestFormSamples: SampleRequestsData[] = this.requestFormSamples;\r\n\r\n // Set the Text for the Start Form Button (if they have any data saved)\r\n if (requestForm.requestorFirstName != null && requestForm.requestorFirstName != \"\") {\r\n $(\".continue-form\").find(\"span\").text(\"Continue Biospecimen Request Form\")\r\n }\r\n\r\n // prepopulate form (for demo)\r\n /*$(\".start-form-pop\").click(function () {\r\n requestPrepopulate.prepopulateForm();\r\n requestSamples.prepopulateSamples();\r\n })*/\r\n\r\n // prepopulate biospecimen row\r\n /*$(\".prepopulate-modal\").click(function () {\r\n requestPrepopulate.prepopulateModal();\r\n })*/\r\n\r\n // for next button, moving to next section of form\r\n $(\".next\").click(function () {\r\n let isValid = requestValidation.validateForm();\r\n if (isValid) {\r\n requestNavigation.nextSection($(this), requestSamples);\r\n let sampleRows: SampleRow[] = requestSamples.getSampleRows();\r\n requestValidation.saveForm(sampleRows);\r\n }\r\n });\r\n\r\n\r\n // for prev button, moving to previous section of the form\r\n $(\".prev\").click(function () {\r\n requestNavigation.previousSection($(this));\r\n });\r\n\r\n // using navigation tabs \r\n $(\".progress-tabs a\").click(function () {\r\n requestNavigation.tabNavigation($(this));\r\n }); \r\n\r\n // review section navigation\r\n $(\".review-link\").click(function () {\r\n requestNavigation.reviewNavigation($(this));\r\n })\r\n\r\n // word count validation\r\n $(\".word-count\").on(\"keypress input\", function () {\r\n requestValidation.wordCount($(this));\r\n })\r\n\r\n // multi-add section\r\n $(\".multi-add-btn\").click(function () {\r\n requestComponenets.multiAddBtn($(this));\r\n })\r\n\r\n $(\".multi-check-btn\").click(function () {\r\n requestComponenets.multiCheckBtn($(this));\r\n })\r\n\r\n $(\"#submit-button\").click(function () {\r\n let sampleRows: SampleRow[] = requestSamples.getSampleRows();\r\n requestValidation.submitForm(sampleRows);\r\n })\r\n\r\n // prevent submission of form when hitting enter (still allows for accessibility related functions)\r\n $(document).on(\"keydown\", \"form input\", function (event) {\r\n if (event.keyCode == 13) {\r\n // get focused element\r\n let focusedElement = $(document.activeElement);\r\n\r\n // if it is a checkbox, run checkbox accessibility\r\n if (focusedElement.hasClass(\"small-check\")) {\r\n checkboxAccessibility(focusedElement);\r\n }\r\n\r\n event.preventDefault();\r\n return false;\r\n }\r\n });\r\n $(document).on(\"keyup keypress\", \"form input\", function (event) {\r\n if (event.keyCode == 13) {\r\n event.preventDefault();\r\n return false;\r\n }\r\n });\r\n\r\n// NON GENERIC\r\n\r\n // opens request form from cover page\r\n $(\".start-form\").click(function () {\r\n $(\"#cover-page\").hide();\r\n $(\".request-form\").show();\r\n requestNavigation.scrollToTop();\r\n })\r\n\r\n // show other institution field if selected\r\n $(\"#institution-type-select\").change(function () {\r\n requestSpecific.institutionField($(this));\r\n })\r\n\r\n // clinical data, make the add reasoning for no clinical data approval\r\n $(\"#clinical-data\").change(function () {\r\n requestSpecific.clinicalDataShow();\r\n })\r\n\r\n\r\n // project details, make the add reasoning for no funding input appear/disappear\r\n $(\"#funding-available\").change(function () {\r\n requestSpecific.fundingAvailableShow();\r\n })\r\n\r\n $(\"#a-funding-available\").change(function () {\r\n requestSpecific.aFundingAvailableShow();\r\n })\r\n\r\n // project details, checkboxes with additional inputs needed, appear/disappear\r\n $(\".check-additional-input\").change(function () {\r\n $(this).parent().parent().next().toggle(\"slow\");\r\n // reset input value\r\n $(this).parent().parent().next().find(\"input\").val(\"\");\r\n })\r\n\r\n // sample request, save new sample row\r\n $(\"#save-sample\").click(function () {\r\n requestSamples.saveSample(); \r\n })\r\n\r\n // update a sample row\r\n $(\"#update-sample\").click(function () {\r\n requestSamples.updateSample();\r\n })\r\n\r\n // updates dropdowns in sample request modal & update request modal based on selected study\r\n $(\"#sample-study\").change(function () {\r\n requestSamples.changeStudyNew($(this));\r\n })\r\n\r\n $(\"#update-study\").change(function () {\r\n requestSamples.changeStudyUpdate($(this));\r\n }) \r\n\r\n // when the user opens a new sample modal \r\n $(\"#open-new-form\").click(function () {\r\n requestSamples.openNewForm();\r\n })\r\n\r\n // allows users to navigate and use buttons when they are focused by hitting the \"enter\" key (accessibility)\r\n $(\"a\").on(\"keypress\", function (e) {\r\n if ($(this).is(\":focus\") && e.which == 13) {\r\n buttonAccessibility($(this));\r\n }\r\n })\r\n\r\n // allows users to use the enter key to check/uncheck boxes\r\n /*$(\".small-check\").on(\"keypress\", function (e) {\r\n if ($(this).is(\":focus\") && e.which == 13) {\r\n checkboxAccessibility($(this));\r\n }\r\n })*/\r\n\r\n // ----- Prepopulate Form ------\r\n\r\n // Populates form with Data from Database\r\n requestPrepopulate.populateForm(requestForm, userContact);\r\n requestSamples.populateSampleTable(requestFormSamples, savedQueries);\r\n\r\n\r\n // ----- Accessibility Functions ------\r\n\r\n function buttonAccessibility(selectedElement) {\r\n if (selectedElement.hasClass(\"next\")) {\r\n let isValid = requestValidation.validateForm();\r\n if (isValid) {\r\n requestNavigation.nextSection(selectedElement, requestSamples);\r\n let sampleRows: SampleRow[] = requestSamples.getSampleRows();\r\n requestValidation.saveForm(sampleRows);\r\n }\r\n }\r\n if (selectedElement.hasClass(\"prev\")) {\r\n requestNavigation.previousSection(selectedElement);\r\n }\r\n if (selectedElement.hasClass(\"review-link\")) {\r\n requestNavigation.reviewNavigation(selectedElement);\r\n }\r\n if (selectedElement.hasClass(\"submit\")) {\r\n $(\"section\").children().not(\"#submit-form\").remove();\r\n $(\"#submit-form\").show();\r\n }\r\n if (selectedElement.hasClass(\"multi-add-btn\")) {\r\n //console.log(\"Added\")\r\n requestComponenets.multiAddBtn(selectedElement);\r\n }\r\n if (selectedElement.hasClass(\"multi-check-btn\")) {\r\n requestComponenets.multiCheckBtn(selectedElement);\r\n }\r\n if (selectedElement.hasClass(\"start-form\")) {\r\n $(\"#cover-page\").hide();\r\n $(\".request-form\").show();\r\n requestNavigation.scrollToTop();\r\n }\r\n if (selectedElement.attr(\"id\") == \"save-sample\") {\r\n requestSamples.saveSample();\r\n }\r\n if (selectedElement.attr(\"id\") == \"update-sample\") {\r\n requestSamples.updateSample();\r\n }\r\n if (selectedElement.attr(\"id\") == \"open-new-form\") {\r\n requestSamples.openNewForm();\r\n }\r\n }\r\n\r\n function checkboxAccessibility(selectedElement) {\r\n if (selectedElement.hasClass(\"check-additional-input\")) {\r\n selectedElement.parent().parent().next().toggle(\"slow\");\r\n }\r\n if (selectedElement.is(\":checked\")) {\r\n selectedElement.prop(\"checked\", false);\r\n }\r\n else {\r\n selectedElement.prop(\"checked\", true);\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n}","export class RequestComponents {\r\n constructor() {\r\n\r\n }\r\n\r\n multiAddBtn(selectedBtn: any) {\r\n // get the associated input field value associated with the multi add section\r\n let textVal = selectedBtn.parent().prev().children().children().val();\r\n // get the place where new content will be added\r\n let newAddSection = selectedBtn.parent().parent().parent().children(\".added-content\");\r\n\r\n // verify that text has been added into the input field\r\n if (textVal != \"\" && textVal != null) {\r\n // remove placeholder text if visible\r\n newAddSection.children(\".added-content-placeholder:visible\").hide();\r\n\r\n // new html element that will be added \r\n let newAdd = `
${textVal}
`\r\n newAddSection.append(newAdd);\r\n\r\n // add event listener to remove button\r\n newAddSection.children().last().children().children().click(function () {\r\n let newAddSection = $(this).parent().parent().parent();\r\n $(this).parent().parent().remove();\r\n\r\n // show placeholder text if necessary\r\n if (newAddSection.children(\".added-item\").length == 0) {\r\n newAddSection.children(\".added-content-placeholder\").show();\r\n }\r\n })\r\n }\r\n\r\n // reset the value of the input field to blank\r\n selectedBtn.parent().prev().children().children().val(\"\");\r\n }\r\n\r\n multiCheckBtn(selectedBtn: any) {\r\n // get the associated input field value associated with the multi add section\r\n let textVal = $(\".query-select:visible\").val();\r\n\r\n // get the place where new content will be added\r\n let newAddSection = $(\".added-queries:visible\");\r\n\r\n // verify that text has been added into the input field\r\n if (textVal != \"\" && textVal != null) {\r\n // remove placeholder text if visible\r\n newAddSection.children(\".added-query-placeholder:visible\").hide();\r\n\r\n // new html element that will be added \r\n let newAdd = `
${textVal}
`\r\n newAddSection.append(newAdd);\r\n\r\n // add event listener to remove button\r\n newAddSection.children().last().children().children().click(function () {\r\n // add the removed item back to the dropdown menu\r\n // link the Id to the text value\r\n let selectedText = $(this).parent().text();\r\n $(`.query-select:visible option[value=\"${selectedText}\"]`).show();\r\n\r\n // remove item\r\n let newAddSection = $(this).parent().parent().parent();\r\n $(this).parent().parent().remove();\r\n\r\n\r\n // show placeholder text if necessary\r\n if (newAddSection.children(\".added-item\").length == 0) {\r\n newAddSection.children(\".added-query-placeholder\").show();\r\n }\r\n })\r\n\r\n // remove the item from the dropdown list\r\n let selectedOption = $(\"#sample-queries\").find(\":selected\");\r\n selectedOption.hide();\r\n }\r\n\r\n\r\n // reset the value of the input field to blank\r\n selectedBtn.parent().prev().children().children().val(\"\");\r\n }\r\n}","export class RequestContact {\r\n FirstName: string;\r\n LastName: string;\r\n Institution: string;\r\n InstitutionType: string;\r\n Telephone: string;\r\n Email: string;\r\n\r\n constructor(firstname, lastname, institution, institutiontype, telephone, email) {\r\n this.FirstName = firstname;\r\n this.LastName = lastname;\r\n this.Institution = institution;\r\n this.InstitutionType = institutiontype;\r\n this.Telephone = telephone;\r\n this.Email = email;\r\n }\r\n}\r\n\r\nexport class ShippingAddress {\r\n Street: string;\r\n Street2?: string;\r\n City: string;\r\n State: string;\r\n Zip: string;\r\n\r\n toString() {\r\n return `${this.Street}, ${this.Street2 ? this.Street2 +\",\" : \"\"} ${this.City}, ${this.State}, ${this.Zip}`\r\n }\r\n}\r\n\r\nexport class RequestShipping {\r\n LaboratoryName?: string;\r\n FirstName: string;\r\n LastName: string;\r\n Telephone?: string;\r\n Email: string;\r\n Country: string;\r\n ShippingAddress?: ShippingAddress;\r\n ShippingAccountName: string;\r\n AccountNumber: string;\r\n SpecialInstructions?: string;\r\n AgreementContactFirstName: string;\r\n AgreementContactLastName: string;\r\n AgreementContactTelephone?: string;\r\n AgreementContactEmail: string;\r\n}\r\n\r\nexport class RequestProjectDetails {\r\n ProjectTitle: string;\r\n ShortTitle: string;\r\n PINames: string[];\r\n Background: string;\r\n ScientificAims: string;\r\n Significance: string;\r\n Methods: string;\r\n Approach: string;\r\n SharingPlan: string;\r\n Timepoint: string;\r\n StartDate: string;\r\n CompletionDate: string;\r\n FundingAvailable: string;\r\n NIHCheck: boolean;\r\n AnticipatedNIHCheck: boolean;\r\n NIHAwardNumber?: string;\r\n //AnticipatedNIHAwardNumber?: string;\r\n OtherFederalAgencyCheck: boolean;\r\n AnticipatedOtherFederalAgencyCheck: boolean;\r\n OtherFederalAgencyName?: string;\r\n AnticipatedOtherFederalAgencyName: string;\r\n FoundationCheck: boolean;\r\n AnticipatedFoundationCheck: boolean;\r\n IndustryCheck: boolean;\r\n AnticipatedIndustryCheck: boolean;\r\n OtherCheck: boolean;\r\n AnticipatedOtherCheck: boolean;\r\n OtherFundingName?: string;\r\n AnticipatedOtherFudingName?: string;\r\n AnticipatedFundingCheck: string;\r\n AnticipatedFundingSubmission: string;\r\n AnticipatedFundingAward: string;\r\n ClinicalData: string;\r\n AnticipatedClinicalDataDate: string;\r\n AdditionalClinicalData: string;\r\n}\r\n\r\nexport class SampleRow {\r\n Id?: number;\r\n Nickname: string;\r\n Study: string;\r\n SampleType: string;\r\n TreatmentArm: string;\r\n Quantity: string;\r\n Volume: string;\r\n Unit: string;\r\n Queries: string;\r\n Timepoint: string;\r\n OtherSpecifications?: string;\r\n}\r\n\r\nexport class RequestAdditionalInfo {\r\n ParticipantDescription: string;\r\n AdditionalDetail?: string;\r\n}\r\n\r\nexport class SampleRequestForm {\r\n RequestContact: RequestContact;\r\n RequestShipping: RequestShipping;\r\n RequestProjectDetails: RequestProjectDetails;\r\n SampleRows: SampleRow[];\r\n RequestAdditionalInfo: RequestAdditionalInfo;\r\n}\r\n\r\nexport class SampleRequestStudy {\r\n Name: string;\r\n SampleType: string[];\r\n Timepoint: string[];\r\n TreatmentArm: string[];\r\n}\r\n\r\nexport class SaveForm {\r\n Id?: number;\r\n Status: string;\r\n SubmissionDate?: Date;\r\n LastUpdated: Date;\r\n User_Id: number;\r\n\r\n StudyTable?: string;\r\n TreatmentArmsTable?: string;\r\n SampleTypesTable?: string;\r\n\r\n RequestorFirstName?: string;\r\n RequestorLastName?: string;\r\n InstitutionName?: string;\r\n InstitutionType?: string;\r\n RequestorTelephone?: string;\r\n RequestorEmail?: string;\r\n\r\n LaboratoryName?: string;\r\n ShippingFirstName?: string;\r\n ShippingLastName?: string;\r\n ShippingTelephone?: string;\r\n ShippingEmail?: string;\r\n ShippingCountry?: string;\r\n ShippingStreet?: string;\r\n ShippingStreet2?: string;\r\n ShippingCity?: string;\r\n ShippingState?: string;\r\n ShippingZip?: string;\r\n ShippingAccountName?: string;\r\n ShippingAccountNumber?: string;\r\n ShippingSpecialInstructions?: string;\r\n AgreementContactFirstName: string;\r\n AgreementContactLastName: string;\r\n AgreementContactTelephone?: string;\r\n AgreementContactEmail: string;\r\n\r\n ProjectTitle?: string;\r\n ShortTitle?: string;\r\n PINames?: string;\r\n Background?: string;\r\n ScientificAims?: string;\r\n Significance?: string;\r\n Methods?: string;\r\n Approach?: string;\r\n ParticipantDescription?: string;\r\n ClinicalData?: string;\r\n AnticipatedClinicalDataDate: Date;\r\n ClinicalDataAdditional?: string;\r\n\r\n SharingPlan?: string;\r\n BiospecimenUse?: string;\r\n StartDate: Date;\r\n CompletionDate: Date;\r\n FundingAvailable?: boolean;\r\n NIHFunding?: boolean;\r\n AnticipatedNIHFunding?: boolean;\r\n NIHAwardNumber?: string;\r\n OtherFederalFunding?: boolean;\r\n AnticipatedOtherFederalFunding?: boolean;\r\n OtherFederalName?: string;\r\n AnticipatedOtherFederalName?: string;\r\n FoundationFunding?: boolean;\r\n AnticipatedFoundationFunding?: boolean;\r\n IndustryFunding?: boolean;\r\n AnticipatedIndustryFunding?: boolean;\r\n OtherFunding?: boolean;\r\n AnticipatedOtherFunding?: boolean;\r\n OtherFundingName?: string;\r\n AnticipatedOtherFundingName?: string;\r\n AnticipatedFundingSubmissionCheck?: string;\r\n AnticipatedFundingSubmission?: Date;\r\n AnticipatedFundingAward?: Date;\r\n\r\n AdditionalDetail?: string;\r\n\r\n}\r\n\r\nexport class SaveSampleForm {\r\n Id: number;\r\n UserId: number;\r\n SampleQueryName: string;\r\n Study: string;\r\n SampleType: string;\r\n TreatmentArm: string;\r\n Quantity: string;\r\n Volume: string;\r\n Unit: string;\r\n Timepoint: string;\r\n Queries: string;\r\n OtherSpecifications?: string;\r\n\r\n SampleRequestFormId?: number;\r\n}\r\n\r\nexport class UserContactObj {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n","import { DoArraysOverlap, FormatStringByWordLength, Split, Join } from \"../../../shared/scripts/array-functions\";\r\n\r\nexport class SampleRequestFormData {\r\n // Database Info\r\n id: string;\r\n submissionDate: string;\r\n lastUpdated: string;\r\n status: string;\r\n user_Id: number;\r\n source: string;\r\n parentFormId: number;\r\n\r\n // Table Date\r\n studyTable: string;\r\n treatmentArmsTable: string;\r\n sampleTypesTable: string;\r\n\r\n // Requestor Info\r\n requestorFirstName: string;\r\n requestorLastName: string;\r\n institutionType: string;\r\n institutionName: string;\r\n requestorTelephone: string;\r\n requestorEmail: string;\r\n\r\n // Shipping Info\r\n laboratoryName: string;\r\n shippingFirstName: string;\r\n shippingLastName: string;\r\n shippingTelephone: string;\r\n shippingEmail: string;\r\n shippingCountry: string;\r\n shippingStreet: string;\r\n shippingStreet2: string;\r\n shippingCity: string;\r\n shippingZip: string;\r\n shippingState: string;\r\n shippingAccountName: string;\r\n shippingAccountNumber: string;\r\n shippingSpecialInstructions: string;\r\n agreementContactFirstName: string;\r\n agreementContactLastName: string;\r\n agreementContactTelephone: string;\r\n agreementContactEmail: string;\r\n\r\n // Project Approach\r\n projectTitle: string;\r\n shortTitle: string;\r\n piNames: string;\r\n background: string;\r\n scientificAims: string;\r\n significance: string;\r\n methods: string;\r\n approach: string;\r\n participantDescription: string;\r\n clinicalData: string;\r\n anticipatedClinicalDataDate: string;\r\n clinicalDataAdditional: string;\r\n\r\n // Admin Details\r\n sharingPlan: string;\r\n biospecimenUse: string;\r\n startDate: string;\r\n completionDate: string;\r\n fundingAvailable: boolean;\r\n nihFunding: boolean;\r\n nihAwardNumber: string;\r\n otherFederalFunding: boolean;\r\n otherFederalName: string;\r\n foundationFunding: boolean;\r\n industryFunding: boolean;\r\n otherFunding: boolean;\r\n otherFundingName: string;\r\n anticipatedNIHFunding: boolean;\r\n anticipatedOtherFederalFunding: boolean;\r\n anticipatedOtherFederalName: string;\r\n anticipatedFoundationFunding: boolean;\r\n anticipatedIndustryFunding: boolean;\r\n anticipatedOtherFunding: boolean;\r\n anticipatedOtherFundingName: string;\r\n anticipatedFundingSubmissionCheck: boolean;\r\n anticipatedFundingSubmission: string;\r\n anticipatedFundingAward: string;\r\n\r\n\r\n // Additional Info\r\n additionalDetail: string;\r\n \r\n\r\n // Virtuals\r\n requestorFullName: string;\r\n combinedId: string;\r\n combinedIdDisplay: string;\r\n\r\n constructor() { }\r\n\r\n matchesFilter(filters: string[]) {\r\n let taskMatches = false;\r\n\r\n filters.forEach(filter => {\r\n if (filter == this.status) {\r\n taskMatches = true;\r\n }\r\n })\r\n\r\n if (taskMatches) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n\r\n /*if (!DoArraysOverlap(filter, this.status)) {\r\n //console.log(\"Status Update:\")\r\n //console.log(status, this.status)\r\n return false;\r\n } else {\r\n return true;\r\n }*/\r\n }\r\n\r\n initializeData() {\r\n // RequestorFullName\r\n if (this.requestorFirstName == null || this.requestorLastName == null) {\r\n this.requestorFullName = \"\";\r\n }\r\n else {\r\n this.requestorFullName = `${this.requestorFirstName} ${this.requestorLastName}`;\r\n }\r\n\r\n // CombinedId\r\n let maxIdLength = 4;\r\n let leadingZeroId = \"000\" + this.id;\r\n let shortenedZeroId = leadingZeroId.substr(leadingZeroId.length - maxIdLength);\r\n\r\n if (this.requestorLastName == null) {\r\n this.combinedId = `${shortenedZeroId}`;\r\n }\r\n else {\r\n this.combinedId = shortenedZeroId + \"_\" + this.requestorLastName;\r\n }\r\n\r\n this.combinedIdDisplay = `${this.combinedId}`\r\n }\r\n\r\n}\r\n\r\nexport class SampleRequestsData {\r\n id: number;\r\n sampleRequestFormId: number;\r\n sampleQueryName: string;\r\n study: string;\r\n sampleType: string;\r\n treatmentArm: string;\r\n quantity: string;\r\n volume: string;\r\n unit: string;\r\n timepoint: string;\r\n queries: string;\r\n otherSpecifications: string;\r\n}\r\n\r\nexport class SampleRequestCommentData {\r\n id: number;\r\n sampleRequestFormId: number;\r\n creationDate: Date;\r\n comment: string;\r\n beforeStatus: string;\r\n afterStatus: string;\r\n username: string;\r\n userId: number;\r\n}","import { plainToClass } from 'class-transformer';\r\nimport { time } from 'highcharts';\r\nimport { BiorepositoryLookup } from './inventory-lookup';\r\n\r\n\r\nexport class Patient {\r\n PatientId: string;\r\n StudyId: number;\r\n StudyTypeId: number;\r\n //Visits: string;\r\n Age: number;\r\n Sex: number;\r\n Race: number;\r\n Ethnicity: number;\r\n Samples: Sample[];\r\n\r\n initialize(): void {\r\n this.Samples = plainToClass(Sample, this.Samples);\r\n this.Samples = this.Samples.map((sample: Sample) => {\r\n sample.Aliquots = plainToClass(Aliquot, sample.Aliquots);\r\n return sample;\r\n });\r\n }\r\n}\r\n\r\nexport class Sample {\r\n SampleTypeId: number;\r\n Timepoint: string;\r\n Aliquots: Aliquot[];\r\n\r\n constructor(sampleTypeId: number, timepoint: string) {\r\n this.SampleTypeId = sampleTypeId;\r\n this.Timepoint = timepoint;\r\n this.Aliquots = [];\r\n }\r\n}\r\n\r\nexport class Aliquot {\r\n Barcode: string;\r\n BiorepoStatus: number;\r\n PortalStatus: number;\r\n}\r\n\r\nexport class DropdownOption {\r\n Id: number;\r\n Value: string;\r\n\r\n constructor(id: number, type: string) {\r\n this.Id = id;\r\n this.Value = BiorepositoryLookup.GetValueFromIdAndType(id, type);\r\n }\r\n}\r\n\r\nexport class ComputedDisplayValues {\r\n\r\n ParticipantCount: number = 0;\r\n SampleCount: number = 0;\r\n AliquotCount: number = 0;\r\n\r\n timepoints: string[] = [\"Baseline\", \"Day1\", \"Day3\", \"Day7or8\", \"Day14or15\", \"Day29or31\", \"Unscheduled\", \"TreatmentEnd\"];\r\n allTimepoints: string[] = [\"Baseline\", \"Day1\", \"Day2\", \"Day3\", \"Day4\", \"Day5\", \"Day6\", \"Day7\", \"Day8\", \"Day9\", \"Day10\", \"Day11\", \"Day12\", \"Day13\", \"Day14\", \"Day15\", \"Day16\", \"Day17\", \"Day18\", \"Day22\", \"Day24\", \"Day26\", \"Day27\", \"Day29\", \"Day31\", \"Day60\", \"TreatmentEnd\"]\r\n\r\n ParticipantsByVisit_Baseline: number = 0;\r\n ParticipantsByVisit_Day1: number = 0;\r\n //ParticipantsByVisit_Day2: number = 0;\r\n ParticipantsByVisit_Day3: number = 0;\r\n /*ParticipantsByVisit_Day4: number = 0;\r\n ParticipantsByVisit_Day5: number = 0;\r\n ParticipantsByVisit_Day6: number = 0;*/\r\n ParticipantsByVisit_Day7: number = 0;\r\n ParticipantsByVisit_Day8: number = 0;\r\n /*ParticipantsByVisit_Day9: number = 0;\r\n ParticipantsByVisit_Day10: number = 0;\r\n ParticipantsByVisit_Day11: number = 0;\r\n ParticipantsByVisit_Day12: number = 0;\r\n ParticipantsByVisit_Day13: number = 0;*/\r\n ParticipantsByVisit_Day14: number = 0;\r\n ParticipantsByVisit_Day15: number = 0;\r\n /*ParticipantsByVisit_Day16: number = 0;\r\n ParticipantsByVisit_Day17: number = 0;\r\n ParticipantsByVisit_Day18: number = 0;\r\n ParticipantsByVisit_Day22: number = 0;\r\n ParticipantsByVisit_Day24: number = 0;\r\n ParticipantsByVisit_Day26: number = 0;\r\n ParticipantsByVisit_Day27: number = 0;*/\r\n ParticipantsByVisit_Day29: number = 0;\r\n ParticipantsByVisit_Day31: number = 0;\r\n //ParticipantsByVisit_Day60: number = 0;\r\n ParticipantsByVisit_TreatmentEnd: number = 0;\r\n ParticipantsByVisit_Day7or8: number = 0;\r\n ParticipantsByVisit_Day14or15: number = 0;\r\n ParticipantsByVisit_Day29or31: number = 0;\r\n ParticipantsByVisit_Unscheduled: number = 0;\r\n\r\n Participants_Timepoint1: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint2: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint3: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint4: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint5: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint6: CountsBySampleType = new CountsBySampleType();\r\n Participants_Timepoint7: CountsBySampleType = new CountsBySampleType();\r\n\r\n Samples_VisitBaseline: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay1: CountsBySampleType = new CountsBySampleType();\r\n //Samples_VisitDay2: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay3: CountsBySampleType = new CountsBySampleType();\r\n /*Samples_VisitDay4: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay5: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay6: CountsBySampleType = new CountsBySampleType();*/\r\n Samples_VisitDay7: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay8: CountsBySampleType = new CountsBySampleType();\r\n /*Samples_VisitDay9: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay10: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay11: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay12: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay13: CountsBySampleType = new CountsBySampleType();*/\r\n Samples_VisitDay14: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay15: CountsBySampleType = new CountsBySampleType();\r\n /*Samples_VisitDay16: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay17: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay18: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay22: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay24: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay26: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay27: CountsBySampleType = new CountsBySampleType();*/\r\n Samples_VisitDay29: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay31: CountsBySampleType = new CountsBySampleType();\r\n //Samples_VisitDay60: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitTreatmentEnd: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay7or8: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay14or15: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitDay29or31: CountsBySampleType = new CountsBySampleType();\r\n Samples_VisitUnscheduled: CountsBySampleType = new CountsBySampleType();\r\n\r\n Aliquots_VisitBaseline: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay1: CountsBySampleType = new CountsBySampleType();\r\n //Aliquots_VisitDay2: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay3: CountsBySampleType = new CountsBySampleType();\r\n /* Aliquots_VisitDay4: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay5: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay6: CountsBySampleType = new CountsBySampleType();*/\r\n Aliquots_VisitDay7: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay8: CountsBySampleType = new CountsBySampleType();\r\n /*Aliquots_VisitDay9: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay10: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay11: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay12: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay13: CountsBySampleType = new CountsBySampleType();*/\r\n Aliquots_VisitDay14: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay15: CountsBySampleType = new CountsBySampleType();\r\n /*Aliquots_VisitDay16: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay17: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay18: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay22: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay24: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay26: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay27: CountsBySampleType = new CountsBySampleType();*/\r\n Aliquots_VisitDay29: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay31: CountsBySampleType = new CountsBySampleType();\r\n //Aliquots_VisitDay60: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitTreatmentEnd: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay7or8: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay14or15: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitDay29or31: CountsBySampleType = new CountsBySampleType();\r\n Aliquots_VisitUnscheduled: CountsBySampleType = new CountsBySampleType();\r\n\r\n constructor() { }\r\n\r\n Reset() {\r\n this.ParticipantCount = 0; this.SampleCount = 0; this.AliquotCount = 0;\r\n\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n this[`ParticipantsByVisit_${this.timepoints[i]}`] = 0;\r\n this[`Samples_Visit${this.timepoints[i]}`].Reset();\r\n this[`Aliquots_Visit${this.timepoints[i]}`].Reset();\r\n }\r\n /*this.ParticipantsByVisit_Baseline = 0; this.ParticipantsByVisit_Day1 = 0; this.ParticipantsByVisit_Day3 = 0; this.ParticipantsByVisit_Day7 = 0;\r\n this.ParticipantsByVisit_Day14 = 0; this.ParticipantsByVisit_Day31 = 0; this.ParticipantsByVisit_TreatmentEnd = 0;*/\r\n\r\n this.Participants_Timepoint1.Reset(); this.Participants_Timepoint2.Reset(); this.Participants_Timepoint3.Reset(); this.Participants_Timepoint4.Reset();\r\n this.Participants_Timepoint5.Reset(); this.Participants_Timepoint6.Reset(); this.Participants_Timepoint7.Reset();\r\n\r\n /*this.Samples_VisitBaseline.Reset(); this.Samples_VisitDay1.Reset(); this.Samples_VisitDay3.Reset(); this.Samples_VisitDay7.Reset();\r\n this.Samples_VisitDay14.Reset(); this.Samples_VisitDay31.Reset(); this.Samples_VisitTreatmentEnd.Reset();*/\r\n\r\n /*this.Aliquots_VisitBaseline.Reset(); this.Aliquots_VisitDay1.Reset(); this.Aliquots_VisitDay3.Reset(); this.Aliquots_VisitDay7.Reset();\r\n this.Aliquots_VisitDay14.Reset(); this.Aliquots_VisitDay31.Reset(); this.Aliquots_VisitTreatmentEnd.Reset();*/\r\n\r\n }\r\n\r\n Update(patients: Patient[], studies: string[], studyTypes: string[], specimenStatuses: string[], ages: string[], sexes: string[], races: string[], ethnicities: string[]) {\r\n //console.log(\"Patients n=\" + patients.length);\r\n //console.log(\"Studies\", studies);\r\n //console.log(\"Study Types\", studyTypes);\r\n //console.log(\"Specimen Statuses\", specimenStatuses);\r\n //console.log(\"Age\", ageMin, ageMax, \" | Include missing\", ageIncludeMissing);\r\n //console.log(\"Sexes\", sexes);\r\n //console.log(\"Races\", races);\r\n //console.log(\"Ethnicities\", ethnicities);\r\n //console.log(\"------------------------\");\r\n this.Reset();\r\n\r\n let activ1StudyIds: number[] = [8, 9, 10, 11, 12, 13, 14];\r\n\r\n //let filteredList: Patient[] = [];\r\n for (const patient of patients) {\r\n if (patient.Samples == undefined || patient.Samples.length == 0) continue;\r\n if (!studies.includes(patient.StudyId + \"\") || !studyTypes.includes(patient.StudyTypeId + \"\") || !sexes.includes(patient.Sex + \"\") || !races.includes(patient.Race + \"\") || !ethnicities.includes(patient.Ethnicity + \"\") || !ages.includes(patient.Age + \"\")) {\r\n continue;\r\n }\r\n\r\n /*if (patient.Age == -99 && !ageIncludeMissing) { continue; }\r\n if (patient.Age != -99 && !(ageMin <= patient.Age && patient.Age <= ageMax)) { continue; }*/\r\n\r\n let visitsByParticipant: boolean[] = new Array(this.timepoints.length).fill(false); //baseline, day1, day3, day7, day14, day31, treatmentend\r\n let visitsByParticipantAllTimepoints: boolean[] = new Array(this.allTimepoints.length).fill(false);\r\n let sampleTypesByVisit_Patient: SampleTypeByVisitTracker = new SampleTypeByVisitTracker();\r\n let sampleTypesByVisit_Sample: SampleTypeByVisitTracker = new SampleTypeByVisitTracker();\r\n let sampleTypesByVisit_Aliquot: SampleTypeByVisitTracker = new SampleTypeByVisitTracker();\r\n\r\n //if (patient.PatientId == 'US-2115-0009') {\r\n // console.log(patient);\r\n //}\r\n\r\n let matchingSamples: number = 0;\r\n let matchingAliquots: number = 0;\r\n for (const sample of patient.Samples) {\r\n let foundAliquot: boolean = false;\r\n\r\n let visitIndex: number = -1;\r\n let countVisitIndex: number = -1;\r\n if (sample.Timepoint == \"0\") { visitIndex = 0; countVisitIndex = 0; }\r\n else if (sample.Timepoint == \"1\") { visitIndex = 1; countVisitIndex = 1; }\r\n else if (sample.Timepoint == \"3\") { visitIndex = 2; countVisitIndex = 3; }\r\n else if (sample.Timepoint == \"7\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 3; countVisitIndex = 7; } // ACTIV 4 Study -> Day 7 is included in Day 7/8\r\n else if (sample.Timepoint == \"7\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 7; } // ACTIV 1 Study -> Day 7 is 'Unscheduled'\r\n else if (sample.Timepoint == \"8\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 8; } // ACTIV 4 Study -> Day 8 is 'Unscheduled'\r\n else if (sample.Timepoint == \"8\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 3; countVisitIndex = 8; } // ACTIV 1 Study -> Day 8 is included in Day 7/8\r\n else if (sample.Timepoint == \"14\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 4; countVisitIndex = 14; } // ACTIV 4 Study -> Day 14 is included in Day 14/15\r\n else if (sample.Timepoint == \"14\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 14; } // ACTIV1 Study -> Day 14 is 'Unscheduled'\r\n else if (sample.Timepoint == \"15\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 15; } // ACTIV 4 Study -> Day 15 is 'Unscheduled'\r\n else if (sample.Timepoint == \"15\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 4; countVisitIndex = 15; } // ACTIV 1 Study -> Day 15 is included in Day 14/15\r\n else if (sample.Timepoint == \"29\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 23; } // ACTIV 4 Study -> Day 29 is 'Unscheduled'\r\n else if (sample.Timepoint == \"29\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 5; countVisitIndex = 23; } // ACTIV 1 Study -> Day 29 is included in Day 29/31\r\n else if (sample.Timepoint == \"31\" && !activ1StudyIds.includes(patient.StudyId)) { visitIndex = 5; countVisitIndex = 24; } // ACTIV 4 Study -> Day 31 is included in Day 29/31\r\n else if (sample.Timepoint == \"31\" && activ1StudyIds.includes(patient.StudyId)) { visitIndex = 6; countVisitIndex = 24; } // ACTIV 1 Study -> Day 31 is 'Unscheduled'\r\n else if (sample.Timepoint == \"2\") { visitIndex = 6; countVisitIndex = 2;}\r\n else if (sample.Timepoint == \"4\") { visitIndex = 6; countVisitIndex = 4; }\r\n else if (sample.Timepoint == \"5\") { visitIndex = 6; countVisitIndex = 5; }\r\n else if (sample.Timepoint == \"6\") { visitIndex = 6; countVisitIndex = 6; }\r\n else if (sample.Timepoint == \"9\") { visitIndex = 6; countVisitIndex = 9; }\r\n else if (sample.Timepoint == \"10\") { visitIndex = 6; countVisitIndex = 10; }\r\n else if (sample.Timepoint == \"11\") { visitIndex = 6; countVisitIndex = 11; }\r\n else if (sample.Timepoint == \"12\") { visitIndex = 6; countVisitIndex = 12; }\r\n else if (sample.Timepoint == \"13\") { visitIndex = 6; countVisitIndex = 13; }\r\n else if (sample.Timepoint == \"16\") { visitIndex = 6; countVisitIndex = 16; }\r\n else if (sample.Timepoint == \"17\") { visitIndex = 6; countVisitIndex = 17; }\r\n else if (sample.Timepoint == \"18\") { visitIndex = 6; countVisitIndex = 18; }\r\n else if (sample.Timepoint == \"22\") { visitIndex = 6; countVisitIndex = 19; }\r\n else if (sample.Timepoint == \"24\") { visitIndex = 6; countVisitIndex = 20; }\r\n else if (sample.Timepoint == \"26\") { visitIndex = 6; countVisitIndex = 21; }\r\n else if (sample.Timepoint == \"27\") { visitIndex = 6; countVisitIndex = 22; }\r\n else if (sample.Timepoint == \"60\") { visitIndex = 6; countVisitIndex = 25; }\r\n else if (sample.Timepoint == \"99\") { visitIndex = 7; countVisitIndex = 26; }\r\n else { console.log(\"Unknown sample timepoint = \" + sample.Timepoint); continue; }\r\n\r\n for (const aliquot of sample.Aliquots) {\r\n //if (patient.PatientId == 'US-2115-0009' && sample.SampleTypeId == 3) {\r\n //if (sample.SampleTypeId == 2) {\r\n // console.log(aliquot);\r\n //}\r\n\r\n if (specimenStatuses.includes(aliquot.PortalStatus + \"\")) {\r\n matchingAliquots++;\r\n sampleTypesByVisit_Aliquot.CountData[sample.SampleTypeId][visitIndex] += 1;\r\n foundAliquot = true;\r\n }\r\n }\r\n if (matchingAliquots > 0 && foundAliquot) {\r\n matchingSamples++;\r\n\r\n if (visitIndex >= 0) {\r\n visitsByParticipant[visitIndex] = true;\r\n visitsByParticipantAllTimepoints[countVisitIndex] = true;\r\n sampleTypesByVisit_Patient.BooleanData[sample.SampleTypeId][visitIndex] = true;\r\n sampleTypesByVisit_Patient.AllBooleanData[sample.SampleTypeId][countVisitIndex] = true;\r\n\r\n sampleTypesByVisit_Sample.CountData[sample.SampleTypeId][visitIndex] += 1;\r\n }\r\n\r\n //if (patient.PatientId == 'US-2115-0009' && sample.SampleTypeId == 3) {\r\n // console.log(patient, sample, specimenStatuses);\r\n //}\r\n }\r\n }\r\n\r\n if (matchingSamples > 0) {\r\n this.ParticipantCount += 1;\r\n this.SampleCount += matchingSamples;\r\n this.AliquotCount += matchingAliquots;\r\n\r\n //if (patient.PatientId == 'US-3019-0003') {\r\n // console.log(matchingSamples, matchingAliquots);\r\n // console.log(sampleTypesByVisit_Patient.BooleanData[0][0]);\r\n // console.log(sampleTypesByVisit_Patient.BooleanData[6][0]);\r\n //}\r\n\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n if (visitsByParticipant[i]) { this[`ParticipantsByVisit_${this.timepoints[i]}`]++ }\r\n }\r\n /*if (visitsByParticipant[0]) { this.ParticipantsByVisit_Baseline++; }\r\n if (visitsByParticipant[1]) { this.ParticipantsByVisit_Day1++; }\r\n if (visitsByParticipant[2]) { this.ParticipantsByVisit_Day3++; }\r\n if (visitsByParticipant[3]) { this.ParticipantsByVisit_Day7++; }\r\n if (visitsByParticipant[4]) { this.ParticipantsByVisit_Day14++; }\r\n if (visitsByParticipant[5]) { this.ParticipantsByVisit_Day31++; }\r\n if (visitsByParticipant[6]) { this.ParticipantsByVisit_TreatmentEnd++; }*/\r\n\r\n for (let sampleTypeId: number = 0; sampleTypeId < sampleTypesByVisit_Patient.AllBooleanData.length; ++sampleTypeId) {\r\n let timepointCount: number = 0;\r\n for (let i: number = 0; i < sampleTypesByVisit_Patient.AllBooleanData[sampleTypeId].length; ++i) {\r\n if (sampleTypesByVisit_Patient.AllBooleanData[sampleTypeId][i] == true) { timepointCount++; }\r\n }\r\n\r\n //if (sampleTypeId == 3 && timepointCount == 1) {\r\n // console.log(patient.PatientId);\r\n //}\r\n\r\n if (timepointCount == 1) { this.Participants_Timepoint1.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 2) { this.Participants_Timepoint2.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 3) { this.Participants_Timepoint3.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 4) { this.Participants_Timepoint4.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 5) { this.Participants_Timepoint5.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 6) { this.Participants_Timepoint6.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount == 7) { this.Participants_Timepoint7.IncrementValueBySampleTypeIndex(sampleTypeId, 1); }\r\n else if (timepointCount > 7) { console.log(\"Number participant timepoints for person out-of-range = \" + timepointCount + \" person = \" + patient); }\r\n\r\n for (let i = 0; i < this.timepoints.length; i++) {\r\n this[`Samples_Visit${this.timepoints[i]}`].IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][i]);\r\n this[`Aliquots_Visit${this.timepoints[i]}`].IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][i]);\r\n }\r\n\r\n /*this.Samples_VisitBaseline.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][0]);\r\n this.Samples_VisitDay1.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][1]);\r\n this.Samples_VisitDay3.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][2]);\r\n this.Samples_VisitDay7.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][3]);\r\n this.Samples_VisitDay14.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][4]);\r\n this.Samples_VisitDay31.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][5]);\r\n this.Samples_VisitTreatmentEnd.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Sample.CountData[sampleTypeId][6]);\r\n\r\n this.Aliquots_VisitBaseline.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][0]);\r\n this.Aliquots_VisitDay1.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][1]);\r\n this.Aliquots_VisitDay3.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][2]);\r\n this.Aliquots_VisitDay7.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][3]);\r\n this.Aliquots_VisitDay14.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][4]);\r\n this.Aliquots_VisitDay31.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][5]);\r\n this.Aliquots_VisitTreatmentEnd.IncrementValueBySampleTypeIndex(sampleTypeId, sampleTypesByVisit_Aliquot.CountData[sampleTypeId][6]);*/\r\n\r\n //if (sampleTypeId == 0) {\r\n // if (sampleTypesByVisit_Sample.CountData[sampleTypeId][0] > 0) {\r\n // console.log(patient);\r\n // }\r\n //}\r\n }\r\n }\r\n }\r\n\r\n //console.log(this.Participants_Timepoint1);\r\n }\r\n}\r\n\r\nexport class CountsBySampleType {\r\n\r\n constructor(public AngioEDTA: number = 0, public Citrate: number = 0, public DBS: number = 0, public EDTA: number = 0, public P100: number = 0, public PackedCells: number = 0, public PaxGene: number = 0, public Serum: number = 0) { }\r\n\r\n Reset() {\r\n this.AngioEDTA = 0; this.Citrate = 0; this.DBS = 0; this.EDTA = 0; this.P100 = 0;\r\n this.PackedCells = 0; this.PaxGene = 0; this.Serum = 0;\r\n }\r\n\r\n AddValues(values: number[]) {\r\n this.AngioEDTA += values[0];\r\n this.Citrate += values[1];\r\n this.DBS += values[2];\r\n this.EDTA += values[3];\r\n this.P100 += values[4];\r\n this.PackedCells += values[5];\r\n this.PaxGene += values[6];\r\n this.Serum += values[7];\r\n }\r\n\r\n IncrementValueBySampleTypeIndex(index: number, amount: number = 1) {\r\n if (index == 0) { this.AngioEDTA += amount; }\r\n else if (index == 1) { this.Citrate += amount; }\r\n else if (index == 2) { this.DBS += amount; }\r\n else if (index == 3) { this.EDTA += amount; }\r\n else if (index == 4) { this.P100 += amount; }\r\n else if (index == 5) { this.PackedCells += amount; }\r\n else if (index == 6) { this.PaxGene += amount; }\r\n else if (index == 7) { this.Serum += amount; }\r\n }\r\n\r\n GetDataArray(): number[] {\r\n return [this.AngioEDTA, this.Citrate, this.DBS, this.EDTA, this.P100, this.PackedCells, this.PaxGene, this.Serum];\r\n }\r\n}\r\n\r\nexport class SampleTypeByVisitTracker {\r\n timepoints: string[] = [\"Baseline\", \"Day1\", \"Day3\", \"Day7or8\", \"Day14or15\", \"Day29or31\", \"Unscheduled\", \"TreatmentEnd\"];\r\n allTimepoints: string[] = [\"Baseline\", \"Day1\", \"Day2\", \"Day3\", \"Day4\", \"Day5\", \"Day6\", \"Day7\", \"Day8\", \"Day9\", \"Day10\", \"Day11\", \"Day12\", \"Day13\", \"Day14\", \"Day15\", \"Day16\", \"Day17\", \"Day18\", \"Day22\", \"Day24\", \"Day26\", \"Day27\", \"Day29\", \"Day31\", \"Day60\", \"TreatmentEnd\"]\r\n\r\n BooleanData: boolean[][] = [ //[sampleType],[visit] == has sample\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false),\r\n new Array(this.timepoints.length).fill(false)\r\n\r\n /*[false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false],\r\n [false, false, false, false, false, false, false]*/\r\n ];\r\n\r\n AllBooleanData: boolean[][] = [ //[sampleType],[visit] == has sample\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false),\r\n new Array(this.allTimepoints.length).fill(false)\r\n ];\r\n\r\n CountData: number[][] = [ //[sampleType],[visit] == count\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0),\r\n new Array(this.timepoints.length).fill(0)\r\n\r\n /*[0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0],\r\n [0, 0, 0, 0, 0, 0, 0]*/\r\n ];\r\n\r\n constructor() { }\r\n}","import { SampleRequestFormData } from './sample-request-form-data.entities'\r\nimport { SampleRequestCommentData } from './sample-request-form-data.entities'\r\nimport { FormatDate } from '../../../shared/scripts/date-functions'\r\nimport { plainToClass } from 'class-transformer';\r\n\r\ndeclare var $: any;\r\n\r\nexport class RequestDashboardStatusHistoryModal {\r\n currentForm: SampleRequestFormData;\r\n allComments: SampleRequestCommentData[];\r\n currentComment: SampleRequestCommentData;\r\n\r\n constructor(allComments: SampleRequestCommentData[]) {\r\n this.allComments = allComments.sort((a, b) => b.id - a.id); \r\n } \r\n\r\n public populateStatusHistory(formId: string) {\r\n // clear existing comments\r\n $(\"#status-history-table\").empty();\r\n\r\n // parse Id\r\n let parsedId = parseInt(formId);\r\n\r\n if (parsedId != NaN) {\r\n\r\n let formComments = this.allComments.filter(comment => comment.sampleRequestFormId == parsedId && comment.beforeStatus != comment.afterStatus);\r\n\r\n let commentHTML = ``;\r\n\r\n // create HTML object\r\n if (formComments.length > 0) {\r\n commentHTML += `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n\r\n formComments.forEach((comment, i) => {\r\n let startDate = new Date(comment.creationDate);\r\n let endDate = new Date(Date.now());\r\n\r\n if (i > 0) {\r\n endDate = new Date(formComments[i - 1].creationDate);\r\n }\r\n\r\n let timeDifference = endDate.getTime() - startDate.getTime();\r\n let dayDifference = Math.round(timeDifference / (1000 * 3600 * 24));\r\n\r\n commentHTML += `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n\r\n commentHTML += `\r\n \r\n
StatusDays in StatusDateFeedback
${comment.afterStatus}${dayDifference}${FormatDate(comment.creationDate)}${comment.comment}
\r\n `;\r\n\r\n\r\n }\r\n else {\r\n commentHTML += `\r\n
\r\n

There is currently no feedback for this request.

\r\n
\r\n `;\r\n }\r\n\r\n // fill comment modal\r\n $(\"#status-history-table\").append(commentHTML);\r\n }\r\n\r\n }\r\n\r\n}","\r\n// SCRIPTS\r\n\r\nimport { SecureHomePage } from './home/home.page'; export { SecureHomePage };\r\nimport { InventorySummaryPage } from './inventory-summary/scripts/inventory-summary.page'; export { InventorySummaryPage };\r\nimport { SampleSearchPage } from './sample-search/scripts/sample-search.page'; export { SampleSearchPage };\r\nimport { SampleRequestPage } from './sample-request/scripts/sample-request.page'; export { SampleRequestPage };\r\nimport { RequestDashboardPage } from './request-dashboard/request-dashboard.page'; export { RequestDashboardPage };\r\n//import { ContactUsPage } from './contact-us/contact-us.page'; export { ContactUsPage };\r\n//import { FundingPage } from './funding/funding.page'; export { FundingPage };\r\n//import { NewsEventsPage } from './news-events/news-events.page'; export { NewsEventsPage };\r\n////import { StudiesPage } from './studies/scripts/studies.page'; export { StudiesPage };\r\n//import { AboutPage } from './about/about.page'; export { AboutPage };\r\n//import { FaqsPage } from './faqs/faqs.page'; export { FaqsPage };\r\n//import { ResearchPage } from './research/research.page'; export { ResearchPage };\r\n//import { WhoWeArePage } from './who-we-are/who-we-are.page'; export { WhoWeArePage };\r\n//import { ResearchWorksPage } from './research-works/research-works.page'; export { ResearchWorksPage };\r\n//import { CommunityPage } from './community/community.page'; export { CommunityPage };\r\n//import { LongCovidPage } from './long-covid/long-covid.page'; export { LongCovidPage };\r\n\r\n// STYLES\r\nimport './home/home.scss';\r\nimport './inventory-summary/inventory-summary.scss';\r\nimport './sample-search/sample-search.scss';\r\nimport './request-dashboard/request-dashboard.scss';\r\nimport './resource/resource.scss';\r\n//import './contact-us/contact-us.scss';\r\n//import './funding/funding.scss';\r\n//import './news-events/news-events.scss';\r\n//import './about/about.scss';\r\n//import './faqs/faqs.scss';\r\n//import './research/research.scss';\r\n//import './who-we-are/who-we-are.scss';\r\n//import './research-works/research-works.scss';\r\n//import './community/community.scss';\r\n//import './long-covid/long-covid.scss';\r\nimport './sample-request/sample-request.scss';\r\nimport './sample-request/submit/submit.scss';","import { CountUp } from 'countup.js';\r\nimport { plainToClass } from \"class-transformer\";\r\nimport 'waypoints/lib/jquery.waypoints.min';\r\n\r\n\r\nexport class SecureHomePage {\r\n\r\n constructor(summaryStatsJson: any) {\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n //console.log(summaryStatsJson);\r\n\r\n let summaryStats: SummaryStats = plainToClass(SummaryStats, summaryStatsJson);\r\n\r\n $('#study-count').text(summaryStats.Studies)\r\n $('#participant-count').text(summaryStats.Participants)\r\n $('#types-count').text(summaryStats.SampleTypes)\r\n $('#sample-count').text(summaryStats.Samples)\r\n\r\n this.initializeCounters();\r\n\r\n });\r\n\r\n }\r\n\r\n initializeCounters(): void {\r\n\r\n ($('.countup')).waypoint({\r\n handler: function () {\r\n const counter = new CountUp(this.element, this.element.textContent, { useEasing: false, duration: 1 });\r\n if (!counter.error) {\r\n counter.start();\r\n }\r\n this.destroy();\r\n },\r\n offset: 'bottom-in-view'\r\n });\r\n }\r\n}\r\n\r\nexport class SummaryStats {\r\n Studies: number;\r\n Participants: number;\r\n SampleTypes: number;\r\n Samples: number;\r\n}","import { SampleRequestFormData, SampleRequestsData } from '../../request-dashboard/scripts/sample-request-form-data.entities';\r\nimport { UserQuery } from '../../../shared/entities/user-query/user-query.entities';\r\nimport { SampleRow, UserContactObj } from './sample-request.entities';\r\nimport { RequestSamples } from \"./sample-request.samples\";\r\n\r\nexport class RequestPrepopulate {\r\n requestSamples: RequestSamples;\r\n\r\n constructor() {\r\n this.requestSamples = new RequestSamples();\r\n }\r\n\r\n populateForm(formData: SampleRequestFormData, userData: UserContactObj) {\r\n\r\n // remove disabled progress tabs if data was entered\r\n if (formData.requestorFirstName != null) {\r\n $(\".contact-info\").removeClass(\"disable-tab\");\r\n $(\".shipping-info\").removeClass(\"disable-tab\");\r\n }\r\n\r\n if (formData.shippingFirstName != null) {\r\n $(\".shipping-info\").removeClass(\"disable-tab\");\r\n $(\".project-approach\").removeClass(\"disable-tab\");\r\n }\r\n\r\n if (formData.approach != null) {\r\n $(\".project-approach\").removeClass(\"disable-tab\");\r\n $(\".admin-details\").removeClass(\"disable-tab\");\r\n }\r\n\r\n if (formData.sharingPlan != null) {\r\n $(\".admin-details\").removeClass(\"disable-tab\");\r\n $(\".samples-request\").removeClass(\"disable-tab\");\r\n }\r\n\r\n if (formData.additionalDetail != null) {\r\n $(\".additional-info\").removeClass(\"disable-tab\");\r\n }\r\n\r\n // set form id\r\n $(\"#hidden-form-id\").val(formData.id);\r\n\r\n // Contact Info\r\n if (formData.requestorFirstName == null || formData.requestorFirstName == \"\") {\r\n $(\"#requestor-first-name\").val(userData.firstName);\r\n }\r\n\r\n if (formData.requestorLastName == null || formData.requestorLastName == \"\") {\r\n $(\"#requestor-last-name\").val(userData.lastName);\r\n }\r\n\r\n if (formData.requestorEmail == null || formData.requestorEmail == \"\") {\r\n $(\"#requestor-email\").val(userData.email);\r\n }\r\n\r\n // Institution Type (if \"Other\")\r\n if (formData.institutionType != \"Academic\" && formData.institutionType != \"Industry\" && formData.institutionType != null) {\r\n $(\"#institution-type-select\").val(\"Other\").change();\r\n $(\"#other-institution-type-input\").val(formData.institutionType);\r\n }\r\n\r\n // Country Codes / Telephone Numbers \"+1 (919)-555-5555\" || null\r\n if (formData.requestorTelephone != null) {\r\n let telephoneArr = formData.requestorTelephone.split(\" \");\r\n let countryCode = telephoneArr.shift();\r\n let telephoneNumber = telephoneArr.join(\" \");\r\n $(\"#requestor-telephone\").val(telephoneNumber);\r\n $(\"#requestor-telephone-code\").val(countryCode.replace(\"+\", \"\")).change();\r\n }\r\n\r\n if (formData.shippingTelephone != null) {\r\n let telephoneArr = formData.shippingTelephone.split(\" \");\r\n let countryCode = telephoneArr.shift();\r\n let telephoneNumber = telephoneArr.join(\" \");\r\n $(\"#shipping-telephone\").val(telephoneNumber);\r\n $(\"#shipping-telephone-code\").val(countryCode.replace(\"+\", \"\")).change();\r\n }\r\n\r\n\r\n // PI Names \"Hannah Williams|John Smith\" || null\r\n if (formData.piNames != null) {\r\n $(\"#no-pi-placeholder\").hide(); // hide no-pi text\r\n\r\n let piNameArr = formData.piNames.split(\"|\");\r\n piNameArr.forEach(name => {\r\n let newAdd = `
${name}
`\r\n $(\"#pi-names\").append(newAdd);\r\n });\r\n\r\n // add remove item functionality\r\n $(\"#pi-names\").find(\".rm-item\").click(function () {\r\n $(this).parent().parent().remove();\r\n if ($(\"#pi-names\").find(\".added-item\").length == 0) {\r\n $(\"#no-pi-placeholder\").show();\r\n }\r\n });\r\n }\r\n\r\n // Funding Available \"true/false\"\r\n if (formData.fundingAvailable == true) {\r\n $(\"#funding-available\").val(\"Yes\");\r\n $(\"#funding-sources\").removeClass(\"inactive-section\");\r\n\r\n if (formData.nihFunding == true) {\r\n $(\"#project-specify-award-section\").removeClass(\"inactive-section\");\r\n }\r\n\r\n if (formData.otherFederalFunding == true) {\r\n $(\"#project-specify-agency-section\").removeClass(\"inactive-section\");\r\n }\r\n\r\n if (formData.otherFunding == true) {\r\n $(\"#project-other-specify-section\").removeClass(\"inactive-section\");\r\n }\r\n }\r\n else if (formData.fundingAvailable == false && formData.sharingPlan != null) {\r\n $(\"#funding-available\").val(\"No\");\r\n $(\"#a-funding-sources\").removeClass(\"inactive-section\");\r\n\r\n if (formData.anticipatedOtherFederalFunding == true) {\r\n $(\"#a-project-specify-agency-section\").removeClass(\"inactive-section\");\r\n }\r\n\r\n if (formData.anticipatedOtherFunding == true) {\r\n $(\"#a-project-other-specify-section\").removeClass(\"inactive-section\");\r\n }\r\n }\r\n else {\r\n $(\"#funding-available\").val(\"\").change(); // no saved data for question\r\n }\r\n\r\n // Has Award Been Submitted\r\n if (formData.anticipatedFundingSubmissionCheck && formData.anticipatedFundingSubmission != \"\" && formData.anticipatedFundingSubmission != null) {\r\n $(\"#a-project-submission-section\").removeClass(\"inactive-section\");\r\n }\r\n\r\n // Non Nullable Dates \"0001-01-01T00:00:00\"\r\n // startDate\r\n if (formData.startDate == \"0001-01-01T00:00:00\") {\r\n $(\"#project-start-date\").val(\"\");\r\n }\r\n // completionDate\r\n if (formData.completionDate == \"0001-01-01T00:00:00\") {\r\n $(\"#project-end-date\").val(\"\");\r\n }\r\n // anticipatedClinicalDataDate\r\n if (formData.anticipatedClinicalDataDate == \"0001-01-01T00:00:00\") {\r\n $(\"#clinical-data-date\").val(\"\");\r\n }\r\n\r\n // Clinical Data \r\n if (formData.clinicalData == \"Not Yet Requested\" || formData.clinicalData == \"Not Applicable\") {\r\n $(\"#clinical-data-additional-section\").removeClass(\"inactive-section\");\r\n }\r\n\r\n if (formData.clinicalData == \"Requested\" || formData.clinicalData == \"Approved\") {\r\n $(\"#clinical-data-date-section\").removeClass(\"inactive-section\");\r\n\r\n if (formData.clinicalData == \"Requested\") {\r\n $(\"#clinical-data-date-label\").text(\"Anticipated Date of Approval for Clinical Data Request:\");\r\n }\r\n\r\n if (formData.clinicalData == \"Approved\") {\r\n $(\"#clinical-data-date-label\").text(\"Anticipated Date for Receipt of Dataset:\");\r\n }\r\n }\r\n\r\n // activate word count for those that require it\r\n $(\".word-count\").trigger(\"keypress\");\r\n }\r\n\r\n prepopulateModal() {\r\n $(\"#sample-nickname\").val(\"Fostamatinib\");\r\n $(\"#sample-study\").val(\"ACTIV4 Host Tissue\").change();\r\n $(\"#sample-type\").val(\"EDTA Plasma\").change();\r\n $(\"#sample-treatment-arm\").val(\"Fostamatinib\").change();\r\n $(\"#sample-quantity\").val(\"200\");\r\n $(\"#sample-volume\").val(\"500\");\r\n $(\"#sample-units\").val(\"μl\");\r\n // get all the timepoint-checks\r\n let timepointChecks = $(\".timepoint-check\");\r\n timepointChecks.each(function () {\r\n if ($(this).val() == \"Day 1\") {\r\n // no nothing\r\n } else {\r\n $(this).prop('checked', true);\r\n }\r\n })\r\n //$(\".timepoint-check\").first().prop('checked', true);\r\n $(\"#sample-query-list\").children().hide();\r\n let newQueryAdd = `
Fostamatinib
`\r\n $(\"#sample-query-list\").append(newQueryAdd);\r\n\r\n $(\"#sample-query-list\").find(\".rm-item\").click(function () {\r\n $(this).parent().parent().remove();\r\n if ($(\"#sample-query-list\").find(\".added-item\").length == 0) {\r\n $(\"#sample-query-list\").children(\".added-query-placeholder\").show();\r\n }\r\n });\r\n $(\"#sample-other-specifications\").val(\"active treatment\");\r\n }\r\n}","import { SampleRequestStudy, SampleRow, ShippingAddress } from \"./sample-request.entities\";\r\nimport { RequestContact } from \"./sample-request.entities\";\r\nimport { RequestShipping } from \"./sample-request.entities\";\r\nimport { RequestProjectDetails } from \"./sample-request.entities\";\r\nimport { RequestAdditionalInfo } from \"./sample-request.entities\";\r\nimport { SampleRequestForm } from \"./sample-request.entities\";\r\nimport { RequestSamples } from \"./sample-request.samples\";\r\n\r\nexport class RequestReview {\r\n SampleRequestForm: SampleRequestForm;\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n // generates review page\r\n runReview(requestSamples:RequestSamples) {\r\n this.createFormObj(requestSamples);\r\n\r\n // Contact Info\r\n $(\"#review-requestor-first-name\").text(this.SampleRequestForm.RequestContact.FirstName);\r\n $(\"#review-requestor-last-name\").text(this.SampleRequestForm.RequestContact.LastName);\r\n $(\"#review-institution-name\").text(this.SampleRequestForm.RequestContact.Institution);\r\n $(\"#review-institution-type\").text(this.SampleRequestForm.RequestContact.InstitutionType);\r\n $(\"#review-requestor-telephone\").text(this.SampleRequestForm.RequestContact.Telephone);\r\n $(\"#review-requestor-email\").text(this.SampleRequestForm.RequestContact.Email);\r\n\r\n // Shipment Info\r\n // convert shipping address\r\n let shippingAddress = this.SampleRequestForm.RequestShipping.ShippingAddress;\r\n let shippingString = `${shippingAddress.Street ? shippingAddress.Street + \", \" : \"\"}${shippingAddress.Street2 ? shippingAddress.Street2 + \", \" : \"\"}${shippingAddress.City ? shippingAddress.City + \", \" : \"\"}${shippingAddress.State ? shippingAddress.State + \", \" : \"\"}${shippingAddress.Zip ? shippingAddress.Zip : \"\"}`;\r\n\r\n $(\"#review-shipping-laboratory-name\").text(this.SampleRequestForm.RequestShipping.LaboratoryName);\r\n $(\"#review-shipping-first-name\").text(this.SampleRequestForm.RequestShipping.FirstName);\r\n $(\"#review-shipping-last-name\").text(this.SampleRequestForm.RequestShipping.LastName);\r\n $(\"#review-shipping-telephone\").text(this.SampleRequestForm.RequestShipping.Telephone);\r\n $(\"#review-shipping-email\").text(this.SampleRequestForm.RequestShipping.Email);\r\n $(\"#review-shipping-country\").text(this.SampleRequestForm.RequestShipping.Country);\r\n $(\"#review-shipping-address\").text(shippingString);\r\n $(\"#review-shipping-special-instructions\").text(this.SampleRequestForm.RequestShipping.SpecialInstructions);\r\n $(\"#review-shipping-account-name\").text(this.SampleRequestForm.RequestShipping.ShippingAccountName);\r\n $(\"#review-shipping-account-number\").text(this.SampleRequestForm.RequestShipping.AccountNumber);\r\n $(\"#review-shipping-agreement-first-name\").text(this.SampleRequestForm.RequestShipping.AgreementContactFirstName);\r\n $(\"#review-shipping-agreement-last-name\").text(this.SampleRequestForm.RequestShipping.AgreementContactLastName);\r\n $(\"#review-shipping-agreement-telephone\").text(this.SampleRequestForm.RequestShipping.AgreementContactTelephone);\r\n $(\"#review-shipping-agreement-email\").text(this.SampleRequestForm.RequestShipping.AgreementContactEmail);\r\n\r\n // Project Details\r\n $(\"#review-project-title\").text(this.SampleRequestForm.RequestProjectDetails.ProjectTitle);\r\n $(\"#review-short-title\").text(this.SampleRequestForm.RequestProjectDetails.ShortTitle);\r\n $(\"#review-pi-names\").text(this.SampleRequestForm.RequestProjectDetails.PINames.join(\", \"));\r\n $(\"#review-background\").text(this.SampleRequestForm.RequestProjectDetails.Background);\r\n $(\"#review-scientific-aims\").text(this.SampleRequestForm.RequestProjectDetails.ScientificAims);\r\n $(\"#review-significance\").text(this.SampleRequestForm.RequestProjectDetails.Significance);\r\n $(\"#review-methods\").text(this.SampleRequestForm.RequestProjectDetails.Methods);\r\n $(\"#review-sample-size\").text(this.SampleRequestForm.RequestProjectDetails.Approach);\r\n $(\"#review-clinical-data\").text(this.SampleRequestForm.RequestProjectDetails.ClinicalData);\r\n $(\"#review-additional-clinical-data\").text(this.SampleRequestForm.RequestProjectDetails.AdditionalClinicalData);\r\n $(\"#review-clinical-data-date\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedClinicalDataDate == \"\" ? \"N/A\" : this.SampleRequestForm.RequestProjectDetails.AnticipatedClinicalDataDate);\r\n\r\n // Admin Details\r\n $(\"#review-data-sharing-plan\").text(this.SampleRequestForm.RequestProjectDetails.SharingPlan);\r\n $(\"#review-timepoint\").text(this.SampleRequestForm.RequestProjectDetails.Timepoint);\r\n $(\"#review-start-date\").text(this.SampleRequestForm.RequestProjectDetails.StartDate);\r\n $(\"#review-end-date\").text(this.SampleRequestForm.RequestProjectDetails.CompletionDate);\r\n $(\"#review-funding-available\").text(this.SampleRequestForm.RequestProjectDetails.FundingAvailable);\r\n $(\"#review-nih-check\").text(this.SampleRequestForm.RequestProjectDetails.NIHCheck ? \"Yes\" : \"No\");\r\n $(\"#review-nih-award-number\").text(this.SampleRequestForm.RequestProjectDetails.NIHAwardNumber);\r\n $(\"#review-other-federal-check\").text(this.SampleRequestForm.RequestProjectDetails.OtherFederalAgencyCheck ? \"Yes\" : \"No\");\r\n $(\"#review-other-agency\").text(this.SampleRequestForm.RequestProjectDetails.OtherFederalAgencyName);\r\n $(\"#review-foundation-check\").text(this.SampleRequestForm.RequestProjectDetails.FoundationCheck ? \"Yes\" : \"No\");\r\n $(\"#review-industry-check\").text(this.SampleRequestForm.RequestProjectDetails.IndustryCheck ? \"Yes\" : \"No\");\r\n $(\"#review-other-check\").text(this.SampleRequestForm.RequestProjectDetails.OtherCheck ? \"Yes\" : \"No\");\r\n $(\"#review-other-funding\").text(this.SampleRequestForm.RequestProjectDetails.OtherFundingName);\r\n\r\n let isFunded: boolean;\r\n this.SampleRequestForm.RequestProjectDetails.FundingAvailable == \"Yes\" ? isFunded = true : isFunded = false;\r\n\r\n\r\n //Anticipated Funding\r\n $(\"#a-review-nih-check\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedNIHCheck ? \"Yes\" : \"No\");\r\n //$(\"#a-review-nih-award-number\").text(SampleRequestForm.RequestProjectDetails.AnticipatedNIHAwardNumber);\r\n $(\"#a-review-other-federal-check\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedOtherFederalAgencyCheck ? \"Yes\" : \"No\");\r\n $(\"#a-review-other-agency\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedOtherFederalAgencyName);\r\n $(\"#a-review-foundation-check\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedFoundationCheck ? \"Yes\" : \"No\");\r\n $(\"#a-review-industry-check\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedIndustryCheck ? \"Yes\" : \"No\");\r\n $(\"#a-review-other-check\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedOtherCheck ? \"Yes\" : \"No\");\r\n $(\"#a-review-other-funding\").text(this.SampleRequestForm.RequestProjectDetails.AnticipatedOtherFudingName);\r\n $(\"#a-review-application-submit\").text(isFunded ? \"N/A\" : this.SampleRequestForm.RequestProjectDetails.AnticipatedFundingCheck);\r\n $(\"#a-review-application-submit-date\").text(isFunded ? \"N/A\" : this.SampleRequestForm.RequestProjectDetails.AnticipatedFundingCheck == \"Yes\" ? this.SampleRequestForm.RequestProjectDetails.AnticipatedFundingSubmission : \"\");\r\n $(\"#a-review-application-award-date\").text(isFunded ? \"N/A\" : this.SampleRequestForm.RequestProjectDetails.AnticipatedFundingAward);\r\n\r\n // Samples Requested\r\n\r\n // clear out any data that was previously on the page\r\n $(\"#review-samples-requested\").find(\"table\").remove();\r\n $(\"#hidden-sample-fields\").empty();\r\n\r\n // Remove Unnecessary Rows\r\n\r\n // Clinical Data Anticipated Date\r\n if (this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Requested\" || this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Approved\") {\r\n $(\"#review-clinical-data-date-table-row\").removeClass(\"inactive-section\");\r\n\r\n if (this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Requested\") {\r\n $(\"#review-clinical-data-date-label\").text(\"Anticipated Date of Approval for Clinical Data Request:\");\r\n }\r\n\r\n if (this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Approved\") {\r\n $(\"#review-clinical-data-date-label\").text(\"Anticipated Date for Receipt of Dataset:\");\r\n }\r\n }\r\n else {\r\n $(\"#review-clinical-data-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n\r\n // Clinical Data Additional Info\r\n if (this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Not Yet Requested\" || this.SampleRequestForm.RequestProjectDetails.ClinicalData == \"Not Applicable\") {\r\n $(\"#review-additional-clinical-table-row\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#review-additional-clinical-table-row\").addClass(\"inactive-section\");\r\n }\r\n\r\n // Funding Sources\r\n if (this.SampleRequestForm.RequestProjectDetails.FundingAvailable == \"Yes\") {\r\n // funding available\r\n $(\"#review-funding-sources-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-review-funding-sources-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-review-application-submit-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-review-application-award-date-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-review-application-submit-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n else {\r\n // anticipated funding available\r\n $(\"#review-funding-sources-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-review-funding-sources-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-review-application-submit-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-review-application-award-date-table-row\").removeClass(\"inactive-section\");\r\n\r\n if (this.SampleRequestForm.RequestProjectDetails.AnticipatedFundingCheck == \"Yes\") {\r\n $(\"#a-review-application-submit-date-table-row\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#a-review-application-submit-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n }\r\n\r\n // creates table for samples requested\r\n this.SampleRequestForm.SampleRows.forEach((sample, i) => {\r\n // format timepoint(s) and query string\r\n let timepointString = sample.Timepoint.split(\",\").join(\", \"); //remove\r\n\r\n let timepointHTMLTableContent = \"\";\r\n sample.Timepoint.split(\",\").forEach(timepoint => {\r\n timepointHTMLTableContent += `${timepoint}`;\r\n })\r\n\r\n let timepointHTMLTable = `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${timepointHTMLTableContent}\r\n \r\n
Timepoint(s)
\r\n `;\r\n\r\n let queryString = sample.Queries.split(\",\").join(\", \"); //remove\r\n\r\n let queryHTMLTableContent = \"\";\r\n sample.Queries.split(\",\").forEach(query => {\r\n queryHTMLTableContent += `${query}`;\r\n });\r\n\r\n let queryHTMLTable = `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${queryHTMLTableContent}\r\n \r\n
Queries
\r\n `;\r\n\r\n $(\"#review-samples-requested\").append(\r\n `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Request #${i + 1}: ${sample.Nickname}
Study:${sample.Study}
Biospecimen Type:${sample.SampleType}
Treatment Arm:${sample.TreatmentArm}
Number of Biospecimens Requested per Timepoint:${sample.Quantity}
Amount Needed per Biospecimen:${sample.Volume} ${sample.Unit}
Timepoint(s):\r\n ${timepointHTMLTable} \r\n
Queries:\r\n ${queryHTMLTable}\r\n
Other Specifications:${sample.OtherSpecifications}
`\r\n );\r\n\r\n let sampleId = 0;\r\n if (sample.Id != null || sample.Id != undefined) {\r\n sampleId = sample.Id;\r\n }\r\n\r\n // used for data binding\r\n $(\"#hidden-sample-fields\").append(`\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `);\r\n\r\n })\r\n\r\n // Additional Info\r\n $(\"#review-additional-population\").text(this.SampleRequestForm.RequestAdditionalInfo.ParticipantDescription);\r\n $(\"#review-additional-detail\").text(this.SampleRequestForm.RequestAdditionalInfo.AdditionalDetail);\r\n\r\n // Hidden Fields\r\n $(\"#hiddenPINames\").val(this.SampleRequestForm.RequestProjectDetails.PINames.join(\"|\"))\r\n }\r\n\r\n // creates object from the form input fields\r\n createFormObj(requestSamples: RequestSamples) {\r\n // Contact information\r\n // check to see if other is checked for institution type\r\n let institutionType = $(\"#institution-type-select\").val().toString();\r\n if ($(\"#other-institution-type-input\").val() != \"\") {\r\n institutionType = $(\"#other-institution-type-input\").val().toString();\r\n }\r\n\r\n // create an object for the Requestor Contact\r\n let contactTelephone = \"+\" + $(\"#requestor-telephone-code\").val().toString() + \" \" + $(\"#requestor-telephone\").val().toString();\r\n let ContactInfoObj: RequestContact = {\r\n FirstName: $(\"#requestor-first-name\").val().toString(),\r\n LastName: $(\"#requestor-last-name\").val().toString(),\r\n Institution: $(\"#institution\").val().toString(),\r\n InstitutionType: institutionType,\r\n Telephone: contactTelephone,\r\n Email: $(\"#requestor-email\").val().toString()\r\n }\r\n\r\n // Shipment Information\r\n // Shipping Address\r\n let ShipmentAddressObj: ShippingAddress = {\r\n Street: $(\"#shipping-address\").val().toString(),\r\n Street2: $(\"#shipping-address2\").val().toString(),\r\n City: $(\"#shipping-city\").val().toString(),\r\n State: $(\"#shipping-state\").val().toString(),\r\n Zip: $(\"#shipping-zip\").val().toString()\r\n }\r\n\r\n let shipTelephone = \"+\" + $(\"#shipping-telephone-code\").val().toString() + \" \" + $(\"#shipping-telephone\").val().toString();\r\n\r\n let ShipmentInfoObj: RequestShipping = {\r\n LaboratoryName: $(\"#shipping-laboratory-name\").val().toString(),\r\n FirstName: $(\"#shipping-first-name\").val().toString(),\r\n LastName: $(\"#shipping-last-name\").val().toString(),\r\n Telephone: shipTelephone,\r\n Email: $(\"#shipping-email\").val().toString(),\r\n Country: $(\"#shipping-country\").val().toString(),\r\n ShippingAddress: ShipmentAddressObj,\r\n ShippingAccountName: $(\"#shipping-account-name\").val().toString(),\r\n AccountNumber: $(\"#shipping-account\").val().toString(),\r\n SpecialInstructions: $(\"#shipping-special-instructions\").val().toString(),\r\n AgreementContactFirstName: $(\"#shipping-agreement-first-name\").val().toString(),\r\n AgreementContactLastName: $(\"#shipping-agreement-last-name\").val().toString(),\r\n AgreementContactTelephone: $(\"#shipping-agreement-telephone\").val().toString(),\r\n AgreementContactEmail: $(\"#shipping-agreement-email\").val().toString()\r\n }\r\n\r\n // Project Details Information\r\n // get PI names and place them into an array\r\n let piNames = [];\r\n $(\"#pi-names\").find(\"span\").map(function () {\r\n piNames.push($(this).text().toString());\r\n })\r\n\r\n let ProjectDetailsObj: RequestProjectDetails = {\r\n ProjectTitle: $(\"#project-title\").val().toString(),\r\n ShortTitle: $(\"#project-short-title\").val().toString(),\r\n PINames: piNames,\r\n Background: $(\"#project-background\").val().toString(),\r\n ScientificAims: $(\"#project-scientific-aims\").val().toString(),\r\n Significance: $(\"#project-significance\").val().toString(),\r\n Methods: $(\"#project-methods\").val().toString(),\r\n Approach: $(\"#project-sample-size\").val().toString(),\r\n SharingPlan: $(\"#project-sharing-plan\").val().toString(),\r\n Timepoint: $(\"#project-ability\").val().toString(),\r\n StartDate: $(\"#project-start-date\").val().toString(),\r\n CompletionDate: $(\"#project-end-date\").val().toString(),\r\n FundingAvailable: $(\"#funding-available\").val().toString(),\r\n NIHCheck: $(\"#funding-NIH\").is(\":checked\"),\r\n AnticipatedNIHCheck: $(\"#a-funding-NIH\").is(\":checked\"),\r\n NIHAwardNumber: $(\"#project-specify-award\").val().toString(),\r\n //AnticipatedNIHAwardNumber: $(\"#a-project-specify-award\").val().toString(),\r\n OtherFederalAgencyCheck: $(\"#funding-other-US\").is(\":checked\"),\r\n AnticipatedOtherFederalAgencyCheck: $(\"#a-funding-other-US\").is(\":checked\"),\r\n OtherFederalAgencyName: $(\"#project-specify-agency\").val().toString(),\r\n AnticipatedOtherFederalAgencyName: $(\"#a-project-specify-agency\").val().toString(),\r\n FoundationCheck: $(\"#funding-foundation\").is(\":checked\"),\r\n AnticipatedFoundationCheck: $(\"#a-funding-foundation\").is(\":checked\"),\r\n IndustryCheck: $(\"#funding-industry\").is(\":checked\"),\r\n AnticipatedIndustryCheck: $(\"#a-funding-industry\").is(\":checked\"),\r\n OtherCheck: $(\"#funding-other\").is(\":checked\"),\r\n AnticipatedOtherCheck: $(\"#a-funding-other\").is(\":checked\"),\r\n OtherFundingName: $(\"#project-other-specify\").val().toString(),\r\n AnticipatedOtherFudingName: $(\"#a-project-other-specify\").val().toString(),\r\n AnticipatedFundingCheck: $(\"#a-funding-available\").val().toString(),\r\n AnticipatedFundingSubmission: $(\"#a-project-funding-submission\").val().toString(),\r\n AnticipatedFundingAward: $(\"#a-project-funding-award\").val().toString(),\r\n ClinicalData: $(\"#clinical-data\").val().toString(),\r\n AnticipatedClinicalDataDate: $(\"#clinical-data-date\").val().toString(),\r\n AdditionalClinicalData: $(\"#clinical-data-additional\").val().toString()\r\n }\r\n\r\n let AdditionalInfoObj: RequestAdditionalInfo = {\r\n ParticipantDescription: $(\"#additional-info-participant-pop\").val().toString(),\r\n AdditionalDetail: $(\"#additional-info-detail\").val().toString(),\r\n }\r\n\r\n this.SampleRequestForm = {\r\n RequestContact: ContactInfoObj,\r\n RequestShipping: ShipmentInfoObj,\r\n RequestProjectDetails: ProjectDetailsObj,\r\n SampleRows: requestSamples.sampleRows,\r\n RequestAdditionalInfo: AdditionalInfoObj\r\n }\r\n }\r\n}","\r\n//Durstenfeld Approach: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#The_modern_algorithm\r\nexport function ShuffleArray(array: any[]) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n}\r\n\r\nexport function SplitAndJoin(input: string, splitDelimiter: string, outputDelimiter: string, sort: boolean, nowrap: boolean = false): string {\r\n let list: string[] = input.split(splitDelimiter);\r\n if (sort) { list.sort(); }\r\n let output: string = \"\";\r\n list.forEach((item: string, index: number) => {\r\n if (index > 0) output += outputDelimiter;\r\n if (nowrap) output += \"\";\r\n output += item;\r\n if (nowrap) output += \"\";\r\n });\r\n return output;\r\n}\r\n\r\nexport function Split(input: string, delimiter: string): string[] {\r\n let parts: string[] = input.split(delimiter);\r\n parts = parts.map((p: string) => p.trim());\r\n return parts;\r\n}\r\n\r\nexport function Join(list: string[], outputDelimiter: string, sort: boolean, nowrap: boolean = false): string {\r\n if (sort) { list.sort(); }\r\n let output: string = \"\";\r\n list.forEach((item: string, index: number) => {\r\n if (index > 0) output += outputDelimiter;\r\n if (nowrap) output += \"\";\r\n output += item;\r\n if (nowrap) output += \"\";\r\n });\r\n return output;\r\n}\r\n\r\nexport function Unique(values: string[], sort: boolean, lastValues: string[] = []): string[] {\r\n\r\n values = values.map((val: string) => {\r\n if (val.startsWith(\"Other\")) return \"Other\";\r\n else return val;\r\n });\r\n\r\n let unique: string[] = values.filter((n, i) => values.indexOf(n) === i);\r\n if (sort) {\r\n lastValues = lastValues.map((v: string) => v.toLowerCase());\r\n\r\n unique = unique.sort((a: string, b: string) => {\r\n a = a.toLowerCase();\r\n b = b.toLowerCase();\r\n\r\n if (lastValues.length == 0) { return (a > b ? 1 : -1); }\r\n else {\r\n let isALastValue: boolean = false;\r\n let isBLastValue: boolean = false;\r\n\r\n lastValues.forEach((v: string) => {\r\n if (a.startsWith(v)) { isALastValue = true; }\r\n if (b.startsWith(v)) { isBLastValue = true; }\r\n });\r\n\r\n if (!isALastValue && !isBLastValue) { return (a > b ? 1 : -1); }\r\n else if (isALastValue && !isBLastValue) {\r\n return 1;\r\n }\r\n else if (!isALastValue && isBLastValue) {\r\n return -1;\r\n }\r\n else {\r\n return (a > b ? 1 : -1);\r\n }\r\n }\r\n\r\n //if (a.startsWith(v) && b.startsWith(v)) { return (a > b ? 1 : -1); }\r\n //else if (a.startsWith(v)) { return 1; }\r\n //else if (b.startsWith(v)) { return -1; }\r\n //else return (a > b ? 1 : -1);\r\n\r\n\r\n });\r\n\r\n //unique.sort();\r\n }\r\n return unique;\r\n}\r\n\r\nexport function FormatStringByWordLength(value: string, wordsOnLine: number): string {\r\n let parts: string[] = value.split(\" \");\r\n let output: string = \"\";\r\n for (let i = 0; i < parts.length; ++i) {\r\n output += parts[i] + \" \";\r\n if (i == (wordsOnLine - 1)) {\r\n output += \"\";\r\n }\r\n }\r\n\r\n if (parts.length < (wordsOnLine - 1)) { output += \"\"; }\r\n return output.trim();\r\n}\r\n\r\nexport function DoArraysOverlap(array1: any, array2: any): boolean {\r\n if (array1 == undefined || array2 == undefined) return false;\r\n return array1.some(r => array2.includes(r));\r\n}\r\n\r\nexport function NoWordWrap(input: string): string {\r\n return \"\" + input + \"\";\r\n}\r\n\r\nexport function CheckArrayStartsWith(array: string[], startsWithValue: string, appendValue: string): string[] {\r\n\r\n let includesValue: number = array.findIndex((value) => value.startsWith(startsWithValue));\r\n\r\n if (includesValue == -1) { return array; }\r\n else { array.push(appendValue); return array; }\r\n}","export function InitializeFilterDropdown(selectId: string, values: string[], tableFilter: IFilter, compoundValues: any[] = undefined, selected: boolean = true): void {\r\n $(selectId).selectpicker({\r\n dropupAuto: false,\r\n selectedTextFormat: \"count\",\r\n\r\n countSelectedText: (numSelected, numTotal) => {\r\n if (numSelected == numTotal) {\r\n return \"All\";\r\n }\r\n else {\r\n return numSelected + \" Selected\";\r\n }\r\n }\r\n });\r\n\r\n if (compoundValues == undefined) {\r\n values.forEach((element: any) => {\r\n $(selectId).append(new Option(element, element, false, selected));\r\n });\r\n }\r\n else {\r\n //compoundValues.forEach((element: ExpertiseArea) => {\r\n // $(selectId).append(new Option(element.Expertise, element.Id, false, selected));\r\n //});\r\n }\r\n\r\n $(selectId).selectpicker(\"refresh\");\r\n\r\n $(selectId).on('changed.bs.select', (e, clickedIndex, isSelected, previousValue) => {\r\n tableFilter.triggerFilter();\r\n });\r\n}\r\n\r\nexport function GetSelectedDropdownValues(selectId: string): any {\r\n return $(selectId).val();\r\n}\r\n\r\nexport interface IFilter {\r\n triggerFilter(): void;\r\n}","import { RequestNavigation } from \"./sample-request.navigation\";\r\nimport { SaveForm, SaveSampleForm } from \"./sample-request.entities\";\r\nimport { SampleRequestFormData, SampleRequestsData } from '../../request-dashboard/scripts/sample-request-form-data.entities';\r\nimport { SampleRow } from './sample-request.entities';\r\n\r\ndeclare var $: any;\r\n\r\nexport class RequestValidation {\r\n requestNavigation: RequestNavigation;\r\n\r\n constructor() {\r\n this.requestNavigation = new RequestNavigation();\r\n }\r\n\r\n // form validation\r\n validateForm() {\r\n\r\n // select all required input/select fields (custom word-count validation)\r\n let fields = $(\"input, select, textarea\").filter(\"[required]:visible\").not(\".word-count\");\r\n let allFields = $(\"input, select, textarea\").filter(\":visible\");\r\n fields.map(function () {\r\n // check and see if required values are blank\r\n let inputValue = $(this).val()\r\n // show error message if the required fields are left blank\r\n if (inputValue == \"\" || inputValue == null) {\r\n $(this).siblings(\".error-msg\")?.show();\r\n $(this).addClass(\"is-invalid\");\r\n }\r\n // hide any visible error messages if the required fields are completed\r\n else {\r\n $(this).siblings(\".error-msg\")?.hide();\r\n $(this).removeClass(\"is-invalid\");\r\n $(this).addClass(\"is-valid\");\r\n }\r\n })\r\n\r\n // word count validation\r\n this.wordCountValidate();\r\n\r\n // multi add validation\r\n this.multiAddValidate();\r\n\r\n // checkbox validation\r\n this.multicheckValidate();\r\n\r\n // samples requested validation (at least one)\r\n this.sampleRequestValidate();\r\n\r\n // check to see if there are any error messages present\r\n let errorMsgs = $(\".error-msg\").filter(\":visible\");\r\n //console.log(errorMsgs.length);\r\n // if errors are present, scroll to the top of the section\r\n if (errorMsgs.length > 0) {\r\n this.requestNavigation.scrollToTop();\r\n return false;\r\n } else {\r\n // if no errors, remove the validation classes\r\n allFields.map(function () {\r\n $(this).removeClass(\"is-invalid\");\r\n $(this).removeClass(\"is-valid\");\r\n })\r\n return true;\r\n }\r\n }\r\n\r\n\r\n wordCountValidate() {\r\n // get all the items that need to be validated\r\n let wordCountItems = $(\".word-count:visible\")\r\n\r\n // map through the elements\r\n wordCountItems.map(function () {\r\n // compare the word count to the allowed word count\r\n let maxCount = $(this).data(\"wordCount\");\r\n let currentCount = $(this).val().toString().split(\" \").length\r\n\r\n // if over the max word count or if the textbox is empty, add error msg\r\n if (currentCount > maxCount || $(this).val().toString() == \"\") {\r\n $(this).removeClass(\"is-valid\");\r\n $(this).addClass(\"is-invalid\");\r\n $(this).siblings(\".error-msg\").show();\r\n }\r\n else {\r\n $(this).removeClass(\"is-invalid\");\r\n $(this).addClass(\"is-valid\");\r\n $(this).siblings(\".error-msg\").hide();\r\n }\r\n })\r\n }\r\n\r\n multiAddValidate() {\r\n // select any visible multi add boxes\r\n let addedConent = $(\".added-content:visible\").find(\".added-item\");\r\n if (addedConent.length == 0) {\r\n $(\".multi-add:visible\").find(\".error-msg\").show();\r\n $(\".multi-add-input:visible\").addClass(\"is-invalid\");\r\n $(\".multi-add-input:visible\").removeClass(\"is-valid\");\r\n }\r\n else {\r\n $(\".multi-add:visible\").find(\".error-msg\").hide();\r\n $(\".multi-add-input:visible\").removeClass(\"is-invalid\");\r\n $(\".multi-add-input:visible\").addClass(\"is-valid\");\r\n }\r\n }\r\n\r\n multicheckValidate() {\r\n // check if funding sources is visible\r\n let isFundingSources = $(\"#funding-sources\").is(\":visible\");\r\n let isAFundingSources = $(\"#a-funding-sources\").is(\":visible\");\r\n\r\n // if funding-sources is visible, get all checkboxes in that div\r\n if (isFundingSources) {\r\n let fundingChecks = $(\"#funding-sources\").find(\"input:checkbox\");\r\n let isValid = false;\r\n // loop through existing checks and make sure at least one is checked\r\n fundingChecks.map(function () {\r\n if ($(this).is(\":checked\")) {\r\n isValid = true;\r\n }\r\n })\r\n if (!isValid) {\r\n $(\"#funding-source-error\").show();\r\n }\r\n else {\r\n $(\"#funding-source-error\").hide();\r\n }\r\n }\r\n\r\n if (isAFundingSources) {\r\n let fundingChecks = $(\"#a-funding-sources\").find(\"input:checkbox\");\r\n let isValid = false;\r\n fundingChecks.map(function () {\r\n if ($(this).is(\":checked\")) {\r\n isValid = true;\r\n }\r\n })\r\n if (!isValid) {\r\n $(\"#a-funding-source-error\").show();\r\n }\r\n else {\r\n $(\"#a-funding-source-error\").hide();\r\n }\r\n }\r\n }\r\n\r\n // checks to see that at least one sample is requested\r\n sampleRequestValidate() {\r\n // if the section of the form is visible\r\n let isSamplesSection = $(\"#samples-request\").is(\":visible\");\r\n let isNewModal = $(\"#new-sample-form\").is(\":visible\");\r\n let isUpdateModal = $(\"#update-sample-form\").is(\":visible\");\r\n\r\n // verify that table data exists\r\n if (isSamplesSection && !isNewModal && !isUpdateModal) {\r\n let isPopulated = !$(\"#no-samples-text\").is(\":visible\");\r\n\r\n // if no, add error msg\r\n if (!isPopulated) {\r\n $(\"#samples-request\").find(\".error-msg\").show();\r\n }\r\n else {\r\n $(\"#samples-request\").find(\".error-msg\").hide();\r\n }\r\n }\r\n\r\n }\r\n\r\n wordCount(textElement) {\r\n // get the current wordcount\r\n let textString = textElement.val().toString();\r\n let textArr = [];\r\n if (textString != \"\") {\r\n textArr = textString.split(\" \");\r\n //console.log(textArr.length);\r\n }\r\n let wordCount = textArr.length;\r\n\r\n // display current wordcount\r\n let wordCountDisplay = textElement.next().find(\".word-count-num\");\r\n wordCountDisplay.text(wordCount);\r\n\r\n // get the allowed wordcount\r\n let maxWordCount = textElement.data(\"wordCount\");\r\n\r\n // validate\r\n if (wordCount > maxWordCount) {\r\n textElement.addClass(\"is-invalid\");\r\n wordCountDisplay.addClass(\"error-msg\");\r\n }\r\n else {\r\n textElement.removeClass(\"is-invalid\");\r\n wordCountDisplay.removeClass(\"error-msg\");\r\n }\r\n }\r\n\r\n // updates database with current form data\r\n saveForm(requestedSamples: SampleRow[]) {\r\n // Form Data\r\n let formData: SaveForm = this.createSaveFormObject();\r\n let jsonData = JSON.stringify(formData);\r\n\r\n // Requested Samples\r\n let sampleArray: SaveSampleForm[] = [];\r\n requestedSamples.forEach(sample => {\r\n let requestedSample: SaveSampleForm = {\r\n Id: sample.Id,\r\n UserId: 0, // Fix on Backend\r\n SampleRequestFormId: 0, // Fix on Backend\r\n SampleQueryName: sample.Nickname,\r\n Study: sample.Study,\r\n SampleType: sample.SampleType,\r\n TreatmentArm: sample.TreatmentArm,\r\n Quantity: sample.Quantity,\r\n Volume: sample.Volume,\r\n Unit: sample.Unit,\r\n Timepoint: sample.Timepoint,\r\n Queries: sample.Queries,\r\n OtherSpecifications: sample.OtherSpecifications == \"\" ? null : sample.OtherSpecifications\r\n }\r\n\r\n sampleArray.push(requestedSample);\r\n })\r\n\r\n let jsonSampleData = JSON.stringify(sampleArray);\r\n\r\n // Show Saving Icon\r\n $(\"#saving-icon\").removeClass(\"transparent-text\");\r\n $(\"#saved-icon\").addClass(\"transparent-text\");\r\n $(\"#saving-text\").text(\"Saving... \");\r\n $(\"#saving-text\").removeClass(\"transparent-text\");\r\n\r\n $.ajax({\r\n url: '/secure/sample-request/sample-request?handler=SaveForm',\r\n method: \"POST\",\r\n //dataType: \"json\",\r\n //contentType: \"application/json\",\r\n data: { formData: jsonData, sampleData: jsonSampleData },\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response) => {\r\n\r\n //console.log(response);\r\n\r\n // Display Saved Status\r\n $(\"#saving-icon\").addClass(\"transparent-text\");\r\n $(\"#saved-icon\").removeClass(\"transparent-text\");\r\n $(\"#saving-text\").text(\"Saved \");\r\n // Hide the \"Saved\" text after 5 seconds (only if it still Says \"Saved\")\r\n setTimeout(() => {\r\n if ($(\"#saving-text\").text() == \"Saved \") {\r\n $(\"#saved-icon\").addClass(\"transparent-text\");\r\n $(\"#saving-text\").addClass(\"transparent-text\");\r\n }\r\n }, 3000) \r\n\r\n },\r\n error: (response) => {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n });\r\n }\r\n\r\n submitForm(requestedSamples: SampleRow[]) {\r\n // Form Data\r\n let formData: SaveForm = this.createSaveFormObject();\r\n formData.Status = \"Submitted\";\r\n\r\n $(\"#loading-submit\").removeClass(\"inactive-section\");\r\n \r\n let jsonData = JSON.stringify(formData);\r\n\r\n // Requested Samples\r\n let sampleArray: SaveSampleForm[] = [];\r\n requestedSamples.forEach(sample => {\r\n let requestedSample: SaveSampleForm = {\r\n Id: sample.Id,\r\n UserId: 0, // Fix on Backend\r\n SampleRequestFormId: 0, // Fix on Backend\r\n SampleQueryName: sample.Nickname,\r\n Study: sample.Study,\r\n SampleType: sample.SampleType,\r\n TreatmentArm: sample.TreatmentArm,\r\n Quantity: sample.Quantity,\r\n Volume: sample.Volume,\r\n Unit: sample.Unit,\r\n Timepoint: sample.Timepoint,\r\n Queries: sample.Queries,\r\n OtherSpecifications: sample.OtherSpecifications == \"\" ? null : sample.OtherSpecifications\r\n }\r\n\r\n sampleArray.push(requestedSample);\r\n })\r\n\r\n let jsonSampleData = JSON.stringify(sampleArray);\r\n\r\n // Email Content\r\n let emailContent = $(\"#review\").clone();\r\n $(emailContent).find(\".inactive-section\").remove();\r\n $(emailContent).find(\".butn\").remove();\r\n\r\n $.ajax({\r\n url: '/secure/sample-request/sample-request?handler=SaveForm',\r\n method: \"POST\",\r\n //dataType: \"json\",\r\n //contentType: \"application/json\",\r\n data: { formData: jsonData, sampleData: jsonSampleData, emailContent: emailContent.html() },\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response) => {\r\n\r\n //console.log(response);\r\n window.location.href = '/secure/submit';\r\n\r\n },\r\n error: (response) => {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n });\r\n }\r\n\r\n createSaveFormObject(): SaveForm {\r\n // Form Id\r\n let formId = 0;\r\n if ($(\"#hidden-form-id\").val() != \"\") {\r\n let parsedId = parseInt($(\"#hidden-form-id\").val());\r\n if (parsedId != NaN) {\r\n formId = parsedId;\r\n }\r\n }\r\n\r\n // Institution Type\r\n let institutionTypeString = $(\"#institution-type-select\").val();\r\n if ($(\"#institution-type-select\").val() == \"Other\") {\r\n institutionTypeString = $(\"#other-institution-type-input\").val();\r\n }\r\n\r\n // Requestor Telephone\r\n let requestorTelephoneString = \"\";\r\n if ($(\"#requestor-telephone\").val() != \"\") {\r\n requestorTelephoneString = \"+\" + $(\"#requestor-telephone-code\").val() + \" \" + $(\"#requestor-telephone\").val();\r\n }\r\n\r\n // Shipping Telephone\r\n let shippingTelephoneString = \"\";\r\n if ($(\"#shipping-telephone\").val() != \"\") {\r\n shippingTelephoneString = \"+\" + $(\"#shipping-telephone-code\").val() + \" \" + $(\"#shipping-telephone\").val();\r\n }\r\n\r\n // Shipping Country\r\n let shippingCountry = null;\r\n if ($(\"#shipping-email\").val() != \"\") {\r\n shippingCountry = $(\"#shipping-country\").val();\r\n }\r\n\r\n // PI Names\r\n let piNamesString = \"\";\r\n let piNames = [];\r\n $(\"#pi-names\").find(\"span\").map(function () {\r\n piNames.push($(this).text().toString());\r\n })\r\n\r\n if (piNames.length > 0) {\r\n piNamesString = piNames.join(\"|\");\r\n }\r\n\r\n // Date Formatting \"2000-02-01\"\r\n function parseDateString(stringToParse): Date {\r\n let timeString = \"T00:00:00\";\r\n stringToParse += timeString;\r\n return new Date(stringToParse);\r\n }\r\n\r\n let anticipatedClinicalDataDate = new Date(\"0001-01-01T00:00:00\");\r\n if ($(\"#clinical-data-date\").val() != \"\") {\r\n anticipatedClinicalDataDate = parseDateString($(\"#clinical-data-date\").val());\r\n }\r\n\r\n let startDate = new Date(\"0001-01-01T00:00:00\");\r\n if ($(\"#project-start-date\").val() != \"\") {\r\n startDate = parseDateString($(\"#project-start-date\").val());\r\n }\r\n\r\n let endDate = new Date(\"0001-01-01T00:00:00\");\r\n if ($(\"#project-end-date\").val() != \"\") {\r\n endDate = parseDateString($(\"#project-end-date\").val());\r\n }\r\n\r\n let anticipatedFundingSubmissionDate = null;\r\n if ($(\"#a-project-funding-submission\").val() != \"\") {\r\n anticipatedFundingSubmissionDate = parseDateString($(\"#a-project-funding-submission\").val());\r\n }\r\n\r\n let anticipatedFundingAwardDate = null;\r\n if ($(\"#a-project-funding-award\").val() != \"\") {\r\n anticipatedFundingAwardDate = parseDateString($(\"#a-project-funding-award\").val());\r\n }\r\n\r\n // Bind Form Data to Object\r\n let formData: SaveForm = {\r\n Id: formId,\r\n Status: \"In Draft\",\r\n LastUpdated: new Date(),\r\n User_Id: 0, // Fix on Backend\r\n\r\n RequestorFirstName: $(\"#requestor-first-name\").val() == \"\" ? null : $(\"#requestor-first-name\").val(),\r\n RequestorLastName: $(\"#requestor-last-name\").val() == \"\" ? null : $(\"#requestor-last-name\").val(),\r\n InstitutionName: $(\"#institution\").val() == \"\" ? null : $(\"#institution\").val(),\r\n InstitutionType: institutionTypeString == \"\" ? null : institutionTypeString,\r\n RequestorTelephone: requestorTelephoneString == \"\" ? null : requestorTelephoneString,\r\n RequestorEmail: $(\"#requestor-email\").val() == \"\" ? null : $(\"#requestor-email\").val(),\r\n\r\n LaboratoryName: $(\"#shipping-laboratory-name\").val() == \"\" ? null : $(\"#shipping-laboratory-name\").val(),\r\n ShippingFirstName: $(\"#shipping-first-name\").val() == \"\" ? null : $(\"#shipping-first-name\").val(),\r\n ShippingLastName: $(\"#shipping-last-name\").val() == \"\" ? null : $(\"#shipping-last-name\").val(),\r\n ShippingTelephone: shippingTelephoneString == \"\" ? null : shippingTelephoneString,\r\n ShippingEmail: $(\"#shipping-email\").val() == \"\" ? null : $(\"#shipping-email\").val(),\r\n ShippingCountry: shippingCountry,\r\n ShippingStreet: $(\"#shipping-address\").val() == \"\" ? null : $(\"#shipping-address\").val(),\r\n ShippingStreet2: $(\"#shipping-address2\").val() == \"\" ? null : $(\"#shipping-address2\").val(),\r\n ShippingCity: $(\"#shipping-city\").val() == \"\" ? null : $(\"#shipping-city\").val(),\r\n ShippingState: $(\"#shipping-state\").val() == \"\" ? null : $(\"#shipping-state\").val(),\r\n ShippingZip: $(\"#shipping-zip\").val() == \"\" ? null : $(\"#shipping-zip\").val(),\r\n ShippingAccountName: $(\"#shipping-account-name\").val() == \"\" ? null : $(\"#shipping-account-name\").val(),\r\n ShippingAccountNumber: $(\"#shipping-account\").val() == \"\" ? null : $(\"#shipping-account\").val(),\r\n ShippingSpecialInstructions: $(\"#shipping-special-instructions\").val() == \"\" ? null : $(\"#shipping-special-instructions\").val(),\r\n AgreementContactFirstName: $(\"#shipping-agreement-first-name\").val() == \"\" ? null : $(\"#shipping-agreement-first-name\").val(),\r\n AgreementContactLastName: $(\"#shipping-agreement-last-name\").val() == \"\" ? null : $(\"#shipping-agreement-last-name\").val(),\r\n AgreementContactTelephone: $(\"#shipping-agreement-telephone\").val() == \"\" ? null : $(\"#shipping-agreement-telephone\").val(),\r\n AgreementContactEmail: $(\"#shipping-agreement-email\").val() == \"\" ? null : $(\"#shipping-agreement-email\").val(),\r\n\r\n\r\n ProjectTitle: $(\"#project-title\").val() == \"\" ? null : $(\"#project-title\").val(),\r\n ShortTitle: $(\"#project-short-title\").val() == \"\" ? null : $(\"#project-short-title\").val(),\r\n PINames: piNamesString == \"\" ? null : piNamesString,\r\n Background: $(\"#project-background\").val() == \"\" ? null : $(\"#project-background\").val(),\r\n ScientificAims: $(\"#project-scientific-aims\").val() == \"\" ? null : $(\"#project-scientific-aims\").val(),\r\n Significance: $(\"#project-significance\").val() == \"\" ? null : $(\"#project-significance\").val(),\r\n Methods: $(\"#project-methods\").val() == \"\" ? null : $(\"#project-methods\").val(),\r\n Approach: $(\"#project-sample-size\").val() == \"\" ? null : $(\"#project-sample-size\").val(),\r\n ParticipantDescription: $(\"#additional-info-participant-pop\").val() == \"\" ? null : $(\"#additional-info-participant-pop\").val(),\r\n ClinicalData: $(\"#clinical-data\").val() == \"\" ? null : $(\"#clinical-data\").val(),\r\n AnticipatedClinicalDataDate: anticipatedClinicalDataDate, // $(\"#clinical-data-date\").val(),\r\n ClinicalDataAdditional: $(\"#clinical-data-additional\").val() == \"\" ? null : $(\"#clinical-data-additional\").val(),\r\n\r\n SharingPlan: $(\"#project-sharing-plan\").val() == \"\" ? null : $(\"#project-sharing-plan\").val(),\r\n BiospecimenUse: $(\"#project-ability\").val() == \"\" ? null : $(\"#project-ability\").val(),\r\n StartDate: startDate, //$(\"#project-start-date\").val(),\r\n CompletionDate: endDate, //$(\"#project-end-date\").val(),\r\n FundingAvailable: $(\"#funding-available\").val() == \"Yes\" ? true : false,\r\n NIHFunding: $(\"#funding-NIH\").is(\":checked\"),\r\n AnticipatedNIHFunding: $(\"#a-funding-NIH\").is(\":checked\"),\r\n NIHAwardNumber: $(\"#project-specify-award\").val() == \"\" ? null : $(\"#project-specify-award\").val(),\r\n OtherFederalFunding: $(\"#funding-other-US\").is(\":checked\"),\r\n AnticipatedOtherFederalFunding: $(\"#a-funding-other-US\").is(\":checked\"),\r\n OtherFederalName: $(\"#project-specify-agency\").val() == \"\" ? null : $(\"#project-specify-agency\").val(),\r\n AnticipatedOtherFederalName: $(\"#a-project-specify-agency\").val() == \"\" ? null : $(\"#a-project-specify-agency\").val(),\r\n FoundationFunding: $(\"#funding-foundation\").is(\":checked\"),\r\n AnticipatedFoundationFunding: $(\"#a-funding-foundation\").is(\":checked\"),\r\n IndustryFunding: $(\"#funding-industry\").is(\":checked\"),\r\n AnticipatedIndustryFunding: $(\"#a-funding-industry\").is(\":checked\"),\r\n OtherFunding: $(\"#funding-other\").is(\":checked\"),\r\n AnticipatedOtherFunding: $(\"#a-funding-other\").is(\":checked\"),\r\n OtherFundingName: $(\"#project-other-specify\").val() == \"\" ? null : $(\"#project-other-specify\").val(),\r\n AnticipatedOtherFundingName: $(\"#a-project-other-specify\").val() == \"\" ? null : $(\"#a-project-other-specify\").val(),\r\n AnticipatedFundingSubmissionCheck: $(\"#a-funding-available\").val() == \"\" ? null : $(\"#a-funding-available\").val(),\r\n AnticipatedFundingSubmission: anticipatedFundingSubmissionDate, //$(\"#a-project-funding-submission\").val(),\r\n AnticipatedFundingAward: anticipatedFundingAwardDate, //$(\"#a-project-funding-award\").val(),\r\n\r\n AdditionalDetail: $(\"#additional-info-detail\").val() == \"\" ? null : $(\"#additional-info-detail\").val()\r\n\r\n }\r\n\r\n return formData;\r\n\r\n }\r\n \r\n}","\r\n\r\n\r\n\r\nexport class TableColumnVisibilityController {\r\n\r\n tableId: string;\r\n columnGroups: TableColumnGroup[];\r\n\r\n constructor(tableId: string, dropdownDivId: string, columnGroups: TableColumnGroup[]) {\r\n this.tableId = tableId;\r\n this.columnGroups = columnGroups;\r\n\r\n $(dropdownDivId).empty().html(\"
\");\r\n\r\n $('#column-filter-dropdown').selectpicker({\r\n dropupAuto: false,\r\n selectedTextFormat: \"count\",\r\n\r\n countSelectedText: (numSelected, numTotal) => {\r\n if (numSelected == numTotal) {\r\n return \"All Available\";\r\n }\r\n else {\r\n return numSelected + \" Selected\";\r\n }\r\n }\r\n });\r\n this.columnGroups.forEach((group: TableColumnGroup) => {\r\n $('#column-filter-dropdown').append(new Option(group.name, group.name, false, group.visible));\r\n });\r\n $('#column-filter-dropdown').selectpicker(\"refresh\");\r\n\r\n\r\n $('#column-filter-dropdown').on('changed.bs.select', (e, clickedIndex, isSelected, previousValue) => {\r\n this.updateColumnVisibility();\r\n });\r\n this.updateColumnVisibility();\r\n\r\n }\r\n\r\n refresh(): void {\r\n $('#column-filter-dropdown').selectpicker(\"refresh\");\r\n }\r\n\r\n updateColumnVisibility(): void {\r\n\r\n let values: string[] = ($('#column-filter-dropdown').val());\r\n\r\n let visibleColumns: number[] = [];\r\n let visibleStyles: string[] = [];\r\n let hiddenColumns: number[] = [];\r\n let hiddenStyles: string[] = [];\r\n this.columnGroups.forEach((colgroup: TableColumnGroup) => {\r\n if (values.includes(colgroup.name)) {\r\n visibleColumns.push(...colgroup.columns);\r\n if (colgroup.columnStyle.length > 0) { visibleStyles.push(colgroup.columnStyle); }\r\n }\r\n else {\r\n hiddenColumns.push(...colgroup.columns);\r\n if (colgroup.columnStyle.length > 0) { hiddenStyles.push(colgroup.columnStyle); }\r\n }\r\n });\r\n\r\n var table = $(this.tableId).DataTable();\r\n if (hiddenColumns.length > 0) { table.columns(hiddenColumns).visible(false, false); }\r\n if (visibleColumns.length > 0) { table.columns(visibleColumns).visible(true, false); }\r\n\r\n hiddenStyles.forEach((style: string) => {\r\n table.columns('.' + style).visible(false, false);\r\n });\r\n visibleStyles.forEach((style: string) => {\r\n table.columns('.' + style).visible(true, false);\r\n });\r\n\r\n table.columns.adjust().draw(false); // adjust column sizing and redraw\r\n\r\n }\r\n}\r\n\r\n\r\nexport class TableColumnGroup {\r\n name: string;\r\n visible: boolean;\r\n columns: number[];\r\n columnStyle: string;\r\n\r\n constructor(name: string, visible: boolean, columns: number[], columnStyle: string) {\r\n this.name = name;\r\n this.visible = visible;\r\n this.columns = columns;\r\n this.columnStyle = columnStyle;\r\n }\r\n}","// extracted by mini-css-extract-plugin","import { BiorepositoryLookup } from \"../../inventory-summary/scripts/inventory-lookup\";\r\n\r\n\r\nexport class SpecimenSearchResult {\r\n Barcode: string;\r\n QualityId: number;\r\n SampleTypeId: number;\r\n StatusId: number;\r\n StudyId: number;\r\n ThawCount: number;\r\n VialId: string;\r\n Volume: number;\r\n UnitsId: number;\r\n Patient: string;\r\n Timepoint: number;\r\n\r\n SampleType: string;\r\n Quality: string;\r\n Status: string;\r\n Study: string;\r\n TimepointDisplay: string;\r\n Units: string;\r\n\r\n SampleId: string;\r\n\r\n constructor() { }\r\n\r\n initialize(): void {\r\n this.SampleType = BiorepositoryLookup.GetValueFromIdAndType(this.SampleTypeId, 'sample-type');\r\n this.Status = BiorepositoryLookup.GetValueFromIdAndType(this.StatusId, 'specimen-status');\r\n this.Study = BiorepositoryLookup.GetValueFromIdAndType(this.StudyId, 'study');\r\n this.Quality = BiorepositoryLookup.GetValueFromIdAndType(this.QualityId, 'quality');\r\n\r\n switch (this.Timepoint) {\r\n case 0: this.TimepointDisplay = \"Baseline\"; break;\r\n case 1: this.TimepointDisplay = \"Day 1\"; break;\r\n case 2: this.TimepointDisplay = \"Day 2\"; break;\r\n case 3: this.TimepointDisplay = \"Day 3\"; break;\r\n case 4: this.TimepointDisplay = \"Day 4\"; break;\r\n case 5: this.TimepointDisplay = \"Day 5\"; break;\r\n case 6: this.TimepointDisplay = \"Day 6\"; break;\r\n case 7: this.TimepointDisplay = \"Day 7\"; break;\r\n case 8: this.TimepointDisplay = \"Day 8\"; break;\r\n case 9: this.TimepointDisplay = \"Day 9\"; break;\r\n case 10: this.TimepointDisplay = \"Day 10\"; break;\r\n case 11: this.TimepointDisplay = \"Day 11\"; break;\r\n case 12: this.TimepointDisplay = \"Day 12\"; break;\r\n case 13: this.TimepointDisplay = \"Day 13\"; break;\r\n case 14: this.TimepointDisplay = \"Day 14\"; break;\r\n case 15: this.TimepointDisplay = \"Day 15\"; break;\r\n case 16: this.TimepointDisplay = \"Day 16\"; break;\r\n case 17: this.TimepointDisplay = \"Day 17\"; break;\r\n case 18: this.TimepointDisplay = \"Day 18\"; break;\r\n case 22: this.TimepointDisplay = \"Day 22\"; break;\r\n case 24: this.TimepointDisplay = \"Day 24\"; break;\r\n case 26: this.TimepointDisplay = \"Day 26\"; break;\r\n case 27: this.TimepointDisplay = \"Day 27\"; break;\r\n case 29: this.TimepointDisplay = \"Day 29\"; break;\r\n case 31: this.TimepointDisplay = \"Day 31\"; break;\r\n case 60: this.TimepointDisplay = \"Day 60\"; break;\r\n case 99: this.TimepointDisplay = \"Treatment End\"; break;\r\n default: this.TimepointDisplay = \"Unknown\"; break;\r\n }\r\n\r\n this.SampleId = this.Patient + \"_\" + this.SampleTypeId + \"_\" + this.Timepoint;\r\n\r\n switch (this.UnitsId) {\r\n case 0: this.Units = \"μL\"; break;\r\n case 1: this.Units = \"Spots\"; break;\r\n default: this.Units = \"Unknown\"; break;\r\n }\r\n\r\n //console.log(this);\r\n }\r\n}","import { SampleRequestFormData } from './sample-request-form-data.entities'\r\nimport { SampleRequestCommentData } from './sample-request-form-data.entities'\r\nimport { FormatDate } from '../../../shared/scripts/date-functions'\r\nimport { plainToClass } from 'class-transformer';\r\n\r\ndeclare var $: any;\r\n\r\nexport class RequestDashboardAdminModal {\r\n currentForm: SampleRequestFormData;\r\n allComments: SampleRequestCommentData[];\r\n currentComment: SampleRequestCommentData;\r\n\r\n constructor(allComments: SampleRequestCommentData[]) {\r\n this.allComments = allComments.sort((a, b) => b.id - a.id); \r\n let self = this;\r\n\r\n // --- Tabs ---\r\n $(\"#admin-view-tabs\").find(\".nav-link\").click(function () {\r\n // hide all sections\r\n $(\"#admin-modal-feedback\").addClass(\"inactive-section\");\r\n $(\"#admin-modal-update-status\").addClass(\"inactive-section\");\r\n $(\"#admin-modal-comments\").addClass(\"inactive-section\");\r\n\r\n // show the correct tab\r\n if ($(this).hasClass(\"admin-feedback-tab\")) {\r\n $(\"#admin-modal-feedback\").removeClass(\"inactive-section\");\r\n }\r\n else if ($(this).hasClass(\"admin-update-tab\")) {\r\n $(\"#admin-modal-update-status\").removeClass(\"inactive-section\");\r\n }\r\n else if ($(this).hasClass(\"admin-comment-tab\")) {\r\n $(\"#admin-modal-comments\").removeClass(\"inactive-section\");\r\n }\r\n\r\n // make all nav-links inactive\r\n $(\"#admin-view-tabs\").find(\".nav-link\").removeClass(\"active\");\r\n\r\n // add active tab to the tab that was clicked\r\n $(this).addClass(\"active\");\r\n });\r\n\r\n // --- Update Status ---\r\n $(\"#update-status-select\").change(function () {\r\n $(\"#update-status-after\").text($(this).val());\r\n\r\n if (self.validateUpdateStatus()) {\r\n $(\"#update-status-btn\").removeClass(\"disabled\");\r\n }\r\n else {\r\n $(\"#update-status-btn\").addClass(\"disabled\");\r\n }\r\n });\r\n\r\n $(\"#update-status-comment-input\").on(\"keyup\", function () {\r\n if (self.validateUpdateStatus()) {\r\n $(\"#update-status-btn\").removeClass(\"disabled\");\r\n }\r\n else {\r\n $(\"#update-status-btn\").addClass(\"disabled\");\r\n }\r\n });\r\n\r\n $(\"#update-status-btn\").click(function () {\r\n // update the SampleRequestFormArray\r\n self.updateDatabase(self.currentForm, $(\"#update-status-select\").val())\r\n })\r\n\r\n $(\"#update-status-source\").change(function () {\r\n\r\n if (self.validateUpdateStatus()) {\r\n $(\"#update-status-btn\").removeClass(\"disabled\");\r\n }\r\n else {\r\n $(\"#update-status-btn\").addClass(\"disabled\");\r\n }\r\n })\r\n\r\n // --- Comments ---\r\n\r\n // only allow users to add a new comment if there is content in the new comment input\r\n $(\"#add-comment-input\").on(\"keyup\", function () {\r\n if ($(\"#add-comment-input\").val() != \"\") {\r\n $(\"#add-comment-btn\").removeClass(\"disabled\");\r\n }\r\n else {\r\n $(\"#add-comment-btn\").addClass(\"disabled\");\r\n }\r\n });\r\n\r\n // create comment and post to database when button is clicked\r\n $(\"#add-comment-btn\").click(function () {\r\n self.createCommentObj();\r\n })\r\n }\r\n\r\n public openUpdateStatusModal(formData: SampleRequestFormData) {\r\n // reset existing fields\r\n $(\"#update-status-comment-input\").val(\"\");\r\n $(\"#update-status-btn\").addClass(\"disabled\");\r\n\r\n $(\"#update-status-formId\").text(formData.combinedId);\r\n $(\"#update-status-title-status\").text(formData.status);\r\n $(\"#update-status-before\").text(formData.status);\r\n\r\n $(\"#before-source\").val(formData.source);\r\n $(\"#update-status-select\").val(formData.status).change();\r\n\r\n if (formData.source != \"\" && formData.source != null) {\r\n $(\"#update-status-source\").val(formData.source).change();\r\n $(\"#before-source-text\").text(formData.source)\r\n }\r\n else {\r\n $(\"#update-status-source\").val(\"--- No Source Selected ---\").change();\r\n $(\"#before-source-text\").text(\"None\");\r\n }\r\n\r\n // set current form\r\n this.currentForm = formData;\r\n }\r\n\r\n validateUpdateStatus(): boolean {\r\n\r\n if ($(\"#update-status-comment-input\").val() != \"\" && $(\"#before-source\").val() != $(\"#update-status-source\").val()) {\r\n if ($(\"#before-source\").val() == \"\" && $(\"#update-status-source\").val() == \"--- No Source Selected ---\") {\r\n // do nothing\r\n }\r\n else {\r\n return true\r\n }\r\n }\r\n\r\n if ($(\"#update-status-comment-input\").val() != \"\" && $(\"#update-status-after\").text() != $(\"#update-status-before\").text()) {\r\n return true;\r\n }\r\n\r\n return false;\r\n\r\n }\r\n\r\n updateDatabase(formData: SampleRequestFormData, newStatus: string) {\r\n // update the formStatus\r\n let updatedForm = formData;\r\n updatedForm.status = newStatus;\r\n\r\n if ($(\"#update-status-source\").val() == \"--- No Source Selected ---\") {\r\n updatedForm.source = null;\r\n }\r\n else {\r\n updatedForm.source = $(\"#update-status-source\").val(); \r\n }\r\n\r\n\r\n let parsedFormId = parseInt(formData.id);\r\n\r\n if (parsedFormId == NaN) {\r\n return;\r\n }\r\n\r\n let comment: SampleRequestCommentData = {\r\n id: 0,\r\n creationDate: new Date(),\r\n userId: 0, // set on backend\r\n username: \"user\", // set on backend\r\n beforeStatus: $(\"#update-status-before\").text(),\r\n afterStatus: newStatus,\r\n comment: $(\"#update-status-comment-input\").val(),\r\n sampleRequestFormId: parsedFormId\r\n }\r\n\r\n $(\"#loading-update-status\").removeClass(\"inactive-section\");\r\n $(\"#update-status-comment-input\").val(\"\");\r\n $(\"#update-status-btn\").addClass(\"disabled\");\r\n\r\n // ajax request to controller\r\n $.ajax({\r\n url: '/secure/request-dashboard/request-dashboard?handler=UpdateStatus',\r\n method: \"POST\",\r\n //dataType: \"json\",\r\n //contentType: \"application/json\",\r\n data: { formData: JSON.stringify(updatedForm), commentData: JSON.stringify(comment) },\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response) => {\r\n\r\n $(\"#loading-update-status\").addClass(\"inactive-section\");\r\n /*console.log(response);\r\n let udpatedForm: SampleRequestFormData = plainToClass(SampleRequestFormData, response);\r\n console.log(updatedForm);*/\r\n $(\"#update-status-modal\").modal(\"hide\");\r\n\r\n // refresh page\r\n location.reload();\r\n\r\n },\r\n error: (response) => {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n });\r\n }\r\n\r\n public populateComments(formId: string) {\r\n // clear existing comments\r\n $(\"#admin-modal-comments-view\").empty();\r\n $(\"#add-comment-input\").val(\"\");\r\n\r\n // parse Id\r\n let parsedId = parseInt(formId);\r\n\r\n if (parsedId != NaN) {\r\n\r\n let formComments = this.allComments.filter(comment => comment.sampleRequestFormId == parsedId);\r\n\r\n let commentHTML = ``;\r\n\r\n // create HTML object\r\n if (formComments.length > 0) {\r\n formComments.forEach((comment, i) => {\r\n let evenClass = \"odd\";\r\n if (i % 2 == 0) {\r\n evenClass = \"even\";\r\n }\r\n\r\n commentHTML += `\r\n
\r\n
\r\n
\r\n
\r\n

${FormatDate(comment.creationDate)}

\r\n
\r\n
\r\n

${comment.beforeStatus} ${comment.afterStatus}

\r\n
\r\n
\r\n
\r\n

${comment.comment}

\r\n
\r\n
\r\n

- ${comment.username}

\r\n
\r\n
\r\n
\r\n `;\r\n if (i + 1 != formComments.length) {\r\n commentHTML += `
`;\r\n }\r\n\r\n });\r\n\r\n\r\n }\r\n else {\r\n commentHTML += `\r\n
\r\n

There are currently no comments for this form.

\r\n
\r\n `;\r\n }\r\n\r\n // fill comment modal\r\n $(\"#admin-modal-comments-view\").append(commentHTML);\r\n }\r\n\r\n }\r\n\r\n createCommentObj() {\r\n let formIdString = $(\"#request-id\").text().split(\"_\")[0];\r\n\r\n let parsedId = parseInt(formIdString);\r\n\r\n if (parsedId != NaN) {\r\n let newComment: SampleRequestCommentData = {\r\n id: 0, // new item\r\n sampleRequestFormId: parsedId,\r\n comment: $(\"#add-comment-input\").val(),\r\n creationDate: new Date(),\r\n userId: 0, // set on backend,\r\n username: \"\", // set on backend,\r\n afterStatus: $(\"#request-status\").text(),\r\n beforeStatus: $(\"#request-status\").text()\r\n }\r\n\r\n this.addComment(newComment);\r\n }\r\n\r\n }\r\n\r\n addComment(commentData: SampleRequestCommentData) {\r\n // show loading icon\r\n $(\"#loading-add-comment\").removeClass(\"inactive-section\");\r\n\r\n // reset comment field\r\n $(\"#add-comment-input\").val(\"\")\r\n $(\"#add-comment-btn\").addClass(\"disabled\");\r\n\r\n // ajax request to controller\r\n $.ajax({\r\n url: '/secure/request-dashboard/request-dashboard?handler=AddComment',\r\n method: \"POST\",\r\n //dataType: \"json\",\r\n //contentType: \"application/json\",\r\n data: { commentData: JSON.stringify(commentData) },\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response) => {\r\n\r\n console.log(response);\r\n // remove loading icon\r\n $(\"#loading-add-comment\").addClass(\"inactive-section\");\r\n\r\n // add comment to all comments object\r\n let newComment: SampleRequestCommentData = plainToClass(SampleRequestCommentData, response);\r\n // newest comment goes first\r\n this.allComments.unshift(newComment);\r\n\r\n // add comment to comment modal\r\n this.populateComments(newComment.sampleRequestFormId.toString());\r\n\r\n },\r\n error: (response) => {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n });\r\n\r\n }\r\n\r\n public populateFeedback(formId: string) {\r\n // clear existing comments\r\n $(\"#admin-feedback-table\").empty();\r\n\r\n // parse Id\r\n let parsedId = parseInt(formId);\r\n\r\n if (parsedId != NaN) {\r\n\r\n let formComments = this.allComments.filter(comment => comment.sampleRequestFormId == parsedId && comment.beforeStatus != comment.afterStatus);\r\n\r\n let commentHTML = ``;\r\n\r\n // create HTML object\r\n if (formComments.length > 0) {\r\n commentHTML += `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n\r\n formComments.forEach((comment, i) => {\r\n let startDate = new Date(comment.creationDate);\r\n let endDate = new Date(Date.now());\r\n\r\n if (i > 0) {\r\n endDate = new Date(formComments[i - 1].creationDate);\r\n }\r\n\r\n let timeDifference = endDate.getTime() - startDate.getTime();\r\n let dayDifference = Math.round(timeDifference / (1000 * 3600 * 24));\r\n\r\n commentHTML += `\r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n\r\n commentHTML += `\r\n \r\n
StatusDays in StatusDateFeedback
${comment.afterStatus}${dayDifference}${FormatDate(comment.creationDate)}${comment.comment}
\r\n `;\r\n\r\n\r\n }\r\n else {\r\n commentHTML += `\r\n
\r\n

There is currently no feedback for this request.

\r\n
\r\n `;\r\n }\r\n\r\n // fill comment modal\r\n $(\"#admin-feedback-table\").append(commentHTML);\r\n }\r\n\r\n }\r\n\r\n}","import { SampleRequestFormData, SampleRequestCommentData, SampleRequestsData } from '../scripts/sample-request-form-data.entities'\r\nimport { FormatDate } from \"../../../shared/scripts/date-functions\";\r\nimport { plainToClass } from \"class-transformer\";\r\nimport { SpecimenSearchResult } from '../../sample-search/scripts/sample-search.entities';\r\nimport { UserQuery } from '../../../shared/entities/user-query/user-query.entities'\r\n\r\ndeclare var $: any;\r\n \r\nexport class RequestDashboardSampleInfo {\r\n\r\n activeQueries = [];\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public openModal(userId: number, formData: SampleRequestFormData, sampleData: SampleRequestsData[], queries: UserQuery[], isAdmin: boolean) {\r\n // if the current User matches this userId and the status is \"Not Submitted\", show the \"Edit/Update Request\" button\r\n if (userId == formData.user_Id && formData.status == \"In Draft\") {\r\n $(\".continue-form\").removeClass(\"inactive-section\");\r\n $(\".continue-form\").attr(\"href\", `/secure/inventory-request/${formData.id}`);\r\n\r\n $(\".delete-request\").removeClass(\"inactive-section\");\r\n $(\".return-form\").addClass(\"inactive-section\");\r\n $(\".clone-form\").addClass(\"inactive-section\");\r\n $(\".admin-modal\").addClass(\"inactive-section\");\r\n $(\".status-modal\").addClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\".continue-form\").addClass(\"inactive-section\");\r\n $(\".continue-form\").attr(\"href\", \"\");\r\n\r\n $(\".delete-request\").addClass(\"inactive-section\");\r\n\r\n // only allow the user who made the request to clone it\r\n if (userId == formData.user_Id) {\r\n $(\".clone-form\").removeClass(\"inactive-section\");\r\n $(\".status-modal\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\".clone-form\").addClass(\"inactive-section\");\r\n $(\".status-modal\").removeClass(\"inactive-section\");\r\n }\r\n\r\n\r\n if (userId == formData.user_Id && formData.status == \"Submitted\") {\r\n $(\".return-form\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\".return-form\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (isAdmin && formData.status != \"In Draft\") {\r\n $(\".admin-modal\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\".admin-modal\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (isAdmin) {\r\n $(\".status-modal\").addClass(\"inactive-section\");\r\n $(\".delete-request\").removeClass(\"inactive-section\");\r\n }\r\n }\r\n\r\n // populate model\r\n // --- Database Content ---\r\n $(\"#sample-header-id\").find(\"span\").text(formData.combinedId);\r\n $(\"#request-id\").text(formData.combinedId);\r\n $(\"#request-status\").text(formData.status);\r\n $(\"#request-last-updated\").text(FormatDate(formData.lastUpdated));\r\n $(\"#request-submission-date\").text(FormatDate(formData.submissionDate));\r\n\r\n // --- Requestor Contact Info ---\r\n let applicantFullName = `${formData.requestorFirstName ? formData.requestorFirstName : \"\"} ${formData.requestorLastName ? formData.requestorLastName : \"\"}`;\r\n $(\"#requestor-name\").text(applicantFullName);\r\n $(\"#institution-name\").text(formData.institutionName);\r\n $(\"#institution-type\").text(formData.institutionType);\r\n $(\"#requestor-telephone\").text(formData.requestorTelephone);\r\n $(\"#requestor-email\").text(formData.requestorEmail);\r\n\r\n // --- Shipment Info ---\r\n $(\"#laboratory-name\").text(formData.laboratoryName);\r\n let shippingFullName = `${formData.shippingFirstName ? formData.shippingFirstName : \"\"} ${formData.shippingLastName ? formData.shippingLastName : \"\"}`;\r\n $(\"#shipping-name\").text(shippingFullName);\r\n $(\"#shipping-telephone\").text(formData.shippingTelephone);\r\n $(\"#shipping-email\").text(formData.shippingEmail);\r\n $(\"#shipping-country\").text(formData.shippingCountry);\r\n\r\n let shippingString = `${formData.shippingStreet ? formData.shippingStreet + \", \" : \"\"}${formData.shippingStreet2 ? formData.shippingStreet2 + \", \" : \"\"}${formData.shippingCity ? formData.shippingCity + \", \" : \"\"}${formData.shippingState ? formData.shippingState + \", \" : \"\"}${formData.shippingZip ? formData.shippingZip : \"\"}`;\r\n $(\"#shipping-address\").text(shippingString);\r\n $(\"#shipping-account-name\").text(formData.shippingAccountName);\r\n $(\"#shipping-account-number\").text(formData.shippingAccountNumber);\r\n $(\"#shipping-special-instructions\").text(formData.shippingSpecialInstructions);\r\n let agreementName = `${formData.agreementContactFirstName ? formData.agreementContactFirstName : \"\"} ${formData.agreementContactLastName ? formData.agreementContactLastName : \"\"}`;\r\n $(\"#shipping-agreement-name\").text(agreementName);\r\n $(\"#shipping-agreement-telephone\").text(formData.agreementContactTelephone);\r\n $(\"#shipping-agreement-email\").text(formData.agreementContactEmail);\r\n\r\n // --- Project Approach ---\r\n let piNames = \"\";\r\n if (formData.piNames != null) {\r\n piNames = formData.piNames.split(\"|\").join(\", \");\r\n }\r\n $(\"#project-title\").text(formData.projectTitle);\r\n $(\"#short-title\").text(formData.shortTitle);\r\n $(\"#pi-names\").text(piNames);\r\n $(\"#background\").text(formData.background);\r\n $(\"#scientific-aims\").text(formData.scientificAims);\r\n $(\"#significance\").text(formData.significance);\r\n $(\"#methods\").text(formData.methods);\r\n $(\"#sample-size\").text(formData.approach);\r\n $(\"#additional-population\").text(formData.participantDescription);\r\n $(\"#clinical-data\").text(formData.clinicalData);\r\n $(\"#clinical-data-additional\").text(formData.clinicalDataAdditional == \"\" ? \"N/A\" : formData.clinicalDataAdditional);\r\n $(\"#clinical-data-date\").text(formData.anticipatedClinicalDataDate == \"0001-01-01T00:00:00\" ? \"N/A\" : FormatDate(formData.anticipatedClinicalDataDate));\r\n\r\n // --- Admin Details ---\r\n $(\"#data-sharing-plan\").text(formData.sharingPlan);\r\n $(\"#biospecimen-use\").text(formData.biospecimenUse);\r\n $(\"#start-date\").text(formData.startDate == \"0001-01-01T00:00:00\" ? \"\" : FormatDate(formData.startDate));\r\n $(\"#end-date\").text(formData.completionDate == \"0001-01-01T00:00:00\" ? \"\" : FormatDate(formData.completionDate));\r\n $(\"#funding-available\").text(formData.fundingAvailable ? \"Yes\" : \"No\");\r\n $(\"#nih-check\").text(formData.nihFunding ? \"Yes\" : \"No\");\r\n $(\"#nih-award-number\").text(formData.nihAwardNumber);\r\n $(\"#other-federal-check\").text(formData.otherFederalFunding ? \"Yes\" : \"No\");\r\n $(\"#other-agency\").text(formData.otherFederalName);\r\n $(\"#foundation-check\").text(formData.foundationFunding ? \"Yes\" : \"No\");\r\n $(\"#industry-check\").text(formData.industryFunding ? \"Yes\" : \"No\");\r\n $(\"#other-check\").text(formData.otherFunding ? \"Yes\" : \"No\");\r\n $(\"#other-funding\").text(formData.otherFundingName);\r\n $(\"#a-nih-check\").text(formData.anticipatedNIHFunding ? \"Yes\" : \"No\");\r\n $(\"#a-other-federal-check\").text(formData.anticipatedOtherFederalFunding ? \"Yes\" : \"No\");\r\n $(\"#a-other-agency\").text(formData.anticipatedOtherFederalName);\r\n $(\"#a-foundation-check\").text(formData.anticipatedFoundationFunding ? \"Yes\" : \"No\");\r\n $(\"#a-industry-check\").text(formData.anticipatedIndustryFunding ? \"Yes\" : \"No\");\r\n $(\"#a-other-check\").text(formData.anticipatedOtherFunding ? \"Yes\" : \"No\");\r\n $(\"#a-other-funding\").text(formData.anticipatedOtherFundingName);\r\n $(\"#a-application-submit\").text(formData.fundingAvailable ? \"N/A\" : formData.anticipatedFundingSubmissionCheck);\r\n $(\"#a-application-submit-date\").text(formData.fundingAvailable ? \"N/A\" : FormatDate(formData.anticipatedFundingSubmission));\r\n $(\"#a-application-award-date\").text(formData.fundingAvailable ? \"N/A\" : FormatDate(formData.anticipatedFundingAward));\r\n\r\n // --- Samples Requested Tables ----\r\n this.populateSpecimenTables(sampleData, queries, formData.id);\r\n\r\n // --- Additional Info --- \r\n $(\"#additional-detail\").text(formData.additionalDetail);\r\n\r\n // Remove unnecessary rows\r\n\r\n // clinical data\r\n if (formData.clinicalData == \"Requested\" || formData.clinicalData == \"Approved\") {\r\n $(\"#clinical-data-date-table-row\").removeClass(\"inactive-section\");\r\n\r\n if (formData.clinicalData == \"Requested\") {\r\n $(\"#clinical-data-date-label\").text(\"Anticipated Date of Approval for Clinical Data Request:\");\r\n }\r\n\r\n if (formData.clinicalData == \"Approved\") {\r\n $(\"#clinical-data-date-label\").text(\"Anticipated Date for Receipt of Dataset:\");\r\n }\r\n }\r\n else {\r\n $(\"#clinical-data-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (formData.clinicalData == \"Not Yet Requested\" || formData.clinicalData == \"Not Applicable\") {\r\n $(\"#clinical-data-additional-table-row\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#clinical-data-additional-table-row\").addClass(\"inactive-section\");\r\n }\r\n\r\n // funding sources\r\n if (formData.fundingAvailable) {\r\n $(\"#funding-sources-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-funding-sources-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-application-submit-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-application-award-date-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-application-submit-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#funding-sources-table-row\").addClass(\"inactive-section\");\r\n $(\"#a-funding-sources-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-application-submit-table-row\").removeClass(\"inactive-section\");\r\n $(\"#a-application-award-date-table-row\").removeClass(\"inactive-section\");\r\n\r\n if (formData.anticipatedFundingSubmissionCheck?.toString() == \"Yes\") {\r\n $(\"#a-application-submit-date-table-row\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#a-application-submit-date-table-row\").addClass(\"inactive-section\");\r\n }\r\n }\r\n\r\n // don't show unfinished sections (blank)\r\n if (!formData.requestorFirstName) {\r\n $(\"#applicant-table\").addClass(\"inactive-section\");\r\n $(\"#applicant-table-blank\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#applicant-table\").removeClass(\"inactive-section\");\r\n $(\"#applicant-table-blank\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (!formData.shippingFirstName) {\r\n $(\"#shipment-table\").addClass(\"inactive-section\");\r\n $(\"#shipment-table-blank\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#shipment-table\").removeClass(\"inactive-section\");\r\n $(\"#shipment-table-blank\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (!formData.projectTitle) {\r\n $(\"#project-approach-table\").addClass(\"inactive-section\");\r\n $(\"#project-approach-table-blank\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#project-approach-table\").removeClass(\"inactive-section\");\r\n $(\"#project-approach-table-blank\").addClass(\"inactive-section\");\r\n }\r\n\r\n if (!formData.sharingPlan) {\r\n $(\"#admin-details-table\").addClass(\"inactive-section\");\r\n $(\"#admin-details-table-blank\").removeClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#admin-details-table\").removeClass(\"inactive-section\");\r\n $(\"#admin-details-table-blank\").addClass(\"inactive-section\");\r\n }\r\n \r\n\r\n // show modal\r\n $(\"#sample-info\").modal(\"show\");\r\n }\r\n\r\n populateSpecimenTables(sampleData: SampleRequestsData[], queries: UserQuery[], formId: string) {\r\n let self = this;\r\n // Samples Requested\r\n // clear out any data that was previously on the page\r\n $(\"#samples-requested\").find(\"table\").remove();\r\n\r\n if (sampleData.length > 0) {\r\n $(\"#samples-requested-table-blank\").addClass(\"inactive-section\");\r\n }\r\n else {\r\n $(\"#samples-requested-table-blank\").removeClass(\"inactive-section\");\r\n }\r\n\r\n // creates table for samples requested\r\n sampleData.forEach((sample, i) => {\r\n // queries\r\n let queryStringArr: string[] = sample.queries.split(\",\");\r\n let queryDataIds: number[] = [];\r\n let queryData: UserQuery[] = [];\r\n let queryHTML = \"\";\r\n\r\n queryStringArr.forEach(query => {\r\n let queryId = parseInt(query);\r\n if (queryId != NaN) {\r\n queryDataIds.push(queryId);\r\n }\r\n });\r\n\r\n queryDataIds.forEach(id => {\r\n let query = queries.find(query => query.id == id);\r\n if (query != undefined) {\r\n queryData.push(query);\r\n }\r\n else {\r\n let newQuery: UserQuery = {\r\n id: 0,\r\n queryJson: \"{blankQuery}\",\r\n humanReadable: \"\",\r\n queryName: \"Query Not Found\" \r\n }\r\n queryData.push(newQuery);\r\n }\r\n });\r\n queryData.forEach((query) => { \r\n let content = `\r\n \r\n \r\n ${query.id}\r\n \r\n ${query.queryName}\r\n \r\n \r\n \r\n `;\r\n\r\n // if the query isn't in the database\r\n if (query.id == 0) {\r\n content = `\r\n \r\n \r\n ${query.id}\r\n \r\n ${query.queryName}\r\n Not Available\r\n Not Available\r\n \r\n `;\r\n }\r\n queryHTML += content;\r\n });\r\n\r\n // formatting for timepoint(s)\r\n let timepointHTMLTableContent = \"\";\r\n sample.timepoint.split(\",\").forEach(timepoint => {\r\n timepointHTMLTableContent += `${timepoint}`;\r\n })\r\n\r\n let timepointHTMLTable = `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${timepointHTMLTableContent}\r\n \r\n
Timepoint(s)
Timepoint(s)
\r\n `;\r\n\r\n let studyNames: string[] = [\"ACTIV1\", \"ACTIV4a\", \"ACTIV4c\", \"ACTIV4 Host Tissue\"]\r\n let studyDisplayNames: string[] = [\"ACTIV1 Immune Modulators\", \"ACTIV4a Inpatient\", \"ACTIV4c Convalescent\", \"ACTIV4d Host Tissue\"]\r\n\r\n let displayStudy = sample.study;\r\n let foundStudyIndex = studyNames.indexOf(sample.study);\r\n if (foundStudyIndex != -1) {\r\n displayStudy = studyDisplayNames[foundStudyIndex];\r\n }\r\n \r\n $(\"#samples-requested\").append(\r\n `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Request #${i + 1}: ${sample.sampleQueryName}
Request #${i + 1}: ${sample.sampleQueryName}
Study:${displayStudy}
Biospecimen Type:${sample.sampleType}
Treatment Arm:${sample.treatmentArm}
Number of Biospecimens Requested per Timepoint:${sample.quantity}
Amount per Biospecimen:${sample.volume} ${sample.unit}
Timepoint:${timepointHTMLTable}
Queries:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${queryHTML}\r\n \r\n
IdQuery NameAvailable ParticipantsAvailable Biospecimens
IdQuery NameAvailable ParticipantsAvailable Biospecimens
\r\n
Other Specifications:${sample.otherSpecifications != null ? sample.otherSpecifications : \"\"}
`\r\n );\r\n\r\n // --- Getting Total Requested / Total Available\r\n /*queryData.forEach(query => {\r\n if (query.id != 0) {\r\n this.searchQueries(query.queryJson, sample.sampleRequestFormId, query.id)\r\n }\r\n });*/\r\n\r\n });\r\n\r\n // --- Getting Total Requested / Total Available\r\n this.searchQueries(queries, sampleData, formId);\r\n \r\n }\r\n\r\n // populates available particpants + available biospecimens in table\r\n searchQueries(queries: UserQuery[], sampleData: SampleRequestsData[], formId: string) {\r\n let queryDataIds: number[] = [];\r\n let sampleFormIds: number[] = [];\r\n let queryData: string[] = [];\r\n\r\n // create queryJson Array, queryId Array, and sampleFormId Array\r\n sampleData.forEach(sample => {\r\n let queryStringArr: string[] = sample.queries.split(\",\");\r\n queryStringArr.forEach(query => {\r\n let queryId = parseInt(query);\r\n if (queryId != NaN && queryId != 0) {\r\n let query = queries.find(query => query.id == queryId);\r\n if (query != undefined) {\r\n queryDataIds.push(queryId);\r\n sampleFormIds.push(sample.id);\r\n\r\n // Parse JSON Data, so it won't be double stringified\r\n queryData.push(JSON.parse(query.queryJson));\r\n }\r\n }\r\n });\r\n });\r\n\r\n let jsonDataArray = JSON.stringify(queryData);\r\n\r\n var request = $.ajax({\r\n url: '/secure/request-dashboard/request-dashboard?handler=QuerySearch',\r\n method: \"POST\",\r\n //dataType: \"json\",\r\n //contentType: \"application/json\",\r\n data: { queryData: jsonDataArray },\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response: []) => {\r\n\r\n //console.log(response);\r\n\r\n // populate query table\r\n response.forEach((result, i) => {\r\n let searchResult: SpecimenSearchResult[] = plainToClass(SpecimenSearchResult, result);\r\n let patientSet: Set = new Set();\r\n let sampleSet: Set = new Set();\r\n\r\n searchResult.forEach((result: SpecimenSearchResult) => {\r\n result.initialize();\r\n patientSet.add(result.Patient);\r\n sampleSet.add(result.SampleId);\r\n });\r\n\r\n // Use the sampleFormId and queryDataId to target specific table cell\r\n let participantsId = `#sample-${sampleFormIds[i]}-query-${queryDataIds[i]}-participants`;\r\n let availableId = `#sample-${sampleFormIds[i]}-query-${queryDataIds[i]}-available`;\r\n\r\n $(participantsId).text(patientSet.size).addClass(\"pdf-ready\");\r\n $(availableId).text(sampleSet.size).addClass(\"pdf-ready\");\r\n });\r\n },\r\n error: (response) => {\r\n\r\n if (response.statusText != \"abort\") {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n\r\n // on error, fill table cells with \"Not Available\"\r\n queryDataIds.forEach((queryId, i) => {\r\n let participantsId = `#sample-${sampleFormIds[i]}-query-${queryId}-participants`;\r\n let availableId = `#sample-${sampleFormIds[i]}-query-${queryId}-available`;\r\n\r\n $(participantsId).text(\"Not Available\").addClass(\"pdf-ready\");\r\n $(availableId).text(\"Not Available\").addClass(\"pdf-ready\");\r\n });\r\n }\r\n });\r\n\r\n this.activeQueries.push(request);\r\n }\r\n\r\n public getActiveQueries() {\r\n return this.activeQueries;\r\n }\r\n\r\n}","import { plainToClass } from 'class-transformer';\r\nimport { CountUp } from 'countup.js';\r\nimport { SpecimenSearchResult } from './sample-search.entities';\r\nimport { UserQuery } from '../../../shared/entities/user-query/user-query.entities';\r\nimport { SearchManagement } from './sample-search.search-management';\r\n\r\ndeclare var $: any;\r\n\r\nexport class SampleSearchPage {\r\n\r\n filters: any[];\r\n rules: any;\r\n variableMap: Map; //to map db variables to human readable\r\n filterMap: Map; //to map numeric db options to human readable\r\n updatingRules: boolean = false;\r\n resultsTable: any;\r\n\r\n searchManagement: SearchManagement // for savedQueries\r\n adminSearchManagement: SearchManagement; // for all queries\r\n\r\n //constructor(filters: any[], rules: any) {\r\n constructor(filters: any[], savedQueries: any, allQueries: any, startInAdmin: boolean = false, queryId: string = \"-1\", isAdmin: boolean = false, summaryStatsJson: any) {\r\n\r\n $(() => {\r\n $('.search-results').hide();\r\n\r\n let summaryStats: SummaryStats = plainToClass(SummaryStats, summaryStatsJson);\r\n\r\n this.startCounter('participant-count', summaryStats.Participants);\r\n this.startCounter('sample-count', summaryStats.Samples);\r\n this.startCounter('aliquot-count', summaryStats.Aliquots);\r\n\r\n this.searchManagement = new SearchManagement(savedQueries, this);\r\n\r\n this.initFilters(filters);\r\n this.initRules();\r\n this.initQueryBuilder();\r\n this.initializeTable(isAdmin); // show download button if isAdmin/Reviewer\r\n\r\n this.adminSearchManagement = new SearchManagement(allQueries, this, true, startInAdmin, queryId);\r\n });\r\n }\r\n\r\n initFilters(filters: any[]) {\r\n\r\n this.variableMap = new Map();\r\n this.filterMap = new Map();\r\n\r\n this.filters = filters.map((filter: any) => {\r\n \r\n if (filter.plugin == \"slider\") {\r\n filter.plugin_config.min = +filter.plugin_config.min; //cast to number\r\n filter.plugin_config.max = +filter.plugin_config.max;\r\n filter.plugin_config.value = +filter.plugin_config.value;\r\n\r\n filter.onAfterSetValue = function (rule, value) {\r\n var input = rule.$el.find('.rule-value-container input');\r\n input.slider('setValue', value);\r\n input.val(value); // don't know why I need it\r\n\r\n //input.slider('tooltip', 'always');\r\n //input.slider.addClass('test');\r\n }\r\n }\r\n\r\n //console.log(filter);\r\n this.variableMap.set(filter.id, filter.label.replace(/ /g, \"_\"));\r\n\r\n //configure filterMap to facilitate showing human-readable SQL\r\n if ((filter.type == \"integer\" || filter.type == \"string\") && (filter.input == \"radio\" || filter.input == \"select\")) {\r\n for (let key in filter.values) {\r\n let value: any = \"\";\r\n let label: string = \"\";\r\n let optionRange: number[] = [-99, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 31, 99];\r\n for (let i: number = 0; i <= optionRange.length; ++i) {\r\n if (filter.values[key][optionRange[i] + \"\"] != undefined) {\r\n label = filter.values[key][optionRange[i] + \"\"];\r\n value = optionRange[i];\r\n break;\r\n }\r\n }\r\n if (label == \"\") {\r\n console.log(\"Could not find label:\", filter.values[key]);\r\n console.log(filter.id + \"@\" + key, filter.values[key], label);\r\n }\r\n //console.log(filter.id + \"@\" + key, filter.values[key], label);\r\n this.filterMap.set(filter.id + \"@\" + value, label);\r\n }\r\n }\r\n\r\n return filter;\r\n });\r\n\r\n //console.log(this.variableMap);\r\n //console.log(this.filterMap);\r\n }\r\n\r\n initRules(): any {\r\n this.rules = {\r\n condition: 'AND',\r\n rules: [\r\n {\r\n \"field\": \"PortalStatus\",\r\n \"id\": \"PortalStatus\",\r\n \"input\": \"select\",\r\n \"operator\": \"equal\",\r\n \"type\": \"integer\",\r\n \"value\": 1\r\n }\r\n ]\r\n };\r\n }\r\n\r\n initQueryBuilder() {\r\n\r\n //$('#builder').empty();\r\n\r\n $('#builder').queryBuilder({\r\n filters: this.filters,\r\n rules: this.rules,\r\n icons: {\r\n add_group: 'fas fa-plus-square',\r\n add_rule: 'fas fa-plus',\r\n remove_group: 'fas fa-minus-square',\r\n remove_rule: 'fas fa-trash-alt',\r\n error: 'fas fa-exclamation-circle'\r\n },\r\n lang: {\r\n delete_group: ' ',\r\n delete_rule: ' ',\r\n\r\n }\r\n //lang: {\r\n // \"conditions\": {\r\n // \"AND\": \"ALL\",\r\n // \"OR\": \"ANY\"\r\n // },\r\n //}\r\n });\r\n\r\n $('#builder').on('rulesChanged.queryBuilder', () => {\r\n\r\n //need to disable rule change listener while clearing and resetting rules\r\n if (this.updatingRules) {\r\n return;\r\n }\r\n\r\n var rules = $('#builder').queryBuilder('getSQL', 'named');\r\n //var rules = $('#builder').queryBuilder('getSQL', false);\r\n\r\n if (!rules) {\r\n $('.generated-sql').text(\"\");\r\n $('#save-button').prop('disabled', true);\r\n return;\r\n }\r\n\r\n let formattedSql: string = rules.sql;\r\n\r\n //console.log(formattedSql);\r\n //console.log(rules);\r\n\r\n let labelsMap: Map = new Map();\r\n\r\n for (var key in rules.params) {\r\n if (rules.params.hasOwnProperty(key)) {\r\n\r\n formattedSql = formattedSql.replace(\":\" + key, this.getFilterValue(key, rules.params[key]));\r\n\r\n //update variables with human-readable\r\n let filterId = this.extractFilterId(key);\r\n\r\n if (!labelsMap.has(filterId)) {\r\n labelsMap.set(filterId, this.variableMap.get(filterId));\r\n }\r\n }\r\n }\r\n labelsMap.forEach((value, key, map) => {\r\n //formattedSql = formattedSql.replace(key, value);\r\n formattedSql = formattedSql.split(key).join(value);\r\n });\r\n\r\n\r\n $('#generated-sql').text(formattedSql);\r\n $('#save-button').prop('disabled', false);\r\n\r\n this.rules = $('#builder').queryBuilder('getRules');\r\n\r\n });\r\n $('#builder').trigger('rulesChanged.queryBuilder');\r\n\r\n }\r\n\r\n extractFilterId(key: string) {\r\n\r\n let filterId: string = key.substring(0, key.lastIndexOf(\"_\"));\r\n return filterId;\r\n }\r\n\r\n getFilterValue(key: string, value: any) {\r\n\r\n let filterId: string = this.extractFilterId(key);\r\n let filterMapKey: string = filterId + \"@\" + value;\r\n\r\n let mappedValue: string = this.filterMap.get(filterMapKey);\r\n\r\n if (mappedValue) return \"\\\"\" + mappedValue + \"\\\"\";\r\n else return value;\r\n }\r\n\r\n search(): void {\r\n\r\n //console.log(\"search\", this.rules);\r\n\r\n //contentType: \"application/json; charset=utf-8\",\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/secure/sample-search/sample-search?handler=Search',\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify(this.rules),\r\n headers: { \"RequestVerificationToken\": $('input[name=\"__RequestVerificationToken\"]').val() },\r\n success: (response) => {\r\n\r\n //console.log(response);\r\n\r\n let results: SpecimenSearchResult[] = plainToClass(SpecimenSearchResult, response);\r\n let patientSet: Set = new Set();\r\n let sampleSet: Set = new Set();\r\n\r\n results.forEach((result: SpecimenSearchResult) => {\r\n result.initialize();\r\n patientSet.add(result.Patient);\r\n sampleSet.add(result.SampleId);\r\n });\r\n\r\n this.resultsTable.clear();\r\n this.resultsTable.rows.add(results);\r\n this.resultsTable.draw();\r\n\r\n $('.search-results').show();\r\n $('#query-results-table').DataTable().columns.adjust()\r\n\r\n this.startCounter('participant-count', patientSet.size);\r\n $('#participants-title').text(\"Participants\");\r\n this.startCounter('sample-count', sampleSet.size);\r\n $('#samples-title').text(\"Samples\");\r\n this.startCounter('aliquot-count', results.length);\r\n $('#aliquots-title').text(\"Aliquots\");\r\n\r\n\r\n //console.log(results);\r\n },\r\n error: (response) => {\r\n console.log(\"error\", response);\r\n alert(\"An unexpected error occurred. Please try again.\");\r\n }\r\n });\r\n\r\n //JSON.stringify(this.getFormattedRules())\r\n //\r\n }\r\n\r\n saveSearch(): void {\r\n this.searchManagement.saveSearch(JSON.stringify(this.rules), $('#generated-sql').text() + \"\");\r\n }\r\n\r\n deleteSearch(): void {\r\n this.searchManagement.deleteSearch();\r\n }\r\n\r\n updateQueryBuilder(query: UserQuery): void {\r\n\r\n this.updatingRules = true;\r\n $('#builder').queryBuilder('reset');\r\n\r\n if (query == undefined) {\r\n this.initRules();\r\n $('#builder').queryBuilder('setRules', this.rules);\r\n }\r\n else {\r\n $('#builder').queryBuilder('setRules', JSON.parse(query.queryJson));\r\n }\r\n\r\n this.updatingRules = false;\r\n $('#builder').trigger('rulesChanged.queryBuilder');\r\n }\r\n\r\n initializeTable(isAdmin: boolean): void {\r\n let domString = '<\"clear\">lfrti';\r\n\r\n if (isAdmin) {\r\n domString = 'B<\"clear\">lfrtip'\r\n }\r\n\r\n //console.log(isAdmin);\r\n\r\n this.resultsTable = $('#query-results-table').DataTable({\r\n retrieve: true,\r\n dom: domString,\r\n autoWidth: false,\r\n info: false,\r\n paging: true,\r\n scrollX: true,\r\n searching: false,\r\n //scrollY: \"500px\",\r\n //scrollCollapse: true,\r\n language: {\r\n lengthMenu: \"Show _MENU_ Aliquots\"\r\n },\r\n columns: [\r\n { data: \"Study\", class: \"text-left\" },\r\n { data: \"Barcode\", },\r\n { data: \"VialId\", },\r\n { data: \"Patient\", class: \"text-left\" },\r\n { data: \"TimepointDisplay\" },\r\n { data: \"SampleType\" },\r\n { data: \"Status\" },\r\n { data: \"Volume\" },\r\n { data: \"Units\" },\r\n { data: \"ThawCount\" }, //className: \"text-center\" },\r\n { data: \"Quality\" }\r\n ],\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: '',\r\n titleAttr: 'CSV',\r\n charset: 'utf-8',\r\n //exportOptions: {\r\n // columns: [1, 2, 3, 4]\r\n //}\r\n }\r\n ],\r\n });\r\n }\r\n\r\n startCounter(elementId: string, value: number): void {\r\n if (value == undefined) { value = 0; }\r\n let counter = new CountUp(elementId, value, { useEasing: false, duration: 1 });\r\n counter.start();\r\n }\r\n\r\n searchById(): void {\r\n this.adminSearchManagement.searchById($(\"#search-input-id\").val());\r\n }\r\n}\r\n\r\nexport class SummaryStats {\r\n Studies: number;\r\n Participants: number;\r\n SampleTypes: number;\r\n Samples: number;\r\n Aliquots: number;\r\n}","\r\n\r\nexport function FormatDate(date): string {\r\n\r\n if (date !== undefined && date !== \"\" && date !== null) {\r\n var myDate = new Date(date);\r\n var month = [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\",\r\n ][myDate.getMonth()];\r\n var str = myDate.getDate() + \" \" + month + \" \" + myDate.getFullYear();\r\n return str;\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function GetDateFromString(dateString: string, format: string): Date {\r\n\r\n if (format == \"hyphens-year-month-day\") {\r\n let parts: string[] = dateString.split(\"-\");\r\n return new Date(Number.parseInt(parts[0]), Number.parseInt(parts[1]) - 1, Number.parseInt(parts[2]), 12, 0, 0);\r\n }\r\n else if (format == \"hyphens-year-month-day-timezone\") {\r\n let trimmed = dateString.substr(0, dateString.indexOf(\"T\"));\r\n return this.GetDateFromString(trimmed, \"hyphens-year-month-day\");\r\n }\r\n else return null;\r\n}","import { SampleRequestFormData, SampleRequestCommentData, SampleRequestsData } from './scripts/sample-request-form-data.entities'\r\nimport { RequestFormDataTable } from './scripts/data-table'\r\nimport { plainToClass } from \"class-transformer\";\r\nimport { RequestDashboardSampleInfo } from \"./scripts/request-dashboard.samples\";\r\nimport { SpecimenSearchResult } from '../sample-search/scripts/sample-search.entities';\r\nimport { SampleExportPDF } from './scripts/request-dashboard.pdf';\r\nimport { RequestDashboardAdminModal } from './scripts/request-dashboard.adminModal';\r\nimport { RequestDashboardStatusHistoryModal } from './scripts/request-dashboard.statusHistory';\r\n\r\ndeclare var $: any;\r\n\r\nexport class RequestDashboardPage {\r\n userId: number;\r\n isAdmin: boolean;\r\n // General Form Data (Requestor Name, Project Details, etc)\r\n sampleRequestFormData: SampleRequestFormData[];\r\n // Requested Biospecimen Data (Study, Sample Type, etc)\r\n totalSampleRequests: SampleRequestsData[];\r\n // All Comments related to requests\r\n allComments: SampleRequestCommentData[];\r\n\r\n\r\n requestFormDataTable: RequestFormDataTable;\r\n requestDashboardSampleInfo: RequestDashboardSampleInfo;\r\n //requestDashboardUpdateStatus: RequestDashboardUpdateStatus;\r\n //requestDashboardComments: RequestDashboardComments;\r\n requestDashboardAdminModal: RequestDashboardAdminModal;\r\n requestDashboardStatusHistoryModal: RequestDashboardStatusHistoryModal;\r\n sampleExportPDF: SampleExportPDF;\r\n\r\n savedQueries: any[];\r\n\r\n constructor(userId: number, savedQueries: any[], userSampleRequestForms: any[], userSampleRequests: any[], userComments: any[], isAdmin: boolean, allQueries: any[], allSampleRequestForms: any[], allSampleRequests: any[], allRequestComments: any[], isReviewer: boolean) {\r\n/* console.log(\"UserId\");\r\n console.log(userId);\r\n console.log(\"Saved Queries:\");\r\n console.log(savedQueries);\r\n console.log(\"User Sample Request Forms\");\r\n console.log(userSampleRequestForms);\r\n console.log(\"User Sample Requests\");\r\n console.log(userSampleRequests);\r\n console.log(\"All Queries\");\r\n console.log(allQueries);\r\n console.log(\"All Sample Request Forms\");\r\n console.log(allSampleRequestForms);\r\n console.log(\"All Sample Requests\");\r\n console.log(allSampleRequests);\r\n console.log(\"All Comments\");\r\n console.log(allRequestComments);*/\r\n //console.log(isReviewer);\r\n //console.log(userComments);\r\n this.userId = userId;\r\n this.isAdmin = isAdmin;\r\n\r\n\r\n // data displayed in table based on Admin Status\r\n if (isAdmin || isReviewer) {\r\n this.sampleRequestFormData = plainToClass(SampleRequestFormData, allSampleRequestForms);\r\n this.savedQueries = allQueries;\r\n this.totalSampleRequests = plainToClass(SampleRequestsData, allSampleRequests);\r\n this.allComments = plainToClass(SampleRequestCommentData, allRequestComments);\r\n }\r\n else {\r\n this.sampleRequestFormData = plainToClass(SampleRequestFormData, userSampleRequestForms);\r\n this.savedQueries = savedQueries;\r\n this.totalSampleRequests = plainToClass(SampleRequestsData, userSampleRequests);\r\n this.allComments = plainToClass(SampleRequestCommentData, userComments);\r\n }\r\n\r\n // initialize data before sending it to the table generator (adds virtuals)\r\n this.sampleRequestFormData.forEach(form => form.initializeData());\r\n this.requestFormDataTable = new RequestFormDataTable(this.sampleRequestFormData, isAdmin);\r\n\r\n this.requestDashboardSampleInfo = new RequestDashboardSampleInfo();\r\n this.requestDashboardAdminModal = new RequestDashboardAdminModal(this.allComments);\r\n this.requestDashboardStatusHistoryModal = new RequestDashboardStatusHistoryModal(this.allComments);\r\n\r\n this.sampleExportPDF = new SampleExportPDF();\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n let formData = this.sampleRequestFormData;\r\n let requestDashboardSampleInfo = this.requestDashboardSampleInfo;\r\n let requestDashboardSpecimens = this.totalSampleRequests;\r\n let requestDashboardAdminModal = this.requestDashboardAdminModal;\r\n let requestDashboardStatusHistoryModal = this.requestDashboardStatusHistoryModal;\r\n\r\n let sampleExportPDF = this.sampleExportPDF;\r\n let queries = this.savedQueries;\r\n\r\n // fixes scrolling issue when switching between modals\r\n $('.modal').on('shown.bs.modal', function (e) {\r\n $(\"body\").addClass(\"modal-open\")\r\n });\r\n\r\n $(\".generate-new-form\").click(function () {\r\n $(\"#loading-new-form\").removeClass(\"inactive-section\");\r\n })\r\n\r\n // printable PDF with